@@ -0,0 +1,103 @@ | |||||
package db | |||||
import ( | |||||
"applet/app/db/model" | |||||
"applet/app/utils/logx" | |||||
"xorm.io/xorm" | |||||
) | |||||
// GetFinUserFlowByID is 用户流水记录 | |||||
func GetFinUserFlowByID(Db *xorm.Engine, id interface{}) (*model.FinUserFlow, error) { | |||||
var m model.FinUserFlow | |||||
if has, err := Db.Where("id = ?", id).Get(&m); err != nil || !has { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// GetFinUserFlowByID is 用户流水记录 | |||||
func GetFinUserFlowByUIDANDOID(Db *xorm.Engine, types, uid, ordId string) (*model.FinUserFlow, error) { | |||||
var m model.FinUserFlow | |||||
if has, err := Db.Where("uid = ? and ord_id = ? and type = ?", uid, ordId, types).Get(&m); err != nil || !has { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
func GetFinUserFlowByUIDANDOIDTOORDTYPE(Db *xorm.Engine, types, uid, ordId string) (*model.FinUserFlow, error) { | |||||
var m model.FinUserFlow | |||||
if has, err := Db.Where("uid = ? and ord_id = ? and ord_type = ?", uid, ordId, types).Get(&m); err != nil || !has { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// GetFinUserFlowByID is 用户流水记录 | |||||
func GetFinUserFlowByOIDANDORDTYPE(Db *xorm.Engine, types, ordId, ordType string) (*model.FinUserFlow, error) { | |||||
var m model.FinUserFlow | |||||
if has, err := Db.Where("ord_id = ? and ord_action = ? and ord_type= ?", ordId, types, ordType).Get(&m); err != nil || !has { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
//FinUserFlowInsertOne is 插入一条流水记录 | |||||
func FinUserFlowInsertOne(Db *xorm.Engine, m *model.FinUserFlow) error { | |||||
_, err := Db.InsertOne(m) | |||||
if err != nil { | |||||
return err | |||||
} | |||||
return nil | |||||
} | |||||
//FinUserFlowInsertOne is 插入一条流水记录 | |||||
func FinUserFlowWithSessionInsertOne(session *xorm.Session, m *model.FinUserFlow) error { | |||||
_, err := session.InsertOne(m) | |||||
if err != nil { | |||||
return err | |||||
} | |||||
return nil | |||||
} | |||||
// FinUserFlowByUID is 用户流水 | |||||
func FinUserFlowInputByUID(Db *xorm.Engine, uid interface{}, time string, limit, start int) ([]*model.FinUserFlow, error) { | |||||
var m []*model.FinUserFlow | |||||
if err := Db.Where("uid = ? AND create_at like ? and (amount> ? or ord_type=?)", uid, time+"%", "0", "fast_return").In("type", "0").Desc("create_at").Limit(limit, start).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return m, nil | |||||
} | |||||
func FinUserFlowInputByUIDWithAmount(Db *xorm.Engine, uid interface{}, types, before_amount, after_amount string) (*model.FinUserFlow, error) { | |||||
var m model.FinUserFlow | |||||
if has, err := Db.Where("uid = ? and ord_type='withdraw' and ord_action = ? and before_amount= ? and after_amount = ?", uid, types, before_amount, after_amount).Get(&m); err != nil || !has { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// FinUserFlowByUIDByOrderAction is 用户流水 by OrderAction | |||||
func FinUserFlowInputByUIDByOrderActionByTime(Db *xorm.Engine, uid, oa interface{}, time string, limit, start int) ([]*model.FinUserFlow, error) { | |||||
var m []*model.FinUserFlow | |||||
if err := Db.Where("uid = ? AND create_at like ? and amount>0", uid, time+"%").In("ord_action", oa).Desc("create_at").Limit(limit, start).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return m, nil | |||||
} | |||||
// FinUserFlowByUIDByOrderAction is 用户流水 by OrderAction | |||||
func FinUserFlowInputByUIDByTypeByTime(Db *xorm.Engine, uid int, time string, limit, start int) ([]*model.FinUserFlow, error) { | |||||
var m []*model.FinUserFlow | |||||
if err := Db.Where("uid = ? AND type = 1 AND create_at like ? and (amount>0 or ord_type=? or ord_action=?)", uid, time+"%", "fast_return", 101).Desc("create_at").Limit(limit, start).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return m, nil | |||||
} | |||||
// 在事务中使用,插入一条流水记录 | |||||
func FinUserFlowInsertOneWithSession(session *xorm.Session, m *model.FinUserFlow) error { | |||||
_, err := session.InsertOne(m) | |||||
if err != nil { | |||||
return err | |||||
} | |||||
return nil | |||||
} |
@@ -0,0 +1,498 @@ | |||||
package db | |||||
import ( | |||||
"applet/app/db/model" | |||||
"applet/app/utils/logx" | |||||
"errors" | |||||
"xorm.io/xorm" | |||||
) | |||||
//UserProfileFindByArkID is get userprofile by arkid | |||||
func UserProfileFindByArkID(Db *xorm.Engine, id interface{}) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("arkid_uid = ?", id).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
func UserProfileFindByArkToken(Db *xorm.Engine, id interface{}) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("arkid_token<>'' and arkid_token = ?", id).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
//UserProfileFindByInviteCode is get userprofile by InviteCode | |||||
func UserProfileFindByInviteCode(Db *xorm.Engine, code string) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("invite_code = ?", code).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
//UserProfileFindByInviteCode is get userprofile by InviteCode | |||||
func UserProfileFindByCustomInviteCode(Db *xorm.Engine, code string) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("custom_invite_code = ?", code).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
//UserProfileFindByInviteCodes is get userprofile by InviteCode | |||||
func UserProfileFindByInviteCodes(Db *xorm.Engine, codes ...string) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if err := Db.In("invite_code", codes).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
func UserProfileFindByAll(Db *xorm.Engine) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if err := Db.Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
//UserProfileFindByCustomInviteCodes is get userprofile by CustomInviteCode | |||||
func UserProfileFindByCustomInviteCodes(Db *xorm.Engine, codes ...string) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if err := Db.In("custom_invite_code", codes).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
func UserProfileFindByIDSess(sess *xorm.Session, id interface{}) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := sess.Where("uid = ?", id).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
func UserProfileFindByPID(Db *xorm.Engine, id interface{}) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("parent_uid = ?", id).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UserProfileOrderByNew 找最新的记录 | |||||
func UserProfileOrderByNew(Db *xorm.Engine) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("invite_code != ''").OrderBy("uid desc").Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UserProfileFindByTaobaoOpenID search user_profile ByTaobaoOpenID | |||||
func UserProfileFindByTaobaoOpenID(Db *xorm.Engine, openid interface{}) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("third_party_taobao_oid = ?", openid).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UserProfileFindByQQOpenID search user_profile ByTaobaoOpenID | |||||
func UserProfileFindByQQOpenID(Db *xorm.Engine, openid interface{}) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("third_party_qq_openid = ?", openid).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UserProfileFindByAppleToken search user_profile AppleToken | |||||
func UserProfileFindByAppleToken(Db *xorm.Engine, token interface{}) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("third_party_apple_token = ?", token).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UserProfileFindByWeChatOpenID search user_profile By 微信openid | |||||
func UserProfileFindByWeChatOpenID(Db *xorm.Engine, openid interface{}) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("third_party_wechat_openid = ?", openid).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UserProfileFindByWeChatMiniOpenID search user_profile By 小程序openid | |||||
func UserProfileFindByWeChatMiniOpenID(Db *xorm.Engine, openid interface{}) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("third_party_wechat_mini_openid = ?", openid).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UserProfileFindByWeChatUnionID search user_profile By 微信唯一id | |||||
func UserProfileFindByWeChatUnionID(Db *xorm.Engine, openid interface{}) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := Db.Where("third_party_wechat_unionid = ? and third_party_wechat_unionid<>''", openid).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
func UserProfileFindByAccAlipay(Db *xorm.Engine, accAlipay string, uid int) (bool, error) { | |||||
if has, err := Db.Where("acc_alipay = ? and uid <>?", accAlipay, uid).Exist(&model.UserProfile{}); err != nil || has == false { | |||||
return false, logx.Warn(err) | |||||
} | |||||
return true, nil | |||||
} | |||||
// UserProfileisExistByTaobaoOpenID is exist by Taobao | |||||
func UserProfileisExistByTaobaoOpenID(Db *xorm.Engine, openid string) (bool, error) { | |||||
has, err := Db.Where("third_party_taobao_oid = ?", openid).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
func UserProfileisThirdPartyWechatH5Openid(Db *xorm.Engine, openid string) (*model.UserProfile, error) { | |||||
var user model.UserProfile | |||||
has, err := Db.Where("third_party_wechat_h5_openid = ? and third_party_wechat_h5_openid<>''", openid).Get(&user) | |||||
if err != nil || has == false { | |||||
return nil, err | |||||
} | |||||
return &user, nil | |||||
} | |||||
// UserProfileisExistByQQOpenID is exist by QQ openid | |||||
func UserProfileisExistByQQOpenID(Db *xorm.Engine, openid string) (bool, error) { | |||||
has, err := Db.Where("third_party_qq_openid = ?", openid).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
// UserProfileisExistByAppleToken is exist by apple token | |||||
func UserProfileisExistByAppleToken(Db *xorm.Engine, token string) (bool, error) { | |||||
has, err := Db.Where("third_party_apple_token = ?", token).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
// UserProfileisExistByWeChatOpenID is exist by Wecaht openid | |||||
func UserProfileisExistByWeChatOpenID(Db *xorm.Engine, openid string) (bool, error) { | |||||
has, err := Db.Where("third_party_wechat_openid = ?", openid).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
// UserProfileisExistByWeChatMiniOpenID is exist by Wecaht openid | |||||
func UserProfileisExistByWeChatMiniOpenID(Db *xorm.Engine, openid string) (bool, error) { | |||||
has, err := Db.Where("third_party_wechat_mini_openid = ?", openid).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
// UserProfileisExistByWeChatUnionID is exist by Wecaht openid | |||||
func UserProfileisExistByWeChatUnionID(Db *xorm.Engine, openid string) (bool, error) { | |||||
has, err := Db.Where("third_party_wechat_unionid = ? and third_party_wechat_unionid<>''", openid).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
// UserProfileisExistByRelationIDAndSpecialID is exist by RelationIdAndSpecialId | |||||
func UserProfileisExistByRelationIDAndSpecialID(Db *xorm.Engine, SpecialID, RelationID int64) (bool, error) { | |||||
has, err := Db.Where("acc_taobao_self_id = ? AND acc_taobao_share_id = ?", SpecialID, RelationID).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
// UserProfileisExistBySpecialID is exist by SpecialId | |||||
func UserProfileisExistBySpecialID(Db *xorm.Engine, SpecialID string) (bool, error) { | |||||
has, err := Db.Where("acc_taobao_self_id = ? ", SpecialID).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
// UserProfileCountByRelationID 统计relationID数量 | |||||
func UserProfileCountByRelationID(Db *xorm.Engine) (total int64, err error) { | |||||
relate := new(model.UserProfile) | |||||
total, err = Db.Where("acc_taobao_share_id > 0").Count(relate) | |||||
return | |||||
} | |||||
// UserProfileCountByPUID 统计直推下级数量 | |||||
func UserProfileCountByPUID(Db *xorm.Engine, puid int) (total int64, err error) { | |||||
relate := new(model.UserProfile) | |||||
total, err = Db.Where("parent_uid = ?", puid).Count(relate) | |||||
return | |||||
} | |||||
// UserProfileisExistByRelationID is exist by RelationID | |||||
func UserProfileisExistByRelationID(Db *xorm.Engine, RelationID string) (bool, error) { | |||||
has, err := Db.Where("acc_taobao_share_id = ? ", RelationID).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
// UserProfileFindByIDs is in sql by ids | |||||
func UserProfileFindByIDs(Db *xorm.Engine, uids ...int) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if err := Db.In("uid", uids).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UserProfileByPuid search user_profile by parent_uid | |||||
func UserProfileByPuid(Db *xorm.Engine, puid interface{}) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if err := Db.Where("parent_uid = ?", puid).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
func UserProfileByPuidWithSess(sess *xorm.Session, puid interface{}) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if err := sess.Where("parent_uid = ?", puid).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
//UsersProfileInByIds is profiles by ids | |||||
func UsersProfileInByIds(Db *xorm.Engine, ids []int, limit, start int) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if limit == 0 && start == 0 { | |||||
if err := Db.In("uid", ids).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
if err := Db.In("uid", ids).Limit(limit, start).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UsersProfileInByUIDByisVerify is In查询 以及是否是有效用户 | |||||
func UsersProfileInByUIDByisVerify(Db *xorm.Engine, ids []int, isVerify interface{}) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if err := Db.In("uid", ids).Where("is_verify = ?", isVerify). | |||||
Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UsersProfileInByIdsByDesc is 根据某列 降序 | |||||
func UsersProfileInByIdsByDesc(Db *xorm.Engine, ids []int, limit, start int, c string) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if limit == 0 && start == 0 { | |||||
if err := Db.In("uid", ids).Desc(c).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
if err := Db.In("uid", ids).Desc(c).Limit(limit, start).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UsersProfileInByIdsByAsc is 根据某列 升序 | |||||
func UsersProfileInByIdsByAsc(Db *xorm.Engine, ids []int, limit, start int, c string) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if limit == 0 && start == 0 { | |||||
if err := Db.In("uid", ids).Asc(c).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
if err := Db.In("uid", ids).Asc(c).Limit(limit, start).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UsersProfileByAll is 查询所有分享id大于0的数据 | |||||
func UsersProfileByTaobaoShateIdNotNull(Db *xorm.Engine, limit, start int) (*[]model.UserProfile, error) { | |||||
var m []model.UserProfile | |||||
if err := Db.Where("acc_taobao_share_id > 0").Limit(limit, start).Find(&m); err != nil { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// UserProfileIsExistByUserID is mobile exist | |||||
func UserProfileIsExistByUserID(Db *xorm.Engine, id int) (bool, error) { | |||||
has, err := Db.Where("uid = ?", id).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
// UserProfileIsExistByInviteCode is exist ? | |||||
func UserProfileIsExistByInviteCode(Db *xorm.Engine, code string) (bool, error) { | |||||
has, err := Db.Where("invite_code = ?", code).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
// UserProfileIsExistByCustomInviteCode is exist ? | |||||
func UserProfileIsExistByCustomInviteCode(Db *xorm.Engine, code string) (bool, error) { | |||||
has, err := Db.Where("custom_invite_code = ?", code).Exist(&model.UserProfile{}) | |||||
if err != nil { | |||||
return false, err | |||||
} | |||||
return has, nil | |||||
} | |||||
//UserProfileInsert is insert user | |||||
func UserProfileInsert(Db *xorm.Engine, userProfile *model.UserProfile) (int64, error) { | |||||
affected, err := Db.Insert(userProfile) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return affected, nil | |||||
} | |||||
//UserProfileUpdate is update userprofile | |||||
func UserProfileUpdate(Db *xorm.Engine, uid interface{}, userProfile *model.UserProfile, forceCols ...string) (int64, error) { | |||||
var ( | |||||
affected int64 | |||||
err error | |||||
) | |||||
if forceCols != nil { | |||||
affected, err = Db.Where("uid=?", uid).Cols(forceCols...).Update(userProfile) | |||||
} else { | |||||
affected, err = Db.Where("uid=?", uid).AllCols().Omit("fin_valid").Update(userProfile) | |||||
} | |||||
if err != nil { | |||||
return 0, logx.Warn(err) | |||||
} | |||||
return affected, nil | |||||
} | |||||
func UserProfileUpdateWithSess(sess *xorm.Session, uid interface{}, userProfile *model.UserProfile, forceCols ...string) (int64, error) { | |||||
var ( | |||||
affected int64 | |||||
err error | |||||
) | |||||
if forceCols != nil { | |||||
affected, err = sess.Where("uid=?", uid).Cols(forceCols...).Update(userProfile) | |||||
} else { | |||||
affected, err = sess.Where("uid=?", uid).AllCols().Omit("fin_valid").Update(userProfile) | |||||
} | |||||
if err != nil { | |||||
return 0, logx.Warn(err) | |||||
} | |||||
return affected, nil | |||||
} | |||||
//UserProfileUpdateByArkID is update userprofile | |||||
func UserProfileUpdateByArkID(Db *xorm.Engine, arkid interface{}, userProfile *model.UserProfile, forceCols ...string) (int64, error) { | |||||
var ( | |||||
affected int64 | |||||
err error | |||||
) | |||||
if forceCols != nil { | |||||
affected, err = Db.Where("arkid_uid=?", arkid).Cols(forceCols...).Update(userProfile) | |||||
} else { | |||||
affected, err = Db.Where("arkid_uid=?", arkid).Update(userProfile) | |||||
} | |||||
if err != nil { | |||||
return 0, logx.Warn(err) | |||||
} | |||||
return affected, nil | |||||
} | |||||
// UserProfileDelete is delete user profile | |||||
func UserProfileDelete(Db *xorm.Engine, uid interface{}) (int64, error) { | |||||
return Db.Where("uid = ?", uid).Delete(model.UserProfile{}) | |||||
} | |||||
func UserProfileDeleteWithSess(sess *xorm.Session, uid interface{}) (int64, error) { | |||||
return sess.Where("uid = ?", uid).Delete(model.UserProfile{}) | |||||
} | |||||
func UserProfileFindByIdWithSession(session *xorm.Session, uid int) (*model.UserProfile, error) { | |||||
var m model.UserProfile | |||||
if has, err := session.Where("uid = ?", uid).Get(&m); err != nil || has == false { | |||||
return nil, logx.Warn(err) | |||||
} | |||||
return &m, nil | |||||
} | |||||
// 在事务中更新用户信息 | |||||
func UserProfileUpdateWithSession(session *xorm.Session, uid interface{}, userProfile *model.UserProfile, forceCols ...string) (int64, error) { | |||||
var ( | |||||
affected int64 | |||||
err error | |||||
) | |||||
if forceCols != nil { | |||||
affected, err = session.Where("uid=?", uid).Cols(forceCols...).Update(userProfile) | |||||
} else { | |||||
affected, err = session.Where("uid=?", uid).Omit("fin_valid").Update(userProfile) | |||||
} | |||||
if err != nil { | |||||
return 0, logx.Warn(err) | |||||
} | |||||
return affected, nil | |||||
} | |||||
// UpdateUserProfileFinValid 更新用户余额 | |||||
func UpdateUserProfileFinValid(Db *xorm.Engine, uid interface{}, newAmount string) error { | |||||
update, err := Db.Where("uid=?", uid).Update(&model.UserProfile{FinValid: newAmount}) | |||||
if err != nil { | |||||
return err | |||||
} | |||||
if update != 1 { | |||||
return errors.New("更新失败") | |||||
} | |||||
return nil | |||||
} | |||||
// UpdateUserProfileFinValidWithSess 事务更新用户余额 | |||||
func UpdateUserProfileFinValidWithSess(sess *xorm.Session, uid interface{}, newAmount string) error { | |||||
update, err := sess.Where("uid=?", uid).Update(&model.UserProfile{FinValid: newAmount}) | |||||
if err != nil { | |||||
return err | |||||
} | |||||
if update != 1 { | |||||
return errors.New("更新失败") | |||||
} | |||||
return nil | |||||
} |
@@ -0,0 +1,36 @@ | |||||
package model | |||||
import ( | |||||
"time" | |||||
) | |||||
type RechargeOrder struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
Uid int `json:"uid" xorm:"default 0 INT(11)"` | |||||
PayMethod int `json:"pay_method" xorm:"default 0 comment('支付方式') INT(11)"` | |||||
Oid string `json:"oid" xorm:"comment('站内订单号') VARCHAR(255)"` | |||||
PlatformOid string `json:"platform_oid" xorm:"comment('平台订单号') VARCHAR(255)"` | |||||
Type string `json:"type" xorm:"comment('充值类型') VARCHAR(255)"` | |||||
Status string `json:"status" xorm:"comment('订单状态') VARCHAR(255)"` | |||||
CreateTime time.Time `json:"create_time" xorm:"DATETIME"` | |||||
PayTime time.Time `json:"pay_time" xorm:"DATETIME"` | |||||
RefundTime time.Time `json:"refund_time" xorm:"DATETIME"` | |||||
SuccessTime time.Time `json:"success_time" xorm:"DATETIME"` | |||||
Account string `json:"account" xorm:"VARCHAR(255)"` | |||||
Province string `json:"province" xorm:"VARCHAR(255)"` | |||||
Amount string `json:"amount" xorm:"default 0.00 DECIMAL(20,2)"` | |||||
GoodsId int `json:"goods_id" xorm:"default 0 INT(11)"` | |||||
Title string `json:"title" xorm:"VARCHAR(255)"` | |||||
Profit string `json:"profit" xorm:"default 0.00 DECIMAL(20,2)"` | |||||
ZyAmount string `json:"zy_amount" xorm:"default 0.00 DECIMAL(20,2)"` | |||||
City string `json:"city" xorm:"VARCHAR(255)"` | |||||
Ytype string `json:"ytype" xorm:"VARCHAR(255)"` | |||||
IdCardNo string `json:"id_card_no" xorm:"VARCHAR(255)"` | |||||
TradeNo string `json:"trade_no" xorm:"VARCHAR(255)"` | |||||
PayTradeNo string `json:"pay_trade_no" xorm:"VARCHAR(255)"` | |||||
OfficalAmount string `json:"offical_amount" xorm:"default 0.00 DECIMAL(20,2)"` | |||||
RechargeStatus string `json:"recharge_status" xorm:"VARCHAR(255)"` | |||||
UserCommission string `json:"user_commission" xorm:"default 0.0000 DECIMAL(20,4)"` | |||||
Price string `json:"price" xorm:"default 0.0000 DECIMAL(20,4)"` | |||||
SettleAt int `json:"settle_at" xorm:"default 0 INT(11)"` | |||||
} |
@@ -0,0 +1,11 @@ | |||||
package model | |||||
type RechargeOrderMsg struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
Oid string `json:"oid" xorm:"VARCHAR(255)"` | |||||
Param string `json:"param" xorm:"VARCHAR(1000)"` | |||||
FirstMsg string `json:"first_msg" xorm:"VARCHAR(1000)"` | |||||
RefundMsg string `json:"refund_msg" xorm:"VARCHAR(1000)"` | |||||
SuccessMsg string `json:"success_msg" xorm:"VARCHAR(1000)"` | |||||
Err string `json:"err" xorm:"VARCHAR(1000)"` | |||||
} |
@@ -0,0 +1,31 @@ | |||||
package model | |||||
import ( | |||||
"time" | |||||
) | |||||
type TikTokTeamGoods struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
Cid int `json:"cid" xorm:"default 0 comment('分类id') INT(11)"` | |||||
Title string `json:"title" xorm:"VARCHAR(255)"` | |||||
Price string `json:"price" xorm:"default 0.00 comment('现价') DECIMAL(10,2)"` | |||||
CostPrice string `json:"cost_price" xorm:"default 0.00 comment('原价') DECIMAL(10,2)"` | |||||
Commission string `json:"commission" xorm:"default 0.00 comment('佣金比例%') DECIMAL(10,2)"` | |||||
Gid string `json:"gid" xorm:"default '' comment('商品id') VARCHAR(100)"` | |||||
Sales int `json:"sales" xorm:"default 0 comment('销量') INT(11)"` | |||||
GoodsImg string `json:"goods_img" xorm:"default '' comment('图片') VARCHAR(255)"` | |||||
DetailUrl string `json:"detail_url" xorm:"default '' comment('活动链接') VARCHAR(255)"` | |||||
ShopName string `json:"shop_name" xorm:"default '' comment('店铺名称') VARCHAR(255)"` | |||||
EndType string `json:"end_type" xorm:"default '' comment('') VARCHAR(255)"` | |||||
LmType string `json:"lm_type" xorm:"default '' comment('') VARCHAR(255)"` | |||||
ActivityStartTime time.Time `json:"activity_start_time" xorm:"comment('活动开始时间') DATETIME"` | |||||
ActivityEndTime time.Time `json:"activity_end_time" xorm:"comment('活动结束时间') DATETIME"` | |||||
OldActivityEndTime time.Time `json:"old_activity_end_time" xorm:"comment('活动结束时间') DATETIME"` | |||||
UpdateTime time.Time `json:"update_time" xorm:"comment('活动结束时间') DATETIME"` | |||||
ActivityId int `json:"activity_id" xorm:"default 0 INT(11)"` | |||||
IsDown int `json:"is_down" xorm:"default 0 INT(1)"` | |||||
Status int `json:"status" xorm:"default 0 INT(11)"` | |||||
PublicCommission string `json:"public_commission" xorm:"default 0.00 comment('佣金比例%') DECIMAL(10,2)"` | |||||
ServiceRatio string `json:"service_ratio" xorm:"default 0.00 comment('佣金比例%') DECIMAL(10,2)"` | |||||
TalentCommission string `json:"talent_commission" xorm:"default 0.00 comment('佣金比例%') DECIMAL(10,2)"` | |||||
} |
@@ -0,0 +1,15 @@ | |||||
package offical | |||||
import ( | |||||
"applet/app/db" | |||||
officialModel "applet/app/db/offical/model" | |||||
) | |||||
func GetAggregationUserInfo(uid string) *officialModel.AggregationUser { | |||||
var user officialModel.AggregationUser | |||||
get, err := db.Db.Where("uid=?", uid).Get(&user) | |||||
if get == false || err != nil { | |||||
return nil | |||||
} | |||||
return &user | |||||
} |
@@ -0,0 +1,23 @@ | |||||
package offical | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/db/offical/model" | |||||
) | |||||
func GetLianlianOrderQrcode(oid string) *[]model.LianlianOrderQrcode { | |||||
var data []model.LianlianOrderQrcode | |||||
err := db.Db.Where("oid=?", oid).Find(&data) | |||||
if err != nil { | |||||
return nil | |||||
} | |||||
return &data | |||||
} | |||||
func GetLianlianOrderQrcodeWithCode(oid, code string) *model.LianlianOrderQrcode { | |||||
var data model.LianlianOrderQrcode | |||||
get, err := db.Db.Where("oid=? and sub_oid=?", oid, code).Get(&data) | |||||
if get == false || err != nil { | |||||
return nil | |||||
} | |||||
return &data | |||||
} |
@@ -0,0 +1,21 @@ | |||||
package offical | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/db/offical/model" | |||||
) | |||||
func GetLianlianRefundOrdByOrdId(ordId, code string) (*model.LianlianRefundOrder, error) { | |||||
var ord model.LianlianRefundOrder | |||||
if has, err := db.Db.Where(" oid=? and ord_ids like ?", ordId, "%"+code+"%").Get(&ord); err != nil || !has { | |||||
return nil, err | |||||
} | |||||
return &ord, nil | |||||
} | |||||
func GetLianlianRefundOrdByOrdIdAll(ordId string) (*model.LianlianRefundOrder, error) { | |||||
var ord model.LianlianRefundOrder | |||||
if has, err := db.Db.Where(" oid=? ", ordId).Get(&ord); err != nil || !has { | |||||
return nil, err | |||||
} | |||||
return &ord, nil | |||||
} |
@@ -0,0 +1,15 @@ | |||||
package offical | |||||
import ( | |||||
"applet/app/db" | |||||
officialModel "applet/app/db/offical/model" | |||||
) | |||||
func GetLianlianUserInfo(uid string) *officialModel.LianlianUser { | |||||
var user officialModel.LianlianUser | |||||
get, err := db.Db.Where("uid=?", uid).Get(&user) | |||||
if get == false || err != nil { | |||||
return nil | |||||
} | |||||
return &user | |||||
} |
@@ -0,0 +1,18 @@ | |||||
package offical | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/db/offical/model" | |||||
) | |||||
func GetPhoneRechargeCate() map[int]model.PhoneRechargeCate { | |||||
var data []model.PhoneRechargeCate | |||||
var dataMap = make(map[int]model.PhoneRechargeCate) | |||||
err := db.Db.Where("1=1").Find(&data) | |||||
if err == nil { | |||||
for _, v := range data { | |||||
dataMap[v.Cid] = v | |||||
} | |||||
} | |||||
return dataMap | |||||
} |
@@ -0,0 +1,15 @@ | |||||
package offical | |||||
import ( | |||||
"applet/app/db" | |||||
officialModel "applet/app/db/offical/model" | |||||
) | |||||
func SysCfgByKey(key string) *officialModel.SysCfg { | |||||
var data officialModel.SysCfg | |||||
get, err := db.Db.Where("k=?", key).Get(&data) | |||||
if get == false || err != nil { | |||||
return nil | |||||
} | |||||
return &data | |||||
} |
@@ -0,0 +1,16 @@ | |||||
package model | |||||
import ( | |||||
"time" | |||||
) | |||||
type AggregationUser struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr comment('自增id') INT(11)"` | |||||
Uid int `json:"uid" xorm:"not null default 0 comment('主用户id') INT(11)"` | |||||
Amount string `json:"amount" xorm:"not null default '0' comment('余额') VARCHAR(255)"` | |||||
CreditAmount string `json:"credit_amount" xorm:"not null default '100' comment('授信额度') VARCHAR(255)"` | |||||
State int `json:"state" xorm:"not null default 1 comment('状态(1:正常 2:冻结)') TINYINT(2)"` | |||||
Memo string `json:"memo" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||||
CreateAt time.Time `json:"create_at" xorm:"not null default CURRENT_TIMESTAMP comment('创建时间') DATETIME"` | |||||
UpdateAt time.Time `json:"update_at" xorm:"default CURRENT_TIMESTAMP comment('更新时间') DATETIME"` | |||||
} |
@@ -0,0 +1,25 @@ | |||||
package model | |||||
import ( | |||||
"time" | |||||
) | |||||
type AggregationUserRechargeOrd struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
OrdId string `json:"ord_id" xorm:"not null default '' comment('订单id') VARCHAR(100)"` | |||||
Uid int `json:"uid" xorm:"not null default 0 comment('主用户id') INT(11)"` | |||||
Phone int64 `json:"phone" xorm:"not null default 0 comment('主账号-手机号码') BIGINT(13)"` | |||||
Nickname string `json:"nickname" xorm:"not null default '' comment('主账号-昵称') VARCHAR(255)"` | |||||
Amount string `json:"amount" xorm:"not null default '0' comment('充值金额') VARCHAR(255)"` | |||||
CostPrice string `json:"cost_price" xorm:"not null default '0' comment('付费价格') VARCHAR(255)"` | |||||
Balance string `json:"balance" xorm:"not null default '0' comment('当前余额(充值完当前余额)') VARCHAR(255)"` | |||||
PayWay int `json:"pay_way" xorm:"not null default 1 comment('支付方式(1:支付宝 2:微信 3:余额)') TINYINT(1)"` | |||||
State int `json:"state" xorm:"not null default 0 comment('状态(0:待付款 1:已付款 2:付款失败)') TINYINT(2)"` | |||||
Memo string `json:"memo" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||||
CreateAt time.Time `json:"create_at" xorm:"not null default CURRENT_TIMESTAMP comment('创建时间') DATETIME"` | |||||
UpdateAt time.Time `json:"update_at" xorm:"default CURRENT_TIMESTAMP comment('更新时间') DATETIME"` | |||||
TradeNo string `json:"trade_no" xorm:"not null default '' comment('支付平台(支付宝/微信)订单号') VARCHAR(100)"` | |||||
Type int `json:"type" xorm:"default 0 comment('0收入 1支出') INT(1)"` | |||||
OrdType string `json:"ord_type" xorm:"comment('订单类型') VARCHAR(255)"` | |||||
SubUid int `json:"sub_uid" xorm:"default 0 INT(11)"` | |||||
} |
@@ -0,0 +1,36 @@ | |||||
package model | |||||
import ( | |||||
"time" | |||||
) | |||||
type LianlianOrder struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
Oid string `json:"oid" xorm:"default '' VARCHAR(255)"` | |||||
Uid int `json:"uid" xorm:"default 0 INT(11)"` | |||||
CreateTime time.Time `json:"create_time" xorm:"DATETIME"` | |||||
PayTime time.Time `json:"pay_time" xorm:"DATETIME"` | |||||
SuccessTime time.Time `json:"success_time" xorm:"DATETIME"` | |||||
RefundTime time.Time `json:"refund_time" xorm:"DATETIME"` | |||||
Title string `json:"title" xorm:"VARCHAR(255)"` | |||||
Amount float64 `json:"amount" xorm:"default 0.0000 DOUBLE(20,4)"` | |||||
Profit float64 `json:"profit" xorm:"default 0.0000 DOUBLE(20,4)"` | |||||
Gid string `json:"gid" xorm:"VARCHAR(255)"` | |||||
ItemId string `json:"item_id" xorm:"VARCHAR(255)"` | |||||
Num int `json:"num" xorm:"default 0 INT(11)"` | |||||
Memo string `json:"memo" xorm:"VARCHAR(255)"` | |||||
LocationId string `json:"location_id" xorm:"VARCHAR(255)"` | |||||
CreateMsg string `json:"create_msg" xorm:"TEXT"` | |||||
State string `json:"state" xorm:"VARCHAR(255)"` | |||||
ValidBeginDate time.Time `json:"valid_begin_date" xorm:"DATETIME"` | |||||
ValidEndDate time.Time `json:"valid_end_date" xorm:"DATETIME"` | |||||
TradeNo string `json:"trade_no" xorm:"comment('支付平台的订单号') VARCHAR(50)"` | |||||
PayTradeNo string `json:"pay_trade_no" xorm:"comment('支付联盟支付的订单号') VARCHAR(50)"` | |||||
SysOid string `json:"sys_oid" xorm:"VARCHAR(255)"` | |||||
PayMethod int `json:"pay_method" xorm:"default 0 INT(11)"` | |||||
ItemTitle string `json:"item_title" xorm:"VARCHAR(255)"` | |||||
Img string `json:"img" xorm:"VARCHAR(255)"` | |||||
ItemPrice float64 `json:"item_price" xorm:"DOUBLE(20,4)"` | |||||
ProductCategoryId int `json:"product_category_id" xorm:"default 0 INT(11)"` | |||||
SubUid int `json:"sub_uid" xorm:"default 0 INT(11)"` | |||||
} |
@@ -0,0 +1,15 @@ | |||||
package model | |||||
type LianlianOrderQrcode struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
Oid string `json:"oid" xorm:"default '' VARCHAR(255)"` | |||||
Uid int `json:"uid" xorm:"default 0 INT(11)"` | |||||
SubOid string `json:"sub_oid" xorm:"VARCHAR(255)"` | |||||
Title string `json:"title" xorm:"VARCHAR(255)"` | |||||
COid string `json:"c_oid" xorm:"VARCHAR(255)"` | |||||
Code string `json:"code" xorm:"VARCHAR(255)"` | |||||
QrcodeImg string `json:"qrcode_img" xorm:"VARCHAR(255)"` | |||||
BookingUrl string `json:"booking_url" xorm:"VARCHAR(255)"` | |||||
Msg string `json:"msg" xorm:"TEXT"` | |||||
State string `json:"state" xorm:"VARCHAR(255)"` | |||||
} |
@@ -0,0 +1,22 @@ | |||||
package model | |||||
import ( | |||||
"time" | |||||
) | |||||
type LianlianRefundOrder struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
Oid string `json:"oid" xorm:"VARCHAR(255)"` | |||||
Code string `json:"code" xorm:"VARCHAR(255)"` | |||||
OrdIds string `json:"ord_ids" xorm:"VARCHAR(255)"` | |||||
CreateTime time.Time `json:"create_time" xorm:"DATETIME"` | |||||
RefundTime time.Time `json:"refund_time" xorm:"DATETIME"` | |||||
Amount float64 `json:"amount" xorm:"default 0.0000 DOUBLE(20,4)"` | |||||
RealAmount float64 `json:"real_amount" xorm:"default 0.0000 DOUBLE(20,4)"` | |||||
Num int `json:"num" xorm:"default 0 INT(11)"` | |||||
Memo string `json:"memo" xorm:"VARCHAR(255)"` | |||||
State string `json:"state" xorm:"VARCHAR(255)"` | |||||
RefundOid string `json:"refund_oid" xorm:"VARCHAR(255)"` | |||||
RefundSysOid string `json:"refund_sys_oid" xorm:"VARCHAR(255)"` | |||||
RefuseMemo string `json:"refuse_memo" xorm:"VARCHAR(255)"` | |||||
} |
@@ -0,0 +1,16 @@ | |||||
package model | |||||
import ( | |||||
"time" | |||||
) | |||||
type LianlianUser struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr comment('自增id') INT(11)"` | |||||
Uid int `json:"uid" xorm:"not null default 0 comment('主用户id') INT(11)"` | |||||
Amount string `json:"amount" xorm:"not null default '0' comment('余额') VARCHAR(255)"` | |||||
CreditAmount string `json:"credit_amount" xorm:"not null default '100' comment('授信额度') VARCHAR(255)"` | |||||
State int `json:"state" xorm:"not null default 1 comment('状态(1:正常 2:冻结)') TINYINT(2)"` | |||||
Memo string `json:"memo" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||||
CreateAt time.Time `json:"create_at" xorm:"not null default CURRENT_TIMESTAMP comment('创建时间') DATETIME"` | |||||
UpdateAt time.Time `json:"update_at" xorm:"default CURRENT_TIMESTAMP comment('更新时间') DATETIME"` | |||||
} |
@@ -0,0 +1,25 @@ | |||||
package model | |||||
import ( | |||||
"time" | |||||
) | |||||
type LianlianUserRechargeOrd struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
OrdId string `json:"ord_id" xorm:"not null default '' comment('订单id') VARCHAR(100)"` | |||||
Uid int `json:"uid" xorm:"not null default 0 comment('主用户id') INT(11)"` | |||||
Phone int64 `json:"phone" xorm:"not null default 0 comment('主账号-手机号码') BIGINT(13)"` | |||||
Nickname string `json:"nickname" xorm:"not null default '' comment('主账号-昵称') VARCHAR(255)"` | |||||
Amount string `json:"amount" xorm:"not null default '0' comment('充值金额') VARCHAR(255)"` | |||||
CostPrice string `json:"cost_price" xorm:"not null default '0' comment('付费价格') VARCHAR(255)"` | |||||
Balance string `json:"balance" xorm:"not null default '0' comment('当前余额(充值完当前余额)') VARCHAR(255)"` | |||||
PayWay int `json:"pay_way" xorm:"not null default 1 comment('支付方式(1:支付宝 2:微信 3:余额)') TINYINT(1)"` | |||||
State int `json:"state" xorm:"not null default 0 comment('状态(0:待付款 1:已付款 2:付款失败)') TINYINT(2)"` | |||||
Memo string `json:"memo" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||||
CreateAt time.Time `json:"create_at" xorm:"not null default CURRENT_TIMESTAMP comment('创建时间') DATETIME"` | |||||
UpdateAt time.Time `json:"update_at" xorm:"default CURRENT_TIMESTAMP comment('更新时间') DATETIME"` | |||||
TradeNo string `json:"trade_no" xorm:"not null default '' comment('支付平台(支付宝/微信)订单号') VARCHAR(100)"` | |||||
Type int `json:"type" xorm:"default 0 comment('0收入 1支出') INT(1)"` | |||||
OrdType string `json:"ord_type" xorm:"comment('订单类型') VARCHAR(255)"` | |||||
SubUid int `json:"sub_uid" xorm:"default 0 INT(11)"` | |||||
} |
@@ -0,0 +1,12 @@ | |||||
package model | |||||
type PhoneRechargeCate struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr comment('自增id') INT(11)"` | |||||
Cid int `json:"cid" xorm:"not null default 0 comment('') INT(11)"` | |||||
DayNum int `json:"day_num" xorm:"not null default 0 comment('') INT(11)"` | |||||
Day int `json:"day" xorm:"not null default 0 comment('') INT(11)"` | |||||
MonthNum int `json:"month_num" xorm:"not null default 0 comment('') INT(11)"` | |||||
Area string `json:"area" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||||
PhoneZone string `json:"phone_zone" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||||
CanArea string `json:"can_area" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||||
} |
@@ -0,0 +1,34 @@ | |||||
package model | |||||
import ( | |||||
"time" | |||||
) | |||||
type RechargeOrder struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
Uid int `json:"uid" xorm:"default 0 INT(11)"` | |||||
PayMethod int `json:"pay_method" xorm:"comment('支付方式') 0 INT(11)"` | |||||
Oid string `json:"oid" xorm:"comment('站内订单号') VARCHAR(255)"` | |||||
PlatformOid string `json:"platform_oid" xorm:"comment('平台订单号') VARCHAR(255)"` | |||||
Type string `json:"type" xorm:"comment('充值类型') VARCHAR(255)"` | |||||
Status string `json:"status" xorm:"comment('订单状态') VARCHAR(255)"` | |||||
CreateTime time.Time `json:"create_time" xorm:"DATETIME"` | |||||
PayTime time.Time `json:"pay_time" xorm:"DATETIME"` | |||||
RefundTime time.Time `json:"refund_time" xorm:"DATETIME"` | |||||
SuccessTime time.Time `json:"success_time" xorm:"DATETIME"` | |||||
Account string `json:"account" xorm:"VARCHAR(255)"` | |||||
Province string `json:"province" xorm:"VARCHAR(255)"` | |||||
Amount string `json:"amount" xorm:"default 0.00 DECIMAL(20,2)"` | |||||
GoodsId int `json:"goods_id" xorm:"default 0 INT(11)"` | |||||
Title string `json:"title" xorm:"VARCHAR(255)"` | |||||
Profit string `json:"profit" xorm:"default 0.00 DECIMAL(20,2)"` | |||||
ZyAmount string `json:"zy_amount" xorm:"default 0.00 DECIMAL(20,2)"` | |||||
OfficalAmount string `json:"offical_amount" xorm:"default 0.00 DECIMAL(20,2)"` | |||||
City string `json:"city" xorm:"VARCHAR(255)"` | |||||
Ytype string `json:"ytype" xorm:"VARCHAR(255)"` | |||||
IdCardNo string `json:"id_card_no" xorm:"VARCHAR(255)"` | |||||
TradeNo string `json:"trade_no" xorm:"VARCHAR(255)"` | |||||
PayTradeNo string `json:"pay_trade_no" xorm:"VARCHAR(255)"` | |||||
SubUid int `json:"sub_uid" xorm:"default 0 INT(11)"` | |||||
RechargeStatus string `json:"recharge_status" xorm:"VARCHAR(255)"` | |||||
} |
@@ -0,0 +1,7 @@ | |||||
package model | |||||
type SysCfg struct { | |||||
K string `json:"k" xorm:"not null pk comment('键') VARCHAR(127)"` | |||||
V string `json:"v" xorm:"comment('值') TEXT"` | |||||
Memo string `json:"memo" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||||
} |
@@ -0,0 +1,74 @@ | |||||
package svc | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/db/model" | |||||
"applet/app/utils" | |||||
"applet/app/utils/logx" | |||||
"errors" | |||||
"time" | |||||
"xorm.io/xorm" | |||||
) | |||||
func UpdateUserFinValidAndInterFlow(engine *xorm.Engine, money, Title, ordType string, types, orderAction, uid, id int, ordId, otherId int64) error { | |||||
session := engine.NewSession() | |||||
defer session.Close() | |||||
session.Begin() | |||||
userProfile, err := db.UserProfileFindByIdWithSession(session, uid) | |||||
if err != nil || userProfile == nil { | |||||
_ = session.Rollback() | |||||
if err == nil { | |||||
err = errors.New("获取用户余额信息失败") | |||||
} | |||||
return err | |||||
} | |||||
beforeAmount := userProfile.FinValid | |||||
if types == 0 { | |||||
userProfile.FinValid = utils.AnyToString(utils.AnyToFloat64(userProfile.FinValid) + utils.StrToFloat64(money)) | |||||
} else if types == 1 { | |||||
userProfile.FinValid = utils.AnyToString(utils.AnyToFloat64(userProfile.FinValid) - utils.StrToFloat64(money)) | |||||
} | |||||
afterAmount := userProfile.FinValid | |||||
userProfile.FinTotal = userProfile.FinTotal + utils.StrToFloat32(money) | |||||
affected, err := db.UserProfileUpdateWithSession(session, uid, userProfile, "fin_valid,fin_total") | |||||
if err != nil || affected == 0 { | |||||
_ = session.Rollback() | |||||
if err == nil { | |||||
err = errors.New("更新用户余额信息失败") | |||||
} | |||||
return err | |||||
} | |||||
err = flowInsertSess(session, uid, money, orderAction, ordId, otherId, id, Title, ordType, types, beforeAmount, afterAmount) | |||||
if err != nil { | |||||
_ = session.Rollback() | |||||
return err | |||||
} | |||||
return session.Commit() | |||||
} | |||||
func flowInsertSess(session *xorm.Session, uid int, paidPrice string, orderAction int, ordId int64, id int64, goodsId int, ItemTitle string, ordType string, types int, beforeAmount string, afterAmount string) error { | |||||
now := time.Now() | |||||
if err := db.FinUserFlowInsertOneWithSession( | |||||
session, | |||||
&model.FinUserFlow{ | |||||
Type: types, | |||||
Uid: uid, | |||||
Amount: paidPrice, | |||||
BeforeAmount: beforeAmount, | |||||
AfterAmount: afterAmount, | |||||
OrdType: ordType, | |||||
OrdId: utils.Int64ToStr(ordId), | |||||
OrdAction: orderAction, | |||||
OrdDetail: utils.IntToStr(goodsId), | |||||
State: 2, | |||||
OtherId: id, | |||||
OrdTitle: ItemTitle, | |||||
OrdTime: int(now.Unix()), | |||||
CreateAt: now, | |||||
UpdateAt: now, | |||||
}); err != nil { | |||||
_ = logx.Warn(err) | |||||
return err | |||||
} | |||||
return nil | |||||
} |
@@ -33,7 +33,11 @@ func initConsumes() { | |||||
jobs[consumeMd.CanalMallOrdForYouMiShangFunName] = CanalMallOrdForYouMiShang | jobs[consumeMd.CanalMallOrdForYouMiShangFunName] = CanalMallOrdForYouMiShang | ||||
jobs[consumeMd.YoumishangExchangeStoreFunName] = YoumishangExchangeStore | jobs[consumeMd.YoumishangExchangeStoreFunName] = YoumishangExchangeStore | ||||
jobs[consumeMd.ZhiosRechargeOrderFailFunName] = ZhiosRechargeOrderFail | |||||
jobs[consumeMd.CloudIssuanceAsyncMLoginFunName] = CloudIssuanceAsyncMLoginConsume | jobs[consumeMd.CloudIssuanceAsyncMLoginFunName] = CloudIssuanceAsyncMLoginConsume | ||||
jobs[consumeMd.ZhiosTikTokUpdateFunName] = ZhiosTikTokUpdate | |||||
} | } | ||||
func Run() { | func Run() { | ||||
@@ -138,6 +138,24 @@ var RabbitMqQueueKeyList = []*MqQueue{ | |||||
BindKey: "store", | BindKey: "store", | ||||
ConsumeFunName: "YoumishangExchangeStore", | ConsumeFunName: "YoumishangExchangeStore", | ||||
}, | }, | ||||
{ | |||||
ExchangeName: "zhios.recharge.order.exchange", | |||||
Name: "zhios_recharge_order_fail", | |||||
Type: DirectQueueType, | |||||
IsPersistent: false, | |||||
RoutKey: "order_fail", | |||||
BindKey: "", | |||||
ConsumeFunName: "ZhiosRechargeOrderFail", | |||||
}, | |||||
{ | |||||
ExchangeName: "zhios.tikTok.exchange", | |||||
Name: "zhios_tikTok_update", | |||||
Type: DirectQueueType, | |||||
IsPersistent: false, | |||||
RoutKey: "update", | |||||
BindKey: "", | |||||
ConsumeFunName: "ZhiosTikTokUpdate", | |||||
}, | |||||
} | } | ||||
const ( | const ( | ||||
@@ -154,5 +172,7 @@ const ( | |||||
ZhiosFastReturnOrderRefundFunName = "ZhiosFastReturnOrderRefund" | ZhiosFastReturnOrderRefundFunName = "ZhiosFastReturnOrderRefund" | ||||
CanalMallOrdForYouMiShangFunName = "CanalMallOrdForYouMiShang" | CanalMallOrdForYouMiShangFunName = "CanalMallOrdForYouMiShang" | ||||
YoumishangExchangeStoreFunName = "YoumishangExchangeStore" | YoumishangExchangeStoreFunName = "YoumishangExchangeStore" | ||||
ZhiosRechargeOrderFailFunName = "ZhiosRechargeOrderFail" | |||||
ZhiosTikTokUpdateFunName = "ZhiosTikTokUpdate" | |||||
CloudIssuanceAsyncMLoginFunName = "CloudIssuanceAsyncMLoginConsume" | CloudIssuanceAsyncMLoginFunName = "CloudIssuanceAsyncMLoginConsume" | ||||
) | ) |
@@ -0,0 +1,37 @@ | |||||
package md | |||||
type ZhiosRechargeOrderPay struct { | |||||
Uid string `json:"uid"` | |||||
Mid string `json:"mid"` | |||||
Oid string `json:"oid"` | |||||
} | |||||
type TikTokExChangeRoutKeyForUpdateParam struct { | |||||
Cid string `json:"cid"` | |||||
Status string `json:"status"` | |||||
Str string `json:"str"` | |||||
IsOk bool `json:"is_ok"` | |||||
Mid string `json:"mid"` | |||||
Data string `json:"data"` | |||||
} | |||||
type TikTokData struct { | |||||
Commission string `json:"commission"` | |||||
PublicCommission string `json:"public_commission"` | |||||
ServiceRatio string `json:"service_ratio"` | |||||
CostPrice string `json:"cost_price"` | |||||
GoodsID string `json:"goods_id"` | |||||
GoodsImg string `json:"goods_img"` | |||||
GoodsSales string `json:"goods_sales"` | |||||
GoodsTitle string `json:"goods_title"` | |||||
InStock string `json:"in_stock"` | |||||
Price string `json:"price"` | |||||
Sharable string `json:"sharable"` | |||||
ShopID string `json:"shop_id"` | |||||
ShopName string `json:"shop_name"` | |||||
DetailURL string `json:"detail_url"` | |||||
YhqPrice string `json:"yhq_price"` | |||||
Cid string `json:"cid"` | |||||
ActivityStartTime string `json:"activity_start_time"` | |||||
ActivityEndTime string `json:"activity_end_time"` | |||||
Imgs []string `json:"imgs"` | |||||
UpdateTime string `json:"update_time"` | |||||
} |
@@ -0,0 +1,171 @@ | |||||
package consume | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/db/model" | |||||
"applet/app/db/offical" | |||||
model2 "applet/app/db/offical/model" | |||||
"applet/app/e" | |||||
"applet/app/svc" | |||||
"applet/app/utils" | |||||
"applet/app/utils/logx" | |||||
"applet/consume/md" | |||||
"code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git/rabbit" | |||||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/recharge" | |||||
"encoding/json" | |||||
"errors" | |||||
"fmt" | |||||
"github.com/streadway/amqp" | |||||
"github.com/tidwall/gjson" | |||||
"strings" | |||||
"time" | |||||
"xorm.io/xorm" | |||||
) | |||||
func ZhiosRechargeOrderFail(queue md.MqQueue) { | |||||
fmt.Println(">>>>>>>>>>>>>>>>>>>>>>>>") | |||||
ch, err := rabbit.Cfg.Pool.GetChannel() | |||||
if err != nil { | |||||
logx.Error(err) | |||||
return | |||||
} | |||||
defer ch.Release() | |||||
//1、将自己绑定到交换机上 | |||||
ch.Bind(queue.Name, queue.ExchangeName, queue.RoutKey) | |||||
//2、取出数据进行消费 | |||||
ch.Qos(1) | |||||
delivery := ch.Consume(queue.Name, false) | |||||
var res amqp.Delivery | |||||
var ok bool | |||||
for { | |||||
res, ok = <-delivery | |||||
if ok == true { | |||||
//fmt.Println(string(res.Body)) | |||||
fmt.Println(">>>>>>>>>>>>>>>>CanalOrderConsume<<<<<<<<<<<<<<<<<<<<<<<<<") | |||||
err = handleZhiosRechargeOrderFail(res.Body) | |||||
//_ = res.Reject(false) | |||||
if err == nil { | |||||
_ = res.Ack(true) | |||||
} | |||||
} else { | |||||
panic(errors.New("error getting message")) | |||||
} | |||||
} | |||||
fmt.Println("get msg done") | |||||
} | |||||
func handleZhiosRechargeOrderFail(msg []byte) error { | |||||
//1、解析canal采集至mq中queue的数据结构体 | |||||
var canalMsg *md.ZhiosRechargeOrderPay | |||||
fmt.Println(string(msg)) | |||||
var tmpString string | |||||
err := json.Unmarshal(msg, &tmpString) | |||||
if err != nil { | |||||
fmt.Println(err.Error()) | |||||
return err | |||||
} | |||||
fmt.Println(tmpString) | |||||
err = json.Unmarshal([]byte(tmpString), &canalMsg) | |||||
if err != nil { | |||||
return err | |||||
} | |||||
mid := canalMsg.Mid | |||||
eg := db.DBs[mid] | |||||
uid := utils.StrToInt(canalMsg.Uid) | |||||
oid := canalMsg.Oid | |||||
var orderData model.RechargeOrder | |||||
b, err2 := eg.Where("oid=? and uid=?", oid, uid).Get(&orderData) | |||||
if err2 != nil { | |||||
return errors.New("err") | |||||
} | |||||
if b == false { | |||||
return nil | |||||
} | |||||
if orderData.Status != "已付款" { | |||||
return nil | |||||
} | |||||
//查询官方接口看看有没有订单 | |||||
param, aggregationRechargeApiKey := CommAggregation(eg, mid) | |||||
param["out_trade_nums"] = oid | |||||
order, err := recharge.GetOrder(aggregationRechargeApiKey, param) | |||||
if err != nil { | |||||
return errors.New("err") | |||||
} | |||||
if gjson.Get(order, "errno").Int() == 0 && strings.Contains(order, oid) == false { | |||||
// 更改为已支付 | |||||
orderData.Status = "已退款" | |||||
orderData.RefundTime = time.Now() | |||||
// 保存ord | |||||
row, err := eg.ID(orderData.Id).Cols("status,pay_method,refund_time").Update(&orderData) | |||||
if row > 0 && err == nil { | |||||
svc.UpdateUserFinValidAndInterFlow(eg, | |||||
orderData.Amount, "聚合充值"+orderData.Title+"退款", "aggregation_recharge", 0, 24, orderData.Uid, orderData.Id, int64(orderData.Id), utils.StrToInt64(orderData.Oid)) | |||||
} else { | |||||
return errors.New("err") | |||||
} | |||||
rechargeNotPayMoney := db.SysCfgGetWithDb(eg, mid, "recharge_not_pay_money") | |||||
if rechargeNotPayMoney != "1" { | |||||
ZyRechargeMoneyDeal(mid, orderData.Oid, orderData.Uid, utils.StrToFloat64(orderData.ZyAmount), 0, orderData.Title+"退款", "refund") | |||||
} | |||||
} | |||||
return nil | |||||
} | |||||
func ZyRechargeMoneyDeal(mid string, orderId string, uid int, officalAmount float64, types int, title, orderType string) error { | |||||
info := offical.GetAggregationUserInfo(mid) | |||||
if info == nil { | |||||
fmt.Println("获取价格失败") | |||||
return e.NewErr(400, "获取价格失败") | |||||
} | |||||
if types == 1 { | |||||
if utils.StrToFloat64(info.Amount)+utils.StrToFloat64(info.CreditAmount)-officalAmount < 0 { | |||||
fmt.Println("预存款不足") | |||||
return e.NewErr(400, "预存款不足") | |||||
} | |||||
info.Amount = utils.Float64ToStr(utils.StrToFloat64(info.Amount) - officalAmount) | |||||
} else { | |||||
info.Amount = utils.Float64ToStr(utils.StrToFloat64(info.Amount) + officalAmount) | |||||
} | |||||
update, err := db.Db.Where("id=?", info.Id).Cols("amount").Update(info) | |||||
if update == 0 || err != nil { | |||||
return e.NewErr(400, "预存款不足") | |||||
} | |||||
var flow = model2.AggregationUserRechargeOrd{ | |||||
OrdId: orderId, | |||||
Uid: utils.StrToInt(mid), | |||||
Amount: utils.Float64ToStr(officalAmount), | |||||
CostPrice: utils.Float64ToStr(officalAmount), | |||||
Balance: info.Amount, | |||||
PayWay: 0, | |||||
State: 1, | |||||
Memo: title, | |||||
CreateAt: time.Now(), | |||||
Type: types, | |||||
OrdType: orderType, | |||||
SubUid: uid, | |||||
} | |||||
//TODO 要不要判断失败呢 | |||||
db.Db.Insert(&flow) | |||||
return nil | |||||
} | |||||
func CommAggregation(eg *xorm.Engine, mid string) (map[string]string, string) { | |||||
aggregationRechargeApiKey := db.SysCfgGetWithDb(eg, mid, "aggregation_recharge_api_key") | |||||
aggregationRechargeUserId := db.SysCfgGetWithDb(eg, mid, "aggregation_recharge_user_id") | |||||
if aggregationRechargeApiKey == "" { | |||||
aggregationRechargeApiKeyMap := offical.SysCfgByKey("aggregation_recharge_api_key") | |||||
if aggregationRechargeApiKeyMap != nil { | |||||
aggregationRechargeApiKey = aggregationRechargeApiKeyMap.V | |||||
} | |||||
} | |||||
if aggregationRechargeUserId == "" { | |||||
aggregationRechargeUserIdMap := offical.SysCfgByKey("aggregation_recharge_user_id") | |||||
if aggregationRechargeUserIdMap != nil { | |||||
aggregationRechargeUserId = aggregationRechargeUserIdMap.V | |||||
} | |||||
} | |||||
param := map[string]string{ | |||||
"userid": aggregationRechargeUserId, | |||||
} | |||||
return param, aggregationRechargeApiKey | |||||
} |
@@ -0,0 +1,127 @@ | |||||
package consume | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/db/model" | |||||
"applet/app/utils" | |||||
"applet/app/utils/logx" | |||||
"applet/consume/md" | |||||
"code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git/rabbit" | |||||
"encoding/json" | |||||
"errors" | |||||
"fmt" | |||||
"github.com/streadway/amqp" | |||||
"time" | |||||
) | |||||
func ZhiosTikTokUpdate(queue md.MqQueue) { | |||||
fmt.Println(">>>>>>>>>>>>>>>>>>>>>>>>") | |||||
ch, err := rabbit.Cfg.Pool.GetChannel() | |||||
if err != nil { | |||||
logx.Error(err) | |||||
return | |||||
} | |||||
defer ch.Release() | |||||
//1、将自己绑定到交换机上 | |||||
ch.Bind(queue.Name, queue.ExchangeName, queue.RoutKey) | |||||
//2、取出数据进行消费 | |||||
ch.Qos(1) | |||||
delivery := ch.Consume(queue.Name, false) | |||||
var res amqp.Delivery | |||||
var ok bool | |||||
for { | |||||
res, ok = <-delivery | |||||
if ok == true { | |||||
//fmt.Println(string(res.Body)) | |||||
fmt.Println(">>>>>>>>>>>>>>>>CanalOrderConsume<<<<<<<<<<<<<<<<<<<<<<<<<") | |||||
err = handleZhiosTikTokGoodsUpdate(res.Body) | |||||
//_ = res.Reject(false) | |||||
if err == nil { | |||||
_ = res.Ack(true) | |||||
} | |||||
} else { | |||||
panic(errors.New("error getting message")) | |||||
} | |||||
} | |||||
fmt.Println("get msg done") | |||||
} | |||||
func handleZhiosTikTokGoodsUpdate(msg []byte) error { | |||||
//1、解析canal采集至mq中queue的数据结构体 | |||||
var canalMsg *md.TikTokExChangeRoutKeyForUpdateParam | |||||
fmt.Println(string(msg)) | |||||
var tmpString string | |||||
err := json.Unmarshal(msg, &tmpString) | |||||
if err != nil { | |||||
fmt.Println(err.Error()) | |||||
return err | |||||
} | |||||
fmt.Println(tmpString) | |||||
err = json.Unmarshal([]byte(tmpString), &canalMsg) | |||||
if err != nil { | |||||
return err | |||||
} | |||||
mid := canalMsg.Mid | |||||
eg := db.DBs[mid] | |||||
var v md.TikTokData | |||||
json.Unmarshal([]byte(canalMsg.Data), &v) | |||||
var tmp model.TikTokTeamGoods | |||||
get, _ := eg.Where("gid=? and activity_id=?", v.GoodsID, canalMsg.Cid).Get(&tmp) | |||||
if get { | |||||
//if tmp.IsDown == 1 { | |||||
// continue | |||||
//} | |||||
tmp.IsDown = 0 | |||||
tmp.ServiceRatio = v.ServiceRatio | |||||
tmp.Price = v.Price | |||||
tmp.TalentCommission = v.PublicCommission | |||||
tmp.PublicCommission = v.PublicCommission | |||||
tmp.Title = v.GoodsTitle | |||||
tmp.CostPrice = v.CostPrice | |||||
tmp.Commission = v.Commission | |||||
tmp.GoodsImg = v.GoodsImg | |||||
tmp.DetailUrl = v.DetailURL | |||||
tmp.EndType = "已采集" | |||||
tmp.LmType = "" | |||||
tmp.Sales = utils.StrToInt(v.GoodsSales) | |||||
tmp.ActivityId = utils.StrToInt(canalMsg.Cid) | |||||
tmp.ActivityStartTime = utils.TimeParseStd(v.ActivityStartTime + " 00:00:00") | |||||
tmp.ActivityEndTime = utils.TimeParseStd(v.ActivityEndTime + " 23:59:59") | |||||
tmp.OldActivityEndTime = utils.TimeParseStd(v.ActivityEndTime + " 23:59:59") | |||||
tmp.UpdateTime = time.Now() | |||||
tmp.Status = utils.StrToInt(canalMsg.Status) | |||||
if tmp.Status == 3 || tmp.Status == 6 { | |||||
tmp.ActivityEndTime = time.Now() | |||||
} | |||||
eg.Where("id=?", tmp.Id).AllCols().Update(&tmp) | |||||
} else { | |||||
if utils.InArr(canalMsg.Status, []string{"3", "6"}) { | |||||
return nil | |||||
} | |||||
tmp = model.TikTokTeamGoods{ | |||||
Cid: utils.StrToInt(v.Cid), | |||||
ServiceRatio: v.ServiceRatio, | |||||
Title: v.GoodsTitle, | |||||
Price: v.Price, | |||||
CostPrice: v.CostPrice, | |||||
Commission: v.Commission, | |||||
TalentCommission: v.PublicCommission, | |||||
PublicCommission: v.PublicCommission, | |||||
Gid: v.GoodsID, | |||||
Sales: utils.StrToInt(v.GoodsSales), | |||||
GoodsImg: v.GoodsImg, | |||||
DetailUrl: v.DetailURL, | |||||
ShopName: v.ShopName, | |||||
ActivityStartTime: utils.TimeParseStd(v.ActivityStartTime + " 00:00:00"), | |||||
ActivityEndTime: utils.TimeParseStd(v.ActivityEndTime + " 23:59:59"), | |||||
OldActivityEndTime: utils.TimeParseStd(v.ActivityEndTime + " 23:59:59"), | |||||
ActivityId: utils.StrToInt(canalMsg.Cid), | |||||
UpdateTime: time.Now(), | |||||
EndType: "已采集", | |||||
IsDown: 0, | |||||
} | |||||
eg.InsertOne(&tmp) | |||||
} | |||||
return nil | |||||
} |
@@ -7,6 +7,7 @@ require ( | |||||
code.fnuoos.com/go_rely_warehouse/zyos_go_es.git v1.0.0 | code.fnuoos.com/go_rely_warehouse/zyos_go_es.git v1.0.0 | ||||
code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.4 | code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.4 | ||||
code.fnuoos.com/go_rely_warehouse/zyos_go_pay.git v1.6.1-0.20230412095020-14ea57f9ee82 | code.fnuoos.com/go_rely_warehouse/zyos_go_pay.git v1.6.1-0.20230412095020-14ea57f9ee82 | ||||
code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git v1.1.21-0.20230602010249-27d29647d800 | |||||
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 | github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 | ||||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 | github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 | ||||
github.com/boombuler/barcode v1.0.1 | github.com/boombuler/barcode v1.0.1 | ||||
@@ -30,7 +31,7 @@ require ( | |||||
github.com/streadway/amqp v1.0.0 | github.com/streadway/amqp v1.0.0 | ||||
github.com/swaggo/swag v1.7.0 | github.com/swaggo/swag v1.7.0 | ||||
github.com/syyongx/php2go v0.9.7 | github.com/syyongx/php2go v0.9.7 | ||||
github.com/tidwall/gjson v1.7.4 | |||||
github.com/tidwall/gjson v1.14.1 | |||||
go.uber.org/zap v1.16.0 | go.uber.org/zap v1.16.0 | ||||
google.golang.org/grpc v1.32.0 | google.golang.org/grpc v1.32.0 | ||||
google.golang.org/protobuf v1.28.0 | google.golang.org/protobuf v1.28.0 | ||||
@@ -43,6 +44,7 @@ require ( | |||||
github.com/KyleBanks/depth v1.2.1 // indirect | github.com/KyleBanks/depth v1.2.1 // indirect | ||||
github.com/PuerkitoBio/purell v1.1.1 // indirect | github.com/PuerkitoBio/purell v1.1.1 // indirect | ||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect | github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect | ||||
github.com/bitly/go-simplejson v0.5.0 // indirect | |||||
github.com/gin-contrib/sse v0.1.0 // indirect | github.com/gin-contrib/sse v0.1.0 // indirect | ||||
github.com/go-openapi/jsonpointer v0.19.5 // indirect | github.com/go-openapi/jsonpointer v0.19.5 // indirect | ||||
github.com/go-openapi/jsonreference v0.19.5 // indirect | github.com/go-openapi/jsonreference v0.19.5 // indirect | ||||
@@ -61,6 +63,7 @@ require ( | |||||
github.com/mattn/go-isatty v0.0.14 // indirect | github.com/mattn/go-isatty v0.0.14 // indirect | ||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect | ||||
github.com/modern-go/reflect2 v1.0.2 // indirect | github.com/modern-go/reflect2 v1.0.2 // indirect | ||||
github.com/nilorg/sdk v0.0.0-20221104025912-4b6ccb7004d8 // indirect | |||||
github.com/olivere/elastic/v7 v7.0.32 // indirect | github.com/olivere/elastic/v7 v7.0.32 // indirect | ||||
github.com/onsi/ginkgo v1.15.0 // indirect | github.com/onsi/ginkgo v1.15.0 // indirect | ||||
github.com/onsi/gomega v1.10.5 // indirect | github.com/onsi/gomega v1.10.5 // indirect | ||||
@@ -68,8 +71,8 @@ require ( | |||||
github.com/pkg/errors v0.9.1 // indirect | github.com/pkg/errors v0.9.1 // indirect | ||||
github.com/rakyll/statik v0.1.7 // indirect | github.com/rakyll/statik v0.1.7 // indirect | ||||
github.com/syndtr/goleveldb v1.0.0 // indirect | github.com/syndtr/goleveldb v1.0.0 // indirect | ||||
github.com/tidwall/match v1.0.3 // indirect | |||||
github.com/tidwall/pretty v1.1.0 // indirect | |||||
github.com/tidwall/match v1.1.1 // indirect | |||||
github.com/tidwall/pretty v1.2.0 // indirect | |||||
github.com/ugorji/go/codec v1.2.7 // indirect | github.com/ugorji/go/codec v1.2.7 // indirect | ||||
go.uber.org/atomic v1.7.0 // indirect | go.uber.org/atomic v1.7.0 // indirect | ||||
go.uber.org/multierr v1.6.0 // indirect | go.uber.org/multierr v1.6.0 // indirect | ||||