|
@@ -119,50 +119,12 @@ func ServiceOpen(context *admin.Context) (interface{}, error) {
|
|
}
|
|
}
|
|
filter := (*order)["filter"]
|
|
filter := (*order)["filter"]
|
|
filterData := VipSimpleMsg{}
|
|
filterData := VipSimpleMsg{}
|
|
- var vipStartTime, vipEndTime time.Time
|
|
|
|
if err := json.Unmarshal([]byte(filter.(string)), &filterData); err != nil {
|
|
if err := json.Unmarshal([]byte(filter.(string)), &filterData); err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
- vipStartTime, vipEndTime = GetStartAndEndTime(time.Unix(param.StartTime, 0).Format(cm.Date_Full_Layout), filterData.Cyclecount, filterData.Cycleunit)
|
|
|
|
- //log.Println("截止时间:", vipStartTime, endTime)
|
|
|
|
- //为用户开通超级订阅权限
|
|
|
|
- //处理购买省份
|
|
|
|
- areaCount := -1
|
|
|
|
- buyArea := map[string]interface{}{}
|
|
|
|
- if filterData.Area != nil || len(*filterData.Area) > 0 {
|
|
|
|
- for k, _ := range *filterData.Area {
|
|
|
|
- buyArea[k] = []interface{}{}
|
|
|
|
- }
|
|
|
|
- areaCount = len(buyArea)
|
|
|
|
- }
|
|
|
|
- //新购买简单详情
|
|
|
|
- newBuySet := SubvipBuySet{
|
|
|
|
- Upgrade: 1,
|
|
|
|
- AreaCount: areaCount,
|
|
|
|
- NewCitys: []int{},
|
|
|
|
- BuyerclassCount: -1,
|
|
|
|
- }
|
|
|
|
- set := map[string]interface{}{
|
|
|
|
- "o_vipjy.i_trial": -1, //已激活试用
|
|
|
|
- "o_vipjy.o_area": buyArea, //设置地区
|
|
|
|
- "o_vipjy.o_buyset": newBuySet, //购买内容 城市、省份、行业数量
|
|
|
|
- "l_vip_starttime": vipStartTime.Unix(), //开始时间
|
|
|
|
- "l_vip_endtime": vipEndTime.Unix(), //结束时间
|
|
|
|
- "i_vip_status": 2, //1试用 2正式 -2 试用到期
|
|
|
|
- "i_vip_expire_tip": 0, //消息提示初始化
|
|
|
|
- "o_vipjy.a_buyerclass": []interface{}{}, //设置行业
|
|
|
|
- }
|
|
|
|
- if cm.IntAll((*order)["buy_subject"]) == 1 {
|
|
|
|
- util.MQFW.UpdateById("user", userId, bson.M{
|
|
|
|
- "$set": set,
|
|
|
|
- })
|
|
|
|
- ClearBigVipUserPower(userId)
|
|
|
|
- } else {
|
|
|
|
- UpdateRule(entId, map[string]interface{}{
|
|
|
|
- "$set": set,
|
|
|
|
- }, param.Phone)
|
|
|
|
- ClearBigVipUserPower(userId)
|
|
|
|
- }
|
|
|
|
|
|
+ var vipStartTime, vipEndTime time.Time
|
|
|
|
+ vipStartTime, vipEndTime = GetStartAndEndTime(time.Unix(param.StartTime, 0).Format(cm.Date_Full_Layout), cm.IntAll(filterMap["cyclecount"]), cm.IntAll(filterMap["cycleunit"]))
|
|
|
|
+ VipServiceOpen(userId, param.Phone, filterMap, vipStartTime, vipEndTime, cm.IntAll((*order)["buy_subject"]), entId)
|
|
updateMap["vip_starttime"] = vipStartTime.Format(cm.Date_Full_Layout)
|
|
updateMap["vip_starttime"] = vipStartTime.Format(cm.Date_Full_Layout)
|
|
updateMap["vip_endtime"] = vipEndTime.Format(cm.Date_Full_Layout)
|
|
updateMap["vip_endtime"] = vipEndTime.Format(cm.Date_Full_Layout)
|
|
|
|
|
|
@@ -223,6 +185,51 @@ func ServiceOpen(context *admin.Context) (interface{}, error) {
|
|
}, nil
|
|
}, nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func VipServiceOpen(userId, phone string, filterMap map[string]interface{}, vipStartTime, vipEndTime time.Time, buySubject, entId int) {
|
|
|
|
+ //var vipStartTime, vipEndTime time.Time
|
|
|
|
+ //vipStartTime, vipEndTime = GetStartAndEndTime(time.Unix(startTime, 0).Format(cm.Date_Full_Layout), cm.IntAll(filterMap["cyclecount"]), cm.IntAll(filterMap["cycleunit"]))
|
|
|
|
+ //log.Println("截止时间:", vipStartTime, endTime)
|
|
|
|
+ //为用户开通超级订阅权限
|
|
|
|
+ //处理购买省份
|
|
|
|
+ areaCount := -1
|
|
|
|
+ buyArea := map[string]interface{}{}
|
|
|
|
+ areaMap := cm.ObjToMap(filterMap["area"])
|
|
|
|
+ if areaMap != nil && len(*areaMap) > 0 {
|
|
|
|
+ for k, _ := range *areaMap {
|
|
|
|
+ buyArea[k] = []interface{}{}
|
|
|
|
+ }
|
|
|
|
+ areaCount = len(buyArea)
|
|
|
|
+ }
|
|
|
|
+ //新购买简单详情
|
|
|
|
+ newBuySet := SubvipBuySet{
|
|
|
|
+ Upgrade: 1,
|
|
|
|
+ AreaCount: areaCount,
|
|
|
|
+ NewCitys: []int{},
|
|
|
|
+ BuyerclassCount: -1,
|
|
|
|
+ }
|
|
|
|
+ set := map[string]interface{}{
|
|
|
|
+ "o_vipjy.i_trial": -1, //已激活试用
|
|
|
|
+ "o_vipjy.o_area": buyArea, //设置地区
|
|
|
|
+ "o_vipjy.o_buyset": newBuySet, //购买内容 城市、省份、行业数量
|
|
|
|
+ "l_vip_starttime": vipStartTime.Unix(), //开始时间
|
|
|
|
+ "l_vip_endtime": vipEndTime.Unix(), //结束时间
|
|
|
|
+ "i_vip_status": 2, //1试用 2正式 -2 试用到期
|
|
|
|
+ "i_vip_expire_tip": 0, //消息提示初始化
|
|
|
|
+ "o_vipjy.a_buyerclass": []interface{}{}, //设置行业
|
|
|
|
+ }
|
|
|
|
+ if buySubject == 1 {
|
|
|
|
+ util.MQFW.UpdateById("user", userId, bson.M{
|
|
|
|
+ "$set": set,
|
|
|
|
+ })
|
|
|
|
+ ClearBigVipUserPower(userId)
|
|
|
|
+ } else {
|
|
|
|
+ UpdateRule(entId, map[string]interface{}{
|
|
|
|
+ "$set": set,
|
|
|
|
+ }, phone)
|
|
|
|
+ ClearBigVipUserPower(userId)
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
func FindUserDataByPhone(phone string) (userId string, userData map[string]interface{}) {
|
|
func FindUserDataByPhone(phone string) (userId string, userData map[string]interface{}) {
|
|
userInfo, ok := util.MQFW.FindOne("user", map[string]interface{}{"s_phone": phone})
|
|
userInfo, ok := util.MQFW.FindOne("user", map[string]interface{}{"s_phone": phone})
|
|
if ok && userInfo != nil && len(*userInfo) > 0 {
|
|
if ok && userInfo != nil && len(*userInfo) > 0 {
|
|
@@ -382,9 +389,16 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
userId, userData := FindUserDataByPhone(cm.ObjToString(orderInfo["user_phone"]))
|
|
userId, userData := FindUserDataByPhone(cm.ObjToString(orderInfo["user_phone"]))
|
|
|
|
+ updateOrder := map[string]interface{}{}
|
|
if productType == "VIP订阅" {
|
|
if productType == "VIP订阅" {
|
|
vipType := cm.IntAll(orderInfo["vip_type"])
|
|
vipType := cm.IntAll(orderInfo["vip_type"])
|
|
- if vipType != 0 {
|
|
|
|
|
|
+ if vipType == 0 {
|
|
|
|
+ vipStartTime, vipEndTime := GetStartAndEndTime(time.Now().Format(cm.Date_Full_Layout), cm.IntAll(filterMap["cyclecount"]), cm.IntAll(filterMap["cycleunit"]))
|
|
|
|
+ VipServiceOpen(userId, cm.ObjToString(orderInfo["user_phone"]), filterMap, vipStartTime, vipEndTime, cm.IntAll(orderInfo["buy_subject"]), cm.IntAll(orderInfo["ent_id"]))
|
|
|
|
+ updateOrder["vip_starttime"] = vipStartTime.Format(cm.Date_Full_Layout)
|
|
|
|
+ updateOrder["vip_endtime"] = vipEndTime.Format(cm.Date_Full_Layout)
|
|
|
|
+ //filterMap["isServiceOpen"] = 1
|
|
|
|
+ } else {
|
|
//用户原服务结束日期
|
|
//用户原服务结束日期
|
|
vipEndTime, _ := time.ParseInLocation(cm.Date_Full_Layout, cm.ObjToString(userData["l_vip_endtime"]), time.Local)
|
|
vipEndTime, _ := time.ParseInLocation(cm.Date_Full_Layout, cm.ObjToString(userData["l_vip_endtime"]), time.Local)
|
|
//最近回款流水时间
|
|
//最近回款流水时间
|
|
@@ -396,7 +410,7 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
}
|
|
}
|
|
if vipEndTime.Unix() < time.Now().Unix() { //原服务已过期
|
|
if vipEndTime.Unix() < time.Now().Unix() { //原服务已过期
|
|
//查询回款记录,最近一笔回款时间
|
|
//查询回款记录,最近一笔回款时间
|
|
- newReturnMoneyTime, checkPassTime, err := GetReturnTimeAndCheckTime(orderCode)
|
|
|
|
|
|
+ /*newReturnMoneyTime, checkPassTime, err := GetReturnTimeAndCheckTime(orderCode)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
@@ -404,7 +418,8 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
newStartTime = newReturnMoneyTime
|
|
newStartTime = newReturnMoneyTime
|
|
} else {
|
|
} else {
|
|
newStartTime = checkPassTime
|
|
newStartTime = checkPassTime
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
|
|
+ newStartTime = time.Now()
|
|
set["l_vip_starttime"] = newStartTime.Unix()
|
|
set["l_vip_starttime"] = newStartTime.Unix()
|
|
|
|
|
|
} else { //原服务未过期
|
|
} else { //原服务未过期
|
|
@@ -452,6 +467,8 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
go ClearBigVipUserPower(userId)
|
|
go ClearBigVipUserPower(userId)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ updateOrder["vip_starttime"] = time.Now().Format(cm.Date_Full_Layout)
|
|
|
|
+ updateOrder["vip_endtime"] = vipEndTime.Format(cm.Date_Full_Layout)
|
|
}
|
|
}
|
|
|
|
|
|
} else if productType == "大会员" {
|
|
} else if productType == "大会员" {
|
|
@@ -461,7 +478,17 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
if supplys, ok := filterMap["supplys"].([]interface{}); ok {
|
|
if supplys, ok := filterMap["supplys"].([]interface{}); ok {
|
|
serverArr = cm.ObjArrToMapArr(supplys)
|
|
serverArr = cm.ObjArrToMapArr(supplys)
|
|
}
|
|
}
|
|
- if createType != 1 { //1-新建 2-补充 3-延期
|
|
|
|
|
|
+ if createType == 1 {
|
|
|
|
+ bigStartTime := time.Now()
|
|
|
|
+ bigEndTime := GetDATE(cm.IntAll(filterMap["cycle"]), cm.IntAll(filterMap["cycleType"]), bigStartTime.Unix())
|
|
|
|
+ status := cm.If(bigStartTime.Unix() > time.Now().Unix(), 0, 1)
|
|
|
|
+ err := NewBigOpenService(filterMap, userId, bigStartTime, bigEndTime, cm.IntAll(status), cm.IntAll(orderInfo["buy_count"]))
|
|
|
|
+ if err != nil {
|
|
|
|
+ return errors.New(fmt.Sprintf("订单编号:%s,开通大会员权益失败", orderCode))
|
|
|
|
+ }
|
|
|
|
+ updateOrder["vip_starttime"] = bigStartTime.Format(cm.Date_Full_Layout)
|
|
|
|
+ updateOrder["vip_endtime"] = bigEndTime.Format(cm.Date_Full_Layout)
|
|
|
|
+ } else { //1-新建 2-补充 3-延期
|
|
memberStatus := cm.IntAll(userData["i_member_status"])
|
|
memberStatus := cm.IntAll(userData["i_member_status"])
|
|
bigEndTime := cm.Int64All(userData["i_member_endtime"])
|
|
bigEndTime := cm.Int64All(userData["i_member_endtime"])
|
|
//memberStatus := cm.IntAll((*userData)["i_member_status"])
|
|
//memberStatus := cm.IntAll((*userData)["i_member_status"])
|
|
@@ -474,6 +501,8 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
if memberStatus < 0 {
|
|
if memberStatus < 0 {
|
|
return errors.New("服务已到期,权益开通失败")
|
|
return errors.New("服务已到期,权益开通失败")
|
|
}
|
|
}
|
|
|
|
+ updateOrder["vip_starttime"] = time.Now().Format(cm.Date_Full_Layout)
|
|
|
|
+ updateOrder["vip_endtime"] = time.Unix(bigEndTime, 0)
|
|
//大会员补充服务
|
|
//大会员补充服务
|
|
ok1, err = BigMemberSupple(freeSubNum, paySubNum, startTime, endTime, userId, filterMap, serverArr)
|
|
ok1, err = BigMemberSupple(freeSubNum, paySubNum, startTime, endTime, userId, filterMap, serverArr)
|
|
|
|
|
|
@@ -482,7 +511,7 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
var newStartTime, newEndTime time.Time
|
|
var newStartTime, newEndTime time.Time
|
|
effectState := true
|
|
effectState := true
|
|
if bmEndTime.Unix() < time.Now().Unix() || cm.IntAll(userData["i_member_status"]) < 0 { //原服务已过期
|
|
if bmEndTime.Unix() < time.Now().Unix() || cm.IntAll(userData["i_member_status"]) < 0 { //原服务已过期
|
|
- //查询回款记录,最近一笔回款时间
|
|
|
|
|
|
+ /*//查询回款记录,最近一笔回款时间
|
|
newReturnMoneyTime, checkPassTime, err := GetReturnTimeAndCheckTime(orderCode)
|
|
newReturnMoneyTime, checkPassTime, err := GetReturnTimeAndCheckTime(orderCode)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
@@ -491,7 +520,8 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
newStartTime = newReturnMoneyTime
|
|
newStartTime = newReturnMoneyTime
|
|
} else {
|
|
} else {
|
|
newStartTime = checkPassTime
|
|
newStartTime = checkPassTime
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
|
|
+ newStartTime = time.Now()
|
|
effectState = false
|
|
effectState = false
|
|
cycleCount := cm.IntAll(filterMap["cycle"])
|
|
cycleCount := cm.IntAll(filterMap["cycle"])
|
|
cycleType := cm.IntAll(filterMap["cycleType"])
|
|
cycleType := cm.IntAll(filterMap["cycleType"])
|
|
@@ -500,6 +530,8 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
//开始时间为:原服务结束日期+1天
|
|
//开始时间为:原服务结束日期+1天
|
|
newStartTime = bmEndTime.AddDate(0, 0, 1)
|
|
newStartTime = bmEndTime.AddDate(0, 0, 1)
|
|
}
|
|
}
|
|
|
|
+ updateOrder["vip_starttime"] = newStartTime.Format(cm.Date_Full_Layout)
|
|
|
|
+ updateOrder["vip_endtime"] = newEndTime.Format(cm.Date_Full_Layout)
|
|
ok1, err = BigMemberExtend(filterMap, userId, orderCode, effectState, newStartTime, newEndTime, cm.IntAll(userData["i_member_status"]))
|
|
ok1, err = BigMemberExtend(filterMap, userId, orderCode, effectState, newStartTime, newEndTime, cm.IntAll(userData["i_member_status"]))
|
|
}
|
|
}
|
|
if !ok1 && err != nil {
|
|
if !ok1 && err != nil {
|
|
@@ -532,8 +564,11 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
if !ok && err != nil {
|
|
if !ok && err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
+ updateOrder["vip_starttime"] = time.Now().Format(cm.Date_Full_Layout)
|
|
|
|
+ updateOrder["vip_endtime"] = time.Unix(bigEnd, 0)
|
|
|
|
|
|
} else if productType == "大会员-补充包" {
|
|
} else if productType == "大会员-补充包" {
|
|
|
|
+ bigEnd := cm.Int64All(userData["i_member_endtime"])
|
|
memberStatus := cm.IntAll(userData["i_member_status"])
|
|
memberStatus := cm.IntAll(userData["i_member_status"])
|
|
if memberStatus < 0 {
|
|
if memberStatus < 0 {
|
|
return errors.New("服务已到期,权益开通失败")
|
|
return errors.New("服务已到期,权益开通失败")
|
|
@@ -547,6 +582,15 @@ func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
|
|
if !ok && err != nil {
|
|
if !ok && err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
+ updateOrder["vip_starttime"] = time.Now().Format(cm.Date_Full_Layout)
|
|
|
|
+ updateOrder["vip_endtime"] = time.Unix(bigEnd, 0)
|
|
|
|
+ }
|
|
|
|
+ filterMap["isServiceOpen"] = 1
|
|
|
|
+ updateOrder["filter"] = fmt.Sprintf("%v", filterMap)
|
|
|
|
+ //更新订单
|
|
|
|
+ if !util.JysqlDB.Update("dataexport_order", map[string]interface{}{"order_code": orderCode}, updateOrder) {
|
|
|
|
+ return errors.New("更新订单出错")
|
|
}
|
|
}
|
|
|
|
+
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|