Merge remote-tracking branch 'origin/dev_1.4.1'
# Conflicts: # config/settings.yml
This commit is contained in:
commit
5abaddf3fd
|
@ -308,7 +308,7 @@ func QueryName(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var detailReq models.ErpStockCommodityListReq
|
var detailReq models.ErpStockCommodityListReq
|
||||||
detailReq.CommodityName = req.CommodityName
|
detailReq.CommodityName = append(detailReq.CommodityName, req.CommodityName)
|
||||||
detailReq.PageIndex = req.PageIndex
|
detailReq.PageIndex = req.PageIndex
|
||||||
detailReq.PageSize = req.PageSize
|
detailReq.PageSize = req.PageSize
|
||||||
detailReq.StoreId = req.StoreId
|
detailReq.StoreId = req.StoreId
|
||||||
|
|
|
@ -699,7 +699,7 @@ type HmPayUnifiedOrderRsp struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParsePrivateKeyDeovo() (*rsa.PrivateKey, error) {
|
func ParsePrivateKeyDeovo() (*rsa.PrivateKey, error) {
|
||||||
//fp := "/Users/max/Documents/code/deovo/mh_goadmin_server/config/hm_pay/private_key.pem"
|
//fp := "/Users/max/Documents/code/deovo/mh_goadmin_server/config/hm_pay/deovo_private_key.pem"
|
||||||
fp := "./config/hm_pay/deovo_private_key.pem"
|
fp := "./config/hm_pay/deovo_private_key.pem"
|
||||||
privateKey, err := os.ReadFile(fp)
|
privateKey, err := os.ReadFile(fp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1063,7 +1063,7 @@ func HmJsPayBToCOrder(storeId uint32, orderId string, totalFee float64, authCode
|
||||||
|
|
||||||
if config.ApplicationConfig.Mode == "dev" {
|
if config.ApplicationConfig.Mode == "dev" {
|
||||||
biz.CreateIp = clientIpDev
|
biz.CreateIp = clientIpDev
|
||||||
publicPara.AppId = HmPayMerchantId
|
biz.TerminalId = "test999" // 测试终端
|
||||||
}
|
}
|
||||||
|
|
||||||
unifiedOrderReq.HmPayPublicPara = publicPara
|
unifiedOrderReq.HmPayPublicPara = publicPara
|
||||||
|
@ -1080,21 +1080,12 @@ func HmJsPayBToCOrder(storeId uint32, orderId string, totalFee float64, authCode
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.ApplicationConfig.Mode == "dev" {
|
sign, err := GenHmPaySignDeovo(m)
|
||||||
sign, err := GenHmPaySign(m)
|
if err != nil {
|
||||||
if err != nil {
|
logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err))
|
||||||
logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err))
|
return nil, err
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
unifiedOrderReq.Sign = sign
|
|
||||||
} else {
|
|
||||||
sign, err := GenHmPaySignDeovo(m)
|
|
||||||
if err != nil {
|
|
||||||
logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err))
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
unifiedOrderReq.Sign = sign
|
|
||||||
}
|
}
|
||||||
|
unifiedOrderReq.Sign = sign
|
||||||
|
|
||||||
unifiedOrderResp, err := HmPayUnifiedOrder(unifiedOrderReq)
|
unifiedOrderResp, err := HmPayUnifiedOrder(unifiedOrderReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1108,18 +1099,10 @@ func HmJsPayBToCOrder(storeId uint32, orderId string, totalFee float64, authCode
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.ApplicationConfig.Mode == "dev" {
|
err = HmVerifySha1RsaDeovo(signContent, unifiedOrderResp.Sign)
|
||||||
err = HmVerifySha1Rsa(signContent, unifiedOrderResp.Sign)
|
if err != nil {
|
||||||
if err != nil {
|
logger.Errorf("HmVerifySha1Rsa err:", err)
|
||||||
logger.Errorf("HmVerifySha1Rsa err:", err)
|
return nil, err
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
err = HmVerifySha1RsaDeovo(signContent, unifiedOrderResp.Sign)
|
|
||||||
if err != nil {
|
|
||||||
logger.Errorf("HmVerifySha1Rsa err:", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//fmt.Println("unifiedOrderResp:", unifiedOrderResp.Data)
|
//fmt.Println("unifiedOrderResp:", unifiedOrderResp.Data)
|
||||||
|
@ -1141,7 +1124,7 @@ func HmQueryOrder(orderId string) (*HmPayTradeQueryResp, error) {
|
||||||
|
|
||||||
unifiedOrderReq := HmJsPayUnifiedOrderReq{}
|
unifiedOrderReq := HmJsPayUnifiedOrderReq{}
|
||||||
publicPara := HmPayPublicPara{
|
publicPara := HmPayPublicPara{
|
||||||
AppId: HmPayMerchantId,
|
AppId: HmPayMerchantIdDeovo,
|
||||||
Method: "trade.query",
|
Method: "trade.query",
|
||||||
SignType: "RSA",
|
SignType: "RSA",
|
||||||
Sign: "",
|
Sign: "",
|
||||||
|
@ -1166,7 +1149,7 @@ func HmQueryOrder(orderId string) (*HmPayTradeQueryResp, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
sign, err := GenHmPaySign(m)
|
sign, err := GenHmPaySignDeovo(m)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err))
|
logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err))
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -1184,7 +1167,7 @@ func HmQueryOrder(orderId string) (*HmPayTradeQueryResp, error) {
|
||||||
logger.Errorf("ToSignContent err:", err)
|
logger.Errorf("ToSignContent err:", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
err = HmVerifySha1Rsa(signContent, unifiedOrderResp.Sign)
|
err = HmVerifySha1RsaDeovo(signContent, unifiedOrderResp.Sign)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("HmVerifySha1Rsa err:", err)
|
logger.Errorf("HmVerifySha1Rsa err:", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -1210,7 +1193,7 @@ func HmCancelOrder(orderId string) (*HmPayTradeCancelResp, error) {
|
||||||
|
|
||||||
unifiedOrderReq := HmJsPayUnifiedOrderReq{}
|
unifiedOrderReq := HmJsPayUnifiedOrderReq{}
|
||||||
publicPara := HmPayPublicPara{
|
publicPara := HmPayPublicPara{
|
||||||
AppId: HmPayMerchantId,
|
AppId: HmPayMerchantIdDeovo,
|
||||||
Method: "trade.cancel",
|
Method: "trade.cancel",
|
||||||
SignType: "RSA",
|
SignType: "RSA",
|
||||||
Sign: "",
|
Sign: "",
|
||||||
|
@ -1235,7 +1218,7 @@ func HmCancelOrder(orderId string) (*HmPayTradeCancelResp, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
sign, err := GenHmPaySign(m)
|
sign, err := GenHmPaySignDeovo(m)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err))
|
logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err))
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -1253,7 +1236,7 @@ func HmCancelOrder(orderId string) (*HmPayTradeCancelResp, error) {
|
||||||
logger.Errorf("ToSignContent err:", err)
|
logger.Errorf("ToSignContent err:", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
err = HmVerifySha1Rsa(signContent, unifiedOrderResp.Sign)
|
err = HmVerifySha1RsaDeovo(signContent, unifiedOrderResp.Sign)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("HmVerifySha1Rsa err:", err)
|
logger.Errorf("HmVerifySha1Rsa err:", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -31,7 +31,7 @@ func TestHmJsPayBToCOrder(t *testing.T) {
|
||||||
authCode := "6264900646139788518"
|
authCode := "6264900646139788518"
|
||||||
notifyUrl := "https://dev.switch.deovo.com:8004/api/v1/wxpay/notice"
|
notifyUrl := "https://dev.switch.deovo.com:8004/api/v1/wxpay/notice"
|
||||||
|
|
||||||
order, err := HmJsPayBToCOrder(orderId, totalFee, authCode, notifyUrl)
|
order, err := HmJsPayBToCOrder(13, orderId, totalFee, authCode, notifyUrl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("err:", err)
|
fmt.Println("err:", err)
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ func TestHmJsPayBToCOrder(t *testing.T) {
|
||||||
|
|
||||||
// 查询
|
// 查询
|
||||||
func TestHmQueryOrder(t *testing.T) {
|
func TestHmQueryOrder(t *testing.T) {
|
||||||
orderId := "sale2023122225067733"
|
orderId := "sale2024070569804727"
|
||||||
|
|
||||||
order, err := HmQueryOrder(orderId)
|
order, err := HmQueryOrder(orderId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -2261,7 +2261,7 @@ type ErpStockCommodityListReq struct {
|
||||||
ErpStockId uint32 `json:"erp_stock_id"` // 库存id
|
ErpStockId uint32 `json:"erp_stock_id"` // 库存id
|
||||||
ErpCommodityId uint32 `json:"erp_commodity_id"` // 商品id
|
ErpCommodityId uint32 `json:"erp_commodity_id"` // 商品id
|
||||||
SerialNumber string `json:"serial_number"` // 商品编号
|
SerialNumber string `json:"serial_number"` // 商品编号
|
||||||
CommodityName string `json:"commodity_name"` // 商品名称
|
CommodityName []string `json:"commodity_name"` // 商品名称
|
||||||
ErpCategoryId uint32 `json:"erp_category_id"` // 商品分类Id
|
ErpCategoryId uint32 `json:"erp_category_id"` // 商品分类Id
|
||||||
IsIMEI uint32 `json:"is_imei"` // 是否串码:0-查全部 1-查串码类 2-查非串码
|
IsIMEI uint32 `json:"is_imei"` // 是否串码:0-查全部 1-查串码类 2-查非串码
|
||||||
IMEI string `json:"imei"` // 串码
|
IMEI string `json:"imei"` // 串码
|
||||||
|
@ -2277,6 +2277,7 @@ type ErpStockCommodityListReq struct {
|
||||||
PageIndex int `json:"pageIndex"` // 页码
|
PageIndex int `json:"pageIndex"` // 页码
|
||||||
PageSize int `json:"pageSize"` // 每页展示数据条数
|
PageSize int `json:"pageSize"` // 每页展示数据条数
|
||||||
IsExport uint32 `json:"is_export"` // 是否导出excel:1-导出
|
IsExport uint32 `json:"is_export"` // 是否导出excel:1-导出
|
||||||
|
StockSortFlag uint32 `json:"stock_sort_flag"` // 排序方式:0-按入库时间降序排列(默认),1-按入库时间升序排列
|
||||||
//Sn string `json:"sn"` // 首次入库订单编号
|
//Sn string `json:"sn"` // 首次入库订单编号
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2362,7 +2363,7 @@ func (m *ErpStockCommodityListReq) GetDetailList(c *gin.Context, nType uint32) (
|
||||||
//获取库存商品列表
|
//获取库存商品列表
|
||||||
var commodities []ErpStockCommodity
|
var commodities []ErpStockCommodity
|
||||||
if m.IsExport == 1 {
|
if m.IsExport == 1 {
|
||||||
err := qs.Find(&commodities).Order("id DESC").Error
|
err := qs.Find(&commodities).Order("stock_time DESC,id DESC").Error
|
||||||
if err != nil && !errors.Is(err, RecordNotFound) {
|
if err != nil && !errors.Is(err, RecordNotFound) {
|
||||||
//logger.Error("dailys err:", err)
|
//logger.Error("dailys err:", err)
|
||||||
return resp, err
|
return resp, err
|
||||||
|
@ -2374,7 +2375,11 @@ func (m *ErpStockCommodityListReq) GetDetailList(c *gin.Context, nType uint32) (
|
||||||
}
|
}
|
||||||
resp.ExportUrl = listExport
|
resp.ExportUrl = listExport
|
||||||
} else {
|
} else {
|
||||||
err := qs.Offset(page * m.PageSize).Limit(m.PageSize).Order("stock_time DESC,id DESC").Find(&commodities).Error
|
if m.StockSortFlag == 1 {
|
||||||
|
err = qs.Offset(page * m.PageSize).Limit(m.PageSize).Order("stock_time ASC,id ASC").Find(&commodities).Error
|
||||||
|
} else {
|
||||||
|
err = qs.Offset(page * m.PageSize).Limit(m.PageSize).Order("stock_time DESC,id DESC").Find(&commodities).Error
|
||||||
|
}
|
||||||
if err != nil && !errors.Is(err, RecordNotFound) {
|
if err != nil && !errors.Is(err, RecordNotFound) {
|
||||||
//logger.Error("erp commodity list err:", err)
|
//logger.Error("erp commodity list err:", err)
|
||||||
return resp, err
|
return resp, err
|
||||||
|
@ -2537,11 +2542,11 @@ func (m *ErpStockCommodityListReq) buildQueryConditions(qs *gorm.DB, nType uint3
|
||||||
qs = qs.Where("commodity_serial_number=?", m.SerialNumber)
|
qs = qs.Where("commodity_serial_number=?", m.SerialNumber)
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.CommodityName != "" { //商品名称
|
if len(m.CommodityName) != 0 { //商品名称
|
||||||
if nType == 1 {
|
if nType == 1 {
|
||||||
qs = qs.Where("erp_commodity_name = ?", m.CommodityName)
|
qs = qs.Where("erp_commodity_name IN (?)", m.CommodityName)
|
||||||
} else {
|
} else {
|
||||||
qs = qs.Where("erp_commodity_name like ?", "%"+m.CommodityName+"%")
|
qs = qs.Where("erp_commodity_name like ?", "%"+m.CommodityName[0]+"%")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -83,6 +83,7 @@ type ErpOrder struct {
|
||||||
RejectedTotalCount uint32 `json:"rejected_total_count" gorm:"-"` // 订单总退货数量
|
RejectedTotalCount uint32 `json:"rejected_total_count" gorm:"-"` // 订单总退货数量
|
||||||
StorePer float64 `json:"store_per"` // 门店提成:订单总员工毛利X该门店设置好的提成比例,保留到小数后两位多余舍去
|
StorePer float64 `json:"store_per"` // 门店提成:订单总员工毛利X该门店设置好的提成比例,保留到小数后两位多余舍去
|
||||||
TotalDiscount float64 `json:"total_discount"` // 订单总优惠:订单所有商品零售优惠+会员优惠+会员积分抵扣之和
|
TotalDiscount float64 `json:"total_discount"` // 订单总优惠:订单所有商品零售优惠+会员优惠+会员积分抵扣之和
|
||||||
|
BankTrxNo string `json:"bank_trx_no" gorm:"-"` // 银行流水号
|
||||||
Commodities []ErpOrderCommodity `json:"commodities" gorm:"-"` // 零售订单商品信息
|
Commodities []ErpOrderCommodity `json:"commodities" gorm:"-"` // 零售订单商品信息
|
||||||
Cashiers []ErpOrderCashier `json:"cashiers" gorm:"-"` // 收付款方式
|
Cashiers []ErpOrderCashier `json:"cashiers" gorm:"-"` // 收付款方式
|
||||||
Salesman []ErpOrderSales `json:"salesman" gorm:"-"` // 销售员信息
|
Salesman []ErpOrderSales `json:"salesman" gorm:"-"` // 销售员信息
|
||||||
|
@ -162,6 +163,7 @@ type ErpOrderRecord struct {
|
||||||
OutOrderNo string `json:"out_order_no"` // 商户订单号
|
OutOrderNo string `json:"out_order_no"` // 商户订单号
|
||||||
PlatTrxNo string `json:"plat_trx_no"` // 平台交易流水号
|
PlatTrxNo string `json:"plat_trx_no"` // 平台交易流水号
|
||||||
BankOrderNo string `json:"bank_order_no"` // 银行订单号
|
BankOrderNo string `json:"bank_order_no"` // 银行订单号
|
||||||
|
BankTrxNo string `json:"bank_trx_no"` // 银行流水号
|
||||||
TotalAmount float64 `json:"total_amount"` // 订单总金额
|
TotalAmount float64 `json:"total_amount"` // 订单总金额
|
||||||
PayWay string `json:"pay_way"` // 支付方式
|
PayWay string `json:"pay_way"` // 支付方式
|
||||||
Status string `json:"status"` // 支付状态
|
Status string `json:"status"` // 支付状态
|
||||||
|
@ -331,6 +333,8 @@ type ErpOrderRetailDetailReq struct {
|
||||||
IMEI string `json:"imei"` // 串码
|
IMEI string `json:"imei"` // 串码
|
||||||
StartTime string `json:"start_time"` // 开始时间
|
StartTime string `json:"start_time"` // 开始时间
|
||||||
EndTime string `json:"end_time"` // 结束时间
|
EndTime string `json:"end_time"` // 结束时间
|
||||||
|
BankTrxNo string `json:"bank_trx_no"` // 银联流水号
|
||||||
|
CashierId uint32 `json:"cashier_id"` // 收付款方式id
|
||||||
PageIndex int `json:"pageIndex"` // 页码
|
PageIndex int `json:"pageIndex"` // 页码
|
||||||
PageSize int `json:"pageSize"` // 页面条数
|
PageSize int `json:"pageSize"` // 页面条数
|
||||||
IsExport uint32 `json:"is_export"` // 1-导出
|
IsExport uint32 `json:"is_export"` // 1-导出
|
||||||
|
@ -594,6 +598,7 @@ func (m *ErpOrderListReq) List(c *gin.Context) (*ErpOrderListResp, error) {
|
||||||
erpOrderListSetCommodity(orders)
|
erpOrderListSetCommodity(orders)
|
||||||
erpOrderListSetCashier(orders)
|
erpOrderListSetCashier(orders)
|
||||||
erpOrderListSetSalesman(orders)
|
erpOrderListSetSalesman(orders)
|
||||||
|
erpOrderSetBankTrxNo(orders)
|
||||||
|
|
||||||
resp.List = orders
|
resp.List = orders
|
||||||
|
|
||||||
|
@ -802,7 +807,8 @@ func stringToIntArray(str string) ([]uint32, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新零售订单商品表的库存商品表主键id字段
|
// 更新零售订单商品表的库存商品表主键id字段
|
||||||
func updateErpStockCommodityID(gdb *gorm.DB, id uint32, nIdList []uint32) error {
|
func updateErpStockCommodityID(gdb *gorm.DB, commodity ErpOrderCommodity, nIdList []uint32) error {
|
||||||
|
fmt.Println("nIdList is:", nIdList)
|
||||||
strId := intArrayToString(nIdList)
|
strId := intArrayToString(nIdList)
|
||||||
|
|
||||||
// 查找在库的非串码商品
|
// 查找在库的非串码商品
|
||||||
|
@ -813,12 +819,14 @@ func updateErpStockCommodityID(gdb *gorm.DB, id uint32, nIdList []uint32) error
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = gdb.Table("erp_order_commodity").Where("id = ?", id).
|
err = gdb.Table("erp_order_commodity").Where("id = ?", commodity.ID).
|
||||||
Updates(map[string]interface{}{
|
Updates(map[string]interface{}{
|
||||||
"erp_stock_commodity_id": strId,
|
"erp_stock_commodity_id": strId,
|
||||||
"retail_price": stockCommodity.RetailPrice,
|
"retail_price": stockCommodity.RetailPrice,
|
||||||
"wholesale_price": stockCommodity.WholesalePrice,
|
"wholesale_price": stockCommodity.WholesalePrice,
|
||||||
"staff_cost_price": stockCommodity.StaffCostPrice,
|
"staff_cost_price": stockCommodity.StaffCostPrice,
|
||||||
|
"sales_profit": commodity.SalePrice - stockCommodity.WholesalePrice,
|
||||||
|
"staff_profit": commodity.SalePrice - stockCommodity.WholesalePrice - stockCommodity.StaffCostPrice,
|
||||||
}).Error
|
}).Error
|
||||||
//Update("erp_stock_commodity_id", strId).Error
|
//Update("erp_stock_commodity_id", strId).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -829,8 +837,8 @@ func updateErpStockCommodityID(gdb *gorm.DB, id uint32, nIdList []uint32) error
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 找一个可用的库存商品表主键ID
|
// FindRightErpStockCommodityId 找一个可用的库存商品表主键ID
|
||||||
func findRightErpStockCommodityId(idList map[uint32][]uint32, commodityId uint32, stockCommodity []ErpStockCommodity) (uint32, error) {
|
func FindRightErpStockCommodityId(idList map[uint32][]uint32, commodityId uint32, stockCommodity []ErpStockCommodity) (uint32, error) {
|
||||||
// 获取给定商品ID对应的ID列表
|
// 获取给定商品ID对应的ID列表
|
||||||
existingIds, ok := idList[commodityId]
|
existingIds, ok := idList[commodityId]
|
||||||
if !ok || len(existingIds) == 0 {
|
if !ok || len(existingIds) == 0 {
|
||||||
|
@ -967,12 +975,18 @@ func UpdateStock(gdb *gorm.DB, erpOrder ErpOrder, state, auditState int) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 找一个可用的库存商品表主键ID,使用零售商品表的主键ID作为key
|
// 找一个可用的库存商品表主键ID,使用零售商品表的主键ID作为key
|
||||||
rightId, err := findRightErpStockCommodityId(usedStockCommodityIdList,
|
rightId, err := FindRightErpStockCommodityId(usedStockCommodityIdList,
|
||||||
commodities[i].ErpCommodityId, stockCommodity)
|
commodities[i].ErpCommodityId, stockCommodity)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logger.Info("rightId is:", logger.Field("rightId", rightId))
|
||||||
|
if rightId == 0 {
|
||||||
|
logger.Error("rightId is 0")
|
||||||
|
return errors.New("查询商品库存出错")
|
||||||
|
}
|
||||||
|
|
||||||
// 优先出库库存时间最长的数据
|
// 优先出库库存时间最长的数据
|
||||||
err = gdb.Table("erp_stock_commodity").Where("id = ?", rightId).
|
err = gdb.Table("erp_stock_commodity").Where("id = ?", rightId).
|
||||||
Updates(map[string]interface{}{"state": state}).Error // 状态更新为销售锁定中;反审核则更新为在库
|
Updates(map[string]interface{}{"state": state}).Error // 状态更新为销售锁定中;反审核则更新为在库
|
||||||
|
@ -993,7 +1007,7 @@ func UpdateStock(gdb *gorm.DB, erpOrder ErpOrder, state, auditState int) error {
|
||||||
stockCommodityIdList = append(stockCommodityIdList, rightId)
|
stockCommodityIdList = append(stockCommodityIdList, rightId)
|
||||||
usedStockCommodityIdList[commodities[i].ErpCommodityId] = append(usedStockCommodityIdList[commodities[i].ErpCommodityId], rightId)
|
usedStockCommodityIdList[commodities[i].ErpCommodityId] = append(usedStockCommodityIdList[commodities[i].ErpCommodityId], rightId)
|
||||||
|
|
||||||
err = updateErpStockCommodityID(gdb, commodities[i].ID, stockCommodityIdList)
|
err = updateErpStockCommodityID(gdb, commodities[i], stockCommodityIdList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -1026,7 +1040,8 @@ func UpdateStock(gdb *gorm.DB, erpOrder ErpOrder, state, auditState int) error {
|
||||||
var stockCommodity []ErpStockCommodity
|
var stockCommodity []ErpStockCommodity
|
||||||
var stockCommodityIdList []uint32
|
var stockCommodityIdList []uint32
|
||||||
|
|
||||||
if commodities[i].ErpStockCommodityID != "" {
|
stockCommodityID, _ := tools.StringToInt(commodities[i].ErpStockCommodityID)
|
||||||
|
if stockCommodityID > 0 {
|
||||||
err = gdb.Table("erp_stock_commodity").Where("id = ?", commodities[i].ErpStockCommodityID).
|
err = gdb.Table("erp_stock_commodity").Where("id = ?", commodities[i].ErpStockCommodityID).
|
||||||
Updates(map[string]interface{}{"state": InStock}).Error // 状态更新为在库
|
Updates(map[string]interface{}{"state": InStock}).Error // 状态更新为在库
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1057,7 +1072,7 @@ func UpdateStock(gdb *gorm.DB, erpOrder ErpOrder, state, auditState int) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 找一个可用的库存商品表主键ID
|
// 找一个可用的库存商品表主键ID
|
||||||
rightId, err := findRightErpStockCommodityId(usedStockCommodityIdList,
|
rightId, err := FindRightErpStockCommodityId(usedStockCommodityIdList,
|
||||||
commodities[i].ErpCommodityId, stockCommodity)
|
commodities[i].ErpCommodityId, stockCommodity)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -1080,7 +1095,7 @@ func UpdateStock(gdb *gorm.DB, erpOrder ErpOrder, state, auditState int) error {
|
||||||
stockCommodityIdList = append(stockCommodityIdList, rightId)
|
stockCommodityIdList = append(stockCommodityIdList, rightId)
|
||||||
usedStockCommodityIdList[commodities[i].ID] = append(usedStockCommodityIdList[commodities[i].ID], rightId)
|
usedStockCommodityIdList[commodities[i].ID] = append(usedStockCommodityIdList[commodities[i].ID], rightId)
|
||||||
}
|
}
|
||||||
err = updateErpStockCommodityID(gdb, commodities[i].ID, stockCommodityIdList)
|
err = updateErpStockCommodityID(gdb, commodities[i], stockCommodityIdList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -1176,6 +1191,23 @@ func NewErpBillSn() string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 添加零售订单的银行流水号
|
||||||
|
func erpOrderSetBankTrxNo(list []ErpOrder) {
|
||||||
|
for i, _ := range list {
|
||||||
|
list[i].SetBankTrxNo()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *ErpOrder) SetBankTrxNo() {
|
||||||
|
var orderPayWay ErpOrderRecord
|
||||||
|
err := orm.Eloquent.Table("erp_order_record").Where("bill_sn = ? and status = ?", m.BillSn, PayOk).Find(&orderPayWay).Error
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("SetBankTrxNo query erp_order_record err:", logger.Field("err", err))
|
||||||
|
}
|
||||||
|
|
||||||
|
m.BankTrxNo = orderPayWay.BankTrxNo
|
||||||
|
}
|
||||||
|
|
||||||
// ErpOrderRetailDetailSetCommodity 添加零售明细中订单的商品信息
|
// ErpOrderRetailDetailSetCommodity 添加零售明细中订单的商品信息
|
||||||
func ErpOrderRetailDetailSetCommodity(list []ErpOrder) {
|
func ErpOrderRetailDetailSetCommodity(list []ErpOrder) {
|
||||||
for i, _ := range list {
|
for i, _ := range list {
|
||||||
|
@ -1317,7 +1349,10 @@ func mergeOrderCommodities(orderCommodities []ErpOrderCommodity) []ErpOrderCommo
|
||||||
existingCommodity.SaleDiscount += commodity.SaleDiscount
|
existingCommodity.SaleDiscount += commodity.SaleDiscount
|
||||||
existingCommodity.MemberDiscount += commodity.MemberDiscount
|
existingCommodity.MemberDiscount += commodity.MemberDiscount
|
||||||
existingCommodity.ReceivedAmount += commodity.ReceivedAmount
|
existingCommodity.ReceivedAmount += commodity.ReceivedAmount
|
||||||
existingCommodity.ErpStockCommodityID = strings.Join([]string{existingCommodity.ErpStockCommodityID, commodity.ErpStockCommodityID}, ",")
|
stockCommodityID, _ := tools.StringToInt(commodity.ErpStockCommodityID)
|
||||||
|
if stockCommodityID > 0 {
|
||||||
|
existingCommodity.ErpStockCommodityID = strings.Join([]string{existingCommodity.ErpStockCommodityID, commodity.ErpStockCommodityID}, ",")
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// 使用commodity的副本避免对原始数据的修改
|
// 使用commodity的副本避免对原始数据的修改
|
||||||
commodityCopy := commodity
|
commodityCopy := commodity
|
||||||
|
@ -1926,6 +1961,7 @@ func ErpOrderPay(req *ErpOrderPayReq, c *gin.Context) (*ErpOrderPayResp, error)
|
||||||
updateInfo := map[string]interface{}{
|
updateInfo := map[string]interface{}{
|
||||||
"bank_order_no": hmPayResp.BankOrderNo,
|
"bank_order_no": hmPayResp.BankOrderNo,
|
||||||
"plat_trx_no": hmPayResp.PlatTrxNo,
|
"plat_trx_no": hmPayResp.PlatTrxNo,
|
||||||
|
"bank_trx_no": hmPayResp.BankTrxNo,
|
||||||
"total_amount": hmPayResp.TotalAmount,
|
"total_amount": hmPayResp.TotalAmount,
|
||||||
"pay_way": hmPayResp.PayWay,
|
"pay_way": hmPayResp.PayWay,
|
||||||
"status": payStatus,
|
"status": payStatus,
|
||||||
|
@ -2017,6 +2053,7 @@ func QueryErpOrderPayStatus(billSn string) (*ErpOrderPayResp, error) {
|
||||||
updateInfo := map[string]interface{}{
|
updateInfo := map[string]interface{}{
|
||||||
"bank_order_no": hmQueryResp.BankOrderNo,
|
"bank_order_no": hmQueryResp.BankOrderNo,
|
||||||
"plat_trx_no": hmQueryResp.PlatTrxNo,
|
"plat_trx_no": hmQueryResp.PlatTrxNo,
|
||||||
|
"bank_trx_no": hmQueryResp.BankTrxNo,
|
||||||
"total_amount": hmQueryResp.TotalAmount,
|
"total_amount": hmQueryResp.TotalAmount,
|
||||||
"pay_way": hmQueryResp.PayWayCode,
|
"pay_way": hmQueryResp.PayWayCode,
|
||||||
"status": payStatus,
|
"status": payStatus,
|
||||||
|
@ -2724,6 +2761,18 @@ func float64ToPercentage(value float64) string {
|
||||||
func QueryRetailDetail(req *ErpOrderRetailDetailReq, c *gin.Context) (*ErpOrderRetailDetailResp, error) {
|
func QueryRetailDetail(req *ErpOrderRetailDetailReq, c *gin.Context) (*ErpOrderRetailDetailResp, error) {
|
||||||
resp := &ErpOrderRetailDetailResp{}
|
resp := &ErpOrderRetailDetailResp{}
|
||||||
|
|
||||||
|
// 通过银行流水号查询
|
||||||
|
if req.BankTrxNo != "" {
|
||||||
|
var orderPayWay ErpOrderRecord
|
||||||
|
err := orm.Eloquent.Table("erp_order_record").Where("bank_trx_no = ? and status = ?",
|
||||||
|
req.BankTrxNo, PayOk).Find(&orderPayWay).Error
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("query erp_order_record err:", logger.Field("err", err))
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
req.BillSn = orderPayWay.BillSn
|
||||||
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
if (req.ErpCategoryId != 0 || req.ErpCommodityName != "" || req.IMEI != "") && req.BillSn == "" { // 商品分类or商品名称不为空且订单编号为空
|
if (req.ErpCategoryId != 0 || req.ErpCommodityName != "" || req.IMEI != "") && req.BillSn == "" { // 商品分类or商品名称不为空且订单编号为空
|
||||||
// 联表查询
|
// 联表查询
|
||||||
|
@ -3014,7 +3063,7 @@ func retailDetailExport(list []ErpOrder, sumData RetailDetailTotalData) (string,
|
||||||
fileName := time.Now().Format(TimeFormat) + "零售明细" + ".xlsx"
|
fileName := time.Now().Format(TimeFormat) + "零售明细" + ".xlsx"
|
||||||
fmt.Println("url fileName:", url+fileName)
|
fmt.Println("url fileName:", url+fileName)
|
||||||
|
|
||||||
title := []interface{}{"订单编号", "订单类型", "用户ID", "客户手机号", "审核时间", "店铺", "销售员", "商品分类", "商品名称",
|
title := []interface{}{"订单编号", "订单类型", "用户ID", "客户手机号", "审核时间", "店铺", "银联流水号", "销售员", "商品分类", "商品名称",
|
||||||
"供应商", "是否串码", "商品串码", "是否赠送", "销售数量", "指导零售价", "零售价", "零售优惠", "会员优惠", "实际零售价/退货价",
|
"供应商", "是否串码", "商品串码", "是否赠送", "销售数量", "指导零售价", "零售价", "零售优惠", "会员优惠", "实际零售价/退货价",
|
||||||
"采购单价", "员工成本价", "销售毛利", "员工毛利", "订单总指导零售价", "订单总优惠", "订单实收", "【扫码付", "现金收款", "pos机收款",
|
"采购单价", "员工成本价", "销售毛利", "员工毛利", "订单总指导零售价", "订单总优惠", "订单实收", "【扫码付", "现金收款", "pos机收款",
|
||||||
"商场积分抵扣", "其他付款方式】", "订单总销售毛利", "订单总员工毛利", "销售毛利提成", "员工毛利提成", "销售员提成", "门店提成", "备注"}
|
"商场积分抵扣", "其他付款方式】", "订单总销售毛利", "订单总员工毛利", "销售毛利提成", "员工毛利提成", "销售员提成", "门店提成", "备注"}
|
||||||
|
@ -3040,7 +3089,7 @@ func retailDetailExport(list []ErpOrder, sumData RetailDetailTotalData) (string,
|
||||||
return "", errors.New("RetailMarginDataExport, 订单类型异常:" + list[i].RetailType)
|
return "", errors.New("RetailMarginDataExport, 订单类型异常:" + list[i].RetailType)
|
||||||
}
|
}
|
||||||
|
|
||||||
commodityIdMap := make(map[uint32]bool)
|
orderFlag := false
|
||||||
// 先判断商品数量,确定要写几行数据
|
// 先判断商品数量,确定要写几行数据
|
||||||
for rowId := 0; rowId < len(list[i].Commodities); rowId++ {
|
for rowId := 0; rowId < len(list[i].Commodities); rowId++ {
|
||||||
if list[i].RetailType == RetailTypeSale {
|
if list[i].RetailType == RetailTypeSale {
|
||||||
|
@ -3083,8 +3132,8 @@ func retailDetailExport(list []ErpOrder, sumData RetailDetailTotalData) (string,
|
||||||
}
|
}
|
||||||
|
|
||||||
// 单个订单的汇总数据只记录一次
|
// 单个订单的汇总数据只记录一次
|
||||||
if !commodityIdMap[list[i].Commodities[rowId].ErpCommodityId] {
|
if !orderFlag {
|
||||||
commodityIdMap[list[i].Commodities[rowId].ErpCommodityId] = true
|
orderFlag = true
|
||||||
salesMan := ""
|
salesMan := ""
|
||||||
nSalesProfitPer := 0.0
|
nSalesProfitPer := 0.0
|
||||||
nStaffProfitPer := 0.0
|
nStaffProfitPer := 0.0
|
||||||
|
@ -3102,6 +3151,7 @@ func retailDetailExport(list []ErpOrder, sumData RetailDetailTotalData) (string,
|
||||||
list[i].Tel,
|
list[i].Tel,
|
||||||
list[i].AuditTime,
|
list[i].AuditTime,
|
||||||
list[i].StoreName,
|
list[i].StoreName,
|
||||||
|
list[i].BankTrxNo,
|
||||||
salesMan, //销售员
|
salesMan, //销售员
|
||||||
list[i].Commodities[rowId].ErpCategoryName,
|
list[i].Commodities[rowId].ErpCategoryName,
|
||||||
list[i].Commodities[rowId].ErpCommodityName,
|
list[i].Commodities[rowId].ErpCommodityName,
|
||||||
|
@ -3144,6 +3194,7 @@ func retailDetailExport(list []ErpOrder, sumData RetailDetailTotalData) (string,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
|
"",
|
||||||
list[i].Salesman[1].Name, //销售员
|
list[i].Salesman[1].Name, //销售员
|
||||||
list[i].Commodities[rowId].ErpCategoryName,
|
list[i].Commodities[rowId].ErpCategoryName,
|
||||||
list[i].Commodities[rowId].ErpCommodityName,
|
list[i].Commodities[rowId].ErpCommodityName,
|
||||||
|
@ -3185,6 +3236,7 @@ func retailDetailExport(list []ErpOrder, sumData RetailDetailTotalData) (string,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
|
"",
|
||||||
"", //销售员
|
"", //销售员
|
||||||
list[i].Commodities[rowId].ErpCategoryName,
|
list[i].Commodities[rowId].ErpCategoryName,
|
||||||
list[i].Commodities[rowId].ErpCommodityName,
|
list[i].Commodities[rowId].ErpCommodityName,
|
||||||
|
@ -3238,6 +3290,7 @@ func retailDetailExport(list []ErpOrder, sumData RetailDetailTotalData) (string,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
|
"",
|
||||||
list[i].Salesman[1].Name, //销售员
|
list[i].Salesman[1].Name, //销售员
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
|
@ -3285,7 +3338,7 @@ func retailDetailExport(list []ErpOrder, sumData RetailDetailTotalData) (string,
|
||||||
}
|
}
|
||||||
|
|
||||||
totalData := "订单数:" + strconv.FormatInt(int64(len(list)), 10)
|
totalData := "订单数:" + strconv.FormatInt(int64(len(list)), 10)
|
||||||
end := []interface{}{totalData, "", "", "", "", "", "", "", "", "", "", "", "",
|
end := []interface{}{totalData, "", "", "", "", "", "", "", "", "", "", "", "", "",
|
||||||
sumData.Count,
|
sumData.Count,
|
||||||
sumData.RetailPrice,
|
sumData.RetailPrice,
|
||||||
sumData.SalePrice,
|
sumData.SalePrice,
|
||||||
|
@ -3330,15 +3383,15 @@ func retailDetailExport(list []ErpOrder, sumData RetailDetailTotalData) (string,
|
||||||
_ = file.SetCellStyle("Sheet1", "A1", endRow, style)
|
_ = file.SetCellStyle("Sheet1", "A1", endRow, style)
|
||||||
|
|
||||||
//需要自动换行的列
|
//需要自动换行的列
|
||||||
endRow1 := fmt.Sprintf("G%d", nExcelStartRow+2)
|
endRow1 := fmt.Sprintf("H%d", nExcelStartRow+2)
|
||||||
endRow2 := fmt.Sprintf("AH%d", nExcelStartRow+2)
|
endRow2 := fmt.Sprintf("AI%d", nExcelStartRow+2)
|
||||||
endRow3 := fmt.Sprintf("AI%d", nExcelStartRow+2)
|
endRow3 := fmt.Sprintf("AJ%d", nExcelStartRow+2)
|
||||||
endRow4 := fmt.Sprintf("AJ%d", nExcelStartRow+2)
|
endRow4 := fmt.Sprintf("AK%d", nExcelStartRow+2)
|
||||||
_ = file.SetCellStyle("Sheet1", "A1", "AL1", style1)
|
_ = file.SetCellStyle("Sheet1", "A1", "AM1", style1)
|
||||||
_ = file.SetCellStyle("Sheet1", "G2", endRow1, style1)
|
_ = file.SetCellStyle("Sheet1", "H2", endRow1, style1)
|
||||||
_ = file.SetCellStyle("Sheet1", "AH2", endRow2, style1)
|
_ = file.SetCellStyle("Sheet1", "AI2", endRow2, style1)
|
||||||
_ = file.SetCellStyle("Sheet1", "AI2", endRow3, style1)
|
_ = file.SetCellStyle("Sheet1", "AJ2", endRow3, style1)
|
||||||
_ = file.SetCellStyle("Sheet1", "AJ2", endRow4, style1)
|
_ = file.SetCellStyle("Sheet1", "AK2", endRow4, style1)
|
||||||
|
|
||||||
fmt.Println("save fileName:", config.ExportConfig.Path+fileName)
|
fmt.Println("save fileName:", config.ExportConfig.Path+fileName)
|
||||||
if err := file.SaveAs(config.ExportConfig.Path + fileName); err != nil {
|
if err := file.SaveAs(config.ExportConfig.Path + fileName); err != nil {
|
||||||
|
@ -3541,6 +3594,25 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
||||||
logger.Error("query erp_order_pay_way sum data err:", logger.Field("err", err))
|
logger.Error("query erp_order_pay_way sum data err:", logger.Field("err", err))
|
||||||
return resp, err
|
return resp, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 支付方式筛选
|
||||||
|
if req.CashierId != 0 {
|
||||||
|
var tempCashier TotalCashierData
|
||||||
|
switch req.CashierId {
|
||||||
|
case 1:
|
||||||
|
tempCashier.ScanAmount = cashier.ScanAmount
|
||||||
|
case 2:
|
||||||
|
tempCashier.CashAmount = cashier.CashAmount
|
||||||
|
case 3:
|
||||||
|
tempCashier.PosAmount = cashier.PosAmount
|
||||||
|
case 4:
|
||||||
|
tempCashier.StoreVmAmount = cashier.StoreVmAmount
|
||||||
|
default:
|
||||||
|
tempCashier = cashier
|
||||||
|
}
|
||||||
|
cashier = tempCashier
|
||||||
|
}
|
||||||
|
|
||||||
// 退货订单支付汇总:目前零售退货订单暂时不展示各个方式的付款金额
|
// 退货订单支付汇总:目前零售退货订单暂时不展示各个方式的付款金额
|
||||||
var rejectedCashier TotalCashierData
|
var rejectedCashier TotalCashierData
|
||||||
//rejectedCashierQs := qs
|
//rejectedCashierQs := qs
|
||||||
|
@ -3562,11 +3634,17 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
||||||
sumData.TotalAmount = 0 // 订单实收金额
|
sumData.TotalAmount = 0 // 订单实收金额
|
||||||
sumData.StorePer = 0 // 门店提成
|
sumData.StorePer = 0 // 门店提成
|
||||||
|
|
||||||
sumData.ScanAmount = cashier.ScanAmount
|
//sumData.ScanAmount = cashier.ScanAmount
|
||||||
sumData.CashAmount = cashier.CashAmount
|
//sumData.CashAmount = cashier.CashAmount
|
||||||
sumData.PosAmount = cashier.PosAmount
|
//sumData.PosAmount = cashier.PosAmount
|
||||||
sumData.StoreVmAmount = cashier.StoreVmAmount
|
//sumData.StoreVmAmount = cashier.StoreVmAmount
|
||||||
sumData.OtherAmount = cashier.OtherAmount
|
//sumData.OtherAmount = cashier.OtherAmount
|
||||||
|
|
||||||
|
sumData.ScanAmount = 0
|
||||||
|
sumData.CashAmount = 0
|
||||||
|
sumData.PosAmount = 0
|
||||||
|
sumData.StoreVmAmount = 0
|
||||||
|
sumData.OtherAmount = 0
|
||||||
|
|
||||||
var result []RetailDetailByJoin
|
var result []RetailDetailByJoin
|
||||||
|
|
||||||
|
@ -3585,6 +3663,7 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
||||||
}
|
}
|
||||||
|
|
||||||
orders := packData(result)
|
orders := packData(result)
|
||||||
|
erpOrderSetBankTrxNo(orders)
|
||||||
fileUrl, err := retailDetailExport(orders, sumData)
|
fileUrl, err := retailDetailExport(orders, sumData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("retailDetailExport err:", logger.Field("err", err))
|
logger.Error("retailDetailExport err:", logger.Field("err", err))
|
||||||
|
@ -3609,6 +3688,7 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
||||||
orders := packData(result)
|
orders := packData(result)
|
||||||
erpOrderListSetCashier(orders)
|
erpOrderListSetCashier(orders)
|
||||||
erpOrderListSetSalesman(orders)
|
erpOrderListSetSalesman(orders)
|
||||||
|
erpOrderSetBankTrxNo(orders)
|
||||||
pagedOrders := paginate(orders, page, req.PageSize)
|
pagedOrders := paginate(orders, page, req.PageSize)
|
||||||
|
|
||||||
resp.List = pagedOrders
|
resp.List = pagedOrders
|
||||||
|
@ -3751,6 +3831,11 @@ func packData(result []RetailDetailByJoin) []ErpOrder {
|
||||||
orders = append(orders, item)
|
orders = append(orders, item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 根据AuditTime进行降序排序
|
||||||
|
sort.SliceStable(orders, func(i, j int) bool {
|
||||||
|
return orders[i].AuditTime.After(*orders[j].AuditTime)
|
||||||
|
})
|
||||||
|
|
||||||
return orders
|
return orders
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3826,6 +3911,10 @@ func queryRetailDetailCommon(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
||||||
qs = qs.Where("JSON_CONTAINS(salesman_list, ?)", fmt.Sprintf(`{"userId":%d}`, req.Salesman))
|
qs = qs.Where("JSON_CONTAINS(salesman_list, ?)", fmt.Sprintf(`{"userId":%d}`, req.Salesman))
|
||||||
totalPerQs = totalPerQs.Where("erp_order_sales.uid = ?", req.Salesman)
|
totalPerQs = totalPerQs.Where("erp_order_sales.uid = ?", req.Salesman)
|
||||||
}
|
}
|
||||||
|
if req.CashierId != 0 { // 支付方式
|
||||||
|
qs = qs.Where("JSON_CONTAINS(cashier_list, ?)", fmt.Sprintf(`{"cashier_id":%d}`, req.CashierId))
|
||||||
|
//totalPerQs = totalPerQs.Where("erp_order_pay_way.cashier_id = ?", req.CashierId)
|
||||||
|
}
|
||||||
if req.StartTime != "" { // 审核开始时间
|
if req.StartTime != "" { // 审核开始时间
|
||||||
parse, err := time.Parse(QueryTimeFormat, req.StartTime)
|
parse, err := time.Parse(QueryTimeFormat, req.StartTime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -3895,6 +3984,25 @@ func queryRetailDetailCommon(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
||||||
logger.Error("query erp_order_pay_way sum data err:", logger.Field("err", err))
|
logger.Error("query erp_order_pay_way sum data err:", logger.Field("err", err))
|
||||||
return resp, err
|
return resp, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 支付方式筛选
|
||||||
|
if req.CashierId != 0 {
|
||||||
|
var tempCashier TotalCashierData
|
||||||
|
switch req.CashierId {
|
||||||
|
case 1:
|
||||||
|
tempCashier.ScanAmount = cashier.ScanAmount
|
||||||
|
case 2:
|
||||||
|
tempCashier.CashAmount = cashier.CashAmount
|
||||||
|
case 3:
|
||||||
|
tempCashier.PosAmount = cashier.PosAmount
|
||||||
|
case 4:
|
||||||
|
tempCashier.StoreVmAmount = cashier.StoreVmAmount
|
||||||
|
default:
|
||||||
|
tempCashier = cashier
|
||||||
|
}
|
||||||
|
cashier = tempCashier
|
||||||
|
}
|
||||||
|
|
||||||
// 退货订单支付汇总:目前零售退货订单暂时不展示各个方式的付款金额
|
// 退货订单支付汇总:目前零售退货订单暂时不展示各个方式的付款金额
|
||||||
var rejectedCashier TotalCashierData
|
var rejectedCashier TotalCashierData
|
||||||
//rejectedCashierQs := qs
|
//rejectedCashierQs := qs
|
||||||
|
@ -3926,6 +4034,7 @@ func queryRetailDetailCommon(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
||||||
}
|
}
|
||||||
ErpOrderRetailDetailSetCommodity(orders)
|
ErpOrderRetailDetailSetCommodity(orders)
|
||||||
erpOrderListSetSalesman(orders)
|
erpOrderListSetSalesman(orders)
|
||||||
|
erpOrderSetBankTrxNo(orders)
|
||||||
|
|
||||||
fileUrl, err := retailDetailExport(orders, sumData)
|
fileUrl, err := retailDetailExport(orders, sumData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -3952,6 +4061,7 @@ func queryRetailDetailCommon(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
||||||
ErpOrderRetailDetailSetCommodity(orders)
|
ErpOrderRetailDetailSetCommodity(orders)
|
||||||
erpOrderListSetSalesman(orders)
|
erpOrderListSetSalesman(orders)
|
||||||
erpOrderListSetCashier(orders)
|
erpOrderListSetCashier(orders)
|
||||||
|
erpOrderSetBankTrxNo(orders)
|
||||||
//erpOrderListSetSalesmanByRetailDetail(req.Salesman, orders)
|
//erpOrderListSetSalesmanByRetailDetail(req.Salesman, orders)
|
||||||
|
|
||||||
resp.List = orders
|
resp.List = orders
|
||||||
|
@ -4608,7 +4718,8 @@ func checkOrderData(req *ErpOrderCreateReq, c *gin.Context) (*ErpOrder, error) {
|
||||||
// 串码商品直接查询;非串码商品查询库存时间最久的商品
|
// 串码商品直接查询;非串码商品查询库存时间最久的商品
|
||||||
var commodities []ErpStockCommodity
|
var commodities []ErpStockCommodity
|
||||||
if len(imeiList) != 0 {
|
if len(imeiList) != 0 {
|
||||||
err := orm.Eloquent.Table("erp_stock_commodity").Where("imei IN (?)", imeiList).
|
err := orm.Eloquent.Table("erp_stock_commodity").Where("imei IN (?) and state = ? "+
|
||||||
|
"and store_id = ?", imeiList, InStock, req.StoreId).
|
||||||
Find(&commodities).Error
|
Find(&commodities).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("get commodities err:", logger.Field("err", err))
|
logger.Error("get commodities err:", logger.Field("err", err))
|
||||||
|
@ -4622,7 +4733,8 @@ func checkOrderData(req *ErpOrderCreateReq, c *gin.Context) (*ErpOrder, error) {
|
||||||
|
|
||||||
if len(commodityIds) != 0 {
|
if len(commodityIds) != 0 {
|
||||||
commodities = nil
|
commodities = nil
|
||||||
err = orm.Eloquent.Table("erp_stock_commodity").Where("erp_commodity_id IN (?)", commodityIds).
|
err = orm.Eloquent.Table("erp_stock_commodity").Where("erp_commodity_id IN (?) and state = ? "+
|
||||||
|
"and store_id = ?", commodityIds, InStock, req.StoreId).
|
||||||
Find(&commodities).Error
|
Find(&commodities).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("get commodities err:", logger.Field("err", err))
|
logger.Error("get commodities err:", logger.Field("err", err))
|
||||||
|
@ -5071,50 +5183,22 @@ func updateSalesData(gdb *gorm.DB, orderId uint32, req *ErpOrderCreateReq) error
|
||||||
return errors.New("操作失败:" + err.Error())
|
return errors.New("操作失败:" + err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
var newOrderSales []ErpOrderSales
|
// 1-删除所有的零售订单支付方式
|
||||||
var deletedOrderSales []ErpOrderSales
|
if len(orderSales) != 0 {
|
||||||
var matchingOrderSales []ErpOrderSales
|
err = gdb.Delete(&orderSales).Error
|
||||||
// 找到新增的商品
|
if err != nil {
|
||||||
for _, reqSales := range req.Salesman {
|
logger.Error("更新订单销售员信息-删除 error")
|
||||||
var found bool
|
|
||||||
for _, dbSales := range orderSales {
|
|
||||||
if reqSales.Uid == dbSales.Uid {
|
|
||||||
found = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !found {
|
|
||||||
reqSales.ID = 0
|
|
||||||
reqSales.CreatedAt = Now()
|
|
||||||
newOrderSales = append(newOrderSales, reqSales)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 找到删除的商品
|
|
||||||
for _, dbSales := range orderSales {
|
|
||||||
var found bool
|
|
||||||
for _, reqSales := range req.Salesman {
|
|
||||||
if reqSales.Uid == dbSales.Uid {
|
|
||||||
found = true
|
|
||||||
// 找到匹配的商品,加入匹配列表
|
|
||||||
matchingOrderSales = append(matchingOrderSales, dbSales)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !found {
|
|
||||||
deletedOrderSales = append(deletedOrderSales, dbSales)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新
|
|
||||||
for _, orderSaleInfo := range matchingOrderSales {
|
|
||||||
if err = gdb.Model(&ErpOrderSales{}).Where("id = ?", orderSaleInfo.ID).Updates(orderSaleInfo).Error; err != nil {
|
|
||||||
logger.Error("更新订单销售员信息-更新 error")
|
|
||||||
return errors.New("操作失败:" + err.Error())
|
return errors.New("操作失败:" + err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增
|
var newOrderSales []ErpOrderSales
|
||||||
|
for _, reqSales := range req.Salesman {
|
||||||
|
reqSales.ID = 0
|
||||||
|
newOrderSales = append(newOrderSales, reqSales)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2-新增所有的零售订单支付方式
|
||||||
if len(newOrderSales) != 0 {
|
if len(newOrderSales) != 0 {
|
||||||
err = gdb.Create(&newOrderSales).Error
|
err = gdb.Create(&newOrderSales).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -5123,15 +5207,6 @@ func updateSalesData(gdb *gorm.DB, orderId uint32, req *ErpOrderCreateReq) error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
|
||||||
if len(deletedOrderSales) != 0 {
|
|
||||||
err = gdb.Delete(&deletedOrderSales).Error
|
|
||||||
if err != nil {
|
|
||||||
logger.Error("更新订单销售员信息-删除 error")
|
|
||||||
return errors.New("操作失败:" + err.Error())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5145,54 +5220,27 @@ func updatePayWayData(gdb *gorm.DB, orderId uint32, req *ErpOrderCreateReq) erro
|
||||||
return errors.New("操作失败:" + err.Error())
|
return errors.New("操作失败:" + err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
var newOrderPayWay []ErpOrderPayWay
|
// 1-删除所有的零售订单支付方式
|
||||||
var deletedOrderPayWay []ErpOrderPayWay
|
if len(orderPayWay) != 0 {
|
||||||
var matchingOrderPayWay []ErpOrderPayWay
|
err = gdb.Delete(&orderPayWay).Error
|
||||||
// 找到新增的商品
|
if err != nil {
|
||||||
for _, reqPayWay := range req.Cashiers {
|
logger.Error("更新零售订单支付方式-删除 error")
|
||||||
var found bool
|
|
||||||
for _, dbPayWay := range orderPayWay {
|
|
||||||
if reqPayWay.CashierId == dbPayWay.CashierId {
|
|
||||||
found = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !found {
|
|
||||||
payWay := ErpOrderPayWay{
|
|
||||||
ErpOrderId: orderId,
|
|
||||||
CashierId: reqPayWay.CashierId,
|
|
||||||
Name: reqPayWay.Name,
|
|
||||||
Amount: reqPayWay.Amount,
|
|
||||||
}
|
|
||||||
newOrderPayWay = append(newOrderPayWay, payWay)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 找到删除的商品
|
|
||||||
for _, dbPayWay := range orderPayWay {
|
|
||||||
var found bool
|
|
||||||
for _, reqPayWay := range req.Cashiers {
|
|
||||||
if reqPayWay.CashierId == dbPayWay.CashierId {
|
|
||||||
found = true
|
|
||||||
// 找到匹配的商品,加入匹配列表
|
|
||||||
matchingOrderPayWay = append(matchingOrderPayWay, dbPayWay)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !found {
|
|
||||||
deletedOrderPayWay = append(deletedOrderPayWay, dbPayWay)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新
|
|
||||||
for _, orderPayWayInfo := range matchingOrderPayWay {
|
|
||||||
if err = gdb.Model(&ErpOrderPayWay{}).Where("id = ?", orderPayWayInfo.ID).Updates(orderPayWayInfo).Error; err != nil {
|
|
||||||
logger.Error("更新零售订单支付方式-更新 error")
|
|
||||||
return errors.New("操作失败:" + err.Error())
|
return errors.New("操作失败:" + err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增
|
var newOrderPayWay []ErpOrderPayWay
|
||||||
|
for _, reqPayWay := range req.Cashiers {
|
||||||
|
payWay := ErpOrderPayWay{
|
||||||
|
ErpOrderId: orderId,
|
||||||
|
CashierId: reqPayWay.CashierId,
|
||||||
|
Name: reqPayWay.Name,
|
||||||
|
Amount: reqPayWay.Amount,
|
||||||
|
}
|
||||||
|
newOrderPayWay = append(newOrderPayWay, payWay)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2-新增所有的零售订单支付方式
|
||||||
if len(newOrderPayWay) != 0 {
|
if len(newOrderPayWay) != 0 {
|
||||||
err = gdb.Create(&newOrderPayWay).Error
|
err = gdb.Create(&newOrderPayWay).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -5201,14 +5249,5 @@ func updatePayWayData(gdb *gorm.DB, orderId uint32, req *ErpOrderCreateReq) erro
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
|
||||||
if len(deletedOrderPayWay) != 0 {
|
|
||||||
err = gdb.Delete(&deletedOrderPayWay).Error
|
|
||||||
if err != nil {
|
|
||||||
logger.Error("更新零售订单支付方式-删除 error")
|
|
||||||
return errors.New("操作失败:" + err.Error())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -531,11 +531,11 @@ func checkStockExcel(sheetCols [][]string) error {
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
if i < len(sheetCols[5]) {
|
//if i < len(sheetCols[5]) {
|
||||||
if employeeCost, err := strconv.ParseFloat(sheetCols[5][i], 64); err != nil || employeeCost <= 0 {
|
// if employeeCost, err := strconv.ParseFloat(sheetCols[5][i], 64); err != nil || employeeCost <= 0 {
|
||||||
return errors.New("第" + strconv.Itoa(i+1) + "行员工成本价必须是大于0的数字")
|
// return errors.New("第" + strconv.Itoa(i+1) + "行员工成本价必须是大于0的数字")
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
// 供应商不能为空
|
// 供应商不能为空
|
||||||
if i < len(sheetCols[6]) {
|
if i < len(sheetCols[6]) {
|
||||||
|
|
|
@ -1534,6 +1534,7 @@ func MemberExpirationReminderDay(days int64) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ExpireMemberSMSSend 用户过期如果一直不还卡,最多会收到12条短信,过期超过3个月就不会发送了
|
||||||
func ExpireMemberSMSSend() {
|
func ExpireMemberSMSSend() {
|
||||||
nowTime := time.Now()
|
nowTime := time.Now()
|
||||||
days := []uint32{1, 2, 3, 4, 5, 6, 7, 14, 21, 28, 60, 90}
|
days := []uint32{1, 2, 3, 4, 5, 6, 7, 14, 21, 28, 60, 90}
|
||||||
|
|
|
@ -818,7 +818,7 @@ func handleInventoryReduce(gdb *gorm.DB, changeOrder ErpInventoryChangeOrder) er
|
||||||
}
|
}
|
||||||
|
|
||||||
// 找一个可用的库存商品表主键ID
|
// 找一个可用的库存商品表主键ID
|
||||||
rightId, err := findRightErpStockCommodityId(usedStockCommodityIdList,
|
rightId, err := FindRightErpStockCommodityId(usedStockCommodityIdList,
|
||||||
trimCommodities[i].CommodityId, stockCommodity)
|
trimCommodities[i].CommodityId, stockCommodity)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -1008,7 +1008,7 @@ func handleCancelInventoryReduce(gdb *gorm.DB, changeOrder ErpInventoryChangeOrd
|
||||||
}
|
}
|
||||||
|
|
||||||
// 找一个可用的库存商品表主键ID
|
// 找一个可用的库存商品表主键ID
|
||||||
rightId, err := findRightErpStockCommodityId(usedStockCommodityIdList,
|
rightId, err := FindRightErpStockCommodityId(usedStockCommodityIdList,
|
||||||
trimCommodities[i].CommodityId, stockCommodity)
|
trimCommodities[i].CommodityId, stockCommodity)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -18,7 +18,6 @@ import (
|
||||||
"go-admin/tools"
|
"go-admin/tools"
|
||||||
"go-admin/tools/config"
|
"go-admin/tools/config"
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
"gorm.io/gorm"
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -232,6 +231,7 @@ func (m *OrderListReq) List(exportFlag int, c *gin.Context) ([]Order, int64, str
|
||||||
func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([]Order, int64, error) {
|
func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([]Order, int64, error) {
|
||||||
var orderCards []OrderCard
|
var orderCards []OrderCard
|
||||||
orders := make([]Order, 0)
|
orders := make([]Order, 0)
|
||||||
|
|
||||||
qs := orm.Eloquent.Table("order_card").Where("card_status=?", m.CardStatus)
|
qs := orm.Eloquent.Table("order_card").Where("card_status=?", m.CardStatus)
|
||||||
|
|
||||||
// 非管理员才判断所属门店
|
// 非管理员才判断所属门店
|
||||||
|
@ -250,9 +250,9 @@ func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([
|
||||||
} else {
|
} else {
|
||||||
if len(storeList) > 0 {
|
if len(storeList) > 0 {
|
||||||
if len(storeList) == 1 {
|
if len(storeList) == 1 {
|
||||||
qs = qs.Where("store_id = ?", storeList[0])
|
qs = qs.Where("store_id = ? OR revert_store_id = ?", storeList[0], storeList[0])
|
||||||
} else {
|
} else {
|
||||||
qs = qs.Where("store_id IN (?)", storeList)
|
qs = qs.Where("store_id IN (?) OR revert_store_id IN (?)", storeList, storeList)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return nil, 0, errors.New("用户未绑定门店")
|
return nil, 0, errors.New("用户未绑定门店")
|
||||||
|
@ -276,7 +276,7 @@ func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.StoreId != 0 { // 门店id,共有
|
if m.StoreId != 0 { // 门店id,共有
|
||||||
qs = qs.Where("store_id", m.StoreId)
|
qs = qs.Where("store_id = ? OR revert_store_id = ?", m.StoreId, m.StoreId)
|
||||||
}
|
}
|
||||||
if !m.StartTime.IsZero() { // 共有
|
if !m.StartTime.IsZero() { // 共有
|
||||||
fmt.Println("起始时间:", m.StartTime.Unix())
|
fmt.Println("起始时间:", m.StartTime.Unix())
|
||||||
|
@ -365,8 +365,13 @@ func (m *OrderListReq) queryListFormOrder(exportFlag int, c *gin.Context) ([]Ord
|
||||||
if m.PageSize == 0 {
|
if m.PageSize == 0 {
|
||||||
m.PageSize = 10
|
m.PageSize = 10
|
||||||
}
|
}
|
||||||
var qs *gorm.DB
|
|
||||||
qs = orm.Eloquent.Table("order").Where("pay_status", 2)
|
qs := orm.Eloquent.Table("order").Select("DISTINCT `order`.*").Joins("JOIN order_card ON order.id = order_card.order_id").
|
||||||
|
Where("order.pay_status = ?", 2)
|
||||||
|
|
||||||
|
orderQs := orm.Eloquent.Table("(?) as unique_orders", qs).Order("unique_orders.created_at DESC")
|
||||||
|
|
||||||
|
//qs = orm.Eloquent.Table("order").Where("pay_status", 2)
|
||||||
|
|
||||||
// 非管理员才判断所属门店
|
// 非管理员才判断所属门店
|
||||||
if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") {
|
if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") {
|
||||||
|
@ -384,9 +389,9 @@ func (m *OrderListReq) queryListFormOrder(exportFlag int, c *gin.Context) ([]Ord
|
||||||
} else {
|
} else {
|
||||||
if len(storeList) > 0 {
|
if len(storeList) > 0 {
|
||||||
if len(storeList) == 1 {
|
if len(storeList) == 1 {
|
||||||
qs = qs.Where("store_id = ?", storeList[0])
|
qs = qs.Where("order.store_id = ? OR order_card.revert_store_id = ?", storeList[0], storeList[0])
|
||||||
} else {
|
} else {
|
||||||
qs = qs.Where("store_id IN (?)", storeList)
|
qs = qs.Where("order.store_id IN (?) OR order_card.revert_store_id IN (?)", storeList, storeList)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return nil, 0, errors.New("用户未绑定门店")
|
return nil, 0, errors.New("用户未绑定门店")
|
||||||
|
@ -410,46 +415,46 @@ func (m *OrderListReq) queryListFormOrder(exportFlag int, c *gin.Context) ([]Ord
|
||||||
orderIds = append(orderIds, orderCards[i].OrderId)
|
orderIds = append(orderIds, orderCards[i].OrderId)
|
||||||
}
|
}
|
||||||
|
|
||||||
qs = qs.Where("id in (?)", orderIds)
|
qs = qs.Where("order.id in (?)", orderIds)
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.PickupCode != "" {
|
if m.PickupCode != "" {
|
||||||
isDeliver = false
|
isDeliver = false
|
||||||
qs = qs.Where("pickup_code", m.PickupCode)
|
qs = qs.Where("order.pickup_code", m.PickupCode)
|
||||||
}
|
}
|
||||||
if m.PayStatus != 0 {
|
if m.PayStatus != 0 {
|
||||||
qs = qs.Where("pay_status", m.PayStatus)
|
qs = qs.Where("order.pay_status", m.PayStatus)
|
||||||
}
|
}
|
||||||
if m.DeliveryType != 0 {
|
if m.DeliveryType != 0 {
|
||||||
qs = qs.Where("delivery_type", m.DeliveryType)
|
qs = qs.Where("order.delivery_type", m.DeliveryType)
|
||||||
}
|
}
|
||||||
if m.OrderId != 0 {
|
if m.OrderId != 0 {
|
||||||
isDeliver = false
|
isDeliver = false
|
||||||
qs = qs.Where("id", m.OrderId)
|
qs = qs.Where("order.id", m.OrderId)
|
||||||
}
|
}
|
||||||
if isDeliver {
|
if isDeliver {
|
||||||
if m.Uid != 0 {
|
if m.Uid != 0 {
|
||||||
qs = qs.Where("uid", m.Uid)
|
qs = qs.Where("order.uid", m.Uid)
|
||||||
}
|
}
|
||||||
if m.GameCardId != 0 {
|
if m.GameCardId != 0 {
|
||||||
qs = qs.Where("game_card_id", m.GameCardId)
|
qs = qs.Where("order.game_card_id", m.GameCardId)
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.StoreId != 0 {
|
if m.StoreId != 0 {
|
||||||
qs = qs.Where("store_id", m.StoreId)
|
qs = qs.Where("order.store_id = ? OR order_card.revert_store_id = ?", m.StoreId, m.StoreId)
|
||||||
}
|
}
|
||||||
if !m.StartTime.IsZero() {
|
if !m.StartTime.IsZero() {
|
||||||
fmt.Println("起始时间:", m.StartTime.Unix())
|
fmt.Println("起始时间:", m.StartTime.Unix())
|
||||||
qs = qs.Where("created_at > ?", m.StartTime)
|
qs = qs.Where("order.created_at > ?", m.StartTime)
|
||||||
}
|
}
|
||||||
if !m.EndTime.IsZero() {
|
if !m.EndTime.IsZero() {
|
||||||
fmt.Println("时间:", m.StartTime.Unix())
|
fmt.Println("时间:", m.StartTime.Unix())
|
||||||
qs = qs.Where("created_at < ?", m.EndTime)
|
qs = qs.Where("order.created_at < ?", m.EndTime)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var count int64
|
var count int64
|
||||||
err := qs.Count(&count).Error
|
err := orderQs.Count(&count).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("err:", logger.Field("err", err))
|
logger.Errorf("err:", logger.Field("err", err))
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
|
@ -462,11 +467,11 @@ func (m *OrderListReq) queryListFormOrder(exportFlag int, c *gin.Context) ([]Ord
|
||||||
}
|
}
|
||||||
|
|
||||||
if exportFlag == 1 { //一次性导出excel
|
if exportFlag == 1 { //一次性导出excel
|
||||||
qs = qs.Preload("User").Order("created_at DESC")
|
orderQs = orderQs.Preload("User")
|
||||||
} else {
|
} else {
|
||||||
qs = qs.Preload("User").Order("created_at DESC").Offset(page * pageSize).Limit(pageSize)
|
orderQs = orderQs.Preload("User").Offset(page * pageSize).Limit(pageSize)
|
||||||
}
|
}
|
||||||
err = qs.Find(&orders).Error
|
err = orderQs.Find(&orders).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("err:", logger.Field("err", err))
|
logger.Errorf("err:", logger.Field("err", err))
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
|
|
|
@ -183,11 +183,51 @@ func (m *Store) Add() error {
|
||||||
func (m *Store) Modify() error {
|
func (m *Store) Modify() error {
|
||||||
para := m.getModifyPara()
|
para := m.getModifyPara()
|
||||||
if len(para) > 0 {
|
if len(para) > 0 {
|
||||||
err := orm.Eloquent.Table(m.TableName()).Unscoped().Where("id", m.ID).Updates(para).Error
|
// 查询门店信息
|
||||||
|
oldStoreInfo, err := GetStore(m.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Errorf("GetStore err:", logger.Field("err", err))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
begin := orm.Eloquent.Begin()
|
||||||
|
err = begin.Table(m.TableName()).Unscoped().Where("id", m.ID).Updates(para).Error
|
||||||
|
if err != nil {
|
||||||
|
begin.Rollback()
|
||||||
logger.Errorf("err:", logger.Field("err", err))
|
logger.Errorf("err:", logger.Field("err", err))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if oldStoreInfo.Name != m.Name {
|
||||||
|
// 更新库存表
|
||||||
|
err = begin.Table("erp_stock").Where("store_id=?", m.ID).
|
||||||
|
Updates(map[string]interface{}{
|
||||||
|
"store_name": m.Name,
|
||||||
|
}).Error
|
||||||
|
if err != nil {
|
||||||
|
begin.Rollback()
|
||||||
|
logger.Error("Update erp_stock err:", logger.Field("err", err))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新库存详情表
|
||||||
|
err = begin.Table("erp_stock_commodity").Where("store_id=?", m.ID).
|
||||||
|
Updates(map[string]interface{}{
|
||||||
|
"store_name": m.Name,
|
||||||
|
}).Error
|
||||||
|
if err != nil {
|
||||||
|
begin.Rollback()
|
||||||
|
logger.Error("Update erp_stock_commodity err:", logger.Field("err", err))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = begin.Commit().Error
|
||||||
|
if err != nil {
|
||||||
|
begin.Rollback()
|
||||||
|
logger.Error("commit err:", logger.Field("err", err))
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -2773,18 +2773,34 @@ func (m *CooperativeBusiness) UserInviteReport(userInfo UserInfo) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
report := &InviteMemberReport{
|
report := &InviteMemberReport{
|
||||||
Uid: userInfo.Uid,
|
Uid: userInfo.Uid,
|
||||||
StoreId: uint32(userInfo.StoreId),
|
StoreId: uint32(userInfo.StoreId),
|
||||||
GoldCount: 0,
|
GoldCount: 0,
|
||||||
PlatinumCount: 0,
|
GoldCountHalf: 0,
|
||||||
BlackGoldCount: 0,
|
GoldCountQuarter: 0,
|
||||||
Date: reportTime,
|
PlatinumCount: 0,
|
||||||
DeductAmount: 0,
|
BlackGoldCount: 0,
|
||||||
CooperativeBusinessId: userInfo.CooperativeBusinessId,
|
Date: reportTime,
|
||||||
CooperativeName: userInfo.CooperativeName,
|
DeductAmount: 0,
|
||||||
//GoldDeduct: m.CooperativeAssistantMemberDeduct.GoldDeduct,
|
CooperativeBusinessId: userInfo.CooperativeBusinessId,
|
||||||
//PlatinumDeduct: m.CooperativeAssistantMemberDeduct.PlatinumDeduct,
|
CooperativeName: userInfo.CooperativeName,
|
||||||
//BlackGoldDeduct: m.CooperativeAssistantMemberDeduct.BlackGoldDeduct,
|
GoldDeduct: m.CooperativeAssistantMemberDeduct.GoldDeduct,
|
||||||
|
PlatinumDeduct: m.CooperativeAssistantMemberDeduct.PlatinumDeduct,
|
||||||
|
BlackGoldDeduct: m.CooperativeAssistantMemberDeduct.BlackGoldDeduct,
|
||||||
|
RenewalGoldCount: 0,
|
||||||
|
RenewalGoldCountHalf: 0,
|
||||||
|
RenewalGoldCountQuarter: 0,
|
||||||
|
RenewalPlatinumCount: 0,
|
||||||
|
RenewalBlackGoldCount: 0,
|
||||||
|
UpgradeGoldToPlatinumCount: 0,
|
||||||
|
UpgradeGoldToBlackCount: 0,
|
||||||
|
UpgradePlatinumToBlackCount: 0,
|
||||||
|
InviteRenewalGoldCount: 0,
|
||||||
|
InviteRenewalPlatinumCount: 0,
|
||||||
|
InviteRenewalBlackGoldCount: 0,
|
||||||
|
InviteUpgradeGoldToPlatinumCount: 0,
|
||||||
|
InviteUpgradeGoldToBlackCount: 0,
|
||||||
|
InviteUpgradePlatinumToBlackCount: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
//for i, _ := range userInvites {
|
//for i, _ := range userInvites {
|
||||||
|
@ -2928,13 +2944,13 @@ func (m *AssistantInviteMemberReportReq) List(c *gin.Context) (*AssistantInviteM
|
||||||
//totalPage := int(count)/m.PageSize + 1
|
//totalPage := int(count)/m.PageSize + 1
|
||||||
|
|
||||||
if m.IsExport == 1 { // 导出excel
|
if m.IsExport == 1 { // 导出excel
|
||||||
err = qs.Order("store_id DESC,id DESC").Find(&memberReport).Error
|
err = qs.Order("STR_TO_DATE(date, '%Y-%m-%d') DESC, store_id ASC").Find(&memberReport).Error
|
||||||
if err != nil && err != RecordNotFound {
|
if err != nil && err != RecordNotFound {
|
||||||
logger.Error("err:", logger.Field("err", err))
|
logger.Error("err:", logger.Field("err", err))
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
err = qs.Order("store_id DESC,id DESC").Offset(page * m.PageSize).Limit(m.PageSize).Find(&memberReport).Error
|
err = qs.Order("STR_TO_DATE(date, '%Y-%m-%d') DESC, store_id ASC").Offset(page * m.PageSize).Limit(m.PageSize).Find(&memberReport).Error
|
||||||
if err != nil && err != RecordNotFound {
|
if err != nil && err != RecordNotFound {
|
||||||
logger.Error("err:", logger.Field("err", err))
|
logger.Error("err:", logger.Field("err", err))
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
93
docs/docs.go
93
docs/docs.go
|
@ -5374,7 +5374,7 @@ const docTemplate = `{
|
||||||
"in": "body",
|
"in": "body",
|
||||||
"required": true,
|
"required": true,
|
||||||
"schema": {
|
"schema": {
|
||||||
"$ref": "#/definitions/basic.SupplierListRequest"
|
"$ref": "#/definitions/models.GetSupplierRequest"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -5384,7 +5384,7 @@ const docTemplate = `{
|
||||||
"schema": {
|
"schema": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"$ref": "#/definitions/models.Supplier"
|
"$ref": "#/definitions/models.GetSupplierResp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6374,19 +6374,6 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"basic.SupplierListRequest": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"name": {
|
|
||||||
"description": "供应商名称",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"number": {
|
|
||||||
"description": "供应商编号",
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"basic.SupplierUpdateRequest": {
|
"basic.SupplierUpdateRequest": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": [
|
"required": [
|
||||||
|
@ -8802,6 +8789,10 @@ const docTemplate = `{
|
||||||
"description": "审核人姓名",
|
"description": "审核人姓名",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"bank_trx_no": {
|
||||||
|
"description": "银行流水号",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"bill_sn": {
|
"bill_sn": {
|
||||||
"description": "单据编号",
|
"description": "单据编号",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -9449,10 +9440,18 @@ const docTemplate = `{
|
||||||
"models.ErpOrderRetailDetailReq": {
|
"models.ErpOrderRetailDetailReq": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"bank_trx_no": {
|
||||||
|
"description": "银行流水号",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"bill_sn": {
|
"bill_sn": {
|
||||||
"description": "单据编号",
|
"description": "单据编号",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"cashier_id": {
|
||||||
|
"description": "收付款方式id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"end_time": {
|
"end_time": {
|
||||||
"description": "结束时间",
|
"description": "结束时间",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -11123,7 +11122,10 @@ const docTemplate = `{
|
||||||
},
|
},
|
||||||
"commodity_name": {
|
"commodity_name": {
|
||||||
"description": "商品名称",
|
"description": "商品名称",
|
||||||
"type": "string"
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"erp_category_id": {
|
"erp_category_id": {
|
||||||
"description": "商品分类Id",
|
"description": "商品分类Id",
|
||||||
|
@ -11171,6 +11173,13 @@ const docTemplate = `{
|
||||||
},
|
},
|
||||||
"state": {
|
"state": {
|
||||||
"description": "库存状态:1-在库 2-已售 3-采购退货 4-调拨中 5-出库(前端只看1,4)",
|
"description": "库存状态:1-在库 2-已售 3-采购退货 4-调拨中 5-出库(前端只看1,4)",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stock_sort_flag": {
|
||||||
|
"description": "排序方式:0-按入库时间降序排列(默认),1-按入库时间升序排列",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
"stock_time_end": {
|
"stock_time_end": {
|
||||||
|
@ -11759,6 +11768,54 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"models.GetSupplierRequest": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"cooperativeBusinessId": {
|
||||||
|
"description": "合作商id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"description": "供应商名称",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"number": {
|
||||||
|
"description": "供应商编号",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"pageIndex": {
|
||||||
|
"description": "页码",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"pageSize": {
|
||||||
|
"description": "每页展示数据条数",
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"models.GetSupplierResp": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"list": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/definitions/models.Supplier"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pageIndex": {
|
||||||
|
"description": "页码",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"pageSize": {
|
||||||
|
"description": "每页展示条数",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"description": "数据总条数",
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"models.GoodsOrderListReq": {
|
"models.GoodsOrderListReq": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -16183,11 +16240,11 @@ const docTemplate = `{
|
||||||
"properties": {
|
"properties": {
|
||||||
"DJ": {
|
"DJ": {
|
||||||
"description": "商品指导零售价",
|
"description": "商品指导零售价",
|
||||||
"type": "integer"
|
"type": "number"
|
||||||
},
|
},
|
||||||
"JE": {
|
"JE": {
|
||||||
"description": "商品指导零售价乘以销售数量",
|
"description": "商品指导零售价乘以销售数量",
|
||||||
"type": "integer"
|
"type": "number"
|
||||||
},
|
},
|
||||||
"SL": {
|
"SL": {
|
||||||
"description": "销售数量",
|
"description": "销售数量",
|
||||||
|
|
|
@ -5363,7 +5363,7 @@
|
||||||
"in": "body",
|
"in": "body",
|
||||||
"required": true,
|
"required": true,
|
||||||
"schema": {
|
"schema": {
|
||||||
"$ref": "#/definitions/basic.SupplierListRequest"
|
"$ref": "#/definitions/models.GetSupplierRequest"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -5373,7 +5373,7 @@
|
||||||
"schema": {
|
"schema": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"$ref": "#/definitions/models.Supplier"
|
"$ref": "#/definitions/models.GetSupplierResp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6363,19 +6363,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"basic.SupplierListRequest": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"name": {
|
|
||||||
"description": "供应商名称",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"number": {
|
|
||||||
"description": "供应商编号",
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"basic.SupplierUpdateRequest": {
|
"basic.SupplierUpdateRequest": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": [
|
"required": [
|
||||||
|
@ -8791,6 +8778,10 @@
|
||||||
"description": "审核人姓名",
|
"description": "审核人姓名",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"bank_trx_no": {
|
||||||
|
"description": "银行流水号",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"bill_sn": {
|
"bill_sn": {
|
||||||
"description": "单据编号",
|
"description": "单据编号",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -9438,10 +9429,18 @@
|
||||||
"models.ErpOrderRetailDetailReq": {
|
"models.ErpOrderRetailDetailReq": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"bank_trx_no": {
|
||||||
|
"description": "银行流水号",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"bill_sn": {
|
"bill_sn": {
|
||||||
"description": "单据编号",
|
"description": "单据编号",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"cashier_id": {
|
||||||
|
"description": "收付款方式id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"end_time": {
|
"end_time": {
|
||||||
"description": "结束时间",
|
"description": "结束时间",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -11112,7 +11111,10 @@
|
||||||
},
|
},
|
||||||
"commodity_name": {
|
"commodity_name": {
|
||||||
"description": "商品名称",
|
"description": "商品名称",
|
||||||
"type": "string"
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"erp_category_id": {
|
"erp_category_id": {
|
||||||
"description": "商品分类Id",
|
"description": "商品分类Id",
|
||||||
|
@ -11160,6 +11162,13 @@
|
||||||
},
|
},
|
||||||
"state": {
|
"state": {
|
||||||
"description": "库存状态:1-在库 2-已售 3-采购退货 4-调拨中 5-出库(前端只看1,4)",
|
"description": "库存状态:1-在库 2-已售 3-采购退货 4-调拨中 5-出库(前端只看1,4)",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stock_sort_flag": {
|
||||||
|
"description": "排序方式:0-按入库时间降序排列(默认),1-按入库时间升序排列",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
"stock_time_end": {
|
"stock_time_end": {
|
||||||
|
@ -11748,6 +11757,54 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"models.GetSupplierRequest": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"cooperativeBusinessId": {
|
||||||
|
"description": "合作商id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"description": "供应商名称",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"number": {
|
||||||
|
"description": "供应商编号",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"pageIndex": {
|
||||||
|
"description": "页码",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"pageSize": {
|
||||||
|
"description": "每页展示数据条数",
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"models.GetSupplierResp": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"list": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/definitions/models.Supplier"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pageIndex": {
|
||||||
|
"description": "页码",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"pageSize": {
|
||||||
|
"description": "每页展示条数",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"description": "数据总条数",
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"models.GoodsOrderListReq": {
|
"models.GoodsOrderListReq": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -16172,11 +16229,11 @@
|
||||||
"properties": {
|
"properties": {
|
||||||
"DJ": {
|
"DJ": {
|
||||||
"description": "商品指导零售价",
|
"description": "商品指导零售价",
|
||||||
"type": "integer"
|
"type": "number"
|
||||||
},
|
},
|
||||||
"JE": {
|
"JE": {
|
||||||
"description": "商品指导零售价乘以销售数量",
|
"description": "商品指导零售价乘以销售数量",
|
||||||
"type": "integer"
|
"type": "number"
|
||||||
},
|
},
|
||||||
"SL": {
|
"SL": {
|
||||||
"description": "销售数量",
|
"description": "销售数量",
|
||||||
|
|
|
@ -177,15 +177,6 @@ definitions:
|
||||||
- bank_list
|
- bank_list
|
||||||
- name
|
- name
|
||||||
type: object
|
type: object
|
||||||
basic.SupplierListRequest:
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: 供应商名称
|
|
||||||
type: string
|
|
||||||
number:
|
|
||||||
description: 供应商编号
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
basic.SupplierUpdateRequest:
|
basic.SupplierUpdateRequest:
|
||||||
properties:
|
properties:
|
||||||
account_holder:
|
account_holder:
|
||||||
|
@ -1943,6 +1934,9 @@ definitions:
|
||||||
auditor_name:
|
auditor_name:
|
||||||
description: 审核人姓名
|
description: 审核人姓名
|
||||||
type: string
|
type: string
|
||||||
|
bank_trx_no:
|
||||||
|
description: 银行流水号
|
||||||
|
type: string
|
||||||
bill_sn:
|
bill_sn:
|
||||||
description: 单据编号
|
description: 单据编号
|
||||||
type: string
|
type: string
|
||||||
|
@ -2418,9 +2412,15 @@ definitions:
|
||||||
type: object
|
type: object
|
||||||
models.ErpOrderRetailDetailReq:
|
models.ErpOrderRetailDetailReq:
|
||||||
properties:
|
properties:
|
||||||
|
bank_trx_no:
|
||||||
|
description: 银行流水号
|
||||||
|
type: string
|
||||||
bill_sn:
|
bill_sn:
|
||||||
description: 单据编号
|
description: 单据编号
|
||||||
type: string
|
type: string
|
||||||
|
cashier_id:
|
||||||
|
description: 收付款方式id
|
||||||
|
type: integer
|
||||||
end_time:
|
end_time:
|
||||||
description: 结束时间
|
description: 结束时间
|
||||||
type: string
|
type: string
|
||||||
|
@ -3638,7 +3638,9 @@ definitions:
|
||||||
type: integer
|
type: integer
|
||||||
commodity_name:
|
commodity_name:
|
||||||
description: 商品名称
|
description: 商品名称
|
||||||
type: string
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
erp_category_id:
|
erp_category_id:
|
||||||
description: 商品分类Id
|
description: 商品分类Id
|
||||||
type: integer
|
type: integer
|
||||||
|
@ -3674,6 +3676,11 @@ definitions:
|
||||||
type: string
|
type: string
|
||||||
state:
|
state:
|
||||||
description: 库存状态:1-在库 2-已售 3-采购退货 4-调拨中 5-出库(前端只看1,4)
|
description: 库存状态:1-在库 2-已售 3-采购退货 4-调拨中 5-出库(前端只看1,4)
|
||||||
|
items:
|
||||||
|
type: integer
|
||||||
|
type: array
|
||||||
|
stock_sort_flag:
|
||||||
|
description: 排序方式:0-按入库时间降序排列(默认),1-按入库时间升序排列
|
||||||
type: integer
|
type: integer
|
||||||
stock_time_end:
|
stock_time_end:
|
||||||
description: 最近入库结束时间
|
description: 最近入库结束时间
|
||||||
|
@ -4091,6 +4098,40 @@ definitions:
|
||||||
total_page:
|
total_page:
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
models.GetSupplierRequest:
|
||||||
|
properties:
|
||||||
|
cooperativeBusinessId:
|
||||||
|
description: 合作商id
|
||||||
|
type: integer
|
||||||
|
name:
|
||||||
|
description: 供应商名称
|
||||||
|
type: string
|
||||||
|
number:
|
||||||
|
description: 供应商编号
|
||||||
|
type: string
|
||||||
|
pageIndex:
|
||||||
|
description: 页码
|
||||||
|
type: integer
|
||||||
|
pageSize:
|
||||||
|
description: 每页展示数据条数
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
|
models.GetSupplierResp:
|
||||||
|
properties:
|
||||||
|
list:
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/models.Supplier'
|
||||||
|
type: array
|
||||||
|
pageIndex:
|
||||||
|
description: 页码
|
||||||
|
type: integer
|
||||||
|
pageSize:
|
||||||
|
description: 每页展示条数
|
||||||
|
type: integer
|
||||||
|
total:
|
||||||
|
description: 数据总条数
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
models.GoodsOrderListReq:
|
models.GoodsOrderListReq:
|
||||||
properties:
|
properties:
|
||||||
goods_id:
|
goods_id:
|
||||||
|
@ -7282,10 +7323,10 @@ definitions:
|
||||||
properties:
|
properties:
|
||||||
DJ:
|
DJ:
|
||||||
description: 商品指导零售价
|
description: 商品指导零售价
|
||||||
type: integer
|
type: number
|
||||||
JE:
|
JE:
|
||||||
description: 商品指导零售价乘以销售数量
|
description: 商品指导零售价乘以销售数量
|
||||||
type: integer
|
type: number
|
||||||
SL:
|
SL:
|
||||||
description: 销售数量
|
description: 销售数量
|
||||||
type: integer
|
type: integer
|
||||||
|
@ -11290,7 +11331,7 @@ paths:
|
||||||
name: request
|
name: request
|
||||||
required: true
|
required: true
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/definitions/basic.SupplierListRequest'
|
$ref: '#/definitions/models.GetSupplierRequest'
|
||||||
produces:
|
produces:
|
||||||
- application/json
|
- application/json
|
||||||
responses:
|
responses:
|
||||||
|
@ -11298,7 +11339,7 @@ paths:
|
||||||
description: OK
|
description: OK
|
||||||
schema:
|
schema:
|
||||||
items:
|
items:
|
||||||
$ref: '#/definitions/models.Supplier'
|
$ref: '#/definitions/models.GetSupplierResp'
|
||||||
type: array
|
type: array
|
||||||
summary: 供应商列表
|
summary: 供应商列表
|
||||||
tags:
|
tags:
|
||||||
|
|
|
@ -52,6 +52,24 @@ func TestStock(t *testing.T) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFindRightErpStockCommodityId(t *testing.T) {
|
||||||
|
|
||||||
|
usedStockCommodityIdList := make(map[uint32][]uint32)
|
||||||
|
commodityId := 23
|
||||||
|
var stockCommodity []models.ErpStockCommodity
|
||||||
|
//stockCommodity1 := models.ErpStockCommodity{}
|
||||||
|
//stockCommodity1.ID = 4350
|
||||||
|
//
|
||||||
|
//stockCommodity2 := models.ErpStockCommodity{}
|
||||||
|
//stockCommodity2.ID = 4351
|
||||||
|
//
|
||||||
|
//stockCommodity = append(stockCommodity, stockCommodity1)
|
||||||
|
//stockCommodity = append(stockCommodity, stockCommodity2)
|
||||||
|
|
||||||
|
rightId, _ := models.FindRightErpStockCommodityId(usedStockCommodityIdList, uint32(commodityId), stockCommodity)
|
||||||
|
fmt.Println("rightId is:", rightId)
|
||||||
|
}
|
||||||
|
|
||||||
func TestSetGameCardStock(t *testing.T) {
|
func TestSetGameCardStock(t *testing.T) {
|
||||||
SetGameCardStock()
|
SetGameCardStock()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user