Sfoglia il codice sorgente

订单优化第一次

xuzhiheng 2 anni fa
parent
commit
c13e8a6534

+ 37 - 0
src/order/optimizeOrder.go

@@ -0,0 +1,37 @@
+package order
+
+import (
+	qutil "qfw/util"
+	"util"
+
+	"github.com/baiy/Cadmin-server-go/admin"
+)
+
+func AddUpdateRecord(context *admin.Context) (interface{}, error) {
+	param := new(struct {
+		OrderCode        string `form:"orderCode"`
+		OrderMoney       int    `form:"orderMoney"`
+		PayMoney         int    `form:"payMoney"`
+		BigSubMoney      int    `form:"bigSubMoney"`
+		SupplyMoney      int    `form:"supplyMoney"`
+		Commission       int    `form:"commission"`
+		ProceduresMoney  int    `form:"proceduresMoney"`
+		CorrectionReason string `form:"correctionReason"`
+	})
+	err := context.Form(param)
+	if err != nil {
+		return nil, err
+	}
+	util.JysqlDB.Insert("moneyCorrection", map[string]interface{}{
+		"orderCode":        param.OrderCode,
+		"orderMoney":       param.OrderMoney,
+		"payMoney":         param.PayMoney,
+		"bigSubMoney":      param.BigSubMoney,
+		"supplyMoney":      param.SupplyMoney,
+		"commission":       param.Commission,
+		"proceduresMoney":  param.ProceduresMoney,
+		"correctionReason": param.CorrectionReason,
+		"createTime":       qutil.NowFormat(qutil.Date_Full_Layout),
+	})
+	return map[string]interface{}{"status": 1}, nil
+}

+ 37 - 9
src/order/orderManageController.go

@@ -487,6 +487,8 @@ func OrderDetails(context *admin.Context) (interface{}, error) {
 		}
 		(*res)["productType"] = (*res)["product_type"]
 		(*res)["orderStatus"] = (*res)["order_status"]
+		moneyCorrectionData := util.JysqlDB.Find("moneyCorrection", map[string]interface{}{"orderCode": orderCode}, "", "createTime desc", 0, 0)
+		(*res)["moneyCorrectionData"] = moneyCorrectionData
 		if param.Type == "VIP订阅" || param.Type == "超级订阅" { //VIP订阅
 			result = VipOrderDetails(res)
 		} else if param.Type == "数据报告" { //数据报告
@@ -575,20 +577,43 @@ func ConfirmRefund(context *admin.Context) (interface{}, error) {
 			return true, nil
 		}
 	} else if param.IsOffline == 1 {
-		ok := util.JysqlDB.Update("dataexport_order", qMap, map[string]interface{}{
-			"refund_status": param.RefundStatus,
+		// ok := util.JysqlDB.Update("dataexport_order", qMap, map[string]interface{}{
+		// 	"refund_status": param.RefundStatus,
+		// })
+		// if ok {
+		// 	okid := util.JysqlDB.Insert("refund_record", map[string]interface{}{
+		// 		"order_code":    orderCode,
+		// 		"refund_time":   qutil.NowFormat(qutil.Date_Full_Layout),
+		// 		"refund_money":  param.RefundMoney,
+		// 		"refund_reason": param.RefundReason,
+		// 	})
+		// 	if okid > 0 {
+		// 		return true, nil
+		// 	}
+		// }
+		okid := util.JysqlDB.Insert("refund_record", map[string]interface{}{
+			"order_code":    orderCode,
+			"refund_time":   qutil.NowFormat(qutil.Date_Full_Layout),
+			"refund_money":  param.RefundMoney,
+			"refund_reason": param.RefundReason,
 		})
-		if ok {
-			okid := util.JysqlDB.Insert("refund_record", map[string]interface{}{
-				"order_code":    orderCode,
-				"refund_time":   qutil.NowFormat(qutil.Date_Full_Layout),
-				"refund_money":  param.RefundMoney,
-				"refund_reason": param.RefundReason,
+		if okid > 0 {
+			orderData := util.JysqlDB.SelectBySql("select  (IFNULL( a.pay_money, 0 )-IFNULL(a.commission,0)-IFNULL(a.procedures_money,0))-(select  IFNULL(sum(b.return_money),0) from  return_money_record  b where b.order_code=a.order_code and  b.state=1) + (select  IFNULL(sum(c.refund_money),0) from refund_record c where c.order_code=a.order_code) as outstandingPayment,(IFNULL( a.pay_money, 0 )-IFNULL(a.commission,0)-IFNULL(a.procedures_money,0)) as moneys from dataexport_order a where  a.order_code=?", orderCode)
+			outstandingPayment = qutil.IntAll((*orderData)["outstandingPayment"]) //未回款金额
+			moneys = qutil.IntAll((*orderData)["moneys"])                         //应收金额
+			if outstandingPayment == moneys {
+				param.RefundStatus = 1
+			} else if 0 < outstandingPayment && outstandingPayment < moneys {
+				param.RefundStatus = 2
+			}
+			ok := util.JysqlDB.Update("dataexport_order", qMap, map[string]interface{}{
+				"refund_status": param.RefundStatus,
 			})
-			if okid > 0 {
+			if ok {
 				return true, nil
 			}
 		}
+
 	}
 	return false, nil
 }
@@ -3568,6 +3593,9 @@ func BackOrderAuditList(context *admin.Context) (interface{}, error) {
 
 	} else if param.AuditStatus == "" {
 		condition = append(condition, "audit_status in (1,2)")
+	} else if param.AuditStatus == "3" {
+		condition = append(condition, "audit_status =3")
+		condition = append(condition, `locate('"audit_type":"人工审核"', filter)>0`)
 	} else {
 		condition = append(condition, fmt.Sprintf("audit_status =%s", param.AuditStatus))
 	}

+ 3 - 5
src/order/otherOrderController.go

@@ -183,7 +183,6 @@ func CreateOtherOrder(context *admin.Context) (interface{}, error) {
 		if _, ok := AdSourceMap[param.AdSource]; !ok {
 			return nil, errors.New("广告来源有误")
 		}
-		log.Println(param.AdSource)
 	} else if param.ProductType == "2" {
 		param.ProductType = "结构化数据"
 	} else if param.ProductType == "3" {
@@ -748,7 +747,7 @@ func EditBatchReturnMoneyInfo(context *admin.Context) (interface{}, error) {
 		}
 		//查询订单金额
 		for _, value := range param.OrderArr {
-			orderData := util.JysqlDB.SelectBySql("select  (IFNULL( a.pay_money, 0 )-IFNULL(a.commission,0)-IFNULL(a.procedures_money,0))-(select  IFNULL(sum(b.return_money),0) from  return_money_record  b where b.order_code=a.order_code and   b.state=1)   as outstandingPayment, a.*  from  dataexport_order a where  a.id=? ", value["orderId"])
+			orderData := util.JysqlDB.SelectBySql("select  (IFNULL( a.pay_money, 0 )-IFNULL(a.commission,0)-IFNULL(a.procedures_money,0))-(select  IFNULL(sum(b.return_money),0) from  return_money_record  b where b.order_code=a.order_code and  b.state=1) + (select  IFNULL(sum(c.refund_money),0) from refund_record c where c.order_code=a.order_code) as outstandingPayment, a.*  from  dataexport_order a where  a.id=?", value["orderId"])
 			if orderData == nil {
 				continue
 			}
@@ -759,7 +758,6 @@ func EditBatchReturnMoneyInfo(context *admin.Context) (interface{}, error) {
 			(*orderData)[0]["returnVoucherUrl"] = param.ReturnVoucherUrl
 			realPrice += qutil.IntAll(value["money"])
 			orderArr[qutil.ObjToString((*orderData)[0]["order_code"])] = (*orderData)[0]
-			log.Println(qutil.IntAll((*orderData)[0]["pay_money"]))
 			price = price + qutil.IntAll((*orderData)[0]["outstandingPayment"]) //剩余回款
 		}
 		if price == 0 {
@@ -780,7 +778,7 @@ func EditBatchReturnMoneyInfo(context *admin.Context) (interface{}, error) {
 		//手动录入回款
 		//查询订单金额
 		for _, value := range param.OrderArr {
-			orderData := util.JysqlDB.SelectBySql("select  (IFNULL( a.pay_money, 0 )-IFNULL(a.commission,0)-IFNULL(a.procedures_money,0))-(select  IFNULL(sum(b.return_money),0) from  return_money_record  b where b.order_code=a.order_code and  b.state=1)   as outstandingPayment, a.*  from  dataexport_order a where  a.id=?", value["orderId"])
+			orderData := util.JysqlDB.SelectBySql("select  (IFNULL( a.pay_money, 0 )-IFNULL(a.commission,0)-IFNULL(a.procedures_money,0))-(select  IFNULL(sum(b.return_money),0) from  return_money_record  b where b.order_code=a.order_code and  b.state=1) + (select  IFNULL(sum(c.refund_money),0) from refund_record c where c.order_code=a.order_code) as outstandingPayment, a.*  from  dataexport_order a where  a.id=?", value["orderId"])
 			if orderData == nil {
 				continue
 			}
@@ -953,7 +951,7 @@ func SurplusPrice(context *admin.Context) (interface{}, error) {
 	}
 	price := int(0)
 	for key, value := range param.OrderArr {
-		orderData := util.JysqlDB.SelectBySql("select  (IFNULL( a.pay_money, 0 )-IFNULL(a.commission,0)-IFNULL(a.procedures_money,0))-(select  IFNULL(sum(b.return_money),0) from  return_money_record  b where b.order_code=a.order_code and  b.state=1)   as outstandingPayment from  dataexport_order a where  a.id=?", value["orderId"])
+		orderData := util.JysqlDB.SelectBySql("select  (IFNULL( a.pay_money, 0 )-IFNULL(a.commission,0)-IFNULL(a.procedures_money,0))-(select  IFNULL(sum(b.return_money),0) from  return_money_record  b where b.order_code=a.order_code and  b.state=1) + (select  IFNULL(sum(c.refund_money),0) from refund_record c where c.order_code=a.order_code) as outstandingPayment, a.*  from  dataexport_order a where  a.id=?", value["orderId"])
 		if orderData == nil {
 			continue
 		}

+ 11 - 9
src/order/otherOrderService.go

@@ -625,12 +625,10 @@ func createVipOrder(param *CreateOtherOrderParams, code string) (bool, string) {
 		d, _ := time.ParseDuration("-24h")
 		vipStartTime = vipStartTime.Add(d)
 	}
-	log.Println(vipStartTime)
 	if param.CycleUnit == 3 {
 		_endTime := vipStartTime.AddDate(0, 0, param.CycleCount)
 		t := _endTime.Format(qutil.Date_Short_Layout) + " 23:59:59"
 		endTime, _ = time.ParseInLocation(qutil.Date_Full_Layout, t, time.Local)
-		//log.Println("截止时间:", endTime)
 	} else {
 		endTime = GetDATE1(month, vipStartTime.Unix())
 	}
@@ -644,7 +642,6 @@ func createVipOrder(param *CreateOtherOrderParams, code string) (bool, string) {
 	}
 	dateType := 1
 	if param.VipStartTime != "" {
-		//log.Println(vipStartTime.Unix())
 		if vipStartTime.Unix() > time.Now().Unix() {
 			dateType = 2
 		}
@@ -1064,12 +1061,12 @@ func updateVipOrder(param *CreateOtherOrderParams, code string, returnStatus int
 		userData, ok = util.MQFW.FindOne("user", map[string]interface{}{"_id": mongodb.StringTOBsonId(param.UserId)})
 	}
 	userId := ""
-	var vst, vet string
+	var vet string
 	if ok && userData != nil && len(*userData) > 0 {
 		userId = mongodb.BsonIdToSId((*userData)["_id"])
-		st := qutil.Int64All((*userData)["l_vip_starttime"])
+		// st := qutil.Int64All((*userData)["l_vip_starttime"])
 		et := qutil.Int64All((*userData)["l_vip_endtime"])
-		vst = qutil.FormatDateByInt64(&st, qutil.Date_Full_Layout)
+		// vst = qutil.FormatDateByInt64(&st, qutil.Date_Full_Layout)
 		vet = qutil.FormatDateByInt64(&et, qutil.Date_Full_Layout)
 		if param.VipType == 1 {
 			vipInfo := qutil.ObjToMap((*userData)["o_vipjy"])
@@ -1088,9 +1085,9 @@ func updateVipOrder(param *CreateOtherOrderParams, code string, returnStatus int
 		}
 		if oks && userDatas != nil && len(*userDatas) > 0 {
 			userId = mongodb.BsonIdToSId((*userDatas)["_id"])
-			st := qutil.Int64All((*userDatas)["l_vip_starttime"])
+			// st := qutil.Int64All((*userDatas)["l_vip_starttime"])
 			et := qutil.Int64All((*userDatas)["l_vip_endtime"])
-			vst = qutil.FormatDateByInt64(&st, qutil.Date_Full_Layout)
+			// vst = qutil.FormatDateByInt64(&st, qutil.Date_Full_Layout)
 			vet = qutil.FormatDateByInt64(&et, qutil.Date_Full_Layout)
 			if param.VipType == 1 {
 				vipInfo := qutil.ObjToMap((*userDatas)["o_vipjy"])
@@ -1159,7 +1156,8 @@ func updateVipOrder(param *CreateOtherOrderParams, code string, returnStatus int
 			insertData["vip_type"] = 1
 		} else if param.VipType == 2 {
 			insertData["vip_type"] = 2
-			insertData["vip_starttime"] = vst
+			// insertData["vip_starttime"] = vst
+			insertData["vip_starttime"] = param.CreateTime
 			insertData["vip_endtime"] = vet
 		}
 		if param.Badge != "" {
@@ -1528,6 +1526,10 @@ func ManualUpdateBatchReturnInfo(orderArr map[string]map[string]interface{}, ope
 			if qutil.IntAll(value["order_status"]) == 0 {
 				updateData["order_status"] = 1
 			}
+			count := util.JysqlDB.Count("return_money_record", map[string]interface{}{"order_code": qutil.ObjToString(value["order_code"])})
+			if count < 1 {
+				updateData["sale_time"] = param.BNKTIM
+			}
 			ok1 := util.JysqlDB.UpdateByTx(tx, "dataexport_order", map[string]interface{}{"id": value["id"]}, updateData)
 			ok2 := util.JysqlDB.InsertByTx(tx, "return_money_record", insertData)
 			log.Println(ok1, ok2)

+ 9 - 8
src/order/router.go

@@ -72,12 +72,12 @@ func init() {
 		"Baiy.Cadmin.Order.orderList.confirmRefund":     ConfirmRefund,
 		"Baiy.Cadmin.Order.orderList.exportOrder":       ExportOrder,
 		"Baiy.Cadmin.Order.orderList.transferAccounts":  TransferAccounts,
-		"Baiy.Cadmin.Order.orderList.createBigOrder":    CreateBigOrder,
-		"Baiy.Cadmin.Order.orderList.updateBigOrder":    UpdateBigOrder,
-		"Baiy.Cadmin.Order.orderList.createSubOrder":    CreateSubOrder,
-		"Baiy.Cadmin.Order.orderList.createSupplyOrder": CreateSupplyOrder,
-		"Baiy.Cadmin.Order.orderList.updateSubOrder":    UpdateSubOrder,
-		"Baiy.Cadmin.Order.orderList.updateSupplyOrder": UpdateSupplyOrder,
+		"Baiy.Cadmin.Order.orderList.createBigOrder":    CreateBigOrder,    //全部订单-创建大会员订单
+		"Baiy.Cadmin.Order.orderList.updateBigOrder":    UpdateBigOrder,    //全部订单-修改大会员订单
+		"Baiy.Cadmin.Order.orderList.createSubOrder":    CreateSubOrder,    //全部订单-创建子账号订单
+		"Baiy.Cadmin.Order.orderList.createSupplyOrder": CreateSupplyOrder, //全部订单-创建补充包订单
+		"Baiy.Cadmin.Order.orderList.updateSubOrder":    UpdateSubOrder,    //全部订单-修改子账号订单
+		"Baiy.Cadmin.Order.orderList.updateSupplyOrder": UpdateSupplyOrder, //全部订单-修改补充包订单
 		"Baiy.Cadmin.Order.userMsg":                     UserMsg,
 		"Baiy.Cadmin.Order.userMsgExport":               UserMsgExport,
 		"Baiy.Cadmin.Order.isOpenBig":                   IsOpenBig,
@@ -88,8 +88,8 @@ func init() {
 		"Baiy.Cadmin.Order.getCurrentServer":            GetCurrentServer,
 		"Baiy.Cadmin.Order.uploadPay":                   UploadPay,
 		"Baiy.Cadmin.Order.openInvoice":                 OpenInvoice,
-		"Baiy.Cadmin.Order.createOtherOrder":            CreateOtherOrder,
-		"Baiy.Cadmin.Order.updateOtherOrder":            UpdateOtherOrder,
+		"Baiy.Cadmin.Order.createOtherOrder":            CreateOtherOrder, //全部订单-创建其他订单
+		"Baiy.Cadmin.Order.updateOtherOrder":            UpdateOtherOrder, //全部订单-修改其他订单
 		"Baiy.Cadmin.Order.updateOrder":                 UpdateOrder,
 		"Baiy.Cadmin.Order.editReturnMoneyInfo":         EditReturnMoneyInfo,
 		"Baiy.Cadmin.Order.editBatchReturnMoneyInfo":    EditBatchReturnMoneyInfo,
@@ -132,6 +132,7 @@ func init() {
 		"Baiy.Cadmin.Order.createUserAccount":                 CreateUserAccount,
 		"Baiy.Cadmin.Order.vipGives":                          VipGives,
 		"Baiy.Cadmin.Order.copyLink":                          CopyLink,
+		"Baiy.Cadmin.Order.addUpdateRecord":                   AddUpdateRecord,
 	})
 	RegisterDispatch(OrderDispatcher)
 }

+ 11 - 4
src/order/suppleSalePerson.go

@@ -5,9 +5,6 @@ import (
 	"encoding/json"
 	"errors"
 	"fmt"
-	"github.com/baiy/Cadmin-server-go/admin"
-	"github.com/baiy/Cadmin-server-go/system/utils"
-	"go.mongodb.org/mongo-driver/bson"
 	"log"
 	"mongodb"
 	cm "qfw/util"
@@ -15,6 +12,10 @@ import (
 	"strings"
 	"time"
 	"util"
+
+	"github.com/baiy/Cadmin-server-go/admin"
+	"github.com/baiy/Cadmin-server-go/system/utils"
+	"go.mongodb.org/mongo-driver/bson"
 )
 
 // SalePersonList 补录销售信息列表
@@ -569,7 +570,6 @@ func OrdersExamine(context *admin.Context) (interface{}, error) {
 			upData := map[string]interface{}{
 				"audit_status": newState,
 			}
-			log.Println(newState, "++++++++")
 			if newState == 3 {
 				now := time.Now()
 				saleTime, _ := time.Parse(cm.Date_Full_Layout, cm.ObjToString((*order)["sale_time"]))
@@ -594,6 +594,13 @@ func OrdersExamine(context *admin.Context) (interface{}, error) {
 						upData["ent_id"] = entId
 					}
 				}
+				filterMap := map[string]interface{}{}
+				if err := json.Unmarshal([]byte(cm.ObjToString((*order)["filter"])), &filterMap); err != nil {
+					return false
+				}
+				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)

+ 6 - 1
userSync/src/server/server.go

@@ -125,6 +125,11 @@ func StartTask1() {
 						isExists, err := redis.Exists("qmx_filter", "qmx_auto_return_"+fmt.Sprint(id))
 						if !isExists || err != nil {
 							log.Println("自动回款匹配成功", id, orderCode)
+							updateData := map[string]interface{}{"return_status": 1}
+							count := Mysql.Count("return_money_record", map[string]interface{}{"order_code": orderCode})
+							if count < 1 {
+								updateData["sale_time"] = returnTime
+							}
 							returnId := Mysql.Insert("return_money_record", map[string]interface{}{
 								"order_code":            orderCode,
 								"return_time":           returnTime,
@@ -142,7 +147,7 @@ func StartTask1() {
 							redis.Put("qmx_filter", "qmx_auto_return_"+fmt.Sprint(id), 1, 3600)
 							if returnId > 0 {
 								log.Println("自动回款创建回款记录成功", id, orderCode)
-								Mysql.Update("dataexport_order", map[string]interface{}{"order_code": orderCode}, map[string]interface{}{"return_status": 1})
+								Mysql.Update("dataexport_order", map[string]interface{}{"order_code": orderCode}, updateData)
 								Mysqls.Update("transaction", map[string]interface{}{"id": id}, map[string]interface{}{"ISRELATION": 1, "return_id": fmt.Sprint(returnId)})
 							} else {
 								log.Println("自动回款创建回款记录失败", id, orderCode)