|
@@ -9,6 +9,8 @@ import (
|
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
|
uuid2 "github.com/google/uuid"
|
|
|
"github.com/pkg/errors"
|
|
|
+ "jyOrderManager/internal/consts"
|
|
|
+ "jyOrderManager/internal/logic/order"
|
|
|
"jyOrderManager/internal/model"
|
|
|
"regexp"
|
|
|
"strings"
|
|
@@ -22,7 +24,10 @@ func GetReturnOnlineHandler(r *ghttp.Request) {
|
|
|
if err != nil {
|
|
|
return nil, errors.Wrap(err, "数据校验异常")
|
|
|
}
|
|
|
-
|
|
|
+ if param.PayType == consts.ReturnParamsPayTypeDeposit {
|
|
|
+ return depositHandler(r, param)
|
|
|
+ // 如果是保证金的
|
|
|
+ }
|
|
|
var (
|
|
|
doType = param.DoType
|
|
|
orderCode = param.OrderCode
|
|
@@ -97,6 +102,79 @@ func GetReturnOnlineHandler(r *ghttp.Request) {
|
|
|
}
|
|
|
r.Response.WriteJson(NewResult(rData, err))
|
|
|
}
|
|
|
+func depositHandler(r *ghttp.Request, param model.OrderReturnOnlineParams) (interface{}, error) {
|
|
|
+ depositMoney, err := order.GetDepositMoney(r.Context(), param.OrderCode)
|
|
|
+ if err != nil {
|
|
|
+ return nil, gerror.Wrapf(err, "查询保证金异常%s", param.OrderCode)
|
|
|
+ }
|
|
|
+ if depositMoney == 0 {
|
|
|
+ return nil, fmt.Errorf("未查询到保证金信息%s", param.OrderCode)
|
|
|
+ }
|
|
|
+ payMoney, err := order.GetDepositPayMoney(r.Context(), param.OrderCode)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ if payMoney > 0 {
|
|
|
+ return nil, fmt.Errorf("该笔订单已收到保证金")
|
|
|
+ }
|
|
|
+ var (
|
|
|
+ doType = param.DoType
|
|
|
+ orderCode = param.OrderCode
|
|
|
+ money = gconv.Int(param.Money)
|
|
|
+ payWay = param.PayWay
|
|
|
+ )
|
|
|
+ orderRes, err := g.DB().GetOne(r.Context(), "SELECT buy_subject,user_phone,company_name,product_type,pay_money+(select IFNULL(sum(payMoney),0) as return_money from moneyCorrection where orderCode=?) as pay_money FROM dataexport_order WHERE order_code=?", orderCode, orderCode)
|
|
|
+ if err != nil {
|
|
|
+ return nil, gerror.Wrapf(err, "查询订单数据异常%s", orderCode)
|
|
|
+ }
|
|
|
+ var (
|
|
|
+ orderMap = orderRes.Map()
|
|
|
+ )
|
|
|
+ switch doType {
|
|
|
+ case "query":
|
|
|
+
|
|
|
+ account, product := formatShow(orderMap)
|
|
|
+ return map[string]interface{}{
|
|
|
+ "product": product,
|
|
|
+ "account": account,
|
|
|
+ "money": depositMoney,
|
|
|
+ }, nil
|
|
|
+ case "getPay":
|
|
|
+ var (
|
|
|
+ now = time.Now()
|
|
|
+ exDay = now.AddDate(0, 0, 3)
|
|
|
+ targetTime = time.Date(exDay.Year(), exDay.Month(), exDay.Day(), 23, 59, 59, 0, time.Local)
|
|
|
+ token = uuid2.New().String()
|
|
|
+ payPath string
|
|
|
+ )
|
|
|
+ // TODO 替换调配置
|
|
|
+ switch payWay {
|
|
|
+ case 1:
|
|
|
+ payPath = "/weixin/pay/returnMoney"
|
|
|
+ case 2:
|
|
|
+ payPath = "/returnMoney/aliPage"
|
|
|
+ default:
|
|
|
+ return nil, fmt.Errorf("方式异常")
|
|
|
+ }
|
|
|
+
|
|
|
+ if _, err := g.DB().Insert(r.Context(), consts.OrderDepositOnlineTableName, map[string]interface{}{
|
|
|
+ "status": 0,
|
|
|
+ "token": token,
|
|
|
+ "order_code": orderCode,
|
|
|
+ "return_money": money,
|
|
|
+ "expire_time": targetTime.Format("2006-01-02 15:04:05"),
|
|
|
+ "creat_time": now.Format("2006-01-02 15:04:05"),
|
|
|
+ }); err != nil {
|
|
|
+ return nil, gerror.Wrapf(err, "保存回款数据异常")
|
|
|
+ }
|
|
|
+ return map[string]interface{}{
|
|
|
+ "product": fmt.Sprintf("%s%s?token=%s", g.Cfg("global").MustGet(r.Context(), "webDomain.jy").String(), payPath, token),
|
|
|
+ "expire": targetTime.Unix(),
|
|
|
+ }, nil
|
|
|
+ }
|
|
|
+ return nil, fmt.Errorf("未知操作")
|
|
|
+
|
|
|
+}
|
|
|
|
|
|
func formatShow(orderMap map[string]interface{}) (string, string) {
|
|
|
var account string
|