正在显示
1 个修改的文件
包含
348 行增加
和
292 行删除
| @@ -67,101 +67,31 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -67,101 +67,31 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
| 67 | } | 67 | } |
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | - // 确认业绩分红预算 | ||
| 71 | - var dividendsEstimateDetails []*service.DividendsEstimateDetail | ||
| 72 | - for _, orderGood := range orderGoods { | ||
| 73 | - log.Logger.Info("业绩分红预算产品", map[string]interface{}{ | ||
| 74 | - "orderGood": orderGood, | ||
| 75 | - }) | ||
| 76 | - | ||
| 77 | - if orderGood.CooperationContractNumber == "" { | ||
| 78 | - var orderNumber string | ||
| 79 | - if orderGood.DividendsOrderNumber != "" { | ||
| 80 | - orderNumber = orderGood.DividendsOrderNumber | ||
| 81 | - } else { | ||
| 82 | - orderNumber = orderGood.DividendsReturnedOrderNumber | 70 | + // 查询共创项目 |
| 71 | + cooperationProjectsMap := make(map[string]*domain.CooperationProject, 0) | ||
| 72 | + if count, cooperationProjectsFound, err := cooperationProjectRepository.Find(map[string]interface{}{ | ||
| 73 | + "companyId": companyId, | ||
| 74 | + "orgId": orgId, | ||
| 75 | + "offsetLimit": false, | ||
| 76 | + }); err != nil { | ||
| 77 | + return nil, err | ||
| 78 | + } else { | ||
| 79 | + if count > 0 { | ||
| 80 | + for _, cooperationProjectFound := range cooperationProjectsFound { | ||
| 81 | + cooperationProjectsMap[cooperationProjectFound.CooperationProjectNumber] = cooperationProjectFound | ||
| 83 | } | 82 | } |
| 84 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 85 | - DividendsUser: nil, | ||
| 86 | - DividendsParticipateType: 0, | ||
| 87 | - DividendsStage: 0, | ||
| 88 | - DividendsAmount: 0, | ||
| 89 | - OrderOrReturnedOrderNumber: orderNumber, | ||
| 90 | - IsSuccessfully: false, | ||
| 91 | - Reason: "产品未关联合约,不能进行分红预算", | ||
| 92 | - }) | ||
| 93 | - continue | ||
| 94 | } | 83 | } |
| 84 | + } | ||
| 95 | 85 | ||
| 96 | - var cooperationContract *domain.CooperationContract | ||
| 97 | - | ||
| 98 | - // 获取合约 | ||
| 99 | - if _, ok := cooperationContractsMap[orderGood.CooperationContractNumber]; !ok { | ||
| 100 | - var orderNumber string | ||
| 101 | - if orderGood.DividendsOrderNumber != "" { | ||
| 102 | - orderNumber = orderGood.DividendsOrderNumber | ||
| 103 | - } else { | ||
| 104 | - orderNumber = orderGood.DividendsReturnedOrderNumber | ||
| 105 | - } | ||
| 106 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 107 | - DividendsUser: nil, | ||
| 108 | - DividendsParticipateType: 0, | ||
| 109 | - DividendsStage: 0, | ||
| 110 | - DividendsAmount: 0, | ||
| 111 | - OrderOrReturnedOrderNumber: orderNumber, | ||
| 112 | - IsSuccessfully: false, | ||
| 113 | - Reason: "共创合约" + orderGood.CooperationContractNumber + "不存在", | 86 | + // 确认业绩分红预算 |
| 87 | + var dividendsEstimateDetails []*service.DividendsEstimateDetail | ||
| 88 | + go func() { | ||
| 89 | + for _, orderGood := range orderGoods { | ||
| 90 | + log.Logger.Info("业绩分红预算产品", map[string]interface{}{ | ||
| 91 | + "orderGood": orderGood, | ||
| 114 | }) | 92 | }) |
| 115 | - continue | ||
| 116 | - } else { | ||
| 117 | - cooperationContract = cooperationContractsMap[orderGood.CooperationContractNumber] | ||
| 118 | - } | ||
| 119 | 93 | ||
| 120 | - //cooperationContract, err := cooperationContractRepository.FindOne(map[string]interface{}{ | ||
| 121 | - // "cooperationContractNumber": orderGood.CooperationContractNumber, | ||
| 122 | - // "companyId": orderGood.CompanyId, | ||
| 123 | - // "orgId": orderGood.OrgId, | ||
| 124 | - //}) | ||
| 125 | - //if err != nil { | ||
| 126 | - // var orderNumber string | ||
| 127 | - // if orderGood.DividendsOrderNumber != "" { | ||
| 128 | - // orderNumber = orderGood.DividendsOrderNumber | ||
| 129 | - // } else { | ||
| 130 | - // orderNumber = orderGood.DividendsReturnedOrderNumber | ||
| 131 | - // } | ||
| 132 | - // dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 133 | - // DividendsUser: nil, | ||
| 134 | - // DividendsParticipateType: 0, | ||
| 135 | - // DividendsStage: 0, | ||
| 136 | - // DividendsAmount: 0, | ||
| 137 | - // OrderOrReturnedOrderNumber: orderNumber, | ||
| 138 | - // IsSuccessfully: false, | ||
| 139 | - // Reason: "共创合约错误", | ||
| 140 | - // }) | ||
| 141 | - // continue | ||
| 142 | - //} | ||
| 143 | - if cooperationContract == nil { | ||
| 144 | - var orderNumber string | ||
| 145 | - if orderGood.DividendsOrderNumber != "" { | ||
| 146 | - orderNumber = orderGood.DividendsOrderNumber | ||
| 147 | - } else { | ||
| 148 | - orderNumber = orderGood.DividendsReturnedOrderNumber | ||
| 149 | - } | ||
| 150 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 151 | - DividendsUser: nil, | ||
| 152 | - DividendsParticipateType: 0, | ||
| 153 | - DividendsStage: 0, | ||
| 154 | - DividendsAmount: 0, | ||
| 155 | - OrderOrReturnedOrderNumber: orderNumber, | ||
| 156 | - IsSuccessfully: false, | ||
| 157 | - Reason: "共创合约" + orderGood.CooperationContractNumber + "不存在", | ||
| 158 | - }) | ||
| 159 | - continue | ||
| 160 | - } else { | ||
| 161 | - log.Logger.Info("产品相关的合约", map[string]interface{}{ | ||
| 162 | - "cooperationContract": cooperationContract, | ||
| 163 | - }) | ||
| 164 | - if cooperationContract.Status == 2 { | 94 | + if orderGood.CooperationContractNumber == "" { |
| 165 | var orderNumber string | 95 | var orderNumber string |
| 166 | if orderGood.DividendsOrderNumber != "" { | 96 | if orderGood.DividendsOrderNumber != "" { |
| 167 | orderNumber = orderGood.DividendsOrderNumber | 97 | orderNumber = orderGood.DividendsOrderNumber |
| @@ -175,20 +105,14 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -175,20 +105,14 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
| 175 | DividendsAmount: 0, | 105 | DividendsAmount: 0, |
| 176 | OrderOrReturnedOrderNumber: orderNumber, | 106 | OrderOrReturnedOrderNumber: orderNumber, |
| 177 | IsSuccessfully: false, | 107 | IsSuccessfully: false, |
| 178 | - Reason: "共创合约" + orderGood.CooperationContractNumber + "已暂停", | 108 | + Reason: "产品未关联合约,不能进行分红预算", |
| 179 | }) | 109 | }) |
| 180 | continue | 110 | continue |
| 181 | } | 111 | } |
| 182 | - } | ||
| 183 | 112 | ||
| 184 | - // 获取共创项目 | ||
| 185 | - if cooperationContract.CooperationProjectNumber != "" { | ||
| 186 | - cooperationProject, err := cooperationProjectRepository.FindOne(map[string]interface{}{ | ||
| 187 | - "cooperationProjectNumber": cooperationContract.CooperationProjectNumber, | ||
| 188 | - "companyId": cooperationContract.Company.CompanyId, | ||
| 189 | - "orgId": cooperationContract.Org.OrgId, | ||
| 190 | - }) | ||
| 191 | - if err != nil { | 113 | + // 获取合约 |
| 114 | + var cooperationContract *domain.CooperationContract | ||
| 115 | + if _, ok := cooperationContractsMap[orderGood.CooperationContractNumber]; !ok { | ||
| 192 | var orderNumber string | 116 | var orderNumber string |
| 193 | if orderGood.DividendsOrderNumber != "" { | 117 | if orderGood.DividendsOrderNumber != "" { |
| 194 | orderNumber = orderGood.DividendsOrderNumber | 118 | orderNumber = orderGood.DividendsOrderNumber |
| @@ -202,11 +126,142 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -202,11 +126,142 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
| 202 | DividendsAmount: 0, | 126 | DividendsAmount: 0, |
| 203 | OrderOrReturnedOrderNumber: orderNumber, | 127 | OrderOrReturnedOrderNumber: orderNumber, |
| 204 | IsSuccessfully: false, | 128 | IsSuccessfully: false, |
| 205 | - Reason: "共创项目" + cooperationContract.CooperationProjectNumber + "查询错误", | 129 | + Reason: "共创合约" + orderGood.CooperationContractNumber + "不存在", |
| 206 | }) | 130 | }) |
| 207 | continue | 131 | continue |
| 132 | + } else { | ||
| 133 | + cooperationContract = cooperationContractsMap[orderGood.CooperationContractNumber] | ||
| 134 | + if cooperationContract.Status == 2 { | ||
| 135 | + var orderNumber string | ||
| 136 | + if orderGood.DividendsOrderNumber != "" { | ||
| 137 | + orderNumber = orderGood.DividendsOrderNumber | ||
| 138 | + } else { | ||
| 139 | + orderNumber = orderGood.DividendsReturnedOrderNumber | ||
| 140 | + } | ||
| 141 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 142 | + DividendsUser: nil, | ||
| 143 | + DividendsParticipateType: 0, | ||
| 144 | + DividendsStage: 0, | ||
| 145 | + DividendsAmount: 0, | ||
| 146 | + OrderOrReturnedOrderNumber: orderNumber, | ||
| 147 | + IsSuccessfully: false, | ||
| 148 | + Reason: "共创合约" + orderGood.CooperationContractNumber + "已暂停", | ||
| 149 | + }) | ||
| 150 | + continue | ||
| 151 | + } | ||
| 208 | } | 152 | } |
| 209 | - if cooperationProject == nil { | 153 | + |
| 154 | + //cooperationContract, err := cooperationContractRepository.FindOne(map[string]interface{}{ | ||
| 155 | + // "cooperationContractNumber": orderGood.CooperationContractNumber, | ||
| 156 | + // "companyId": orderGood.CompanyId, | ||
| 157 | + // "orgId": orderGood.OrgId, | ||
| 158 | + //}) | ||
| 159 | + //if err != nil { | ||
| 160 | + // var orderNumber string | ||
| 161 | + // if orderGood.DividendsOrderNumber != "" { | ||
| 162 | + // orderNumber = orderGood.DividendsOrderNumber | ||
| 163 | + // } else { | ||
| 164 | + // orderNumber = orderGood.DividendsReturnedOrderNumber | ||
| 165 | + // } | ||
| 166 | + // dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 167 | + // DividendsUser: nil, | ||
| 168 | + // DividendsParticipateType: 0, | ||
| 169 | + // DividendsStage: 0, | ||
| 170 | + // DividendsAmount: 0, | ||
| 171 | + // OrderOrReturnedOrderNumber: orderNumber, | ||
| 172 | + // IsSuccessfully: false, | ||
| 173 | + // Reason: "共创合约错误", | ||
| 174 | + // }) | ||
| 175 | + // continue | ||
| 176 | + //} | ||
| 177 | + //if cooperationContract == nil { | ||
| 178 | + // var orderNumber string | ||
| 179 | + // if orderGood.DividendsOrderNumber != "" { | ||
| 180 | + // orderNumber = orderGood.DividendsOrderNumber | ||
| 181 | + // } else { | ||
| 182 | + // orderNumber = orderGood.DividendsReturnedOrderNumber | ||
| 183 | + // } | ||
| 184 | + // dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 185 | + // DividendsUser: nil, | ||
| 186 | + // DividendsParticipateType: 0, | ||
| 187 | + // DividendsStage: 0, | ||
| 188 | + // DividendsAmount: 0, | ||
| 189 | + // OrderOrReturnedOrderNumber: orderNumber, | ||
| 190 | + // IsSuccessfully: false, | ||
| 191 | + // Reason: "共创合约" + orderGood.CooperationContractNumber + "不存在", | ||
| 192 | + // }) | ||
| 193 | + // continue | ||
| 194 | + //} else { | ||
| 195 | + // log.Logger.Info("产品相关的合约", map[string]interface{}{ | ||
| 196 | + // "cooperationContract": cooperationContract, | ||
| 197 | + // }) | ||
| 198 | + // if cooperationContract.Status == 2 { | ||
| 199 | + // var orderNumber string | ||
| 200 | + // if orderGood.DividendsOrderNumber != "" { | ||
| 201 | + // orderNumber = orderGood.DividendsOrderNumber | ||
| 202 | + // } else { | ||
| 203 | + // orderNumber = orderGood.DividendsReturnedOrderNumber | ||
| 204 | + // } | ||
| 205 | + // dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 206 | + // DividendsUser: nil, | ||
| 207 | + // DividendsParticipateType: 0, | ||
| 208 | + // DividendsStage: 0, | ||
| 209 | + // DividendsAmount: 0, | ||
| 210 | + // OrderOrReturnedOrderNumber: orderNumber, | ||
| 211 | + // IsSuccessfully: false, | ||
| 212 | + // Reason: "共创合约" + orderGood.CooperationContractNumber + "已暂停", | ||
| 213 | + // }) | ||
| 214 | + // continue | ||
| 215 | + // } | ||
| 216 | + //} | ||
| 217 | + | ||
| 218 | + // 获取共创项目 | ||
| 219 | + //if cooperationContract.CooperationProjectNumber != "" { | ||
| 220 | + // cooperationProject, err := cooperationProjectRepository.FindOne(map[string]interface{}{ | ||
| 221 | + // "cooperationProjectNumber": cooperationContract.CooperationProjectNumber, | ||
| 222 | + // "companyId": cooperationContract.Company.CompanyId, | ||
| 223 | + // "orgId": cooperationContract.Org.OrgId, | ||
| 224 | + // }) | ||
| 225 | + // if err != nil { | ||
| 226 | + // var orderNumber string | ||
| 227 | + // if orderGood.DividendsOrderNumber != "" { | ||
| 228 | + // orderNumber = orderGood.DividendsOrderNumber | ||
| 229 | + // } else { | ||
| 230 | + // orderNumber = orderGood.DividendsReturnedOrderNumber | ||
| 231 | + // } | ||
| 232 | + // dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 233 | + // DividendsUser: nil, | ||
| 234 | + // DividendsParticipateType: 0, | ||
| 235 | + // DividendsStage: 0, | ||
| 236 | + // DividendsAmount: 0, | ||
| 237 | + // OrderOrReturnedOrderNumber: orderNumber, | ||
| 238 | + // IsSuccessfully: false, | ||
| 239 | + // Reason: "共创项目" + cooperationContract.CooperationProjectNumber + "查询错误", | ||
| 240 | + // }) | ||
| 241 | + // continue | ||
| 242 | + // } | ||
| 243 | + // if cooperationProject == nil { | ||
| 244 | + // var orderNumber string | ||
| 245 | + // if orderGood.DividendsOrderNumber != "" { | ||
| 246 | + // orderNumber = orderGood.DividendsOrderNumber | ||
| 247 | + // } else { | ||
| 248 | + // orderNumber = orderGood.DividendsReturnedOrderNumber | ||
| 249 | + // } | ||
| 250 | + // dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 251 | + // DividendsUser: nil, | ||
| 252 | + // DividendsParticipateType: 0, | ||
| 253 | + // DividendsStage: 0, | ||
| 254 | + // DividendsAmount: 0, | ||
| 255 | + // OrderOrReturnedOrderNumber: orderNumber, | ||
| 256 | + // IsSuccessfully: false, | ||
| 257 | + // Reason: "共创项目" + cooperationContract.CooperationProjectNumber + "已结束或不存在", | ||
| 258 | + // }) | ||
| 259 | + // continue | ||
| 260 | + // } | ||
| 261 | + //} | ||
| 262 | + | ||
| 263 | + // 判断共创项目是否存在 | ||
| 264 | + if _, ok := cooperationProjectsMap[cooperationContract.CooperationProjectNumber]; !ok { | ||
| 210 | var orderNumber string | 265 | var orderNumber string |
| 211 | if orderGood.DividendsOrderNumber != "" { | 266 | if orderGood.DividendsOrderNumber != "" { |
| 212 | orderNumber = orderGood.DividendsOrderNumber | 267 | orderNumber = orderGood.DividendsOrderNumber |
| @@ -224,66 +279,191 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -224,66 +279,191 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
| 224 | }) | 279 | }) |
| 225 | continue | 280 | continue |
| 226 | } | 281 | } |
| 227 | - } | ||
| 228 | 282 | ||
| 229 | - if orderGood.DividendsOrderNumber != "" { // 获取分红订单 | ||
| 230 | - // 获取分红订单 | ||
| 231 | - dividendsOrder, err2 := dividendsOrderRepository.FindOne(map[string]interface{}{ | ||
| 232 | - "dividendsOrderNumber": orderGood.DividendsOrderNumber, | ||
| 233 | - "companyId": orderGood.CompanyId, | ||
| 234 | - "orgId": orderGood.OrgId, | ||
| 235 | - }) | ||
| 236 | - if err2 != nil { | ||
| 237 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 238 | - DividendsUser: nil, | ||
| 239 | - DividendsParticipateType: 0, | ||
| 240 | - DividendsStage: 0, | ||
| 241 | - DividendsAmount: 0, | ||
| 242 | - OrderOrReturnedOrderNumber: orderGood.DividendsOrderNumber, | ||
| 243 | - IsSuccessfully: false, | ||
| 244 | - Reason: "分红订单" + orderGood.DividendsOrderNumber + "查询错误", | 283 | + if orderGood.DividendsOrderNumber != "" { // 获取分红订单 |
| 284 | + // 获取分红订单 | ||
| 285 | + dividendsOrder, err2 := dividendsOrderRepository.FindOne(map[string]interface{}{ | ||
| 286 | + "dividendsOrderNumber": orderGood.DividendsOrderNumber, | ||
| 287 | + "companyId": orderGood.CompanyId, | ||
| 288 | + "orgId": orderGood.OrgId, | ||
| 245 | }) | 289 | }) |
| 246 | - continue | ||
| 247 | - } | ||
| 248 | - if dividendsOrder == nil { | ||
| 249 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 250 | - DividendsUser: nil, | ||
| 251 | - DividendsParticipateType: 0, | ||
| 252 | - DividendsStage: 0, | ||
| 253 | - DividendsAmount: 0, | ||
| 254 | - OrderOrReturnedOrderNumber: orderGood.DividendsOrderNumber, | ||
| 255 | - IsSuccessfully: false, | ||
| 256 | - Reason: "分红订单" + orderGood.DividendsOrderNumber + "不存在", | ||
| 257 | - }) | ||
| 258 | - continue | ||
| 259 | - } | 290 | + if err2 != nil { |
| 291 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 292 | + DividendsUser: nil, | ||
| 293 | + DividendsParticipateType: 0, | ||
| 294 | + DividendsStage: 0, | ||
| 295 | + DividendsAmount: 0, | ||
| 296 | + OrderOrReturnedOrderNumber: orderGood.DividendsOrderNumber, | ||
| 297 | + IsSuccessfully: false, | ||
| 298 | + Reason: "分红订单" + orderGood.DividendsOrderNumber + "查询错误", | ||
| 299 | + }) | ||
| 300 | + continue | ||
| 301 | + } | ||
| 302 | + if dividendsOrder == nil { | ||
| 303 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 304 | + DividendsUser: nil, | ||
| 305 | + DividendsParticipateType: 0, | ||
| 306 | + DividendsStage: 0, | ||
| 307 | + DividendsAmount: 0, | ||
| 308 | + OrderOrReturnedOrderNumber: orderGood.DividendsOrderNumber, | ||
| 309 | + IsSuccessfully: false, | ||
| 310 | + Reason: "分红订单" + orderGood.DividendsOrderNumber + "不存在", | ||
| 311 | + }) | ||
| 312 | + continue | ||
| 313 | + } | ||
| 260 | 314 | ||
| 261 | - // 匹配分红规则 | ||
| 262 | - var dividendsIncentivesRuleMatched *domain.DividendsIncentivesRule | ||
| 263 | - for _, dividendsIncentivesRule := range cooperationContract.DividendsIncentivesRules { | ||
| 264 | - if (dividendsOrder.OrderTime.After(dividendsIncentivesRule.DividendsIncentivesStageStart) || dividendsOrder.OrderTime.Equal(dividendsIncentivesRule.DividendsIncentivesStageStart)) && | ||
| 265 | - (dividendsOrder.OrderTime.Before(dividendsIncentivesRule.DividendsIncentivesStageEnd) || dividendsOrder.OrderTime.Equal(dividendsIncentivesRule.DividendsIncentivesStageEnd)) { | ||
| 266 | - dividendsIncentivesRuleMatched = dividendsIncentivesRule | ||
| 267 | - break | 315 | + // 匹配分红规则 |
| 316 | + var dividendsIncentivesRuleMatched *domain.DividendsIncentivesRule | ||
| 317 | + for _, dividendsIncentivesRule := range cooperationContract.DividendsIncentivesRules { | ||
| 318 | + if (dividendsOrder.OrderTime.After(dividendsIncentivesRule.DividendsIncentivesStageStart) || dividendsOrder.OrderTime.Equal(dividendsIncentivesRule.DividendsIncentivesStageStart)) && | ||
| 319 | + (dividendsOrder.OrderTime.Before(dividendsIncentivesRule.DividendsIncentivesStageEnd) || dividendsOrder.OrderTime.Equal(dividendsIncentivesRule.DividendsIncentivesStageEnd)) { | ||
| 320 | + dividendsIncentivesRuleMatched = dividendsIncentivesRule | ||
| 321 | + break | ||
| 322 | + } | ||
| 323 | + } | ||
| 324 | + if dividendsIncentivesRuleMatched == nil { | ||
| 325 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 326 | + DividendsUser: nil, | ||
| 327 | + DividendsParticipateType: 0, | ||
| 328 | + DividendsStage: 0, | ||
| 329 | + DividendsAmount: 0, | ||
| 330 | + OrderOrReturnedOrderNumber: orderGood.DividendsOrderNumber, | ||
| 331 | + IsSuccessfully: false, | ||
| 332 | + Reason: "未匹配到分红规则", | ||
| 333 | + }) | ||
| 334 | + continue | ||
| 268 | } | 335 | } |
| 269 | - } | ||
| 270 | - if dividendsIncentivesRuleMatched == nil { | ||
| 271 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 272 | - DividendsUser: nil, | ||
| 273 | - DividendsParticipateType: 0, | ||
| 274 | - DividendsStage: 0, | ||
| 275 | - DividendsAmount: 0, | ||
| 276 | - OrderOrReturnedOrderNumber: orderGood.DividendsOrderNumber, | ||
| 277 | - IsSuccessfully: false, | ||
| 278 | - Reason: "未匹配到分红规则", | ||
| 279 | - }) | ||
| 280 | - continue | ||
| 281 | - } | ||
| 282 | 336 | ||
| 283 | - // 计算分红 | ||
| 284 | - if dividendsIncentivesRuleMatched != nil { | 337 | + // 计算分红 |
| 338 | + if dividendsIncentivesRuleMatched != nil { | ||
| 339 | + for _, undertaker := range cooperationContract.Undertakers { | ||
| 340 | + // 添加承接人分红预算信息详情 | ||
| 341 | + if dividendsIncentivesRuleMatched.DividendsIncentivesPercentage > 0 { | ||
| 342 | + undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
| 343 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 344 | + DividendsUser: &domain.User{ | ||
| 345 | + UserId: undertaker.UserId, | ||
| 346 | + UserBaseId: undertaker.UserBaseId, | ||
| 347 | + Org: undertaker.Org, | ||
| 348 | + Orgs: undertaker.Orgs, | ||
| 349 | + Department: undertaker.Department, | ||
| 350 | + Roles: undertaker.Roles, | ||
| 351 | + UserInfo: undertaker.UserInfo, | ||
| 352 | + UserType: undertaker.UserType, | ||
| 353 | + UserName: undertaker.UserInfo.UserName, | ||
| 354 | + UserPhone: undertaker.UserPhone, | ||
| 355 | + Status: undertaker.Status, | ||
| 356 | + Company: undertaker.Company, | ||
| 357 | + }, | ||
| 358 | + DividendsParticipateType: domain.UNDERTAKER, | ||
| 359 | + DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | ||
| 360 | + DividendsAmount: undertakerDividendsAmount, | ||
| 361 | + OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber, | ||
| 362 | + IsSuccessfully: true, | ||
| 363 | + CooperationContractUndertakerId: undertaker.UndertakerId, | ||
| 364 | + DividendsPercentage: dividendsIncentivesRuleMatched.DividendsIncentivesPercentage, | ||
| 365 | + }) | ||
| 366 | + } | ||
| 367 | + // 添加推荐人分红预算信息详情 | ||
| 368 | + if undertaker.Referrer != nil { | ||
| 369 | + if dividendsIncentivesRuleMatched.ReferrerPercentage > 0 { | ||
| 370 | + referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
| 371 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 372 | + DividendsUser: &domain.User{ | ||
| 373 | + UserId: undertaker.Referrer.UserId, | ||
| 374 | + UserBaseId: undertaker.Referrer.UserBaseId, | ||
| 375 | + Org: undertaker.Referrer.Org, | ||
| 376 | + Orgs: undertaker.Referrer.Orgs, | ||
| 377 | + Department: undertaker.Referrer.Department, | ||
| 378 | + Roles: undertaker.Referrer.Roles, | ||
| 379 | + UserInfo: undertaker.Referrer.UserInfo, | ||
| 380 | + UserType: undertaker.Referrer.UserType, | ||
| 381 | + UserName: undertaker.Referrer.UserName, | ||
| 382 | + UserPhone: undertaker.Referrer.UserPhone, | ||
| 383 | + Company: undertaker.Referrer.Company, | ||
| 384 | + }, | ||
| 385 | + DividendsParticipateType: domain.REFERRER, | ||
| 386 | + DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | ||
| 387 | + DividendsAmount: referrerDividendsAmount, | ||
| 388 | + OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber, | ||
| 389 | + IsSuccessfully: true, | ||
| 390 | + CooperationContractUndertakerId: undertaker.UndertakerId, | ||
| 391 | + DividendsPercentage: dividendsIncentivesRuleMatched.ReferrerPercentage, | ||
| 392 | + }) | ||
| 393 | + } | ||
| 394 | + } | ||
| 395 | + // 添加关联业务员分红预算信息详情 | ||
| 396 | + if undertaker.Salesman != nil { | ||
| 397 | + if dividendsIncentivesRuleMatched.SalesmanPercentage > 0 { | ||
| 398 | + salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
| 399 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 400 | + DividendsUser: &domain.User{ | ||
| 401 | + UserId: undertaker.Salesman.UserId, | ||
| 402 | + UserBaseId: undertaker.Salesman.UserBaseId, | ||
| 403 | + Org: undertaker.Salesman.Org, | ||
| 404 | + Orgs: undertaker.Salesman.Orgs, | ||
| 405 | + Department: undertaker.Salesman.Department, | ||
| 406 | + Roles: undertaker.Salesman.Roles, | ||
| 407 | + UserInfo: undertaker.Salesman.UserInfo, | ||
| 408 | + UserType: undertaker.Salesman.UserType, | ||
| 409 | + UserName: undertaker.Salesman.UserInfo.UserName, | ||
| 410 | + UserPhone: undertaker.Salesman.UserPhone, | ||
| 411 | + Company: undertaker.Salesman.Company, | ||
| 412 | + }, | ||
| 413 | + DividendsParticipateType: domain.SALESMAN, | ||
| 414 | + DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | ||
| 415 | + DividendsAmount: salesmanDividendsAmount, | ||
| 416 | + OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber, | ||
| 417 | + IsSuccessfully: true, | ||
| 418 | + CooperationContractUndertakerId: undertaker.UndertakerId, | ||
| 419 | + DividendsPercentage: dividendsIncentivesRuleMatched.SalesmanPercentage, | ||
| 420 | + }) | ||
| 421 | + } | ||
| 422 | + } | ||
| 423 | + } | ||
| 424 | + } | ||
| 425 | + } else if orderGood.DividendsReturnedOrderNumber != "" { // 获取退货单 | ||
| 426 | + dividendsReturnedOrder, err3 := dividendsReturnedOrderRepository.FindOne(map[string]interface{}{ | ||
| 427 | + "dividendsReturnedOrderNumber": orderGood.DividendsReturnedOrderNumber, | ||
| 428 | + "companyId": orderGood.CompanyId, | ||
| 429 | + "orgId": orderGood.OrgId, | ||
| 430 | + }) | ||
| 431 | + if err3 != nil { | ||
| 432 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 433 | + DividendsUser: nil, | ||
| 434 | + DividendsParticipateType: 0, | ||
| 435 | + DividendsStage: 0, | ||
| 436 | + DividendsAmount: 0, | ||
| 437 | + OrderOrReturnedOrderNumber: orderGood.DividendsReturnedOrderNumber, | ||
| 438 | + IsSuccessfully: false, | ||
| 439 | + Reason: "退货单" + orderGood.DividendsReturnedOrderNumber + "不存在", | ||
| 440 | + }) | ||
| 441 | + continue | ||
| 442 | + } | ||
| 443 | + if dividendsReturnedOrder == nil { | ||
| 444 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 445 | + DividendsUser: nil, | ||
| 446 | + DividendsParticipateType: 0, | ||
| 447 | + DividendsStage: 0, | ||
| 448 | + DividendsAmount: 0, | ||
| 449 | + OrderOrReturnedOrderNumber: orderGood.DividendsReturnedOrderNumber, | ||
| 450 | + IsSuccessfully: false, | ||
| 451 | + Reason: "退货单" + orderGood.DividendsReturnedOrderNumber + "不存在", | ||
| 452 | + }) | ||
| 453 | + continue | ||
| 454 | + } | ||
| 455 | + // 匹配分红规则 | ||
| 456 | + var dividendsIncentivesRuleMatched *domain.DividendsIncentivesRule | ||
| 457 | + for _, dividendsIncentivesRule := range cooperationContract.DividendsIncentivesRules { | ||
| 458 | + if (dividendsReturnedOrder.OrderTime.After(dividendsIncentivesRule.DividendsIncentivesStageStart) || dividendsReturnedOrder.OrderTime.Equal(dividendsIncentivesRule.DividendsIncentivesStageStart)) && | ||
| 459 | + (dividendsReturnedOrder.OrderTime.Before(dividendsIncentivesRule.DividendsIncentivesStageEnd) || dividendsReturnedOrder.OrderTime.Equal(dividendsIncentivesRule.DividendsIncentivesStageEnd)) { | ||
| 460 | + dividendsIncentivesRuleMatched = dividendsIncentivesRule | ||
| 461 | + break | ||
| 462 | + } | ||
| 463 | + } | ||
| 464 | + // 计算分红 | ||
| 285 | for _, undertaker := range cooperationContract.Undertakers { | 465 | for _, undertaker := range cooperationContract.Undertakers { |
| 286 | - // 添加承接人分红预算信息详情 | 466 | + // 添加承接人分红退货预算信息详情 |
| 287 | if dividendsIncentivesRuleMatched.DividendsIncentivesPercentage > 0 { | 467 | if dividendsIncentivesRuleMatched.DividendsIncentivesPercentage > 0 { |
| 288 | undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64() | 468 | undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64() |
| 289 | dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | 469 | dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ |
| @@ -303,14 +483,15 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -303,14 +483,15 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
| 303 | }, | 483 | }, |
| 304 | DividendsParticipateType: domain.UNDERTAKER, | 484 | DividendsParticipateType: domain.UNDERTAKER, |
| 305 | DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | 485 | DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, |
| 306 | - DividendsAmount: undertakerDividendsAmount, | ||
| 307 | - OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber, | 486 | + DividendsAmount: -undertakerDividendsAmount, |
| 487 | + OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | ||
| 308 | IsSuccessfully: true, | 488 | IsSuccessfully: true, |
| 309 | CooperationContractUndertakerId: undertaker.UndertakerId, | 489 | CooperationContractUndertakerId: undertaker.UndertakerId, |
| 310 | DividendsPercentage: dividendsIncentivesRuleMatched.DividendsIncentivesPercentage, | 490 | DividendsPercentage: dividendsIncentivesRuleMatched.DividendsIncentivesPercentage, |
| 311 | }) | 491 | }) |
| 312 | } | 492 | } |
| 313 | - // 添加推荐人分红预算信息详情 | 493 | + |
| 494 | + // 添加推荐人分红退货预算信息详情 | ||
| 314 | if undertaker.Referrer != nil { | 495 | if undertaker.Referrer != nil { |
| 315 | if dividendsIncentivesRuleMatched.ReferrerPercentage > 0 { | 496 | if dividendsIncentivesRuleMatched.ReferrerPercentage > 0 { |
| 316 | referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64() | 497 | referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64() |
| @@ -330,15 +511,16 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -330,15 +511,16 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
| 330 | }, | 511 | }, |
| 331 | DividendsParticipateType: domain.REFERRER, | 512 | DividendsParticipateType: domain.REFERRER, |
| 332 | DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | 513 | DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, |
| 333 | - DividendsAmount: referrerDividendsAmount, | ||
| 334 | - OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber, | 514 | + DividendsAmount: -referrerDividendsAmount, |
| 515 | + OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | ||
| 335 | IsSuccessfully: true, | 516 | IsSuccessfully: true, |
| 336 | CooperationContractUndertakerId: undertaker.UndertakerId, | 517 | CooperationContractUndertakerId: undertaker.UndertakerId, |
| 337 | DividendsPercentage: dividendsIncentivesRuleMatched.ReferrerPercentage, | 518 | DividendsPercentage: dividendsIncentivesRuleMatched.ReferrerPercentage, |
| 338 | }) | 519 | }) |
| 339 | } | 520 | } |
| 340 | } | 521 | } |
| 341 | - // 添加关联业务员分红预算信息详情 | 522 | + |
| 523 | + // 添加关联业务员分红退货预算信息详情 | ||
| 342 | if undertaker.Salesman != nil { | 524 | if undertaker.Salesman != nil { |
| 343 | if dividendsIncentivesRuleMatched.SalesmanPercentage > 0 { | 525 | if dividendsIncentivesRuleMatched.SalesmanPercentage > 0 { |
| 344 | salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64() | 526 | salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64() |
| @@ -358,8 +540,8 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -358,8 +540,8 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
| 358 | }, | 540 | }, |
| 359 | DividendsParticipateType: domain.SALESMAN, | 541 | DividendsParticipateType: domain.SALESMAN, |
| 360 | DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | 542 | DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, |
| 361 | - DividendsAmount: salesmanDividendsAmount, | ||
| 362 | - OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber, | 543 | + DividendsAmount: -salesmanDividendsAmount, |
| 544 | + OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | ||
| 363 | IsSuccessfully: true, | 545 | IsSuccessfully: true, |
| 364 | CooperationContractUndertakerId: undertaker.UndertakerId, | 546 | CooperationContractUndertakerId: undertaker.UndertakerId, |
| 365 | DividendsPercentage: dividendsIncentivesRuleMatched.SalesmanPercentage, | 547 | DividendsPercentage: dividendsIncentivesRuleMatched.SalesmanPercentage, |
| @@ -368,135 +550,9 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -368,135 +550,9 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
| 368 | } | 550 | } |
| 369 | } | 551 | } |
| 370 | } | 552 | } |
| 371 | - } else if orderGood.DividendsReturnedOrderNumber != "" { // 获取退货单 | ||
| 372 | - dividendsReturnedOrder, err3 := dividendsReturnedOrderRepository.FindOne(map[string]interface{}{ | ||
| 373 | - "dividendsReturnedOrderNumber": orderGood.DividendsReturnedOrderNumber, | ||
| 374 | - "companyId": orderGood.CompanyId, | ||
| 375 | - "orgId": orderGood.OrgId, | ||
| 376 | - }) | ||
| 377 | - if err3 != nil { | ||
| 378 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 379 | - DividendsUser: nil, | ||
| 380 | - DividendsParticipateType: 0, | ||
| 381 | - DividendsStage: 0, | ||
| 382 | - DividendsAmount: 0, | ||
| 383 | - OrderOrReturnedOrderNumber: orderGood.DividendsReturnedOrderNumber, | ||
| 384 | - IsSuccessfully: false, | ||
| 385 | - Reason: "退货单" + orderGood.DividendsReturnedOrderNumber + "不存在", | ||
| 386 | - }) | ||
| 387 | - continue | ||
| 388 | - } | ||
| 389 | - if dividendsReturnedOrder == nil { | ||
| 390 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 391 | - DividendsUser: nil, | ||
| 392 | - DividendsParticipateType: 0, | ||
| 393 | - DividendsStage: 0, | ||
| 394 | - DividendsAmount: 0, | ||
| 395 | - OrderOrReturnedOrderNumber: orderGood.DividendsReturnedOrderNumber, | ||
| 396 | - IsSuccessfully: false, | ||
| 397 | - Reason: "退货单" + orderGood.DividendsReturnedOrderNumber + "不存在", | ||
| 398 | - }) | ||
| 399 | - continue | ||
| 400 | - } | ||
| 401 | - // 匹配分红规则 | ||
| 402 | - var dividendsIncentivesRuleMatched *domain.DividendsIncentivesRule | ||
| 403 | - for _, dividendsIncentivesRule := range cooperationContract.DividendsIncentivesRules { | ||
| 404 | - if (dividendsReturnedOrder.OrderTime.After(dividendsIncentivesRule.DividendsIncentivesStageStart) || dividendsReturnedOrder.OrderTime.Equal(dividendsIncentivesRule.DividendsIncentivesStageStart)) && | ||
| 405 | - (dividendsReturnedOrder.OrderTime.Before(dividendsIncentivesRule.DividendsIncentivesStageEnd) || dividendsReturnedOrder.OrderTime.Equal(dividendsIncentivesRule.DividendsIncentivesStageEnd)) { | ||
| 406 | - dividendsIncentivesRuleMatched = dividendsIncentivesRule | ||
| 407 | - break | ||
| 408 | - } | ||
| 409 | - } | ||
| 410 | - // 计算分红 | ||
| 411 | - for _, undertaker := range cooperationContract.Undertakers { | ||
| 412 | - // 添加承接人分红退货预算信息详情 | ||
| 413 | - if dividendsIncentivesRuleMatched.DividendsIncentivesPercentage > 0 { | ||
| 414 | - undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
| 415 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 416 | - DividendsUser: &domain.User{ | ||
| 417 | - UserId: undertaker.UserId, | ||
| 418 | - UserBaseId: undertaker.UserBaseId, | ||
| 419 | - Org: undertaker.Org, | ||
| 420 | - Orgs: undertaker.Orgs, | ||
| 421 | - Department: undertaker.Department, | ||
| 422 | - Roles: undertaker.Roles, | ||
| 423 | - UserInfo: undertaker.UserInfo, | ||
| 424 | - UserType: undertaker.UserType, | ||
| 425 | - UserName: undertaker.UserInfo.UserName, | ||
| 426 | - UserPhone: undertaker.UserPhone, | ||
| 427 | - Status: undertaker.Status, | ||
| 428 | - Company: undertaker.Company, | ||
| 429 | - }, | ||
| 430 | - DividendsParticipateType: domain.UNDERTAKER, | ||
| 431 | - DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | ||
| 432 | - DividendsAmount: -undertakerDividendsAmount, | ||
| 433 | - OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | ||
| 434 | - IsSuccessfully: true, | ||
| 435 | - CooperationContractUndertakerId: undertaker.UndertakerId, | ||
| 436 | - DividendsPercentage: dividendsIncentivesRuleMatched.DividendsIncentivesPercentage, | ||
| 437 | - }) | ||
| 438 | - } | ||
| 439 | - | ||
| 440 | - // 添加推荐人分红退货预算信息详情 | ||
| 441 | - if undertaker.Referrer != nil { | ||
| 442 | - if dividendsIncentivesRuleMatched.ReferrerPercentage > 0 { | ||
| 443 | - referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
| 444 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 445 | - DividendsUser: &domain.User{ | ||
| 446 | - UserId: undertaker.Referrer.UserId, | ||
| 447 | - UserBaseId: undertaker.Referrer.UserBaseId, | ||
| 448 | - Org: undertaker.Referrer.Org, | ||
| 449 | - Orgs: undertaker.Referrer.Orgs, | ||
| 450 | - Department: undertaker.Referrer.Department, | ||
| 451 | - Roles: undertaker.Referrer.Roles, | ||
| 452 | - UserInfo: undertaker.Referrer.UserInfo, | ||
| 453 | - UserType: undertaker.Referrer.UserType, | ||
| 454 | - UserName: undertaker.Referrer.UserName, | ||
| 455 | - UserPhone: undertaker.Referrer.UserPhone, | ||
| 456 | - Company: undertaker.Referrer.Company, | ||
| 457 | - }, | ||
| 458 | - DividendsParticipateType: domain.REFERRER, | ||
| 459 | - DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | ||
| 460 | - DividendsAmount: -referrerDividendsAmount, | ||
| 461 | - OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | ||
| 462 | - IsSuccessfully: true, | ||
| 463 | - CooperationContractUndertakerId: undertaker.UndertakerId, | ||
| 464 | - DividendsPercentage: dividendsIncentivesRuleMatched.ReferrerPercentage, | ||
| 465 | - }) | ||
| 466 | - } | ||
| 467 | - } | ||
| 468 | - | ||
| 469 | - // 添加关联业务员分红退货预算信息详情 | ||
| 470 | - if undertaker.Salesman != nil { | ||
| 471 | - if dividendsIncentivesRuleMatched.SalesmanPercentage > 0 { | ||
| 472 | - salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
| 473 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
| 474 | - DividendsUser: &domain.User{ | ||
| 475 | - UserId: undertaker.Salesman.UserId, | ||
| 476 | - UserBaseId: undertaker.Salesman.UserBaseId, | ||
| 477 | - Org: undertaker.Salesman.Org, | ||
| 478 | - Orgs: undertaker.Salesman.Orgs, | ||
| 479 | - Department: undertaker.Salesman.Department, | ||
| 480 | - Roles: undertaker.Salesman.Roles, | ||
| 481 | - UserInfo: undertaker.Salesman.UserInfo, | ||
| 482 | - UserType: undertaker.Salesman.UserType, | ||
| 483 | - UserName: undertaker.Salesman.UserInfo.UserName, | ||
| 484 | - UserPhone: undertaker.Salesman.UserPhone, | ||
| 485 | - Company: undertaker.Salesman.Company, | ||
| 486 | - }, | ||
| 487 | - DividendsParticipateType: domain.SALESMAN, | ||
| 488 | - DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | ||
| 489 | - DividendsAmount: -salesmanDividendsAmount, | ||
| 490 | - OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | ||
| 491 | - IsSuccessfully: true, | ||
| 492 | - CooperationContractUndertakerId: undertaker.UndertakerId, | ||
| 493 | - DividendsPercentage: dividendsIncentivesRuleMatched.SalesmanPercentage, | ||
| 494 | - }) | ||
| 495 | - } | ||
| 496 | - } | ||
| 497 | - } | ||
| 498 | } | 553 | } |
| 499 | - } | 554 | + }() |
| 555 | + | ||
| 500 | return dividendsEstimateDetails, nil | 556 | return dividendsEstimateDetails, nil |
| 501 | } | 557 | } |
| 502 | 558 |
-
请 注册 或 登录 后发表评论