正在显示
4 个修改的文件
包含
542 行增加
和
295 行删除
| @@ -2,7 +2,6 @@ package service | @@ -2,7 +2,6 @@ package service | ||
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | 4 | "fmt" |
| 5 | - "strings" | ||
| 6 | "time" | 5 | "time" |
| 7 | 6 | ||
| 8 | "github.com/astaxie/beego/logs" | 7 | "github.com/astaxie/beego/logs" |
| @@ -902,212 +901,6 @@ func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrde | @@ -902,212 +901,6 @@ func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrde | ||
| 902 | return resp, cnt, nil | 901 | return resp, cnt, nil |
| 903 | } | 902 | } |
| 904 | 903 | ||
| 905 | -//GetOrderBestshopInfo 获取来源于xiangmi订单的详情以及分红数据 | ||
| 906 | -func (service OrderInfoService) GetOrderBestshopInfoWithBonus(orderBaseId int64, companyId int64) (interface{}, error) { | ||
| 907 | - var ( | ||
| 908 | - transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 909 | - err error | ||
| 910 | - ) | ||
| 911 | - if err = transactionContext.StartTransaction(); err != nil { | ||
| 912 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 913 | - } | ||
| 914 | - defer func() { | ||
| 915 | - transactionContext.RollbackTransaction() | ||
| 916 | - }() | ||
| 917 | - var ( | ||
| 918 | - orderBaseRepository domain.OrderBaseRepository | ||
| 919 | - orderGoodRepository domain.OrderGoodRepository | ||
| 920 | - orderBestshopRepository domain.OrderBestshopRepository | ||
| 921 | - orderGoodBestshopRepository domain.OrderGoodBestshopRepository | ||
| 922 | - orderLogRepository domain.OrderLogRepository | ||
| 923 | - partnerRepository domain.PartnerInfoRepository | ||
| 924 | - ) | ||
| 925 | - if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{ | ||
| 926 | - "transactionContext": transactionContext, | ||
| 927 | - }); err != nil { | ||
| 928 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 929 | - } | ||
| 930 | - if orderGoodRepository, err = factory.CreateOrderGoodRepository(map[string]interface{}{ | ||
| 931 | - "transactionContext": transactionContext, | ||
| 932 | - }); err != nil { | ||
| 933 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 934 | - } | ||
| 935 | - if orderBestshopRepository, err = factory.CreateOrderBestshopRepository(map[string]interface{}{ | ||
| 936 | - "transactionContext": transactionContext, | ||
| 937 | - }); err != nil { | ||
| 938 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 939 | - } | ||
| 940 | - if orderGoodBestshopRepository, err = factory.CreateOrderGoodBestshopRepository(map[string]interface{}{ | ||
| 941 | - "transactionContext": transactionContext, | ||
| 942 | - }); err != nil { | ||
| 943 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 944 | - } | ||
| 945 | - if orderLogRepository, err = factory.CreateOrderLogRepository(map[string]interface{}{ | ||
| 946 | - "transactionContext": transactionContext, | ||
| 947 | - }); err != nil { | ||
| 948 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 949 | - } | ||
| 950 | - if partnerRepository, err = factory.CreatePartnerInfoRepository(map[string]interface{}{ | ||
| 951 | - "transactionContext": transactionContext, | ||
| 952 | - }); err != nil { | ||
| 953 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 954 | - } | ||
| 955 | - var ( | ||
| 956 | - orderData *domain.OrderBase | ||
| 957 | - orderGoods []domain.OrderGood | ||
| 958 | - orderBestshopData *domain.OrderBestShop | ||
| 959 | - orderGoodBestshop []domain.OrderGoodBestShop | ||
| 960 | - orderLogs []domain.OrderLog | ||
| 961 | - partnerInfo *domain.PartnerInfo | ||
| 962 | - ) | ||
| 963 | - | ||
| 964 | - orderData, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{ | ||
| 965 | - OrderId: orderBaseId, | ||
| 966 | - CompanyId: companyId, | ||
| 967 | - }) | ||
| 968 | - if err != nil { | ||
| 969 | - e := fmt.Sprintf("获取订单(order_base)数据失败,id=%d,company_id=%d,err=%s", orderBaseId, companyId, err) | ||
| 970 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) | ||
| 971 | - } | ||
| 972 | - if orderData.OrderType != domain.OrderTypeBestShop { | ||
| 973 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, "获取的订单数据失败,OrderType err") | ||
| 974 | - } | ||
| 975 | - orderGoods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderData.Id}) | ||
| 976 | - if err != nil { | ||
| 977 | - e := fmt.Sprintf("获取订单的商品(order_good)数据失败,order_id=%d,err=%s", orderData.Id, err) | ||
| 978 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) | ||
| 979 | - } | ||
| 980 | - orderData.Goods = orderGoods | ||
| 981 | - partnerInfo, err = partnerRepository.FindOne(domain.PartnerFindOneQuery{UserId: orderData.PartnerId}) | ||
| 982 | - if err != nil { | ||
| 983 | - e := fmt.Sprintf("获取订单中的合伙人(partner)数据失败,id=%d,order_id=%d,err=%s", orderData.PartnerId, orderData.Id, err) | ||
| 984 | - logs.Error(e) | ||
| 985 | - } | ||
| 986 | - orderData.PartnerInfo = partnerInfo.Partner | ||
| 987 | - orderBestshopData, err = orderBestshopRepository.FindOne(domain.OrderBestshopFindOneQuery{OrderId: orderData.DataFrom.DataId}) | ||
| 988 | - if err != nil { | ||
| 989 | - e := fmt.Sprintf("获取xiangmi订单(order_bestshop)数据失败,id=%d,err=%s", orderData.DataFrom.DataId, err) | ||
| 990 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) | ||
| 991 | - } | ||
| 992 | - orderGoodBestshop, err = orderGoodBestshopRepository.Find(domain.OrderGoodBestshopFindQuery{OrderId: orderBestshopData.Id}) | ||
| 993 | - if err != nil { | ||
| 994 | - e := fmt.Sprintf("获取xiangmi订单货品(order_good_bestshop)数据失败,order_id=%d,err=%s", orderBestshopData.Id, err) | ||
| 995 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) | ||
| 996 | - } | ||
| 997 | - orderBestshopData.Goods = orderGoodBestshop | ||
| 998 | - orderLogs, err = orderLogRepository.Find(domain.OrderLogFindQuery{OrderId: orderData.Id}) | ||
| 999 | - if err != nil { | ||
| 1000 | - e := fmt.Sprintf("获取订单的修改记录(order_log)失败,err=%s", err) | ||
| 1001 | - logs.Error(e) | ||
| 1002 | - } | ||
| 1003 | - err = transactionContext.CommitTransaction() | ||
| 1004 | - if err != nil { | ||
| 1005 | - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 1006 | - } | ||
| 1007 | - result := service.buildOrderBestshopInfoData(orderData, orderBestshopData, orderLogs) | ||
| 1008 | - return result, nil | ||
| 1009 | -} | ||
| 1010 | - | ||
| 1011 | -//BuildOrderBestshopInfoData 构建前端需要的数据结构 | ||
| 1012 | -func (service OrderInfoService) buildOrderBestshopInfoData(orderBase *domain.OrderBase, | ||
| 1013 | - orderBestshop *domain.OrderBestShop, orderLogs []domain.OrderLog) interface{} { | ||
| 1014 | - orderGoodBestshopMap := map[int64]*domain.OrderGoodBestShop{} | ||
| 1015 | - for i := range orderBestshop.Goods { | ||
| 1016 | - goodid := orderBestshop.Goods[i].Id | ||
| 1017 | - orderGoodBestshopMap[goodid] = &orderBestshop.Goods[i] | ||
| 1018 | - } | ||
| 1019 | - //订单中的商品 | ||
| 1020 | - productDetail := []map[string]interface{}{} | ||
| 1021 | - var hasPartnerBonusPercent bool | ||
| 1022 | - for i := range orderBase.Goods { | ||
| 1023 | - detail := map[string]interface{}{ | ||
| 1024 | - "commodityName": orderBase.Goods[i].GoodName, | ||
| 1025 | - "productCodes": "", | ||
| 1026 | - "commodityCode": "", | ||
| 1027 | - "univalence": orderBase.Goods[i].Price, | ||
| 1028 | - "orderNum": orderBase.Goods[i].GetCurrentGoodNumber(), | ||
| 1029 | - "commodityPrice": orderBase.Goods[i].GetCurrentAmount(), | ||
| 1030 | - "partnerDividends": "", | ||
| 1031 | - "productId": orderBase.Goods[i].Id, | ||
| 1032 | - "paymentStatus": orderBase.Goods[i].BonusStatus, | ||
| 1033 | - "partnerRatio": orderBase.Goods[i].PartnerBonusPercent, | ||
| 1034 | - } | ||
| 1035 | - if orderBase.Goods[i].PartnerBonusPercent >= 0 { | ||
| 1036 | - hasPartnerBonusPercent = true | ||
| 1037 | - detail["partnerDividends"] = fmt.Sprint(orderBase.Goods[i].GetCurrentPartnerBonus()) | ||
| 1038 | - } | ||
| 1039 | - goodBestshopId := orderBase.Goods[i].DataFrom.DataId | ||
| 1040 | - if v, ok := orderGoodBestshopMap[goodBestshopId]; ok { | ||
| 1041 | - detail["productCodes"] = v.Sn | ||
| 1042 | - detail["commodityCode"] = v.Bn | ||
| 1043 | - } | ||
| 1044 | - productDetail = append(productDetail, detail) | ||
| 1045 | - } | ||
| 1046 | - product := map[string]interface{}{ | ||
| 1047 | - "orderNumCount": orderBase.GetCurrentOrderCount(), | ||
| 1048 | - "partnerDividendsCount": "", | ||
| 1049 | - "orderAmountAdjustmentCount": orderBase.GetCurrentOrderAmount(), | ||
| 1050 | - "detail": productDetail, | ||
| 1051 | - } | ||
| 1052 | - if hasPartnerBonusPercent { | ||
| 1053 | - product["partnerDividendsCount"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus()) | ||
| 1054 | - } | ||
| 1055 | - //订单描述 | ||
| 1056 | - order := map[string]interface{}{ | ||
| 1057 | - "orderId": orderBase.Id, | ||
| 1058 | - "orderState": orderBestshop.OrderState, | ||
| 1059 | - "customers": orderBase.Buyer.BuyerName, | ||
| 1060 | - "address": orderBestshop.BuyerAddress, | ||
| 1061 | - "remarks": orderBestshop.BuyerRemark, | ||
| 1062 | - "partner": orderBase.PartnerInfo.PartnerName, | ||
| 1063 | - "phone": orderBestshop.BuyerPhone, | ||
| 1064 | - "orderTime": orderBestshop.OrderTime, | ||
| 1065 | - "shippingStatus": orderBestshop.DeliveryState, | ||
| 1066 | - "partnerDividends": "", | ||
| 1067 | - "receivedDividends": "", | ||
| 1068 | - "notReceivedDividend": "", | ||
| 1069 | - "dividendSpending": "", | ||
| 1070 | - "orderNumber": orderBase.OrderCode, | ||
| 1071 | - } | ||
| 1072 | - if hasPartnerBonusPercent { | ||
| 1073 | - order["partnerDividends"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus()) | ||
| 1074 | - order["receivedDividends"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusHas) | ||
| 1075 | - order["notReceivedDividend"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusNot) | ||
| 1076 | - order["dividendSpending"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusExpense) | ||
| 1077 | - } | ||
| 1078 | - modifyLog := []map[string]interface{}{} | ||
| 1079 | - for i := range orderLogs { | ||
| 1080 | - m := map[string]interface{}{ | ||
| 1081 | - "title": orderLogs[i].LogAction, | ||
| 1082 | - "time": orderLogs[i].AlterTime.Local().Format("2006-01-02 15:04:05"), | ||
| 1083 | - "userName": orderLogs[i].Operator, | ||
| 1084 | - "id": orderLogs[i].Id, | ||
| 1085 | - } | ||
| 1086 | - detail := []map[string]string{} | ||
| 1087 | - for ii, vv := range orderLogs[i].Descript { | ||
| 1088 | - d := map[string]string{ | ||
| 1089 | - "updateTitle": vv.Title, | ||
| 1090 | - "id": fmt.Sprint(ii), | ||
| 1091 | - "content": vv.Item, | ||
| 1092 | - } | ||
| 1093 | - if len(vv.Action) > 0 { | ||
| 1094 | - d["content"] = vv.Item + ":" + strings.Join(vv.Action, ";") | ||
| 1095 | - } | ||
| 1096 | - detail = append(detail, d) | ||
| 1097 | - } | ||
| 1098 | - m["updateList"] = detail | ||
| 1099 | - modifyLog = append(modifyLog, m) | ||
| 1100 | - } | ||
| 1101 | - | ||
| 1102 | - result := map[string]interface{}{ | ||
| 1103 | - "order": order, | ||
| 1104 | - "product": product, | ||
| 1105 | - "modify": modifyLog, | ||
| 1106 | - "remark": orderBase.Remark.RemarkBonus, | ||
| 1107 | - } | ||
| 1108 | - return result | ||
| 1109 | -} | ||
| 1110 | - | ||
| 1111 | //UpdateBounsWithGoodNumber 分红时,因修改订单中商品的数量发生分红变动 | 904 | //UpdateBounsWithGoodNumber 分红时,因修改订单中商品的数量发生分红变动 |
| 1112 | func (service OrderInfoService) UpdateBonusByGoodNumber(orderId int64, goodId int64, adminId int64, goodNumber int, reason string) error { | 905 | func (service OrderInfoService) UpdateBonusByGoodNumber(orderId int64, goodId int64, adminId int64, goodNumber int, reason string) error { |
| 1113 | var ( | 906 | var ( |
| 1 | +package service | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "strings" | ||
| 6 | + | ||
| 7 | + "github.com/astaxie/beego/logs" | ||
| 8 | + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/factory" | ||
| 9 | + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain" | ||
| 10 | + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +//GetOrderInfoWithBonus 获取订单的分红详情 | ||
| 14 | +func (service OrderInfoService) GetOrderInfoWithBonus(orderBaseId int64, companyId int64) (interface{}, error) { | ||
| 15 | + var err error | ||
| 16 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 17 | + if err != nil { | ||
| 18 | + return nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error()) | ||
| 19 | + } | ||
| 20 | + var ( | ||
| 21 | + orderBaseRepository domain.OrderBaseRepository | ||
| 22 | + order *domain.OrderBase | ||
| 23 | + ) | ||
| 24 | + if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{ | ||
| 25 | + "transactionContext": transactionContext, | ||
| 26 | + }); err != nil { | ||
| 27 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 28 | + } | ||
| 29 | + order, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{ | ||
| 30 | + OrderId: orderBaseId, | ||
| 31 | + CompanyId: companyId, | ||
| 32 | + }) | ||
| 33 | + if err != nil { | ||
| 34 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取订单数据失败:%s", err)) | ||
| 35 | + } | ||
| 36 | + var ( | ||
| 37 | + returnData interface{} | ||
| 38 | + ) | ||
| 39 | + switch order.OrderType { | ||
| 40 | + case domain.OrderIntention: | ||
| 41 | + returnData, err = service.GetOrderBaseDetailWithBonus(orderBaseId, companyId) | ||
| 42 | + case domain.OrderTypeBestShop: | ||
| 43 | + returnData, err = service.GetOrderBestshopInfoWithBonus(orderBaseId, companyId) | ||
| 44 | + } | ||
| 45 | + return returnData, err | ||
| 46 | +} | ||
| 47 | + | ||
| 48 | +//GetOrderBaseDetailWithBonus 获取实际订单分红详情 | ||
| 49 | +func (service OrderInfoService) GetOrderBaseDetailWithBonus(orderBaseId int64, companyId int64) (interface{}, error) { | ||
| 50 | + //实际业务 | ||
| 51 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 52 | + if err != nil { | ||
| 53 | + return nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error()) | ||
| 54 | + } | ||
| 55 | + var ( | ||
| 56 | + orderBaseRepository domain.OrderBaseRepository | ||
| 57 | + partnerInfoRepository domain.PartnerInfoRepository | ||
| 58 | + orderGoodRepository domain.OrderGoodRepository | ||
| 59 | + orderLogRepository domain.OrderLogRepository | ||
| 60 | + order *domain.OrderBase | ||
| 61 | + ) | ||
| 62 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 63 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 64 | + } | ||
| 65 | + defer func() { | ||
| 66 | + transactionContext.RollbackTransaction() | ||
| 67 | + }() | ||
| 68 | + if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{ | ||
| 69 | + "transactionContext": transactionContext, | ||
| 70 | + }); err != nil { | ||
| 71 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 72 | + } | ||
| 73 | + if orderLogRepository, err = factory.CreateOrderLogRepository(map[string]interface{}{ | ||
| 74 | + "transactionContext": transactionContext, | ||
| 75 | + }); err != nil { | ||
| 76 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 77 | + } | ||
| 78 | + if partnerInfoRepository, err = factory.CreatePartnerInfoRepository(map[string]interface{}{ | ||
| 79 | + "transactionContext": transactionContext, | ||
| 80 | + }); err != nil { | ||
| 81 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 82 | + } | ||
| 83 | + if orderGoodRepository, err = factory.CreateOrderGoodRepository(map[string]interface{}{ | ||
| 84 | + "transactionContext": transactionContext, | ||
| 85 | + }); err != nil { | ||
| 86 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 87 | + } | ||
| 88 | + order, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{ | ||
| 89 | + OrderId: orderBaseId, | ||
| 90 | + CompanyId: companyId, | ||
| 91 | + }) | ||
| 92 | + if err != nil { | ||
| 93 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取订单数据失败:%s", err)) | ||
| 94 | + } | ||
| 95 | + var ( | ||
| 96 | + partnerData *domain.PartnerInfo | ||
| 97 | + goods []domain.OrderGood | ||
| 98 | + orderLogs []domain.OrderLog | ||
| 99 | + ) | ||
| 100 | + | ||
| 101 | + partnerData, err = partnerInfoRepository.FindOne(domain.PartnerFindOneQuery{ | ||
| 102 | + UserId: order.PartnerId, | ||
| 103 | + CompanyId: companyId, | ||
| 104 | + }) | ||
| 105 | + if err != nil { | ||
| 106 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("检索合伙人数据失败:%s", err)) | ||
| 107 | + } | ||
| 108 | + order.PartnerInfo = partnerData.Partner | ||
| 109 | + goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{ | ||
| 110 | + OrderId: order.Id, | ||
| 111 | + CompanyId: companyId, | ||
| 112 | + }) | ||
| 113 | + if err != nil { | ||
| 114 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取订单中的商品列表失败:%s", err)) | ||
| 115 | + } | ||
| 116 | + order.Goods = goods | ||
| 117 | + orderLogs, err = orderLogRepository.Find(domain.OrderLogFindQuery{OrderId: order.Id}) | ||
| 118 | + if err != nil { | ||
| 119 | + e := fmt.Sprintf("获取订单的修改记录(order_log)失败,err=%s", err) | ||
| 120 | + logs.Error(e) | ||
| 121 | + } | ||
| 122 | + err = transactionContext.CommitTransaction() | ||
| 123 | + if err != nil { | ||
| 124 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 125 | + } | ||
| 126 | + result := service.buildOrderBaseInfoData(order, orderLogs) | ||
| 127 | + return result, nil | ||
| 128 | +} | ||
| 129 | + | ||
| 130 | +//BuildOrderBestshopInfoData 构建前端需要的数据结构 | ||
| 131 | +func (service OrderInfoService) buildOrderBaseInfoData(orderBase *domain.OrderBase, orderLogs []domain.OrderLog) interface{} { | ||
| 132 | + //订单中的商品 | ||
| 133 | + productDetail := []map[string]interface{}{} | ||
| 134 | + var hasPartnerBonusPercent bool | ||
| 135 | + for i := range orderBase.Goods { | ||
| 136 | + detail := map[string]interface{}{ | ||
| 137 | + "commodityName": orderBase.Goods[i].GoodName, | ||
| 138 | + "productCodes": "", | ||
| 139 | + "commodityCode": "", | ||
| 140 | + "univalence": orderBase.Goods[i].Price, | ||
| 141 | + "orderNum": orderBase.Goods[i].GetCurrentGoodNumber(), | ||
| 142 | + "commodityPrice": orderBase.Goods[i].GetCurrentAmount(), | ||
| 143 | + "partnerDividends": "", | ||
| 144 | + "productId": orderBase.Goods[i].Id, | ||
| 145 | + "paymentStatus": orderBase.Goods[i].BonusStatus, | ||
| 146 | + "partnerRatio": orderBase.Goods[i].PartnerBonusPercent, | ||
| 147 | + } | ||
| 148 | + if orderBase.Goods[i].PartnerBonusPercent >= 0 { | ||
| 149 | + hasPartnerBonusPercent = true | ||
| 150 | + detail["partnerDividends"] = fmt.Sprint(orderBase.Goods[i].GetCurrentPartnerBonus()) | ||
| 151 | + } | ||
| 152 | + productDetail = append(productDetail, detail) | ||
| 153 | + } | ||
| 154 | + product := map[string]interface{}{ | ||
| 155 | + "orderNumCount": orderBase.GetCurrentOrderCount(), | ||
| 156 | + "partnerDividendsCount": "", | ||
| 157 | + "orderAmountAdjustmentCount": orderBase.GetCurrentOrderAmount(), | ||
| 158 | + "detail": productDetail, | ||
| 159 | + } | ||
| 160 | + if hasPartnerBonusPercent { | ||
| 161 | + product["partnerDividendsCount"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus()) | ||
| 162 | + } | ||
| 163 | + //订单描述 | ||
| 164 | + order := map[string]interface{}{ | ||
| 165 | + "orderId": orderBase.Id, | ||
| 166 | + "orderType": orderBase.OrderType, | ||
| 167 | + "orderState": "", | ||
| 168 | + "customers": orderBase.Buyer.BuyerName, | ||
| 169 | + "address": "", | ||
| 170 | + "remarks": "", | ||
| 171 | + "partner": orderBase.PartnerInfo.PartnerName, | ||
| 172 | + "phone": "", | ||
| 173 | + "orderTime": orderBase.CreateTime.Local().Format("2006-01-02 15:04:05"), | ||
| 174 | + "shippingStatus": orderBase.CreateTime.Local().Format("2006-01-02 15:04:05"), | ||
| 175 | + "partnerDividends": "", | ||
| 176 | + "receivedDividends": "", | ||
| 177 | + "notReceivedDividend": "", | ||
| 178 | + "dividendSpending": "", | ||
| 179 | + "orderNumber": orderBase.OrderCode, | ||
| 180 | + } | ||
| 181 | + if hasPartnerBonusPercent { | ||
| 182 | + order["partnerDividends"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus()) | ||
| 183 | + order["receivedDividends"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusHas) | ||
| 184 | + order["notReceivedDividend"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusNot) | ||
| 185 | + order["dividendSpending"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusExpense) | ||
| 186 | + } | ||
| 187 | + modifyLog := []map[string]interface{}{} | ||
| 188 | + for i := range orderLogs { | ||
| 189 | + m := map[string]interface{}{ | ||
| 190 | + "title": orderLogs[i].LogAction, | ||
| 191 | + "time": orderLogs[i].AlterTime.Local().Format("2006-01-02 15:04:05"), | ||
| 192 | + "userName": orderLogs[i].Operator, | ||
| 193 | + "id": orderLogs[i].Id, | ||
| 194 | + } | ||
| 195 | + detail := []map[string]string{} | ||
| 196 | + for ii, vv := range orderLogs[i].Descript { | ||
| 197 | + d := map[string]string{ | ||
| 198 | + "updateTitle": vv.Title, | ||
| 199 | + "id": fmt.Sprint(ii), | ||
| 200 | + "content": vv.Item, | ||
| 201 | + } | ||
| 202 | + if len(vv.Action) > 0 { | ||
| 203 | + d["content"] = vv.Item + ":" + strings.Join(vv.Action, ";") | ||
| 204 | + } | ||
| 205 | + detail = append(detail, d) | ||
| 206 | + } | ||
| 207 | + m["updateList"] = detail | ||
| 208 | + modifyLog = append(modifyLog, m) | ||
| 209 | + } | ||
| 210 | + | ||
| 211 | + result := map[string]interface{}{ | ||
| 212 | + "order": order, | ||
| 213 | + "product": product, | ||
| 214 | + "modify": modifyLog, | ||
| 215 | + "remark": orderBase.Remark.RemarkBonus, | ||
| 216 | + } | ||
| 217 | + return result | ||
| 218 | +} | ||
| 219 | + | ||
| 220 | +//GetOrderBestshopInfo 获取来源于xiangmi订单的详情以及分红数据 | ||
| 221 | +func (service OrderInfoService) GetOrderBestshopInfoWithBonus(orderBaseId int64, companyId int64) (interface{}, error) { | ||
| 222 | + var ( | ||
| 223 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 224 | + err error | ||
| 225 | + ) | ||
| 226 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 227 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 228 | + } | ||
| 229 | + defer func() { | ||
| 230 | + transactionContext.RollbackTransaction() | ||
| 231 | + }() | ||
| 232 | + var ( | ||
| 233 | + orderBaseRepository domain.OrderBaseRepository | ||
| 234 | + orderGoodRepository domain.OrderGoodRepository | ||
| 235 | + orderBestshopRepository domain.OrderBestshopRepository | ||
| 236 | + orderGoodBestshopRepository domain.OrderGoodBestshopRepository | ||
| 237 | + orderLogRepository domain.OrderLogRepository | ||
| 238 | + partnerRepository domain.PartnerInfoRepository | ||
| 239 | + ) | ||
| 240 | + if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{ | ||
| 241 | + "transactionContext": transactionContext, | ||
| 242 | + }); err != nil { | ||
| 243 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 244 | + } | ||
| 245 | + if orderGoodRepository, err = factory.CreateOrderGoodRepository(map[string]interface{}{ | ||
| 246 | + "transactionContext": transactionContext, | ||
| 247 | + }); err != nil { | ||
| 248 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 249 | + } | ||
| 250 | + if orderBestshopRepository, err = factory.CreateOrderBestshopRepository(map[string]interface{}{ | ||
| 251 | + "transactionContext": transactionContext, | ||
| 252 | + }); err != nil { | ||
| 253 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 254 | + } | ||
| 255 | + if orderGoodBestshopRepository, err = factory.CreateOrderGoodBestshopRepository(map[string]interface{}{ | ||
| 256 | + "transactionContext": transactionContext, | ||
| 257 | + }); err != nil { | ||
| 258 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 259 | + } | ||
| 260 | + if orderLogRepository, err = factory.CreateOrderLogRepository(map[string]interface{}{ | ||
| 261 | + "transactionContext": transactionContext, | ||
| 262 | + }); err != nil { | ||
| 263 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 264 | + } | ||
| 265 | + if partnerRepository, err = factory.CreatePartnerInfoRepository(map[string]interface{}{ | ||
| 266 | + "transactionContext": transactionContext, | ||
| 267 | + }); err != nil { | ||
| 268 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 269 | + } | ||
| 270 | + var ( | ||
| 271 | + orderData *domain.OrderBase | ||
| 272 | + orderGoods []domain.OrderGood | ||
| 273 | + orderBestshopData *domain.OrderBestShop | ||
| 274 | + orderGoodBestshop []domain.OrderGoodBestShop | ||
| 275 | + orderLogs []domain.OrderLog | ||
| 276 | + partnerInfo *domain.PartnerInfo | ||
| 277 | + ) | ||
| 278 | + | ||
| 279 | + orderData, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{ | ||
| 280 | + OrderId: orderBaseId, | ||
| 281 | + CompanyId: companyId, | ||
| 282 | + }) | ||
| 283 | + if err != nil { | ||
| 284 | + e := fmt.Sprintf("获取订单(order_base)数据失败,id=%d,company_id=%d,err=%s", orderBaseId, companyId, err) | ||
| 285 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) | ||
| 286 | + } | ||
| 287 | + if orderData.OrderType != domain.OrderTypeBestShop { | ||
| 288 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, "获取的订单数据失败,OrderType err") | ||
| 289 | + } | ||
| 290 | + orderGoods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderData.Id}) | ||
| 291 | + if err != nil { | ||
| 292 | + e := fmt.Sprintf("获取订单的商品(order_good)数据失败,order_id=%d,err=%s", orderData.Id, err) | ||
| 293 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) | ||
| 294 | + } | ||
| 295 | + orderData.Goods = orderGoods | ||
| 296 | + partnerInfo, err = partnerRepository.FindOne(domain.PartnerFindOneQuery{UserId: orderData.PartnerId}) | ||
| 297 | + if err != nil { | ||
| 298 | + e := fmt.Sprintf("获取订单中的合伙人(partner)数据失败,id=%d,order_id=%d,err=%s", orderData.PartnerId, orderData.Id, err) | ||
| 299 | + logs.Error(e) | ||
| 300 | + } | ||
| 301 | + orderData.PartnerInfo = partnerInfo.Partner | ||
| 302 | + orderBestshopData, err = orderBestshopRepository.FindOne(domain.OrderBestshopFindOneQuery{OrderId: orderData.DataFrom.DataId}) | ||
| 303 | + if err != nil { | ||
| 304 | + e := fmt.Sprintf("获取xiangmi订单(order_bestshop)数据失败,id=%d,err=%s", orderData.DataFrom.DataId, err) | ||
| 305 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) | ||
| 306 | + } | ||
| 307 | + orderGoodBestshop, err = orderGoodBestshopRepository.Find(domain.OrderGoodBestshopFindQuery{OrderId: orderBestshopData.Id}) | ||
| 308 | + if err != nil { | ||
| 309 | + e := fmt.Sprintf("获取xiangmi订单货品(order_good_bestshop)数据失败,order_id=%d,err=%s", orderBestshopData.Id, err) | ||
| 310 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) | ||
| 311 | + } | ||
| 312 | + orderBestshopData.Goods = orderGoodBestshop | ||
| 313 | + orderLogs, err = orderLogRepository.Find(domain.OrderLogFindQuery{OrderId: orderData.Id}) | ||
| 314 | + if err != nil { | ||
| 315 | + e := fmt.Sprintf("获取订单的修改记录(order_log)失败,err=%s", err) | ||
| 316 | + logs.Error(e) | ||
| 317 | + } | ||
| 318 | + err = transactionContext.CommitTransaction() | ||
| 319 | + if err != nil { | ||
| 320 | + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 321 | + } | ||
| 322 | + result := service.buildOrderBestshopInfoData(orderData, orderBestshopData, orderLogs) | ||
| 323 | + return result, nil | ||
| 324 | + | ||
| 325 | +} | ||
| 326 | + | ||
| 327 | +//BuildOrderBestshopInfoData 构建前端需要的数据结构 | ||
| 328 | +func (service OrderInfoService) buildOrderBestshopInfoData(orderBase *domain.OrderBase, | ||
| 329 | + orderBestshop *domain.OrderBestShop, orderLogs []domain.OrderLog) interface{} { | ||
| 330 | + orderGoodBestshopMap := map[int64]*domain.OrderGoodBestShop{} | ||
| 331 | + for i := range orderBestshop.Goods { | ||
| 332 | + goodid := orderBestshop.Goods[i].Id | ||
| 333 | + orderGoodBestshopMap[goodid] = &orderBestshop.Goods[i] | ||
| 334 | + } | ||
| 335 | + //订单中的商品 | ||
| 336 | + productDetail := []map[string]interface{}{} | ||
| 337 | + var hasPartnerBonusPercent bool | ||
| 338 | + for i := range orderBase.Goods { | ||
| 339 | + detail := map[string]interface{}{ | ||
| 340 | + "commodityName": orderBase.Goods[i].GoodName, | ||
| 341 | + "productCodes": "", | ||
| 342 | + "commodityCode": "", | ||
| 343 | + "univalence": orderBase.Goods[i].Price, | ||
| 344 | + "orderNum": orderBase.Goods[i].GetCurrentGoodNumber(), | ||
| 345 | + "commodityPrice": orderBase.Goods[i].GetCurrentAmount(), | ||
| 346 | + "partnerDividends": "", | ||
| 347 | + "productId": orderBase.Goods[i].Id, | ||
| 348 | + "paymentStatus": orderBase.Goods[i].BonusStatus, | ||
| 349 | + "partnerRatio": orderBase.Goods[i].PartnerBonusPercent, | ||
| 350 | + } | ||
| 351 | + if orderBase.Goods[i].PartnerBonusPercent >= 0 { | ||
| 352 | + hasPartnerBonusPercent = true | ||
| 353 | + detail["partnerDividends"] = fmt.Sprint(orderBase.Goods[i].GetCurrentPartnerBonus()) | ||
| 354 | + } | ||
| 355 | + goodBestshopId := orderBase.Goods[i].DataFrom.DataId | ||
| 356 | + if v, ok := orderGoodBestshopMap[goodBestshopId]; ok { | ||
| 357 | + detail["productCodes"] = v.Sn | ||
| 358 | + detail["commodityCode"] = v.Bn | ||
| 359 | + } | ||
| 360 | + productDetail = append(productDetail, detail) | ||
| 361 | + } | ||
| 362 | + product := map[string]interface{}{ | ||
| 363 | + "orderNumCount": orderBase.GetCurrentOrderCount(), | ||
| 364 | + "partnerDividendsCount": "", | ||
| 365 | + "orderAmountAdjustmentCount": orderBase.GetCurrentOrderAmount(), | ||
| 366 | + "detail": productDetail, | ||
| 367 | + } | ||
| 368 | + if hasPartnerBonusPercent { | ||
| 369 | + product["partnerDividendsCount"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus()) | ||
| 370 | + } | ||
| 371 | + //订单描述 | ||
| 372 | + order := map[string]interface{}{ | ||
| 373 | + "orderId": orderBase.Id, | ||
| 374 | + "orderType": orderBase.OrderType, | ||
| 375 | + "orderState": orderBestshop.OrderState, | ||
| 376 | + "customers": orderBase.Buyer.BuyerName, | ||
| 377 | + "address": orderBestshop.BuyerAddress, | ||
| 378 | + "remarks": orderBestshop.BuyerRemark, | ||
| 379 | + "partner": orderBase.PartnerInfo.PartnerName, | ||
| 380 | + "phone": orderBestshop.BuyerPhone, | ||
| 381 | + "orderTime": orderBestshop.OrderTime, | ||
| 382 | + "shippingStatus": orderBestshop.DeliveryState, | ||
| 383 | + "partnerDividends": "", | ||
| 384 | + "receivedDividends": "", | ||
| 385 | + "notReceivedDividend": "", | ||
| 386 | + "dividendSpending": "", | ||
| 387 | + "orderNumber": orderBase.OrderCode, | ||
| 388 | + } | ||
| 389 | + if hasPartnerBonusPercent { | ||
| 390 | + order["partnerDividends"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus()) | ||
| 391 | + order["receivedDividends"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusHas) | ||
| 392 | + order["notReceivedDividend"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusNot) | ||
| 393 | + order["dividendSpending"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusExpense) | ||
| 394 | + } | ||
| 395 | + modifyLog := []map[string]interface{}{} | ||
| 396 | + for i := range orderLogs { | ||
| 397 | + m := map[string]interface{}{ | ||
| 398 | + "title": orderLogs[i].LogAction, | ||
| 399 | + "time": orderLogs[i].AlterTime.Local().Format("2006-01-02 15:04:05"), | ||
| 400 | + "userName": orderLogs[i].Operator, | ||
| 401 | + "id": orderLogs[i].Id, | ||
| 402 | + } | ||
| 403 | + detail := []map[string]string{} | ||
| 404 | + for ii, vv := range orderLogs[i].Descript { | ||
| 405 | + d := map[string]string{ | ||
| 406 | + "updateTitle": vv.Title, | ||
| 407 | + "id": fmt.Sprint(ii), | ||
| 408 | + "content": vv.Item, | ||
| 409 | + } | ||
| 410 | + if len(vv.Action) > 0 { | ||
| 411 | + d["content"] = vv.Item + ":" + strings.Join(vv.Action, ";") | ||
| 412 | + } | ||
| 413 | + detail = append(detail, d) | ||
| 414 | + } | ||
| 415 | + m["updateList"] = detail | ||
| 416 | + modifyLog = append(modifyLog, m) | ||
| 417 | + } | ||
| 418 | + | ||
| 419 | + result := map[string]interface{}{ | ||
| 420 | + "order": order, | ||
| 421 | + "product": product, | ||
| 422 | + "modify": modifyLog, | ||
| 423 | + "remark": orderBase.Remark.RemarkBonus, | ||
| 424 | + } | ||
| 425 | + return result | ||
| 426 | +} |
| @@ -2,7 +2,6 @@ package controllers | @@ -2,7 +2,6 @@ package controllers | ||
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "errors" | 4 | "errors" |
| 5 | - "fmt" | ||
| 6 | "strconv" | 5 | "strconv" |
| 7 | "time" | 6 | "time" |
| 8 | 7 | ||
| @@ -109,6 +108,119 @@ func (c *OrderDividendController) PageListOrderDividend() { | @@ -109,6 +108,119 @@ func (c *OrderDividendController) PageListOrderDividend() { | ||
| 109 | } | 108 | } |
| 110 | 109 | ||
| 111 | //OrderDividendDetail 订单的分红详情 | 110 | //OrderDividendDetail 订单的分红详情 |
| 111 | +// func (c *OrderDividendController) OrderDividendDetail() { | ||
| 112 | +// type Parameter struct { | ||
| 113 | +// Id string `json:"id"` | ||
| 114 | +// } | ||
| 115 | +// var ( | ||
| 116 | +// param Parameter | ||
| 117 | +// err error | ||
| 118 | +// ) | ||
| 119 | +// if err = c.BindJsonData(¶m); err != nil { | ||
| 120 | +// logs.Error(err) | ||
| 121 | +// c.ResponseError(errors.New("json数据解析失败")) | ||
| 122 | +// return | ||
| 123 | +// } | ||
| 124 | +// orderid, _ := strconv.ParseInt(param.Id, 10, 64) | ||
| 125 | +// if orderid == 0 { | ||
| 126 | +// c.ResponseError(errors.New("参数错误")) | ||
| 127 | +// return | ||
| 128 | +// } | ||
| 129 | +// companyId := c.GetUserCompany() | ||
| 130 | +// orderSrv := orderService.NewOrderInfoService(nil) | ||
| 131 | +// orderinfo, err := orderSrv.GetOrderDetail(orderQuery.GetOrderQuery{ | ||
| 132 | +// OrderId: orderid, | ||
| 133 | +// CompanyId: companyId, | ||
| 134 | +// }) | ||
| 135 | +// if err != nil { | ||
| 136 | +// c.ResponseError(err) | ||
| 137 | +// return | ||
| 138 | +// } | ||
| 139 | +// if orderinfo.OrderType != domain.OrderReal { | ||
| 140 | +// c.ResponseError(errors.New("参数错误")) | ||
| 141 | +// return | ||
| 142 | +// } | ||
| 143 | +// allGoods := []map[string]interface{}{} | ||
| 144 | +// for _, v := range orderinfo.Goods { | ||
| 145 | +// detail := map[string]interface{}{ | ||
| 146 | +// "productName": v.GoodName, | ||
| 147 | +// "orderNum": v.PlanGoodNumber, | ||
| 148 | +// "univalence": v.Price, | ||
| 149 | +// "partnerRatio": v.PartnerBonusPercent, | ||
| 150 | +// "orderPrice": v.GoodCompute.PlanAmount, | ||
| 151 | +// "partnerDividendsReceivable": v.GoodCompute.PlanPartnerBonus, | ||
| 152 | +// } | ||
| 153 | +// m := map[string]interface{}{ | ||
| 154 | +// "detail": detail, | ||
| 155 | +// "quantityControl": "", | ||
| 156 | +// "id": v.Id, | ||
| 157 | +// "stateOfPayment": v.BonusStatus, | ||
| 158 | +// "remark": v.Remark, | ||
| 159 | +// "amountControl": "", | ||
| 160 | +// "partnerDividendControl": "", | ||
| 161 | +// "receivedDividends": v.GoodCompute.PartnerBonusHas, | ||
| 162 | +// "notReceivedDividend": v.GoodCompute.PartnerBonusNot, | ||
| 163 | +// "dividendSpending": v.GoodCompute.PartnerBonusExpense, | ||
| 164 | +// } | ||
| 165 | +// if v.GoodCompute.UseAmount >= 0 { | ||
| 166 | +// m["amountControl"] = fmt.Sprint(v.GoodCompute.UseAmount) | ||
| 167 | +// } | ||
| 168 | +// if v.UseGoodNumber >= 0 { | ||
| 169 | +// m["quantityControl"] = fmt.Sprint(v.UseGoodNumber) | ||
| 170 | +// } | ||
| 171 | +// if v.GoodCompute.UsePartnerBonus >= 0 { | ||
| 172 | +// m["partnerDividendControl"] = fmt.Sprint(v.GoodCompute.UsePartnerBonus) | ||
| 173 | +// } | ||
| 174 | +// allGoods = append(allGoods, m) | ||
| 175 | +// } | ||
| 176 | +// orderData := map[string]interface{}{ | ||
| 177 | +// "buyer": orderinfo.Buyer.BuyerName, | ||
| 178 | +// "shipmentsId": orderinfo.DeliveryCode, | ||
| 179 | +// "orderDist": orderinfo.RegionInfo.RegionName, | ||
| 180 | +// "partner": orderinfo.PartnerInfo.PartnerName, | ||
| 181 | +// "id": orderinfo.Id, | ||
| 182 | +// "orderId": orderinfo.OrderCode, | ||
| 183 | +// "partnerCategoryId": orderinfo.PartnerCategory.Id, | ||
| 184 | +// "partnerCategoryName": orderinfo.PartnerCategory.Name, | ||
| 185 | +// } | ||
| 186 | +// dividendCount := map[string]interface{}{ | ||
| 187 | +// "orderNum": orderinfo.OrderCompute.PlanOrderCount, | ||
| 188 | +// "orderAmountAdjustment": orderinfo.OrderCompute.PlanOrderAmount, | ||
| 189 | +// "orderNumControl": "", | ||
| 190 | +// "orderAmountAdjustmentControl": "", | ||
| 191 | +// "partnerDividends": orderinfo.OrderCompute.PlanPartnerBonus, | ||
| 192 | +// "partnerDividendsControl": "", | ||
| 193 | +// "receivedDividends": orderinfo.OrderCompute.PartnerBonusHas, | ||
| 194 | +// "notReceivedDividend": orderinfo.OrderCompute.PartnerBonusNot, | ||
| 195 | +// "dividendSpending": orderinfo.OrderCompute.PartnerBonusExpense, | ||
| 196 | +// "commissionProportion": orderinfo.SalesmanBonusPercent, | ||
| 197 | +// "expectedCommission": orderinfo.OrderCompute.SalesmanBonus, | ||
| 198 | +// } | ||
| 199 | +// if orderinfo.OrderCompute.UseOrderAmount >= 0 { | ||
| 200 | +// dividendCount["orderAmountAdjustmentControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderAmount) | ||
| 201 | +// } | ||
| 202 | +// if orderinfo.OrderCompute.UsePartnerBonus >= 0 { | ||
| 203 | +// dividendCount["partnerDividendsControl"] = fmt.Sprint(orderinfo.OrderCompute.UsePartnerBonus) | ||
| 204 | +// } | ||
| 205 | +// if orderinfo.OrderCompute.UseOrderCount >= 0 { | ||
| 206 | +// dividendCount["orderNumControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderCount) | ||
| 207 | +// } | ||
| 208 | +// rsp := map[string]interface{}{ | ||
| 209 | +// "order": orderData, | ||
| 210 | +// "product": allGoods, | ||
| 211 | +// "dividendCount": dividendCount, | ||
| 212 | +// "operationTime": orderinfo.UpdateTime.Local().Format("2006-01-02 15:04:06"), | ||
| 213 | +// } | ||
| 214 | +// if orderinfo.OrderCompute.UseOrderAmount >= 0 { | ||
| 215 | +// rsp["orderNumCountControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderAmount) | ||
| 216 | +// } | ||
| 217 | +// if orderinfo.OrderCompute.UseOrderCount >= 0 { | ||
| 218 | +// rsp["orderAmountAdjustmentCountControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderCount) | ||
| 219 | +// } | ||
| 220 | +// c.ResponseData(rsp) | ||
| 221 | +// return | ||
| 222 | +// } | ||
| 223 | + | ||
| 112 | func (c *OrderDividendController) OrderDividendDetail() { | 224 | func (c *OrderDividendController) OrderDividendDetail() { |
| 113 | type Parameter struct { | 225 | type Parameter struct { |
| 114 | Id string `json:"id"` | 226 | Id string `json:"id"` |
| @@ -129,96 +241,12 @@ func (c *OrderDividendController) OrderDividendDetail() { | @@ -129,96 +241,12 @@ func (c *OrderDividendController) OrderDividendDetail() { | ||
| 129 | } | 241 | } |
| 130 | companyId := c.GetUserCompany() | 242 | companyId := c.GetUserCompany() |
| 131 | orderSrv := orderService.NewOrderInfoService(nil) | 243 | orderSrv := orderService.NewOrderInfoService(nil) |
| 132 | - orderinfo, err := orderSrv.GetOrderDetail(orderQuery.GetOrderQuery{ | ||
| 133 | - OrderId: orderid, | ||
| 134 | - CompanyId: companyId, | ||
| 135 | - }) | 244 | + orderinfo, err := orderSrv.GetOrderInfoWithBonus(orderid, companyId) |
| 136 | if err != nil { | 245 | if err != nil { |
| 137 | c.ResponseError(err) | 246 | c.ResponseError(err) |
| 138 | return | 247 | return |
| 139 | } | 248 | } |
| 140 | - if orderinfo.OrderType != domain.OrderReal { | ||
| 141 | - c.ResponseError(errors.New("参数错误")) | ||
| 142 | - return | ||
| 143 | - } | ||
| 144 | - allGoods := []map[string]interface{}{} | ||
| 145 | - for _, v := range orderinfo.Goods { | ||
| 146 | - detail := map[string]interface{}{ | ||
| 147 | - "productName": v.GoodName, | ||
| 148 | - "orderNum": v.PlanGoodNumber, | ||
| 149 | - "univalence": v.Price, | ||
| 150 | - "partnerRatio": v.PartnerBonusPercent, | ||
| 151 | - "orderPrice": v.GoodCompute.PlanAmount, | ||
| 152 | - "partnerDividendsReceivable": v.GoodCompute.PlanPartnerBonus, | ||
| 153 | - } | ||
| 154 | - m := map[string]interface{}{ | ||
| 155 | - "detail": detail, | ||
| 156 | - "quantityControl": "", | ||
| 157 | - "id": v.Id, | ||
| 158 | - "stateOfPayment": v.BonusStatus, | ||
| 159 | - "remark": v.Remark, | ||
| 160 | - "amountControl": "", | ||
| 161 | - "partnerDividendControl": "", | ||
| 162 | - "receivedDividends": v.GoodCompute.PartnerBonusHas, | ||
| 163 | - "notReceivedDividend": v.GoodCompute.PartnerBonusNot, | ||
| 164 | - "dividendSpending": v.GoodCompute.PartnerBonusExpense, | ||
| 165 | - } | ||
| 166 | - if v.GoodCompute.UseAmount >= 0 { | ||
| 167 | - m["amountControl"] = fmt.Sprint(v.GoodCompute.UseAmount) | ||
| 168 | - } | ||
| 169 | - if v.UseGoodNumber >= 0 { | ||
| 170 | - m["quantityControl"] = fmt.Sprint(v.UseGoodNumber) | ||
| 171 | - } | ||
| 172 | - if v.GoodCompute.UsePartnerBonus >= 0 { | ||
| 173 | - m["partnerDividendControl"] = fmt.Sprint(v.GoodCompute.UsePartnerBonus) | ||
| 174 | - } | ||
| 175 | - allGoods = append(allGoods, m) | ||
| 176 | - } | ||
| 177 | - orderData := map[string]interface{}{ | ||
| 178 | - "buyer": orderinfo.Buyer.BuyerName, | ||
| 179 | - "shipmentsId": orderinfo.DeliveryCode, | ||
| 180 | - "orderDist": orderinfo.RegionInfo.RegionName, | ||
| 181 | - "partner": orderinfo.PartnerInfo.PartnerName, | ||
| 182 | - "id": orderinfo.Id, | ||
| 183 | - "orderId": orderinfo.OrderCode, | ||
| 184 | - "partnerCategoryId": orderinfo.PartnerCategory.Id, | ||
| 185 | - "partnerCategoryName": orderinfo.PartnerCategory.Name, | ||
| 186 | - } | ||
| 187 | - dividendCount := map[string]interface{}{ | ||
| 188 | - "orderNum": orderinfo.OrderCompute.PlanOrderCount, | ||
| 189 | - "orderAmountAdjustment": orderinfo.OrderCompute.PlanOrderAmount, | ||
| 190 | - "orderNumControl": "", | ||
| 191 | - "orderAmountAdjustmentControl": "", | ||
| 192 | - "partnerDividends": orderinfo.OrderCompute.PlanPartnerBonus, | ||
| 193 | - "partnerDividendsControl": "", | ||
| 194 | - "receivedDividends": orderinfo.OrderCompute.PartnerBonusHas, | ||
| 195 | - "notReceivedDividend": orderinfo.OrderCompute.PartnerBonusNot, | ||
| 196 | - "dividendSpending": orderinfo.OrderCompute.PartnerBonusExpense, | ||
| 197 | - "commissionProportion": orderinfo.SalesmanBonusPercent, | ||
| 198 | - "expectedCommission": orderinfo.OrderCompute.SalesmanBonus, | ||
| 199 | - } | ||
| 200 | - if orderinfo.OrderCompute.UseOrderAmount >= 0 { | ||
| 201 | - dividendCount["orderAmountAdjustmentControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderAmount) | ||
| 202 | - } | ||
| 203 | - if orderinfo.OrderCompute.UsePartnerBonus >= 0 { | ||
| 204 | - dividendCount["partnerDividendsControl"] = fmt.Sprint(orderinfo.OrderCompute.UsePartnerBonus) | ||
| 205 | - } | ||
| 206 | - if orderinfo.OrderCompute.UseOrderCount >= 0 { | ||
| 207 | - dividendCount["orderNumControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderCount) | ||
| 208 | - } | ||
| 209 | - rsp := map[string]interface{}{ | ||
| 210 | - "order": orderData, | ||
| 211 | - "product": allGoods, | ||
| 212 | - "dividendCount": dividendCount, | ||
| 213 | - "operationTime": orderinfo.UpdateTime.Local().Format("2006-01-02 15:04:06"), | ||
| 214 | - } | ||
| 215 | - if orderinfo.OrderCompute.UseOrderAmount >= 0 { | ||
| 216 | - rsp["orderNumCountControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderAmount) | ||
| 217 | - } | ||
| 218 | - if orderinfo.OrderCompute.UseOrderCount >= 0 { | ||
| 219 | - rsp["orderAmountAdjustmentCountControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderCount) | ||
| 220 | - } | ||
| 221 | - c.ResponseData(rsp) | 249 | + c.ResponseData(orderinfo) |
| 222 | return | 250 | return |
| 223 | } | 251 | } |
| 224 | 252 |
| @@ -29,7 +29,7 @@ func init() { | @@ -29,7 +29,7 @@ func init() { | ||
| 29 | beego.NSRouter("/list", &controllers.OrderDividendController{}, "POST:PageListOrderDividend"), | 29 | beego.NSRouter("/list", &controllers.OrderDividendController{}, "POST:PageListOrderDividend"), |
| 30 | beego.NSRouter("/edit", &controllers.OrderDividendController{}, "POST:EditOrderDividend"), | 30 | beego.NSRouter("/edit", &controllers.OrderDividendController{}, "POST:EditOrderDividend"), |
| 31 | beego.NSRouter("/detail", &controllers.OrderDividendController{}, "POST:OrderDividendDetail"), | 31 | beego.NSRouter("/detail", &controllers.OrderDividendController{}, "POST:OrderDividendDetail"), |
| 32 | - beego.NSRouter("/mini-program/detail", &controllers.OrderDividendController{}, "POST:OrderDividendDetailForBestshop"), | 32 | + // beego.NSRouter("/mini-program/detail", &controllers.OrderDividendController{}, "POST:OrderDividendDetailForBestshop"), |
| 33 | beego.NSRouter("/mini-program/modify", &controllers.OrderDividendController{}, "POST:EditOrderDividendForBestshop"), | 33 | beego.NSRouter("/mini-program/modify", &controllers.OrderDividendController{}, "POST:EditOrderDividendForBestshop"), |
| 34 | beego.NSRouter("/mini-program/payDividends", &controllers.OrderDividendController{}, "POST:PayOrderGoodBonusForBestshop"), | 34 | beego.NSRouter("/mini-program/payDividends", &controllers.OrderDividendController{}, "POST:PayOrderGoodBonusForBestshop"), |
| 35 | beego.NSRouter("/mini-program/remarks", &controllers.OrderDividendController{}, "POST:EditOrderRemarkBonusForBestshop"), | 35 | beego.NSRouter("/mini-program/remarks", &controllers.OrderDividendController{}, "POST:EditOrderRemarkBonusForBestshop"), |
-
请 注册 或 登录 后发表评论