member
This commit is contained in:
@@ -80,7 +80,7 @@ func PublishJob(ctx *jxcontext.Context, job *model.Job) (err error) {
|
|||||||
}
|
}
|
||||||
jobs, err := dao.GetJobsNoPage(db, []string{job.UserID}, nil, nil, utils.Str2Time(fromTime), utils.Str2Time(toTime), false)
|
jobs, err := dao.GetJobsNoPage(db, []string{job.UserID}, nil, nil, utils.Str2Time(fromTime), utils.Str2Time(toTime), false)
|
||||||
if len(jobs) > 0 {
|
if len(jobs) > 0 {
|
||||||
members, err := dao.GetUserMember(db, job.UserID, 0, 0, true)
|
members, err := dao.GetUserMember(db, job.UserID, model.MemberTypeNormal)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,210 +0,0 @@
|
|||||||
package cms
|
|
||||||
|
|
||||||
// var (
|
|
||||||
// LoginTypeFieldMap = map[string]string{
|
|
||||||
// mobile.LoginType: "tel",
|
|
||||||
// weixin.LoginType: "openid",
|
|
||||||
// weixin.LoginTypeMiniProgram: "openid_mini",
|
|
||||||
// }
|
|
||||||
// )
|
|
||||||
|
|
||||||
// func GetStoreUsers(ctx *jxcontext.Context, storeID int) (storeUserInfos []*dao.StoreUserInfo, err error) {
|
|
||||||
// sql := `
|
|
||||||
// SELECT t1.id, t1.jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid, t3.tel parent_mobile,
|
|
||||||
// CONCAT("[", GROUP_CONCAT(CONCAT('{"id":', t2.id, ',"parentID":', t2.parentid, ',"tel":"', t2.tel, '","nickname":"', IF(t2.nickname IS NULL, "", t2.nickname), '"}')), "]") members_str
|
|
||||||
// FROM weixins t1
|
|
||||||
// LEFT JOIN weixins t2 ON t2.parentid = t1.id
|
|
||||||
// LEFT JOIN weixins t3 ON t1.parentid = t3.id
|
|
||||||
// WHERE t1.parentid = -1 AND t1.jxstoreid = ?
|
|
||||||
// GROUP BY 1,2,3,4,5,6,7;
|
|
||||||
// `
|
|
||||||
// // globals.SugarLogger.Debug(sql)
|
|
||||||
// if err = dao.GetRows(nil, &storeUserInfos, sql, storeID); err == nil {
|
|
||||||
// for _, storeUserInfo := range storeUserInfos {
|
|
||||||
// if storeUserInfo.MembersStr != "" {
|
|
||||||
// err = utils.UnmarshalUseNumber([]byte(storeUserInfo.MembersStr), &storeUserInfo.Members)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return storeUserInfos, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func GetUserInfo(ctx *jxcontext.Context, mobile string) (storeUserInfo *dao.StoreUserInfo, err error) {
|
|
||||||
// storeUserInfo, err = dao.GetUserStoreInfo(dao.GetDB(), "tel", mobile)
|
|
||||||
// globals.SugarLogger.Debugf("GetUserInfo:%s, token:%s, mobile:%s, storeUserInfo:%s, err:%v", ctx.GetTrackInfo(), ctx.GetToken(), mobile, utils.Format4Output(storeUserInfo, true), err)
|
|
||||||
// return storeUserInfo, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func GetSelfInfo(ctx *jxcontext.Context) (storeUserInfo *dao.StoreUserInfo, err error) {
|
|
||||||
// loginInfo := ctx.GetLoginInfo()
|
|
||||||
// if loginInfo == nil {
|
|
||||||
// return nil, auth.ErrAPINeedRealLogin
|
|
||||||
// }
|
|
||||||
// fieldName := LoginTypeFieldMap[loginInfo.GetAuthType()]
|
|
||||||
// if fieldName == "" {
|
|
||||||
// return nil, auth.ErrIllegalLoginType
|
|
||||||
// }
|
|
||||||
// storeUserInfo, err = dao.GetUserStoreInfo(dao.GetDB(), fieldName, loginInfo.GetAuthID())
|
|
||||||
// globals.SugarLogger.Debugf("GetSelfInfo:%s, token:%s, storeUserInfo:%s, err:%v", ctx.GetTrackInfo(), ctx.GetToken(), utils.Format4Output(storeUserInfo, true), err)
|
|
||||||
// return storeUserInfo, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func GetMyStoreList(ctx *jxcontext.Context) (storeList []*dao.StoreWithCityName, err error) {
|
|
||||||
// mobileNum, _ := ctx.GetMobileAndUserID()
|
|
||||||
// if mobileNum == "" {
|
|
||||||
// return nil, fmt.Errorf("不能得到用户手机号")
|
|
||||||
// }
|
|
||||||
// storeList, err = dao.GetStoreListByMobile(dao.GetDB(), mobileNum)
|
|
||||||
// return storeList, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func UnbindMobile(ctx *jxcontext.Context, mobile string) (num int64, err error) {
|
|
||||||
// db := dao.GetDB()
|
|
||||||
// num, err = dao.UpdateEntityByKV(db, &legacymodel.WeiXins{}, map[string]interface{}{
|
|
||||||
// "JxStoreID": 0,
|
|
||||||
// "ParentID": -1,
|
|
||||||
// }, map[string]interface{}{
|
|
||||||
// "Tel": mobile,
|
|
||||||
// })
|
|
||||||
// if err == nil {
|
|
||||||
// jxutils.HandleUserWXRemark(db, mobile, false)
|
|
||||||
// TransferLegacyWeixins(mobile)
|
|
||||||
// }
|
|
||||||
// return num, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func BindMobile2Store(ctx *jxcontext.Context, mobile string, storeID int) (num int64, err error) {
|
|
||||||
// db := dao.GetDB()
|
|
||||||
// user, err2 := verifyMobileIsBlank(db, mobile)
|
|
||||||
// if err = err2; err == nil || err == orm.ErrNoRows {
|
|
||||||
// user.JxStoreID = storeID
|
|
||||||
// if err == nil {
|
|
||||||
// dao.Begin(db)
|
|
||||||
// defer func() {
|
|
||||||
// if r := recover(); r != nil {
|
|
||||||
// dao.Rollback(db)
|
|
||||||
// panic(r)
|
|
||||||
// }
|
|
||||||
// }()
|
|
||||||
// if num, err = dao.UpdateEntity(db, user, "JxStoreID"); err == nil {
|
|
||||||
// err = dao.SetWeiXinsEmpty2Null(db, user)
|
|
||||||
// }
|
|
||||||
// if err != nil {
|
|
||||||
// dao.Rollback(db)
|
|
||||||
// } else {
|
|
||||||
// dao.Commit(db)
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// // globals.SugarLogger.Debug(utils.Format4Output(user, false))
|
|
||||||
// dao.WrapAddIDCULEntity(user, ctx.GetUserName())
|
|
||||||
// user.ParentID = -1
|
|
||||||
// if err = dao.CreateWeiXins(db, user); err == nil {
|
|
||||||
// num = 1
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if err == nil {
|
|
||||||
// jxutils.HandleUserWXRemark(db, mobile, false)
|
|
||||||
// TransferLegacyWeixins(mobile)
|
|
||||||
// }
|
|
||||||
// return num, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func AddMobile2Mobile(ctx *jxcontext.Context, parentMobile, mobile string) (num int64, err error) {
|
|
||||||
// db := dao.GetDB()
|
|
||||||
// parentUser := &legacymodel.WeiXins{}
|
|
||||||
// parentUser.Tel = parentMobile
|
|
||||||
// if err = dao.GetEntity(db, parentUser, "Tel"); err == nil {
|
|
||||||
// if parentUser.ParentID == -1 {
|
|
||||||
// globals.SugarLogger.Debug(parentUser)
|
|
||||||
// if err = verifyMobileHasNoMembers(db, mobile); err == nil {
|
|
||||||
// user, err2 := verifyMobileIsBlank(db, mobile)
|
|
||||||
// if err = err2; err == nil || err == orm.ErrNoRows {
|
|
||||||
// user.ParentID = parentUser.ID
|
|
||||||
// if err == nil {
|
|
||||||
// // todo transaction
|
|
||||||
// if num, err = dao.UpdateEntity(db, user, "ParentID"); err == nil {
|
|
||||||
// err = dao.SetWeiXinsEmpty2Null(db, user)
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// dao.WrapAddIDCULEntity(user, ctx.GetUserName())
|
|
||||||
// if err = dao.CreateWeiXins(db, user); err == nil {
|
|
||||||
// num = 1
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// err = fmt.Errorf("%s本身是成员", parentMobile)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if err == nil {
|
|
||||||
// jxutils.HandleUserWXRemark(db, mobile, false)
|
|
||||||
// TransferLegacyWeixins(mobile)
|
|
||||||
// }
|
|
||||||
// return num, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func ChangeMobile(ctx *jxcontext.Context, curMobile, expectedMobile string) (num int64, err error) {
|
|
||||||
// num, err = dao.UpdateEntityByKV(nil, &legacymodel.WeiXins{}, map[string]interface{}{
|
|
||||||
// "Tel": expectedMobile,
|
|
||||||
// }, map[string]interface{}{
|
|
||||||
// "Tel": curMobile,
|
|
||||||
// })
|
|
||||||
// if err == nil {
|
|
||||||
// TransferLegacyWeixins(curMobile)
|
|
||||||
// TransferLegacyWeixins(expectedMobile)
|
|
||||||
// }
|
|
||||||
// return num, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func verifyMobileIsBlank(db *dao.DaoDB, mobile string) (user *legacymodel.WeiXins, err error) {
|
|
||||||
// if !jxutils.IsStringLikeMobile(mobile) {
|
|
||||||
// return nil, fmt.Errorf("%s看起来不像是一个手机号", mobile)
|
|
||||||
// }
|
|
||||||
// user = &legacymodel.WeiXins{
|
|
||||||
// Tel: mobile,
|
|
||||||
// }
|
|
||||||
// if err = dao.GetEntity(db, user, "Tel"); err == nil {
|
|
||||||
// if user.ParentID != -1 && user.ParentID != 0 {
|
|
||||||
// userParent := &legacymodel.WeiXins{
|
|
||||||
// ID: user.ParentID,
|
|
||||||
// }
|
|
||||||
// if err = dao.GetEntity(db, userParent); err != nil && err != orm.ErrNoRows {
|
|
||||||
// return nil, err
|
|
||||||
// }
|
|
||||||
// if err != orm.ErrNoRows {
|
|
||||||
// err = fmt.Errorf("%s已经是组长:%s,门店:%d的小组成员", mobile, userParent.Tel, userParent.JxStoreID)
|
|
||||||
// } else {
|
|
||||||
// err = nil
|
|
||||||
// }
|
|
||||||
// } else if user.JxStoreID != 0 {
|
|
||||||
// store := &model.Store{}
|
|
||||||
// store.ID = user.JxStoreID
|
|
||||||
// if err = dao.GetEntity(db, store); err == nil {
|
|
||||||
// err = fmt.Errorf("%s本身已经是门店:%d的组长", mobile, user.JxStoreID)
|
|
||||||
// } else if dao.IsNoRowsError(err) {
|
|
||||||
// err = nil
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return user, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func verifyMobileHasNoMembers(db *dao.DaoDB, mobile string) (err error) {
|
|
||||||
// countInfo := &struct{ Ct int }{}
|
|
||||||
// if err = dao.GetRow(db, countInfo, `
|
|
||||||
// SELECT COUNT(*) ct
|
|
||||||
// FROM weixins t1
|
|
||||||
// JOIN weixins t2 ON t1.parentid = t2.id AND t2.tel = ?
|
|
||||||
// `, mobile); err == nil {
|
|
||||||
// if countInfo.Ct > 0 {
|
|
||||||
// user := &legacymodel.WeiXins{
|
|
||||||
// Tel: mobile,
|
|
||||||
// }
|
|
||||||
// dao.GetEntity(db, user, "Tel")
|
|
||||||
// err = fmt.Errorf("%s本身已经是门店:%d组长", mobile, user.JxStoreID)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
@@ -441,7 +441,7 @@ func GetSelfInfo(ctx *jxcontext.Context) (getSelfInfoResult *dao.GetSelfInfoResu
|
|||||||
tokenInfo, err := auth2.GetTokenInfo(ctx.GetToken())
|
tokenInfo, err := auth2.GetTokenInfo(ctx.GetToken())
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if getSelfInfoResult, err = dao.GetUserByIDWithMembers(dao.GetDB(), "user_id", tokenInfo.GetID()); err == nil {
|
if getSelfInfoResult, err = dao.GetUserByIDWithMembers(dao.GetDB(), "user_id", tokenInfo.GetID()); err == nil {
|
||||||
if userMembers, err3 := dao.GetUserMember(dao.GetDB(), getSelfInfoResult.User.UserID, 0, 0, true); err3 == nil {
|
if userMembers, err3 := dao.GetUserMember(dao.GetDB(), getSelfInfoResult.User.UserID, 0); err3 == nil {
|
||||||
getSelfInfoResult.UserMembers = userMembers
|
getSelfInfoResult.UserMembers = userMembers
|
||||||
} else {
|
} else {
|
||||||
err = err3
|
err = err3
|
||||||
@@ -576,7 +576,7 @@ func RefreshUserMemberStatus(ctx *jxcontext.Context) (err error) {
|
|||||||
var (
|
var (
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
)
|
)
|
||||||
userMembers, err := dao.GetUserMember(db, "", 0, 0, true)
|
userMembers, err := dao.GetUserMember(db, "", 0)
|
||||||
for _, userMember := range userMembers {
|
for _, userMember := range userMembers {
|
||||||
if time.Now().Sub(userMember.EndAt) > 0 {
|
if time.Now().Sub(userMember.EndAt) > 0 {
|
||||||
userMember.DeletedAt = time.Now()
|
userMember.DeletedAt = time.Now()
|
||||||
@@ -585,3 +585,49 @@ func RefreshUserMemberStatus(ctx *jxcontext.Context) (err error) {
|
|||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func InvestMember(ctx *jxcontext.Context, memberID int) (err error) {
|
||||||
|
var (
|
||||||
|
db = dao.GetDB()
|
||||||
|
memberCards []*model.MemberCard
|
||||||
|
memberCard *model.MemberCard
|
||||||
|
)
|
||||||
|
userMembers, err := dao.GetUserMember(db, ctx.GetUserID(), model.MemberTypeNormal)
|
||||||
|
configList, err := dao.QueryConfigs(db, model.ConfigTypeName[model.ConfigTypeMemberCard], model.ConfigTypeMemberCard, "")
|
||||||
|
if len(configList) <= 0 {
|
||||||
|
return fmt.Errorf("未找到会员卡配置!")
|
||||||
|
}
|
||||||
|
config := configList[0]
|
||||||
|
err = jxutils.Strings2Objs(config.Value, &memberCards)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for _, v := range memberCards {
|
||||||
|
if v.ID == memberID {
|
||||||
|
memberCard = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dao.Begin(db)
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
//证明已经开了会员了,相当于续费
|
||||||
|
if len(userMembers) > 0 {
|
||||||
|
userMember := userMembers[0]
|
||||||
|
if memberID == model.MemberCardTypeMonth {
|
||||||
|
userMember.EndAt = userMember.EndAt.AddDate(0, 1, 0)
|
||||||
|
} else {
|
||||||
|
userMember.EndAt = userMember.EndAt.AddDate(1, 0, 0)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
userMember2 := &model.UserMember{}
|
||||||
|
dao.WrapAddIDCULDEntity(userMember2, ctx.GetUserName())
|
||||||
|
}
|
||||||
|
//账户余额支出
|
||||||
|
//支出明细、
|
||||||
|
dao.Commit(db)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
@@ -222,11 +222,10 @@ func GetUserOrderSMS(db *DaoDB, mobile, name string) (userOrderSms *model.UserOr
|
|||||||
return userOrderSms, err
|
return userOrderSms, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUserMember(db *DaoDB, userID string, orderID int64, memberType int, isPay bool) (userMembers []*model.UserMember, err error) {
|
func GetUserMember(db *DaoDB, userID string, memberType int) (userMembers []*model.UserMember, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT a.*
|
SELECT a.*
|
||||||
FROM user_member a
|
FROM user_member a
|
||||||
JOIN order b ON b.id = a.order_id
|
|
||||||
WHERE a.deleted_at = ?
|
WHERE a.deleted_at = ?
|
||||||
`
|
`
|
||||||
sqlParams := []interface{}{utils.DefaultTimeValue}
|
sqlParams := []interface{}{utils.DefaultTimeValue}
|
||||||
@@ -234,18 +233,10 @@ func GetUserMember(db *DaoDB, userID string, orderID int64, memberType int, isPa
|
|||||||
sql += " AND a.user_id = ?"
|
sql += " AND a.user_id = ?"
|
||||||
sqlParams = append(sqlParams, userID)
|
sqlParams = append(sqlParams, userID)
|
||||||
}
|
}
|
||||||
if orderID != 0 {
|
|
||||||
sql += " AND a.order_id = ?"
|
|
||||||
sqlParams = append(sqlParams, orderID)
|
|
||||||
}
|
|
||||||
if memberType != 0 {
|
if memberType != 0 {
|
||||||
sql += " AND a.member_type = ?"
|
sql += " AND a.member_type = ?"
|
||||||
sqlParams = append(sqlParams, memberType)
|
sqlParams = append(sqlParams, memberType)
|
||||||
}
|
}
|
||||||
if isPay {
|
|
||||||
sql += " AND b.status = ?"
|
|
||||||
sqlParams = append(sqlParams, isPay)
|
|
||||||
}
|
|
||||||
err = GetRows(db, &userMembers, sql, sqlParams)
|
err = GetRows(db, &userMembers, sql, sqlParams)
|
||||||
return userMembers, err
|
return userMembers, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
package model
|
package model
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ConfigTypeSys = "Sys"
|
ConfigTypeSys = "Sys"
|
||||||
ConfigTypePricePack = "PricePack"
|
ConfigTypePricePack = "PricePack"
|
||||||
ConfigTypeFreightPack = "FreightPack"
|
ConfigTypeFreightPack = "FreightPack"
|
||||||
ConfigTypeBank = "Bank"
|
ConfigTypeBank = "Bank"
|
||||||
ConfigTypeRole = "Role"
|
ConfigTypeRole = "Role"
|
||||||
ConfigTypeJxStore = "JxStore"
|
ConfigTypeJxStore = "JxStore"
|
||||||
ConfigTypeCookie = "Cookie"
|
ConfigTypeCookie = "Cookie"
|
||||||
ConfigTypeDiscountCard = "DiscountCard"
|
ConfigTypeMemberCard = "MemberCard"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -18,16 +18,21 @@ const (
|
|||||||
ConfigSysMtwmSkuBoxFee = "MtwmSkuBoxFee" // 美团外卖单商品打包费
|
ConfigSysMtwmSkuBoxFee = "MtwmSkuBoxFee" // 美团外卖单商品打包费
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
MemberCardTypeMonth = 1 //1个月的会员
|
||||||
|
MemberCardTypeYear = 2 //1年的会员
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ConfigTypeName = map[string]string{
|
ConfigTypeName = map[string]string{
|
||||||
ConfigTypeSys: "系统",
|
ConfigTypeSys: "系统",
|
||||||
ConfigTypePricePack: "价格包",
|
ConfigTypePricePack: "价格包",
|
||||||
ConfigTypeFreightPack: "免运包",
|
ConfigTypeFreightPack: "免运包",
|
||||||
ConfigTypeBank: "银行",
|
ConfigTypeBank: "银行",
|
||||||
ConfigTypeRole: "角色",
|
ConfigTypeRole: "角色",
|
||||||
ConfigTypeJxStore: "京西商城",
|
ConfigTypeJxStore: "京西商城",
|
||||||
ConfigTypeCookie: "Cookie",
|
ConfigTypeCookie: "Cookie",
|
||||||
ConfigTypeDiscountCard: "会员折扣卡",
|
ConfigTypeMemberCard: "会员卡",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -33,8 +33,7 @@ const (
|
|||||||
OrderTypeSupplyGoods = 2 //进货订单
|
OrderTypeSupplyGoods = 2 //进货订单
|
||||||
OrderTypeDefendPrice = 3 //守价订单
|
OrderTypeDefendPrice = 3 //守价订单
|
||||||
|
|
||||||
OrderTypeAccount = 1 //任务保证金
|
OrderTypeAccount = 1 //账户余额
|
||||||
OrderTypeMember = 2 //开通会员
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ const (
|
|||||||
UserTypeBoss = 8
|
UserTypeBoss = 8
|
||||||
UserTypeNonConsumer = ^1
|
UserTypeNonConsumer = ^1
|
||||||
|
|
||||||
MemberTypeDiscountCard = 1 //会员折扣卡
|
MemberTypeNormal = 1 //普通会员
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -30,10 +30,9 @@ var (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
type DiscountCard struct {
|
type MemberCard struct {
|
||||||
ID int `orm:"column(id)" json:"id"`
|
ID int `orm:"column(id)" json:"id"`
|
||||||
PicePercentage int `json:"pricePercentage"`
|
Price int `json:"price"`
|
||||||
Price int `json:"price"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
@@ -206,7 +205,6 @@ func (*UserOrderSms) TableUnique() [][]string {
|
|||||||
type UserMember struct {
|
type UserMember struct {
|
||||||
ModelIDCULD
|
ModelIDCULD
|
||||||
|
|
||||||
OrderID string `orm:"column(order_id);size(48)" json:"orderID"` //和order_pay关联的,不知道有没用,先加上把
|
|
||||||
UserID string `orm:"size(48);column(user_id)" json:"userID"` //内部唯一标识
|
UserID string `orm:"size(48);column(user_id)" json:"userID"` //内部唯一标识
|
||||||
MemberType int `json:"memberType"` //会员类型, 1为折扣卡
|
MemberType int `json:"memberType"` //会员类型, 1为折扣卡
|
||||||
MemberTypeID int `orm:"column(member_type_id)" json:"memberTypeID"` //会员类型ID,折扣卡的话代表几档
|
MemberTypeID int `orm:"column(member_type_id)" json:"memberTypeID"` //会员类型ID,折扣卡的话代表几档
|
||||||
|
|||||||
@@ -224,3 +224,17 @@ func (c *User2Controller) GetUserAgreement() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 会员充值
|
||||||
|
// @Description 会员充值
|
||||||
|
// @Param token header string false "认证token"
|
||||||
|
// @Param memberID formData int true "会员ID"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /InvestMember [post]
|
||||||
|
func (c *User2Controller) InvestMember() {
|
||||||
|
c.callInvestMember(func(params *tUser2InvestMemberParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user