mh_goadmin_server/app/admin/apis/ordermanage/order.go
2023-09-16 10:56:39 +08:00

263 lines
6.7 KiB
Go

package ordermanage
import (
"encoding/json"
"errors"
"fmt"
"github.com/gin-gonic/gin"
"go-admin/app/admin/models"
orm "go-admin/common/global"
"go-admin/logger"
"go-admin/tools/app"
"net/http"
)
func OrderList(c *gin.Context) {
req := &models.OrderListReq{}
if c.ShouldBindJSON(req) != nil {
logger.Errorf("para err")
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
reqJson, _ := json.Marshal(req)
fmt.Println("reqJson:", string(reqJson))
//data, _ := c.Get(jwtauth.JwtPayloadKey)
//mapClaims := data.(jwtauth.MapClaims)
//sysUid := float64(0)
//if v, ok := mapClaims["identity"]; ok {
// sysUid = v.(float64)
//}
//fmt.Println("sysUid:", sysUid)
//var suser models.SysUser
//err := orm.Eloquent.Table("sys_user").Where("user_id", fmt.Sprintf("%.0f", sysUid)).Find(&suser).Error
//if err != nil {
//
//}
list, count, err := req.List()
if err != nil {
logger.Errorf("err:", err)
app.Error(c, http.StatusInternalServerError, err, "查询失败")
return
}
ret := map[string]interface{}{
"count": count,
"list": list,
"pageIndex": req.Page,
"total_page": req.PageSize,
}
app.OK(c, ret, "")
}
func OrderInfo(c *gin.Context) {
req := struct {
OrderId uint32 `json:"order_id"`
}{}
if c.ShouldBindJSON(&req) != nil {
logger.Errorf("para err")
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
order := &models.Order{}
order.ID = req.OrderId
ret, err := order.Info()
if err != nil {
logger.Errorf("err:", err)
app.Error(c, http.StatusInternalServerError, err, "查询失败")
return
}
app.OK(c, ret, "")
}
func DeliverGoods(c *gin.Context) {
m := models.Order{}
if c.ShouldBindJSON(&m) != nil {
logger.Errorf("para err")
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
// 更新卡的状态
if len(m.GameCardSerialNumbers) == 0 {
logger.Errorf("err:")
msg := "发货卡编码不能为空"
app.Error(c, http.StatusInternalServerError, errors.New("GameCardSerialNumber null"), msg)
return
}
err, msg := m.Deliver()
if err != nil {
logger.Errorf("err:", err)
if msg == "" {
msg = "更新失败"
}
app.Error(c, http.StatusInternalServerError, err, msg)
return
}
app.OK(c, nil, "")
}
func RevertGoods(c *gin.Context) {
order := &models.Order{}
//req := struct {
// SerialNumber string `json:"serial_number" ` // 编号
//}{}
if c.ShouldBindJSON(order) != nil {
logger.Errorf("para err")
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
// 更新卡的状态
// 门店id 更新
//order := &models.Order{}
err := order.Revert()
if err != nil {
logger.Errorf("err:", err)
errMag := "更新失败"
if err.Error() == "untreated_issue_feedback" {
errMag = "请先检测用户反馈问题卡"
}
app.Error(c, http.StatusInternalServerError, err, errMag)
return
}
app.OK(c, nil, "")
}
func ExpressCompanyList(c *gin.Context) {
company := &models.ExpressCompany{}
list, err := company.List()
if err != nil {
logger.Error("err:", err)
app.Error(c, http.StatusInternalServerError, err, "查询失败")
return
}
app.OK(c, list, "")
return
}
func OrderDel(c *gin.Context) {
req := struct {
OrderId uint32 `json:"order_id"`
}{}
if c.ShouldBindJSON(&req) != nil {
logger.Errorf("para err")
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
order := &models.Order{}
order.ID = req.OrderId
err := order.Del()
if err != nil {
logger.Errorf("err:", err)
app.Error(c, http.StatusInternalServerError, err, "查询失败")
return
}
app.OK(c, nil, "")
}
func OrderRefund(c *gin.Context) {
req := struct {
OrderId uint32 `json:"order_id"`
}{}
if c.ShouldBindJSON(&req) != nil {
logger.Errorf("para err")
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
order := &models.Order{}
order.ID = req.OrderId
err := order.Refund()
if err != nil {
logger.Errorf("err:", err)
app.Error(c, http.StatusInternalServerError, err, "查询失败")
return
}
app.OK(c, nil, "")
}
func ExpressNoList(c *gin.Context) {
req := struct {
ExpressNo string `json:"express_no"`
}{}
if c.ShouldBindJSON(&req) != nil {
logger.Errorf("para err")
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
info := models.ExpressNoInfo{
Store: new(models.Store),
}
// 还卡 共享卡 问题卡
var orderCard models.OrderCard
err := orm.Eloquent.Table("order_card").Where("revert_express_no=?", req.ExpressNo).Find(&orderCard).Error
if orderCard.RevertExpressNo == req.ExpressNo {
info.StoreId = uint32(orderCard.StoreId)
info.ExpressNo = orderCard.RevertExpressNo
info.ExpressCompanyNo = orderCard.RevertExpressCompanyNo
info.ExpressCompany = orderCard.RevertExpressCompany
info.OperationType = models.OperationTypeRevertRentCard
info.CorrelationId = orderCard.OrderId
info.SetStore()
app.OK(c, info, "")
return
}
var shareCardBill models.UserShareCardBill
err = orm.Eloquent.Table("user_share_card_bill").Where("express_no=?", req.ExpressNo).Find(&shareCardBill).Error
if shareCardBill.ExpressNo == req.ExpressNo {
info.StoreId = shareCardBill.StoreId
info.ExpressNo = shareCardBill.ExpressNo
info.ExpressCompanyNo = shareCardBill.ExpressCompanyNo
info.ExpressCompany = shareCardBill.ExpressCompany
info.OperationType = models.OperationTypeUserShareCard
info.CorrelationId = shareCardBill.ID
info.SetStore()
app.OK(c, info, "")
return
}
var cardIssue models.CardIssueFeedback
err = orm.Eloquent.Table("card_issue_feedback").Where("express_no=?", req.ExpressNo).Find(&cardIssue).Error
if cardIssue.ExpressNo == req.ExpressNo {
info.StoreId = cardIssue.StoreId
info.ExpressNo = cardIssue.ExpressNo
info.ExpressCompanyNo = cardIssue.ExpressCompanyNo
info.ExpressCompany = cardIssue.ExpressCompany
info.OperationType = models.OperationTypeIssueCard
info.CorrelationId = cardIssue.ID
info.SetStore()
app.OK(c, info, "")
return
}
//if info.OperationType == "" {
//
//}
logger.Errorf("express no err:")
app.Error(c, http.StatusInternalServerError, err, "查询失败")
return
//app.OK(c, nil, "")
}
func FundRecordList(c *gin.Context) {
req := &models.FundRecordListReq{}
if c.ShouldBindJSON(req) != nil {
logger.Errorf("para err")
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
list, count, err := req.List()
if err != nil {
logger.Errorf("err:", err)
app.Error(c, http.StatusInternalServerError, err, "查询失败")
return
}
ret := map[string]interface{}{
"count": count,
"list": list,
"pageIndex": req.Page,
"total_page": req.PageSize,
}
app.OK(c, ret, "")
}