1.小程序调用erp登录接口不判断验证码; 2.修改原接口的翻页相关字段; 3.修复float64转int32精度丢失的缺陷; 4.注释库存导入时采购价需大于0的校验; 5.相关域名改成生产环境域名;
307 lines
8.3 KiB
Go
307 lines
8.3 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"
|
|
)
|
|
|
|
// OrderList 查询租赁订单列表
|
|
// @Summary 查询租赁订单列表
|
|
// @Tags 租卡系统-订单管理
|
|
// @Produce json
|
|
// @Accept json
|
|
// @Param request body models.OrderListReq true "查询租赁订单列表"
|
|
// @Success 200 {object} app.Response "{"code": 200, "data": { "total": 4, "pageIndex":0, "total_page":10, "list":{} }}"
|
|
// @Router /api/v1/order/list [post]
|
|
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(0, c)
|
|
if err != nil {
|
|
logger.Errorf("err:", logger.Field("err", err))
|
|
app.Error(c, http.StatusInternalServerError, err, "查询失败")
|
|
return
|
|
}
|
|
|
|
ret := map[string]interface{}{
|
|
"total": count,
|
|
"list": list,
|
|
"pageIndex": req.Page,
|
|
"pageSize": 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:", logger.Field("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 m.DeliverShopperCode != "" && !models.CheckCode(m.DeliverShopperCode) {
|
|
app.Error(c, http.StatusBadRequest, errors.New("deliver_shopper_code 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:", logger.Field("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
|
|
}
|
|
|
|
if order.RevertShopperCode != "" && !models.CheckCode(order.RevertShopperCode) {
|
|
app.Error(c, http.StatusBadRequest, errors.New("order revert shopper code err"), "店员码错误")
|
|
return
|
|
}
|
|
|
|
err := order.Revert()
|
|
if err != nil {
|
|
logger.Errorf("err:", logger.Field("err", err))
|
|
app.Error(c, http.StatusInternalServerError, err, err.Error())
|
|
return
|
|
}
|
|
app.OK(c, nil, "")
|
|
}
|
|
|
|
func ExpressCompanyList(c *gin.Context) {
|
|
company := &models.ExpressCompany{}
|
|
list, err := company.List()
|
|
if err != nil {
|
|
logger.Error("err:", logger.Field("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:", logger.Field("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:", logger.Field("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:", logger.Field("err", err))
|
|
app.Error(c, http.StatusInternalServerError, err, "查询失败")
|
|
return
|
|
}
|
|
|
|
ret := map[string]interface{}{
|
|
"total": count,
|
|
"list": list,
|
|
"pageIndex": req.Page,
|
|
"pageSize": req.PageSize,
|
|
}
|
|
app.OK(c, ret, "")
|
|
}
|
|
|
|
// OrderListExport 导出订单列表
|
|
// @Summary 导出订单列表
|
|
// @Tags 订单管理
|
|
// @Produce json
|
|
// @Accept json
|
|
// @Param request body models.OrderListReq true "导出订单列表模型"
|
|
// @Success 200 {object} app.Response "{"code": 200, "data": { "export_url": "" }}"
|
|
// @Router /api/v1/order/list_export [post]
|
|
func OrderListExport(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))
|
|
|
|
_, _, filePath, err := req.List(1, c)
|
|
if err != nil {
|
|
logger.Errorf("OrderListExport err:", logger.Field("err", err))
|
|
app.Error(c, http.StatusInternalServerError, err, "导出失败")
|
|
return
|
|
}
|
|
|
|
ret := map[string]interface{}{
|
|
"export_url": filePath,
|
|
}
|
|
|
|
app.OK(c, ret, "")
|
|
}
|