|
@@ -54,15 +54,15 @@ func List(ctx context.Context, param model.OrderListParams) (map[string]interfac
|
|
orderSql = append(orderSql, fmt.Sprintf("a.audit_status in (%s)", strings.Join(statusArr, ",")))
|
|
orderSql = append(orderSql, fmt.Sprintf("a.audit_status in (%s)", strings.Join(statusArr, ",")))
|
|
}
|
|
}
|
|
|
|
|
|
- if len(param.OrderStatus) > 0 {
|
|
|
|
|
|
+ if len(param.OrderStatus) > 0 && len(param.OrderStatus) != 3 {
|
|
orderSql = append(orderSql, fmt.Sprintf("a.order_status in (%s)", strings.Join(param.OrderStatus, ",")))
|
|
orderSql = append(orderSql, fmt.Sprintf("a.order_status in (%s)", strings.Join(param.OrderStatus, ",")))
|
|
}
|
|
}
|
|
|
|
|
|
- if len(param.ReturnStatus) > 0 {
|
|
|
|
|
|
+ if len(param.ReturnStatus) > 0 && len(param.ReturnStatus) != 3 {
|
|
orderSql = append(orderSql, fmt.Sprintf("a.return_status in (%s)", strings.Join(param.ReturnStatus, ",")))
|
|
orderSql = append(orderSql, fmt.Sprintf("a.return_status in (%s)", strings.Join(param.ReturnStatus, ",")))
|
|
}
|
|
}
|
|
|
|
|
|
- if len(param.RefundStatus) > 0 {
|
|
|
|
|
|
+ if len(param.RefundStatus) > 0 && len(param.RefundStatus) != 3 {
|
|
orderSql = append(orderSql, fmt.Sprintf("a.refund_status in (%s)", strings.Join(param.RefundStatus, ",")))
|
|
orderSql = append(orderSql, fmt.Sprintf("a.refund_status in (%s)", strings.Join(param.RefundStatus, ",")))
|
|
}
|
|
}
|
|
|
|
|
|
@@ -99,7 +99,7 @@ func List(ctx context.Context, param model.OrderListParams) (map[string]interfac
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if len(param.InvoiceType) == 1 {
|
|
|
|
|
|
+ if len(param.ContractType) == 1 {
|
|
var statusArr []string
|
|
var statusArr []string
|
|
for _, s := range param.ContractType {
|
|
for _, s := range param.ContractType {
|
|
switch s {
|
|
switch s {
|
|
@@ -111,14 +111,14 @@ func List(ctx context.Context, param model.OrderListParams) (map[string]interfac
|
|
}
|
|
}
|
|
orderSql = append(orderSql, fmt.Sprintf("(%s)", strings.Join(statusArr, " or ")))
|
|
orderSql = append(orderSql, fmt.Sprintf("(%s)", strings.Join(statusArr, " or ")))
|
|
}
|
|
}
|
|
- if param.ProductType != "" {
|
|
|
|
|
|
+ if len(param.ProductType) > 0 {
|
|
//orderSql = append(orderSql, fmt.Sprintf(" a.order_code in (SELECT DISTINCT(order_code) FROM jy_order_detail WHERE product_type in ('%s') )", strings.ReplaceAll(param.ProductType, ",", "','")))
|
|
//orderSql = append(orderSql, fmt.Sprintf(" a.order_code in (SELECT DISTINCT(order_code) FROM jy_order_detail WHERE product_type in ('%s') )", strings.ReplaceAll(param.ProductType, ",", "','")))
|
|
orderSql = append(orderSql, fmt.Sprintf(` a.order_code in (SELECT DISTINCT(jyd.order_code) FROM jy_order_detail jyd
|
|
orderSql = append(orderSql, fmt.Sprintf(` a.order_code in (SELECT DISTINCT(jyd.order_code) FROM jy_order_detail jyd
|
|
inner JOIN dataexport_order dor on jyd.order_code = dor.order_code
|
|
inner JOIN dataexport_order dor on jyd.order_code = dor.order_code
|
|
LEFT JOIN
|
|
LEFT JOIN
|
|
( SELECT ordercode, ent_userId FROM order_sale_record WHERE ent_userId = '%d' and state in (1,2) GROUP BY ordercode,ent_userId
|
|
( SELECT ordercode, ent_userId FROM order_sale_record WHERE ent_userId = '%d' and state in (1,2) GROUP BY ordercode,ent_userId
|
|
)osr on osr.ordercode = jyd.order_code
|
|
)osr on osr.ordercode = jyd.order_code
|
|
-WHERE (dor.salesperson_entUserId ='%d' or osr.ent_userId ='%d') and jyd.product_type in ('%s')) `, adminId, adminId, adminId, strings.ReplaceAll(param.ProductType, ",", "','")))
|
|
|
|
|
|
+WHERE (dor.salesperson_entUserId ='%d' or osr.ent_userId ='%d') and jyd.product_type in ('%s')) `, adminId, adminId, adminId, strings.Join(param.ProductType, "','")))
|
|
}
|
|
}
|
|
if param.OrderTimeStart != "" {
|
|
if param.OrderTimeStart != "" {
|
|
orderSql = append(orderSql, fmt.Sprintf("a.create_time>='%s'", param.OrderTimeStart))
|
|
orderSql = append(orderSql, fmt.Sprintf("a.create_time>='%s'", param.OrderTimeStart))
|
|
@@ -176,8 +176,12 @@ LEFT JOIN (
|
|
) g ON a.order_code = g.orderCode
|
|
) g ON a.order_code = g.orderCode
|
|
WHERE
|
|
WHERE
|
|
%s`
|
|
%s`
|
|
|
|
+ //列表
|
|
sql := fmt.Sprintf(sqlWhere, " a.id,\n a.order_code,\n a.create_time,\n a.company_name,\n a.user_phone,\n a.user_nickname,\n a.buy_subject,\n a.audit_status,\n a.order_status,\n a.pay_money - IFNULL(g.orderMoney, 0) as pay_money,\n a.commission,\n a.return_status,\n IFNULL(c.return_money, 0) as return_money,\n IFNULL(b.invoiced_amount, 0) as invoiced_amount,\n a.refund_status,\n IFNULL(d.refund_money, 0) as refund_money,\n f.ent_userId,\n e.contract_status,\n e.contract_time,\n e.contract_archive_status,\n e.contract_archive_time,\n (SELECT id FROM jy_order_detail where order_code = a.order_code order by final_price desc, id desc LIMIT 1) as order_detail_id ", adminId, strings.Join(orderSql, " and "))
|
|
sql := fmt.Sprintf(sqlWhere, " a.id,\n a.order_code,\n a.create_time,\n a.company_name,\n a.user_phone,\n a.user_nickname,\n a.buy_subject,\n a.audit_status,\n a.order_status,\n a.pay_money - IFNULL(g.orderMoney, 0) as pay_money,\n a.commission,\n a.return_status,\n IFNULL(c.return_money, 0) as return_money,\n IFNULL(b.invoiced_amount, 0) as invoiced_amount,\n a.refund_status,\n IFNULL(d.refund_money, 0) as refund_money,\n f.ent_userId,\n e.contract_status,\n e.contract_time,\n e.contract_archive_status,\n e.contract_archive_time,\n (SELECT id FROM jy_order_detail where order_code = a.order_code order by final_price desc, id desc LIMIT 1) as order_detail_id ", adminId, strings.Join(orderSql, " and "))
|
|
|
|
+ //数量
|
|
sqlCount := fmt.Sprintf(sqlWhere, " count(1) ", adminId, strings.Join(orderSql, " and "))
|
|
sqlCount := fmt.Sprintf(sqlWhere, " count(1) ", adminId, strings.Join(orderSql, " and "))
|
|
|
|
+ //合同总金额
|
|
|
|
+ sqlSum := fmt.Sprintf(sqlWhere, " sum(pay_money) as pay_money_sum ", adminId, strings.Join(orderSql, " and "))
|
|
|
|
|
|
log.Println("list count sql :", sqlCount)
|
|
log.Println("list count sql :", sqlCount)
|
|
log.Println("list sql :", sql)
|
|
log.Println("list sql :", sql)
|
|
@@ -186,12 +190,33 @@ WHERE
|
|
log.Println("count err:=", err.Error())
|
|
log.Println("count err:=", err.Error())
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
- list, err := g.DB().Query(ctx, fmt.Sprintf(`%s order by a.create_time desc LIMIT %d,%d`, sql, (param.Page-1)*param.Size, param.Size))
|
|
|
|
|
|
+ var sortClassify string
|
|
|
|
+ switch param.SortClassify {
|
|
|
|
+ case 1:
|
|
|
|
+ sortClassify = " a.pay_money "
|
|
|
|
+ case 2:
|
|
|
|
+ sortClassify = " return_money "
|
|
|
|
+ case 3:
|
|
|
|
+ sortClassify = " invoiced_amount "
|
|
|
|
+ case 4:
|
|
|
|
+ sortClassify = " refund_money "
|
|
|
|
+ case 5:
|
|
|
|
+ sortClassify = " e.contract_time "
|
|
|
|
+ case 6:
|
|
|
|
+ sortClassify = " e.contract_archive_time "
|
|
|
|
+ default:
|
|
|
|
+ sortClassify = " a.create_time "
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ list, err := g.DB().Query(ctx, fmt.Sprintf(`%s order by %s %v LIMIT %d,%d`, sql, sortClassify, common.If(param.SortType == 1, " asc ", " desc "), (param.Page-1)*param.Size, param.Size))
|
|
if err != nil {
|
|
if err != nil {
|
|
log.Println("list err:=", err.Error())
|
|
log.Println("list err:=", err.Error())
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
- var listArr []map[string]interface{}
|
|
|
|
|
|
+ var (
|
|
|
|
+ listArr []map[string]interface{}
|
|
|
|
+ payMoneySum int
|
|
|
|
+ )
|
|
for _, m := range list.List() {
|
|
for _, m := range list.List() {
|
|
jyOrderDetail, _ := g.DB().GetOne(ctx, fmt.Sprintf(`SELECT * FROM jy_order_detail WHERE id = %d`, gconv.Int64(m["order_detail_id"])))
|
|
jyOrderDetail, _ := g.DB().GetOne(ctx, fmt.Sprintf(`SELECT * FROM jy_order_detail WHERE id = %d`, gconv.Int64(m["order_detail_id"])))
|
|
if !jyOrderDetail.IsEmpty() {
|
|
if !jyOrderDetail.IsEmpty() {
|
|
@@ -227,8 +252,13 @@ WHERE
|
|
}
|
|
}
|
|
listArr = append(listArr, m)
|
|
listArr = append(listArr, m)
|
|
}
|
|
}
|
|
|
|
+ sumData, _ := g.DB().GetOne(ctx, sqlSum)
|
|
|
|
+ if !sumData.IsEmpty() {
|
|
|
|
+ payMoneySum = gconv.Int(sumData.Map()["pay_money_sum"])
|
|
|
|
+ }
|
|
return map[string]interface{}{
|
|
return map[string]interface{}{
|
|
- "count": count,
|
|
|
|
- "list": listArr,
|
|
|
|
|
|
+ "count": count,
|
|
|
|
+ "list": listArr,
|
|
|
|
+ "payMoneySum": payMoneySum,
|
|
}, nil
|
|
}, nil
|
|
}
|
|
}
|