浏览代码

回款开通权益

renjiaojiao 1 年之前
父节点
当前提交
4d253c35f5
共有 3 个文件被更改,包括 52 次插入12 次删除
  1. 31 0
      src/order/otherOrderController.go
  2. 14 8
      src/order/otherOrderService.go
  3. 7 4
      src/task/returnMoneyTask.go

+ 31 - 0
src/order/otherOrderController.go

@@ -1193,6 +1193,7 @@ func VipInfo(context *admin.Context) (interface{}, error) {
 		Phone      string `form:"phone"`
 		OrderCode  string `form:"orderCode"`
 		BuySubject string `form:"buySubject"`
+		EntName    string `form:"entName"` //购买主体 企业
 	})
 	err := context.Form(param)
 	if err != nil {
@@ -1255,6 +1256,36 @@ func VipInfo(context *admin.Context) (interface{}, error) {
 	}
 	if userInfo != nil && len(userInfo) > 0 {
 		userId := mongodb.BsonIdToSId(userInfo["_id"])
+		if param.BuySubject == "2" {
+			res := util.JysqlDB.FindOne("entniche_info", map[string]interface{}{
+				"phone": param.Phone,
+				"name":  param.EntName,
+			}, "id", "")
+			if res == nil {
+				return map[string]interface{}{
+					"willEffect": false,
+					"userData":   userInfo,
+					"vipExist":   false,
+				}, nil
+			}
+			entId := qutil.IntAll((*res)["id"])
+			positionData := util.BaseDB.FindOne(util.BasePosition, map[string]interface{}{
+				"type":    1,
+				"user_id": qutil.IntAll(userInfo["base_user_id"]),
+				"ent_id":  entId,
+			}, "id", "")
+			if positionData != nil && len(*positionData) > 0 {
+				userId = fmt.Sprint(qutil.Int64All((*positionData)["id"]))
+			}
+			count := util.JysqlDB.CountBySql("SELECT * FROM dataexport_order WHERE product_type = 'VIP订阅' AND user_id = ? AND vip_starttime > ?", userId, time.Now().Format(qutil.Date_Full_Layout))
+			if count > 0 {
+				return map[string]interface{}{
+					"willEffect": true,
+					"userData":   userInfo,
+					"vipExist":   false,
+				}, nil
+			}
+		}
 		//查询订单信息获取客户名称
 		orderInfo := util.JysqlDB.SelectBySql("SELECT c.customer_name,d.company_name FROM dataexport_order d LEFT JOIN contract c ON c.order_code = d.order_code WHERE product_type = 'VIP订阅' and user_id = ? ORDER BY d.id DESC", userId)
 		if len(*orderInfo) == 0 && param.BuySubject != "2" {

+ 14 - 8
src/order/otherOrderService.go

@@ -1706,10 +1706,13 @@ func UpdateBatchReturnInfo(transactionData *map[string]interface{}, orderArr map
 					paybackOpenServer = v
 				}
 				//修改成功,判断是否全额回款并且创建订单勾选回款开通权益 paybackOpenServer
-				if qutil.IntAll(updateData["return_status"]) == 1 && paybackOpenServer {
-					err := OpenUserService(tx, key, value)
-					if err != nil {
-						return false
+				t, _ := time.ParseInLocation(qutil.Date_Full_Layout, qutil.ObjToString(value["vip_starttime"]), time.Local)
+				if qutil.ObjToString(value["vip_starttime"]) == "" || (qutil.ObjToString(value["vip_starttime"]) != "" && t.Unix() > time.Now().Unix()) {
+					if qutil.IntAll(updateData["return_status"]) == 1 && paybackOpenServer {
+						err := OpenUserService(tx, key, value)
+						if err != nil {
+							return false
+						}
 					}
 				}
 				return_id = return_id + fmt.Sprint(ok_2) + ","
@@ -1789,10 +1792,13 @@ func ManualUpdateBatchReturnInfo(orderArr map[string]map[string]interface{}, ope
 					paybackOpenServer = v
 				}
 				//修改成功,判断是否全额回款并且创建订单勾选回款开通权益 paybackOpenServer
-				if qutil.IntAll(updateData["return_status"]) == 1 && paybackOpenServer {
-					err := OpenUserService(tx, key, value)
-					if err != nil {
-						return false
+				t, _ := time.ParseInLocation(qutil.Date_Full_Layout, qutil.ObjToString(value["vip_starttime"]), time.Local)
+				if qutil.ObjToString(value["vip_starttime"]) == "" || (qutil.ObjToString(value["vip_starttime"]) != "" && t.Unix() > time.Now().Unix()) {
+					if qutil.IntAll(updateData["return_status"]) == 1 && paybackOpenServer {
+						err := OpenUserService(tx, key, value)
+						if err != nil {
+							return false
+						}
 					}
 				}
 				return_id = return_id + fmt.Sprint(ok2) + ","

+ 7 - 4
src/task/returnMoneyTask.go

@@ -87,10 +87,13 @@ func StartTask1() {
 								if v, ok := ((*filterMap)["paybackOpenServer"]).(bool); ok {
 									paybackOpenServer = v
 								}
-								if qu.IntAll(o["return_status"]) == 1 && paybackOpenServer {
-									err := order.OpenUserService(nil, orderCode, o)
-									if err != nil {
-										log.Println("自动回款开通权益失败", id, orderCode)
+								t, _ := time.ParseInLocation(qu.Date_Full_Layout, qu.ObjToString(o["vip_starttime"]), time.Local)
+								if qu.ObjToString(o["vip_starttime"]) == "" || (qu.ObjToString(o["vip_starttime"]) != "" && t.Unix() > time.Now().Unix()) {
+									if qu.IntAll(o["return_status"]) == 1 && paybackOpenServer {
+										err := order.OpenUserService(nil, orderCode, o)
+										if err != nil {
+											log.Println("自动回款开通权益失败", id, orderCode)
+										}
 									}
 								}
 							} else {