Browse Source

Merge branch 'dev/v2.4.31_rjj' of jianyu/qmx_admin into feature/v2.4.31

renjiaojiao 1 year ago
parent
commit
0a56917fea
4 changed files with 277 additions and 282 deletions
  1. 3 1
      src/order/otherOrderService.go
  2. 1 0
      src/order/router.go
  3. 184 0
      src/order/serviceOpen.go
  4. 89 281
      src/order/suppleSalePerson.go

+ 3 - 1
src/order/otherOrderService.go

@@ -1647,9 +1647,11 @@ func UpdateBatchReturnInfo(transactionData *map[string]interface{}, orderArr map
 			ok_1 := util.JysqlDB.UpdateByTx(tx, "dataexport_order", map[string]interface{}{"id": value["id"]}, updateData)
 			ok_2 := util.JysqlDB.InsertByTx(tx, "return_money_record", insertData)
 			if ok_1 && ok_2 != -1 {
+				if qutil.IntAll(updateData["return_status"]) == 1 { //修改成功,判断是否全额回款
+
+				}
 				return_id = return_id + fmt.Sprint(ok_2) + ","
 			} else {
-				break
 				return false
 			}
 		}

+ 1 - 0
src/order/router.go

@@ -141,6 +141,7 @@ func init() {
 		"Baiy.Cadmin.Order.copyLink":                          CopyLink,
 		"Baiy.Cadmin.Order.addUpdateRecord":                   AddUpdateRecord,
 		"Baiy.Cadmin.Order.helpVipinfo":                       HelpVipInfo,
+		"Baiy.Cadmin.Order.serviceOpen":                       ServiceOpen, //详情开通权益
 		"Baiy.Cadmin.Order.orderPriceCount":                   orderPriceCount,
 		"Baiy.Cadmin.Order.orderSeal":                         OperateOrderSeal, //
 	})

+ 184 - 0
src/order/serviceOpen.go

@@ -309,3 +309,187 @@ func GetStartAndEndTime(startTime string, cycleCount, cycleUnit int) (vipStartTi
 	}
 	return vipStartTime, endTime
 }
+
+// OpenUserService 全额回款后开通权益
+func OpenUserService(orderCode string, orderInfo map[string]interface{}) error {
+	var err error
+	productType := cm.ObjToString(orderInfo["product_type"])
+	filterMap := map[string]interface{}{}
+	if err := json.Unmarshal([]byte(cm.ObjToString(orderInfo["filter"])), &filterMap); err != nil {
+		return err
+	}
+	userId, userData := FindUserDataByPhone(cm.ObjToString(orderInfo["user_phone"]))
+
+	if productType == "VIP订阅" {
+		vipType := cm.IntAll(orderInfo["vip_type"])
+		if vipType != 0 {
+			vipEndTime, _ := time.ParseInLocation(cm.Date_Full_Layout, cm.ObjToString(orderInfo["vip_endtime"]), time.Local)
+			if vipType == 1 { //超级订阅续费
+				//需要判断续费开始日期小于审核日期,开始日期改为审核日期,结束日期根据开始日期往后延
+				vipStartTime, _ := time.ParseInLocation(cm.Date_Full_Layout, cm.ObjToString(orderInfo["vip_starttime"]), time.Local)
+				set := map[string]interface{}{
+					//"l_vip_endtime":    vipEndTime.Unix(),
+					"i_vip_expire_tip": 0,
+					"i_vip_status":     2,
+				}
+				if vipStartTime.Unix() < time.Now().Unix() {
+					vipStartTime = time.Now().Local()
+					//结束日期计算
+					month := 0
+					cycleUnit := cm.IntAll(filterMap["cycleunit"])
+					cycleCount := cm.IntAll(filterMap["cyclecount"])
+					if cm.ObjToString(orderInfo["vip_endtime"]) != "" {
+						if cycleUnit == 1 {
+							month = cycleCount * 12
+						} else if cycleUnit == 2 {
+							month = cycleCount
+						} else if cycleUnit == 4 {
+							month = cycleCount * 3
+						}
+					}
+					if cycleUnit == 3 {
+						_endTime := vipStartTime.AddDate(0, 0, cycleCount)
+						t := _endTime.Format(cm.Date_Short_Layout) + " 23:59:59"
+						vipEndTime, _ = time.ParseInLocation(cm.Date_Full_Layout, t, time.Local)
+					} else {
+						vipEndTime = GetDATE1(month, vipStartTime.Unix())
+					}
+					set["l_vip_starttime"] = vipStartTime.Unix()
+					//更新订单信息
+					ok := util.JysqlDB.Update(DataExportOrder, map[string]interface{}{"order_code": orderCode}, map[string]interface{}{"vip_starttime": vipStartTime.Format(cm.Date_Full_Layout), "vip_endtime": vipEndTime.Format(cm.Date_Full_Layout)})
+					if !ok {
+						return errors.New("更新订单信息出错")
+					}
+				}
+				set["l_vip_endtime"] = vipEndTime.Unix()
+				if !util.MQFW.UpdateById("user", userId,
+					bson.M{"$set": set}) {
+					log.Printf("%s更新结束%d日期出错\n", userId, vipEndTime.Unix())
+				}
+			} else if vipType == 2 { //升级
+				//先判断审核通过日期是否再超级订阅有效期内
+				vipStatus := cm.IntAll(userData["i_vip_status"])
+				if vipStatus != 2 {
+					return errors.New("服务已到期,权益开通失败")
+				}
+				if !util.MQFW.Update("vip_upgrade",
+					&map[string]interface{}{"s_userid": userId, "i_isvalid": 0},
+					&map[string]interface{}{
+						"$set": map[string]interface{}{
+							"i_isvalid": 1,
+						},
+					}, false, true) {
+					log.Printf("%s vip_upgrade 更新失败  时间:%d\n", userId, vipEndTime.Unix())
+				}
+				updata := map[string]interface{}{
+					"o_vipjy.o_buyset": filterMap["newBuyset"],
+					"i_vip_expire_tip": 0,
+					"i_vip_status":     2,
+				}
+				if filterMap["area"] != nil {
+					updata["o_vipjy.o_area"] = filterMap["area"] //设置地区
+				}
+				if filterMap["industry"] != nil {
+					updata["o_vipjy.a_buyerclass"] = filterMap["industry"] //设置行业
+				}
+				if ok := util.MQFW.UpdateById("user", userId, map[string]interface{}{
+					"$set": updata,
+				}); !ok {
+					log.Printf("%s更新用户出错 %+v\n", userId, updata)
+					return errors.New("更新user用户信息出错")
+				} else {
+					//清理缓存
+					go ClearBigVipUserPower(userId)
+				}
+
+			}
+		}
+
+	} else if productType == "大会员" {
+		createType := cm.IntAll(filterMap["createType"])
+		serverArr := make([]map[string]interface{}, 0)
+		//补充包
+		if supplys, ok := filterMap["supplys"].([]interface{}); ok {
+			serverArr = cm.ObjArrToMapArr(supplys)
+		}
+		if createType != 1 { //1-新建 2-补充 3-延期
+			memberStatus := cm.IntAll(userData["i_member_status"])
+			bigEndTime := cm.Int64All(userData["i_member_endtime"])
+			//memberStatus := cm.IntAll((*userData)["i_member_status"])
+			freeSubNum := cm.IntAll(userData["i_free_sub_num"])
+			paySubNum := cm.IntAll(userData["i_pay_sub_num"])
+			startTime := time.Now()
+			endTime := time.Unix(bigEndTime, 0)
+			var ok1 bool
+			if createType == 2 { //大会员补充服务
+				if memberStatus < 0 {
+					return errors.New("服务已到期,权益开通失败")
+				}
+				//大会员补充服务
+				ok1, err = BigMemberSupple(freeSubNum, paySubNum, startTime, endTime, userId, filterMap, serverArr)
+
+			} else if createType == 3 { //大会员延长服务
+				//判断开始时间小于审核时间,开始时间改为审核时间
+				lastEndTime := cm.Int64All(userData["i_member_endtime"])
+				//newBigStartTime := time.Now().Unix()
+				startTime := time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 0, 0, 0, 0, time.Now().Location())
+				effectState := true
+				var endTime time.Time
+				if lastEndTime < time.Now().Unix() {
+					//计算大会员结束时间
+					effectState = false
+					cycleCount := cm.IntAll(filterMap["cycle"])
+					cycleType := cm.IntAll(filterMap["cycleType"])
+					nowTime := time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 0, 0, 0, 0, time.Local)
+					endTime = GetDATE(cycleCount, cycleType, nowTime.Unix())
+				}
+				ok1, err = BigMemberExtend(filterMap, userId, orderCode, effectState, startTime, endTime, cm.IntAll(userData["i_member_status"]))
+			}
+			if !ok1 && err != nil {
+				return err
+			}
+		}
+	} else if productType == "大会员-子账号" {
+		memberStatus := cm.IntAll(userData["i_member_status"])
+		if memberStatus < 0 {
+			return errors.New("服务已到期,权益开通失败")
+		}
+		freeSubNum := cm.IntAll(userData["i_free_sub_num"])
+		paySubNum := cm.IntAll(userData["i_pay_sub_num"])
+		bigStart := cm.Int64All(userData["i_member_starttime"])
+		bigEnd := cm.Int64All(userData["i_member_endtime"])
+		areaCount := cm.IntAll(filterMap["areaCount"])
+		ok, err := SubAccount(SubAccountParam{
+			BuyCount:         cm.IntAll(orderInfo["buy_count"]),
+			BuySubject:       cm.IntAll(orderInfo["buy_subject"]),
+			StartTime:        time.Unix(bigStart, 0),
+			EndTime:          time.Unix(bigEnd, 0),
+			UserId:           userId,
+			InsertBigService: freeSubNum == 0 && paySubNum == 0,
+			EntId:            cm.IntAll(orderInfo["ent_id"]),
+			OrderId:          cm.IntAll(orderInfo["id"]),
+			ProvinceCount:    cm.IntAll(cm.If(areaCount == 0, -1, areaCount)),
+			ProductType:      getBigMemberProductTypeByOrderCode(cm.ObjToString(filterMap["contactOrderCode"])),
+			Phone:            cm.ObjToString(orderInfo["user_phone"]),
+		})
+		if !ok && err != nil {
+			return err
+		}
+
+	} else if productType == "大会员-补充包" {
+		memberStatus := cm.IntAll(userData["i_member_status"])
+		if memberStatus < 0 {
+			return errors.New("服务已到期,权益开通失败")
+		}
+		serverArr := make([]map[string]interface{}, 0)
+		//补充包
+		if supplys, ok := filterMap["supplys"].([]interface{}); ok {
+			serverArr = cm.ObjArrToMapArr(supplys)
+		}
+		ok, err := SupplePackage(userId, serverArr)
+		if !ok && err != nil {
+			return err
+		}
+	}
+	return nil
+}

+ 89 - 281
src/order/suppleSalePerson.go

@@ -15,7 +15,6 @@ import (
 
 	"github.com/baiy/Cadmin-server-go/admin"
 	"github.com/baiy/Cadmin-server-go/system/utils"
-	"go.mongodb.org/mongo-driver/bson"
 )
 
 // SalePersonList 补录销售信息列表
@@ -367,299 +366,108 @@ func OrdersExamine(context *admin.Context) (interface{}, error) {
 	//查询订单
 	order := util.JysqlDB.FindOne("dataexport_order", map[string]interface{}{"order_code": param.OrderCode}, "id,audit_status,order_status,buy_subject,sale_time,user_phone,company_name,product_type,vip_type,vip_endtime,vip_starttime,filter", "")
 	if order != nil && len(*order) > 0 {
-		oldState := cm.IntAll((*order)["audit_status"])
-		newState := 1
-		operatorType := 2
-		if oldState == 3 {
-			return nil, errors.New("订单审核已完成,无需审批")
+		return nil, errors.New("没有查询到订单信息")
+	}
+	oldState := cm.IntAll((*order)["audit_status"])
+	newState := 1
+	operatorType := 2
+	if oldState == 3 {
+		return nil, errors.New("订单审核已完成,无需审批")
+	}
+	if param.State == 1 { //审核通过
+		if oldState == 1 { //记录为待审核状态
+			newState = 2
+		} else if oldState == 2 { //记录为一审通过状态
+			newState = 4
+			operatorType = 3
+		} else if oldState == 4 {
+			newState = 3
+			operatorType = 5 //三审
 		}
-		if param.State == 1 { //审核通过
-			if oldState == 1 { //记录为待审核状态
-				newState = 2
-			} else if oldState == 2 { //记录为一审通过状态
-				newState = 4
-				operatorType = 3
-			} else if oldState == 4 {
-				newState = 3
-				operatorType = 5 //三审
-			}
-		} else {
-			if oldState == 1 {
-				newState = -2
-			} else if oldState == 2 {
-				newState = -3
-				operatorType = 3
-			} else if oldState == 4 {
-				newState = -4
-				operatorType = 5
-			}
+	} else {
+		if oldState == 1 {
+			newState = -2
+		} else if oldState == 2 {
+			newState = -3
+			operatorType = 3
+		} else if oldState == 4 {
+			newState = -4
+			operatorType = 5
 		}
-		var productType string
-		var (
-			userId   string
-			userData *map[string]interface{}
-			ok1      bool
-		)
-		userData, ok1 = util.MQFW.FindOne("user", map[string]interface{}{"s_phone": (*order)["user_phone"]})
+	}
+	//var productType string
+	var (
+		userId   string
+		userData *map[string]interface{}
+		ok1      bool
+	)
+	userData, ok1 = util.MQFW.FindOne("user", map[string]interface{}{"s_phone": (*order)["user_phone"]})
+	if ok1 && userData != nil && len(*userData) > 0 {
+		userId = mongodb.BsonIdToSId((*userData)["_id"])
+	} else {
+		userData, ok1 = util.MQFW.FindOne("user", map[string]interface{}{"s_m_phone": (*order)["user_phone"]})
 		if ok1 && userData != nil && len(*userData) > 0 {
 			userId = mongodb.BsonIdToSId((*userData)["_id"])
-		} else {
-			userData, ok1 = util.MQFW.FindOne("user", map[string]interface{}{"s_m_phone": (*order)["user_phone"]})
-			if ok1 && userData != nil && len(*userData) > 0 {
-				userId = mongodb.BsonIdToSId((*userData)["_id"])
-			}
 		}
-		if newState == 3 { //审核通过,开通权益
-			productType = cm.ObjToString((*order)["product_type"])
-			if productType == "VIP订阅" {
-				vipType := cm.IntAll((*order)["vip_type"])
-				if vipType != 0 {
-					filterMap := map[string]interface{}{}
-					if err := json.Unmarshal([]byte(cm.ObjToString((*order)["filter"])), &filterMap); err != nil {
-						return nil, err
-					}
-					vipEndTime, _ := time.ParseInLocation(cm.Date_Full_Layout, cm.ObjToString((*order)["vip_endtime"]), time.Local)
-					if vipType == 1 { //超级订阅续费
-						//需要判断续费开始日期小于审核日期,开始日期改为审核日期,结束日期根据开始日期往后延
-						vipStartTime, _ := time.ParseInLocation(cm.Date_Full_Layout, cm.ObjToString((*order)["vip_starttime"]), time.Local)
-						set := map[string]interface{}{
-							//"l_vip_endtime":    vipEndTime.Unix(),
-							"i_vip_expire_tip": 0,
-							"i_vip_status":     2,
-						}
-						if vipStartTime.Unix() < time.Now().Unix() {
-							vipStartTime = time.Now().Local()
-							//结束日期计算
-							month := 0
-							cycleUnit := cm.IntAll(filterMap["cycleunit"])
-							cycleCount := cm.IntAll(filterMap["cyclecount"])
-							if cm.ObjToString((*order)["vip_endtime"]) != "" {
-								if cycleUnit == 1 {
-									month = cycleCount * 12
-								} else if cycleUnit == 2 {
-									month = cycleCount
-								} else if cycleUnit == 4 {
-									month = cycleCount * 3
-								}
-							}
-							if cycleUnit == 3 {
-								_endTime := vipStartTime.AddDate(0, 0, cycleCount)
-								t := _endTime.Format(cm.Date_Short_Layout) + " 23:59:59"
-								vipEndTime, _ = time.ParseInLocation(cm.Date_Full_Layout, t, time.Local)
-							} else {
-								vipEndTime = GetDATE1(month, vipStartTime.Unix())
-							}
-							set["l_vip_starttime"] = vipStartTime.Unix()
-							//更新订单信息
-							ok := util.JysqlDB.Update(DataExportOrder, map[string]interface{}{"order_code": param.OrderCode}, map[string]interface{}{"vip_starttime": vipStartTime.Format(cm.Date_Full_Layout), "vip_endtime": vipEndTime.Format(cm.Date_Full_Layout)})
-							if !ok {
-								return false, errors.New("更新订单信息出错")
-							}
-						}
-						set["l_vip_endtime"] = vipEndTime.Unix()
-						if !util.MQFW.UpdateById("user", userId,
-							bson.M{"$set": set}) {
-							log.Printf("%s更新结束%d日期出错\n", userId, vipEndTime.Unix())
-						}
-					} else if vipType == 2 { //升级
-						//先判断审核通过日期是否再超级订阅有效期内
-						vipStatus := cm.IntAll((*userData)["i_vip_status"])
-						if vipStatus != 2 {
-							return nil, errors.New("服务已到期,权益开通失败")
-						}
-						if !util.MQFW.Update("vip_upgrade",
-							&map[string]interface{}{"s_userid": userId, "i_isvalid": 0},
-							&map[string]interface{}{
-								"$set": map[string]interface{}{
-									"i_isvalid": 1,
-								},
-							}, false, true) {
-							log.Printf("%s vip_upgrade 更新失败  时间:%d\n", userId, vipEndTime.Unix())
-						}
-						updata := map[string]interface{}{
-							"o_vipjy.o_buyset": filterMap["newBuyset"],
-							"i_vip_expire_tip": 0,
-							"i_vip_status":     2,
-						}
-						if filterMap["area"] != nil {
-							updata["o_vipjy.o_area"] = filterMap["area"] //设置地区
-						}
-						if filterMap["industry"] != nil {
-							updata["o_vipjy.a_buyerclass"] = filterMap["industry"] //设置行业
-						}
-						if ok := util.MQFW.UpdateById("user", userId, map[string]interface{}{
-							"$set": updata,
-						}); !ok {
-							log.Printf("%s更新用户出错 %+v\n", userId, updata)
-							return false, errors.New("更新user用户信息出错")
-						} else {
-							//清理缓存
-							go ClearBigVipUserPower(userId)
-						}
-
-					}
-				}
-
-			} else if productType == "大会员" {
-				filterMap := map[string]interface{}{}
-				if err := json.Unmarshal([]byte(cm.ObjToString((*order)["filter"])), &filterMap); err != nil {
-					return nil, err
-				}
-				createType := cm.IntAll(filterMap["createType"])
-				serverArr := make([]map[string]interface{}, 0)
-				//补充包
-				if supplys, ok := filterMap["supplys"].([]interface{}); ok {
-					serverArr = cm.ObjArrToMapArr(supplys)
-				}
-				if createType != 1 { //1-新建 2-补充 3-延期
-					memberStatus := cm.IntAll((*userData)["i_member_status"])
-					bigEndTime := cm.Int64All((*userData)["i_member_endtime"])
-					//memberStatus := cm.IntAll((*userData)["i_member_status"])
-					freeSubNum := cm.IntAll((*userData)["i_free_sub_num"])
-					paySubNum := cm.IntAll((*userData)["i_pay_sub_num"])
-					startTime := time.Now()
-					endTime := time.Unix(bigEndTime, 0)
-					var ok1 bool
-					if createType == 2 { //大会员补充服务
-						if memberStatus < 0 {
-							return nil, errors.New("服务已到期,权益开通失败")
-						}
-						//大会员补充服务
-						ok1, err = BigMemberSupple(freeSubNum, paySubNum, startTime, endTime, userId, filterMap, serverArr)
-
-					} else if createType == 3 { //大会员延长服务
-						//判断开始时间小于审核时间,开始时间改为审核时间
-						lastEndTime := cm.Int64All((*userData)["i_member_endtime"])
-						//newBigStartTime := time.Now().Unix()
-						startTime := time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 0, 0, 0, 0, time.Now().Location())
-						effectState := true
-						var endTime time.Time
-						if lastEndTime < time.Now().Unix() {
-							//计算大会员结束时间
-							effectState = false
-							cycleCount := cm.IntAll(filterMap["cycle"])
-							cycleType := cm.IntAll(filterMap["cycleType"])
-							nowTime := time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 0, 0, 0, 0, time.Local)
-							endTime = GetDATE(cycleCount, cycleType, nowTime.Unix())
-						}
-						ok1, err = BigMemberExtend(filterMap, userId, param.OrderCode, effectState, startTime, endTime, cm.IntAll((*userData)["i_member_status"]))
-					}
-					if !ok1 && err != nil {
-						return nil, err
-					}
-				}
-			} else if productType == "大会员-子账号" {
-				memberStatus := cm.IntAll((*userData)["i_member_status"])
-				if memberStatus < 0 {
-					return nil, errors.New("服务已到期,权益开通失败")
-				}
-				filterMap := map[string]interface{}{}
-				if err := json.Unmarshal([]byte(cm.ObjToString((*order)["filter"])), &filterMap); err != nil {
-					return nil, err
-				}
-				freeSubNum := cm.IntAll((*userData)["i_free_sub_num"])
-				paySubNum := cm.IntAll((*userData)["i_pay_sub_num"])
-				bigStart := cm.Int64All((*userData)["i_member_starttime"])
-				bigEnd := cm.Int64All((*userData)["i_member_endtime"])
-				areaCount := cm.IntAll(filterMap["areaCount"])
-				ok, err := SubAccount(SubAccountParam{
-					BuyCount:         cm.IntAll((*order)["buy_count"]),
-					BuySubject:       cm.IntAll((*order)["buy_subject"]),
-					StartTime:        time.Unix(bigStart, 0),
-					EndTime:          time.Unix(bigEnd, 0),
-					UserId:           userId,
-					InsertBigService: freeSubNum == 0 && paySubNum == 0,
-					EntId:            cm.IntAll((*order)["ent_id"]),
-					OrderId:          cm.IntAll((*order)["id"]),
-					ProvinceCount:    cm.IntAll(cm.If(areaCount == 0, -1, areaCount)),
-					ProductType:      getBigMemberProductTypeByOrderCode(cm.ObjToString(filterMap["contactOrderCode"])),
-					Phone:            cm.ObjToString((*order)["user_phone"]),
-				})
-				if !ok && err != nil {
-					return nil, err
-				}
-
-			} else if productType == "大会员-补充包" {
-				memberStatus := cm.IntAll((*userData)["i_member_status"])
-				if memberStatus < 0 {
-					return nil, errors.New("服务已到期,权益开通失败")
-				}
-				filterMap := map[string]interface{}{}
-				if err := json.Unmarshal([]byte(cm.ObjToString((*order)["filter"])), &filterMap); err != nil {
-					return nil, err
-				}
-				serverArr := make([]map[string]interface{}, 0)
-				//补充包
-				if supplys, ok := filterMap["supplys"].([]interface{}); ok {
-					serverArr = cm.ObjArrToMapArr(supplys)
-				}
-				ok, err := SupplePackage(userId, serverArr)
-				if !ok && err != nil {
-					return nil, err
-				}
-			}
+	}
+	ok := util.JysqlDB.ExecTx("审核订单", func(tx *sql.Tx) bool {
+		upData := map[string]interface{}{
+			"audit_status": newState,
 		}
-
-		ok := util.JysqlDB.ExecTx("审核订单", func(tx *sql.Tx) bool {
-			upData := map[string]interface{}{
-				"audit_status": newState,
-			}
-			if newState == 3 {
-				now := time.Now()
-				saleTime, _ := time.Parse(cm.Date_Full_Layout, cm.ObjToString((*order)["sale_time"]))
-				if now.Unix() > saleTime.Unix() {
-					saleTime = now
-				}
-				upData["sale_time"] = saleTime.Format(cm.Date_Full_Layout)
-				//“协议归档状态”如若为“已归档”,则“订单状态”更新为“已完成”,如若为“未归档”,则订单状态仍为“未完成”
-				contractData := util.JysqlDB.FindOne("contract", map[string]interface{}{"order_code": param.OrderCode}, "contract_archive_status", "")
-				if contractData != nil && len(*contractData) > 0 {
-					if cm.IntAll((*contractData)["contract_archive_status"]) == 1 {
-						upData["order_status"] = 1
-					}
+		if newState == 3 {
+			now := time.Now()
+			saleTime, _ := time.Parse(cm.Date_Full_Layout, cm.ObjToString((*order)["sale_time"]))
+			if now.Unix() > saleTime.Unix() {
+				saleTime = now
+			}
+			upData["sale_time"] = saleTime.Format(cm.Date_Full_Layout)
+			//“协议归档状态”如若为“已归档”,则“订单状态”更新为“已完成”,如若为“未归档”,则订单状态仍为“未完成”
+			contractData := util.JysqlDB.FindOne("contract", map[string]interface{}{"order_code": param.OrderCode}, "contract_archive_status", "")
+			if contractData != nil && len(*contractData) > 0 {
+				if cm.IntAll((*contractData)["contract_archive_status"]) == 1 {
+					upData["order_status"] = 1
 				}
-				if cm.IntAll((*order)["buy_subject"]) == 2 {
-					orderStatus := cm.IntAll(cm.If(cm.IntAll((*order)["order_status"]) == 1, 1, upData["order_status"]))
-					entId, err, userPositionId := AutomaticallyCreatingEnt(cm.InterfaceToStr((*order)["company_name"]), cm.InterfaceToStr((*order)["user_phone"]), param.OrderCode, orderStatus, userId)
-					if err != nil {
-						log.Printf("AutomaticallyCreatingEnt 自动创建企业信息失败:code:%s,err:%s", param.OrderCode, err.Error())
-						return false
-					} else {
-						if entId != 0 {
-							upData["ent_id"] = entId
-							upData["user_id"] = userPositionId
-						}
-					}
-				}
-				filterMap := map[string]interface{}{}
-				if err := json.Unmarshal([]byte(cm.ObjToString((*order)["filter"])), &filterMap); err != nil {
+			}
+			if cm.IntAll((*order)["buy_subject"]) == 2 {
+				orderStatus := cm.IntAll(cm.If(cm.IntAll((*order)["order_status"]) == 1, 1, upData["order_status"]))
+				entId, err, userPositionId := AutomaticallyCreatingEnt(cm.InterfaceToStr((*order)["company_name"]), cm.InterfaceToStr((*order)["user_phone"]), param.OrderCode, orderStatus, userId)
+				if err != nil {
+					log.Printf("AutomaticallyCreatingEnt 自动创建企业信息失败:code:%s,err:%s", param.OrderCode, err.Error())
 					return false
+				} else {
+					if entId != 0 {
+						upData["ent_id"] = entId
+						upData["user_id"] = userPositionId
+					}
 				}
-				filterMap["audit_type"] = "人工审核"
-				filterByte, _ := json.Marshal(filterMap)
-				upData["filter"] = string(filterByte)
 			}
-			//更新订单
-			up := util.JysqlDB.UpdateByTx(tx, "dataexport_order", map[string]interface{}{"order_code": param.OrderCode}, upData)
-			//插入审核记录表
-			insertData := map[string]interface{}{
-				"operator":      context.User.Username,
-				"create_time":   time.Now().Format(cm.Date_Full_Layout),
-				"operator_type": operatorType,
-				"audit_status":  newState,
-				"back_reason":   param.Reason,
-				"order_code":    param.OrderCode,
-				"audit_type":    2,
+			filterMap := map[string]interface{}{}
+			if err := json.Unmarshal([]byte(cm.ObjToString((*order)["filter"])), &filterMap); err != nil {
+				return false
 			}
-			in := util.JysqlDB.InsertByTx(tx, "audit_records", insertData)
-			return up && in > 0
-		})
-		if !ok {
-			return nil, errors.New("更新订单信息出错")
+			filterMap["audit_type"] = "人工审核"
+			filterByte, _ := json.Marshal(filterMap)
+			upData["filter"] = string(filterByte)
 		}
-	} else {
-		return nil, errors.New("为查询到订单信息")
+		//更新订单
+		up := util.JysqlDB.UpdateByTx(tx, "dataexport_order", map[string]interface{}{"order_code": param.OrderCode}, upData)
+		//插入审核记录表
+		insertData := map[string]interface{}{
+			"operator":      context.User.Username,
+			"create_time":   time.Now().Format(cm.Date_Full_Layout),
+			"operator_type": operatorType,
+			"audit_status":  newState,
+			"back_reason":   param.Reason,
+			"order_code":    param.OrderCode,
+			"audit_type":    2,
+		}
+		in := util.JysqlDB.InsertByTx(tx, "audit_records", insertData)
+		return up && in > 0
+	})
+	if !ok {
+		return nil, errors.New("更新订单信息出错")
 	}
+
 	return map[string]interface{}{
 		"status": 1,
 	}, nil