作者 唐旭辉

Merge branch 'dev' into test

@@ -34,6 +34,7 @@ func (dao OrderBaseDao) CheckOrderExist(companyId int64, orderCode string, @@ -34,6 +34,7 @@ func (dao OrderBaseDao) CheckOrderExist(companyId int64, orderCode string,
34 query := tx.Model(&models.OrderBase{}). 34 query := tx.Model(&models.OrderBase{}).
35 Where("company_id=?", companyId). 35 Where("company_id=?", companyId).
36 Where("order_code=?", orderCode). 36 Where("order_code=?", orderCode).
  37 + Where("delivery_code=?", deliveryCode).
37 Where("partner_id=?", partnerId). 38 Where("partner_id=?", partnerId).
38 Where(`partner_category @>'{"id":?}'`, partnerCategory). 39 Where(`partner_category @>'{"id":?}'`, partnerCategory).
39 Where("id<>?", notId) 40 Where("id<>?", notId)
@@ -6,6 +6,7 @@ import ( @@ -6,6 +6,7 @@ import (
6 "errors" 6 "errors"
7 "fmt" 7 "fmt"
8 "github.com/beego/beego/v2/client/httplib" 8 "github.com/beego/beego/v2/client/httplib"
  9 + "os"
9 "path" 10 "path"
10 "regexp" 11 "regexp"
11 "strconv" 12 "strconv"
@@ -659,6 +660,12 @@ func (c *OrderInfoController) DownloadTemplate() { @@ -659,6 +660,12 @@ func (c *OrderInfoController) DownloadTemplate() {
659 c.ResponseError(errors.New("类型编码错误")) 660 c.ResponseError(errors.New("类型编码错误"))
660 } 661 }
661 662
  663 + // 创建下载文件夹
  664 + mkErr := os.Mkdir("download", os.ModePerm)
  665 + if mkErr != nil {
  666 + fmt.Println(mkErr)
  667 + }
  668 +
662 // 获取导入模板 669 // 获取导入模板
663 req := httplib.Get("http://suplus-file-dev.fjmaimaimai.com/upload/file/2021010803305336443.xlsx") 670 req := httplib.Get("http://suplus-file-dev.fjmaimaimai.com/upload/file/2021010803305336443.xlsx")
664 err = req.ToFile(constant.IMPORT_EXCEL) 671 err = req.ToFile(constant.IMPORT_EXCEL)
@@ -1064,10 +1071,36 @@ func (c *OrderInfoController) ImportOrderFromExcel() { @@ -1064,10 +1071,36 @@ func (c *OrderInfoController) ImportOrderFromExcel() {
1064 } 1071 }
1065 } 1072 }
1066 1073
1067 - // 批量创建订单命令集 1074 + // 产品数量校验
  1075 + productNumberError := make([]interface{}, 0)
  1076 +
  1077 + // 批量创建订单命令集和产品数量校验
1068 var createOrderCommands []*orderCmd.CreateOrderCommand 1078 var createOrderCommands []*orderCmd.CreateOrderCommand
1069 for _, orderCommand := range orderCommands { 1079 for _, orderCommand := range orderCommands {
1070 - createOrderCommands = append(createOrderCommands, orderCommand) 1080 + if len(orderCommand.Goods) > 50 { // 产品数量校验
  1081 + for _, line := range orderCommand.LineNumbers {
  1082 + var tmpRow []string
  1083 + tmpRow = append(tmpRow, "单笔订单产品超过50种") // 错误信息
  1084 + s := strconv.Itoa(line + 1)
  1085 + tmpRow = append(tmpRow, s) // 行号
  1086 + tmpRow = append(tmpRow, rows[line]...) // 错误行数据
  1087 + productNumberError = append(productNumberError, tmpRow)
  1088 + }
  1089 + } else {
  1090 + createOrderCommands = append(createOrderCommands, orderCommand)
  1091 + }
  1092 + }
  1093 +
  1094 + if len(productNumberError) > 0 {
  1095 + ret = map[string]interface{}{
  1096 + "successCount": 0,
  1097 + "fail": map[string]interface{}{
  1098 + "tableHeader": tableHeader,
  1099 + "tableData": productNumberError,
  1100 + },
  1101 + }
  1102 + c.ResponseData(ret)
  1103 + return
1071 } 1104 }
1072 1105
1073 // 新增失败记录 1106 // 新增失败记录
@@ -6,10 +6,6 @@ import ( @@ -6,10 +6,6 @@ import (
6 ) 6 )
7 7
8 func init() { 8 func init() {
9 - // 导入相关  
10 - beego.Router("/fileImportTemplate", &controllers.OrderInfoController{}, "POST:DownloadTemplate") // 下载导入模板  
11 - beego.Router("/fileImport", &controllers.OrderInfoController{}, "POST:ImportOrderFromExcel") // 导入订单数据  
12 -  
13 adminRouter := beego.NewNamespace("/v1", 9 adminRouter := beego.NewNamespace("/v1",
14 beego.NSNamespace("/auth", 10 beego.NSNamespace("/auth",
15 beego.NSRouter("/login", &controllers.AdminLoginController{}, "POST:Login"), 11 beego.NSRouter("/login", &controllers.AdminLoginController{}, "POST:Login"),
@@ -45,6 +41,8 @@ func init() { @@ -45,6 +41,8 @@ func init() {
45 beego.NSRouter("/actual/del", &controllers.OrderInfoController{}, "POST:RemoveOrderReal"), // 删除实际订单 41 beego.NSRouter("/actual/del", &controllers.OrderInfoController{}, "POST:RemoveOrderReal"), // 删除实际订单
46 beego.NSRouter("/actual/update", &controllers.OrderInfoController{}, "POST:UpdateOrderReal"), // 新增实际订单 42 beego.NSRouter("/actual/update", &controllers.OrderInfoController{}, "POST:UpdateOrderReal"), // 新增实际订单
47 beego.NSRouter("/actual/close", &controllers.OrderInfoController{}, "POST:OrderDisable"), 43 beego.NSRouter("/actual/close", &controllers.OrderInfoController{}, "POST:OrderDisable"),
  44 + beego.NSRouter("/fileImportTemplate", &controllers.OrderInfoController{}, "POST:DownloadTemplate"), // 下载导入模板
  45 + beego.NSRouter("/fileImport", &controllers.OrderInfoController{}, "POST:ImportOrderFromExcel"), // 导入订单数据
48 ), 46 ),
49 beego.NSNamespace("/common", 47 beego.NSNamespace("/common",
50 beego.NSRouter("/partner", &controllers.CommonController{}, "POST:GetPartnerList"), 48 beego.NSRouter("/partner", &controllers.CommonController{}, "POST:GetPartnerList"),