|
- package hdl
-
- import (
- "applet/app/admin/lib/validate"
- "applet/app/admin/md"
- svc "applet/app/admin/svc/order"
- md2 "applet/app/customer/md"
- svc2 "applet/app/customer/svc"
- "applet/app/db"
- "applet/app/db/model"
- "applet/app/e"
- "applet/app/enum"
- svc3 "applet/app/svc"
- "applet/app/utils"
- "fmt"
- "github.com/gin-gonic/gin"
- "github.com/wechatpay-apiv3/wechatpay-go/core"
- "github.com/wechatpay-apiv3/wechatpay-go/services/refunddomestic"
- "math"
- "time"
- )
-
- // Demo 测试
- func Demo(c *gin.Context) {
- var m []model.CentralKitchenForSchoolUserWithDay
- eg := db.Db
- if err1 := eg.Where("state = 3").Asc("id").Find(&m); err1 != nil {
- e.OutErr(c, e.ERR, err1.Error())
- return
- }
- now := time.Now()
- var records []int
- for _, v := range m {
- mm := new(model.CentralKitchenForSchoolUserRefundDay)
- has, err := db.Db.Where("records_id =? and state = 1", v.Id).Get(mm)
- if err != nil {
- fmt.Println(err)
- return
- }
- if has == false {
- centralKitchenForSchoolUserRefundDayDb := db.CentralKitchenForSchoolUserRefundDayDb{}
- centralKitchenForSchoolUserRefundDayDb.Set(0)
- _, err = centralKitchenForSchoolUserRefundDayDb.CentralKitchenForSchoolUserRefundDayInsert(&model.CentralKitchenForSchoolUserRefundDay{
- OutTradeNo: v.OrdNo,
- OutRequestNo: "",
- Uid: v.Uid,
- IdentityId: v.IdentityId,
- RecordsId: v.Id,
- State: enum.CentralKitchenForSchoolUserRefundDayStateForAuditing,
- Amount: v.Amount,
- Memo: "fill",
- CreateAt: now.Format("2006-01-02 15:04:05"),
- UpdateAt: now.Format("2006-01-02 15:04:05"),
- })
- records = append(records, v.Id)
- }
- }
- e.OutSuc(c, records, nil)
- return
-
- var req md.CentralKitchenForSchoolOrderRefundAuditReq
- err := c.ShouldBindJSON(&req)
- if err != nil {
- err = validate.HandleValidateErr(err)
- err1 := err.(e.E)
- e.OutErr(c, err1.Code, err1.Error())
- return
- }
- err1 := svc.CentralKitchenForSchoolOrderRefundAudit(c, req)
- if err1 != nil {
- fmt.Println(err1.Error())
- e.OutErr(c, e.ERR, err1.Error())
- return
- }
- e.OutSuc(c, "success", nil)
- return
- sysCfgDb := db.SysCfgDb{}
- sysCfgDb.Set()
- sysCfg := sysCfgDb.SysCfgFindWithDb(enum.OpenAlipayAppid, enum.OpenAlipayAppPrivateKey, enum.OpenAlipayPublicKey)
-
- //调用支付宝进行退款
- err6, _ := svc2.CurlAlipayTradeRefund(md2.CurlAlipayTradeRefundReq{
- Config: struct {
- PayAliAppId string `json:"pay_ali_app_id" label:"支付宝开放平台-第三方应用-appid"`
- PayAliPrivateKey string `json:"pay_ali_private_key" label:"支付宝开放平台-第三方应用-接口加签-应用私钥"`
- PayAliPublicKey string `json:"pay_ali_public_key" label:"支付宝开放平台-第三方应用-接口加签-支付宝公钥"`
- }{
- PayAliAppId: sysCfg[enum.OpenAlipayAppid],
- PayAliPrivateKey: sysCfg[enum.OpenAlipayAppPrivateKey],
- PayAliPublicKey: sysCfg[enum.OpenAlipayPublicKey],
- },
- OutTradeNo: "800169659125681442",
- RefundAmount: "180.00",
- RefundReason: "央厨订餐退款",
- OutRequestNo: "r_800169659125681442_1705546121",
- AppAuthToken: "202308BB8ef30019cd8d4a40a3853192c397dX35",
- })
- if err6 != nil {
- fmt.Println(err6.Error())
- }
- return
- qrcodeWithBatchRecordsDb := db.AdminDb{}
- qrcodeWithBatchRecordsDb.Set()
- data, _, err := qrcodeWithBatchRecordsDb.GetAdminRolePermission(1001)
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
- e.OutSuc(c, data, nil)
- go GoOnExecuting()
- return
- }
-
- func DemoV1(c *gin.Context) {
- var outRequestNo = c.Query("out_request_no")
- var outTradeNo = c.Query("out_no")
- centralKitchenForSchoolUserRefundDayDb := db.CentralKitchenForSchoolUserRefundDayDb{}
- centralKitchenForSchoolUserRefundDayDb.Set(0)
- var m []model.CentralKitchenForSchoolUserRefundDay
- if err := centralKitchenForSchoolUserRefundDayDb.Db.Where("out_request_no =?", outRequestNo).Desc("id").Find(&m); err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
-
- centralKitchenForSchoolPackageOrd := db.CentralKitchenForSchoolPackageOrd{}
- centralKitchenForSchoolPackageOrd.Set(outTradeNo)
- ord, _ := centralKitchenForSchoolPackageOrd.GetCentralKitchenForSchoolPackageOrd()
-
- var dealReturnOrdMapForWx = map[string]struct {
- OutRequestNo string `json:"out_request_no"`
- Amount float64 `json:"amount"`
- Total string `json:"total"`
- WxMchId string `json:"wx_mch_id"`
- }{}
- companyWithWxpayInfoDb := db.CompanyWithWxpayInfoDb{}
- companyWithWxpayInfoDb.Set()
- wxMchId, _ := companyWithWxpayInfoDb.GetCompanyWithWxpayInfoByEnterprise(ord.EnterpriseId)
-
- for _, v := range m {
- dealReturnOrdMapForWx[ord.OutTradeNo] = struct {
- OutRequestNo string `json:"out_request_no"`
- Amount float64 `json:"amount"`
- Total string `json:"total"`
- WxMchId string `json:"wx_mch_id"`
- }(struct {
- OutRequestNo string
- Amount float64
- Total string
- WxMchId string
- }{OutRequestNo: outRequestNo, Amount: dealReturnOrdMapForWx[v.OutTradeNo].Amount + utils.StrToFloat64(v.Amount), Total: ord.TotalPrice, WxMchId: wxMchId})
- }
- client, err1 := svc3.NewWxPayClient(c) //初始化微信连接
- if err1 != nil {
- e.OutErr(c, e.ERR, err1.Error())
- return
- }
-
- sysCfgDb := db.SysCfgDb{}
- sysCfgDb.Set()
- sysCfg := sysCfgDb.SysCfgFindWithDb(enum.JsapiPayAppAutToken, enum.OpenAlipayAppid, enum.OpenAlipayAppPrivateKey, enum.OpenAlipayPublicKey, enum.WxJsapiRefundPayNotifyUrl)
- wxSvc := refunddomestic.RefundsApiService{Client: client}
- for k, v := range dealReturnOrdMapForWx {
- resp, _, err6 := wxSvc.Create(c,
- refunddomestic.CreateRequest{
- SubMchid: core.String(v.WxMchId),
- OutTradeNo: core.String(k),
- OutRefundNo: core.String(v.OutRequestNo),
- Reason: core.String("央厨订餐退款"),
- NotifyUrl: core.String(sysCfg[enum.WxJsapiRefundPayNotifyUrl]),
- Amount: &refunddomestic.AmountReq{
- Currency: core.String("CNY"),
- Refund: core.Int64(int64(math.Round(v.Amount * 100))),
- Total: core.Int64(int64(math.Round(utils.StrToFloat64(v.Total) * 100))),
- },
- },
- )
- fmt.Println(">>>>wxRefund<<<<", resp)
- if err6 != nil {
- fmt.Println(err6)
- e.OutErr(c, e.ERR, err6.Error())
- return
- }
- }
- e.OutSuc(c, dealReturnOrdMapForWx, nil)
- return
- }
-
- func GoOnExecuting() {
- for i := 0; i < 20; i++ {
- time.Sleep(1 * time.Second)
- fmt.Println(i)
- }
- }
|