Merge branch 'test' of http://gitlab.fjmaimaimai.com/allied-creation/allied-crea…
…tion-cooperation into test
正在显示
9 个修改的文件
包含
200 行增加
和
111 行删除
@@ -281,8 +281,22 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | @@ -281,8 +281,22 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | ||
281 | cooperationApplicationRepository = value | 281 | cooperationApplicationRepository = value |
282 | } | 282 | } |
283 | 283 | ||
284 | + var getCooperationProjectQuerySpecific *query.GetCooperationProjectQuery | ||
285 | + if getCooperationProjectQuery.CooperationProjectId != 0 { // 根据ID查询 | ||
286 | + getCooperationProjectQuerySpecific = &query.GetCooperationProjectQuery{ | ||
287 | + CooperationProjectId: getCooperationProjectQuery.CooperationProjectId, | ||
288 | + CooperationProjectNumber: "", | ||
289 | + CompanyId: 0, | ||
290 | + OrgId: 0, | ||
291 | + UserId: 0, | ||
292 | + UserBaseId: 0, | ||
293 | + } | ||
294 | + } else if getCooperationProjectQuery.CooperationProjectNumber != "" { // 根据编号查询 | ||
295 | + getCooperationProjectQuerySpecific = getCooperationProjectQuery | ||
296 | + } | ||
297 | + | ||
284 | // 获取共创项目 | 298 | // 获取共创项目 |
285 | - cooperationProject, err := cooperationProjectRepository.FindOne(tool_funs.SimpleStructToMap(getCooperationProjectQuery)) | 299 | + cooperationProject, err := cooperationProjectRepository.FindOne(tool_funs.SimpleStructToMap(getCooperationProjectQuerySpecific)) |
286 | if err != nil { | 300 | if err != nil { |
287 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 301 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
288 | } | 302 | } |
@@ -306,8 +320,8 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | @@ -306,8 +320,8 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | ||
306 | gotUser, err := cooperationProjectDao.CheckUndertakerTypesUncheckedAvailable(map[string]interface{}{ | 320 | gotUser, err := cooperationProjectDao.CheckUndertakerTypesUncheckedAvailable(map[string]interface{}{ |
307 | "cooperationProjectNumber": cooperationProject.CooperationProjectNumber, | 321 | "cooperationProjectNumber": cooperationProject.CooperationProjectNumber, |
308 | "user": true, | 322 | "user": true, |
309 | - "companyId": getCooperationProjectQuery.CompanyId, | ||
310 | - "orgId": getCooperationProjectQuery.OrgId, | 323 | + "companyId": cooperationProject.Company.CompanyId, |
324 | + "orgId": cooperationProject.Org.OrgId, | ||
311 | }) | 325 | }) |
312 | if err != nil { | 326 | if err != nil { |
313 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 327 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
@@ -320,8 +334,8 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | @@ -320,8 +334,8 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | ||
320 | gotPartner, err := cooperationProjectDao.CheckUndertakerTypesUncheckedAvailable(map[string]interface{}{ | 334 | gotPartner, err := cooperationProjectDao.CheckUndertakerTypesUncheckedAvailable(map[string]interface{}{ |
321 | "cooperationProjectNumber": cooperationProject.CooperationProjectNumber, | 335 | "cooperationProjectNumber": cooperationProject.CooperationProjectNumber, |
322 | "partner": true, | 336 | "partner": true, |
323 | - "companyId": getCooperationProjectQuery.CompanyId, | ||
324 | - "orgId": getCooperationProjectQuery.OrgId, | 337 | + "companyId": cooperationProject.Company.CompanyId, |
338 | + "orgId": cooperationProject.Org.OrgId, | ||
325 | }) | 339 | }) |
326 | if err != nil { | 340 | if err != nil { |
327 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 341 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
@@ -337,6 +351,7 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | @@ -337,6 +351,7 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | ||
337 | 351 | ||
338 | // 返回所有员工类型的申请通过人 | 352 | // 返回所有员工类型的申请通过人 |
339 | applicants := make([]*domain.User, 0) | 353 | applicants := make([]*domain.User, 0) |
354 | + | ||
340 | // 获取当前项目的所有申请 | 355 | // 获取当前项目的所有申请 |
341 | if countApplication, cooperationApplications, err := cooperationApplicationRepository.Find(map[string]interface{}{ | 356 | if countApplication, cooperationApplications, err := cooperationApplicationRepository.Find(map[string]interface{}{ |
342 | "cooperationProjectNumberExact": cooperationProject.CooperationProjectNumber, | 357 | "cooperationProjectNumberExact": cooperationProject.CooperationProjectNumber, |
@@ -157,6 +157,7 @@ func (creditAccountService *CreditAccountService) CreateCreditAccount(createCred | @@ -157,6 +157,7 @@ func (creditAccountService *CreditAccountService) CreateCreditAccount(createCred | ||
157 | OrderGoodAmount: dividendsEstimate.OrderGoodAmount, | 157 | OrderGoodAmount: dividendsEstimate.OrderGoodAmount, |
158 | CooperationContractNumber: dividendsEstimate.CooperationContractNumber, | 158 | CooperationContractNumber: dividendsEstimate.CooperationContractNumber, |
159 | }) | 159 | }) |
160 | + | ||
160 | settlementAmount = settlementAmount + dividendsEstimate.DividendsAmount | 161 | settlementAmount = settlementAmount + dividendsEstimate.DividendsAmount |
161 | 162 | ||
162 | goodAmountCount = goodAmountCount + dividendsEstimate.OrderGoodAmount | 163 | goodAmountCount = goodAmountCount + dividendsEstimate.OrderGoodAmount |
@@ -30,6 +30,10 @@ type SearchMoneyIncentivesEstimateQuery struct { | @@ -30,6 +30,10 @@ type SearchMoneyIncentivesEstimateQuery struct { | ||
30 | PageSize int64 `cname:"页面大小" json:"pageSize,omitempty"` | 30 | PageSize int64 `cname:"页面大小" json:"pageSize,omitempty"` |
31 | // 激励方式 | 31 | // 激励方式 |
32 | IncentivesType int32 `cname:"激励方式" json:"incentivesType,omitempty"` | 32 | IncentivesType int32 `cname:"激励方式" json:"incentivesType,omitempty"` |
33 | + // 合约状态,1正常,2暂停 | ||
34 | + Status int32 `cname:"合约状态" json:"status,omitempty"` | ||
35 | + // 查询限制 | ||
36 | + OffsetLimit bool `json:"offsetLimit,omitempty"` | ||
33 | } | 37 | } |
34 | 38 | ||
35 | func (searchMoneyIncentivesEstimateQuery *SearchMoneyIncentivesEstimateQuery) Valid(validation *validation.Validation) { | 39 | func (searchMoneyIncentivesEstimateQuery *SearchMoneyIncentivesEstimateQuery) Valid(validation *validation.Validation) { |
@@ -1380,6 +1380,8 @@ func (dividendsEstimateService *DividendsEstimateService) SearchMoneyIncentivesE | @@ -1380,6 +1380,8 @@ func (dividendsEstimateService *DividendsEstimateService) SearchMoneyIncentivesE | ||
1380 | 1380 | ||
1381 | // 查找共创合约 | 1381 | // 查找共创合约 |
1382 | searchMoneyIncentivesEstimateQuery.IncentivesType = 2 | 1382 | searchMoneyIncentivesEstimateQuery.IncentivesType = 2 |
1383 | + searchMoneyIncentivesEstimateQuery.Status = 1 | ||
1384 | + searchMoneyIncentivesEstimateQuery.OffsetLimit = false | ||
1383 | if count, cooperationContracts, err := cooperationContractRepository.Find(tool_funs.SimpleStructToMap(searchMoneyIncentivesEstimateQuery)); err != nil { | 1385 | if count, cooperationContracts, err := cooperationContractRepository.Find(tool_funs.SimpleStructToMap(searchMoneyIncentivesEstimateQuery)); err != nil { |
1384 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1386 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1385 | } else { | 1387 | } else { |
@@ -1387,15 +1389,19 @@ func (dividendsEstimateService *DividendsEstimateService) SearchMoneyIncentivesE | @@ -1387,15 +1389,19 @@ func (dividendsEstimateService *DividendsEstimateService) SearchMoneyIncentivesE | ||
1387 | for _, cooperationContract := range cooperationContracts { | 1389 | for _, cooperationContract := range cooperationContracts { |
1388 | // 阶段承接人map | 1390 | // 阶段承接人map |
1389 | stageUndertakerMap := make(map[int32][]*domain.Undertaker) | 1391 | stageUndertakerMap := make(map[int32][]*domain.Undertaker) |
1392 | + | ||
1390 | // 阶段承接人列表 | 1393 | // 阶段承接人列表 |
1391 | stageAndUndertaker := make([]*dto.StageAndUndertaker, 0) | 1394 | stageAndUndertaker := make([]*dto.StageAndUndertaker, 0) |
1395 | + | ||
1392 | // 初始化阶段承接人map | 1396 | // 初始化阶段承接人map |
1393 | for _, rule := range cooperationContract.MoneyIncentivesRules { | 1397 | for _, rule := range cooperationContract.MoneyIncentivesRules { |
1394 | stageUndertakerMap[rule.MoneyIncentivesStage] = make([]*domain.Undertaker, 0) | 1398 | stageUndertakerMap[rule.MoneyIncentivesStage] = make([]*domain.Undertaker, 0) |
1395 | } | 1399 | } |
1400 | + | ||
1396 | log.Logger.Info("阶段承接人map初始化", map[string]interface{}{ | 1401 | log.Logger.Info("阶段承接人map初始化", map[string]interface{}{ |
1397 | "stageUndertakerMap": stageUndertakerMap, | 1402 | "stageUndertakerMap": stageUndertakerMap, |
1398 | }) | 1403 | }) |
1404 | + | ||
1399 | // 获取承接人 | 1405 | // 获取承接人 |
1400 | for _, undertaker := range cooperationContract.Undertakers { | 1406 | for _, undertaker := range cooperationContract.Undertakers { |
1401 | // 查询承接人分红预算单 | 1407 | // 查询承接人分红预算单 |
@@ -1404,6 +1410,7 @@ func (dividendsEstimateService *DividendsEstimateService) SearchMoneyIncentivesE | @@ -1404,6 +1410,7 @@ func (dividendsEstimateService *DividendsEstimateService) SearchMoneyIncentivesE | ||
1404 | "companyId": cooperationContract.Company.CompanyId, | 1410 | "companyId": cooperationContract.Company.CompanyId, |
1405 | "orgId": cooperationContract.Org.OrgId, | 1411 | "orgId": cooperationContract.Org.OrgId, |
1406 | "dividendsUserId": undertaker.UserId, | 1412 | "dividendsUserId": undertaker.UserId, |
1413 | + "offsetLimit": false, | ||
1407 | }); err != nil { | 1414 | }); err != nil { |
1408 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1415 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1409 | } else { | 1416 | } else { |
@@ -1413,16 +1420,20 @@ func (dividendsEstimateService *DividendsEstimateService) SearchMoneyIncentivesE | @@ -1413,16 +1420,20 @@ func (dividendsEstimateService *DividendsEstimateService) SearchMoneyIncentivesE | ||
1413 | stageUndertakerMap[dividendsEstimate.DividendsStage] = append(stageUndertakerMap[dividendsEstimate.DividendsStage], undertaker) | 1420 | stageUndertakerMap[dividendsEstimate.DividendsStage] = append(stageUndertakerMap[dividendsEstimate.DividendsStage], undertaker) |
1414 | } | 1421 | } |
1415 | } | 1422 | } |
1423 | + break | ||
1416 | } else if countDividendsEstimates == 0 { // 未分红,可以加入任意阶段进行金额激励 | 1424 | } else if countDividendsEstimates == 0 { // 未分红,可以加入任意阶段进行金额激励 |
1417 | for i, _ := range stageUndertakerMap { | 1425 | for i, _ := range stageUndertakerMap { |
1418 | stageUndertakerMap[i] = append(stageUndertakerMap[i], undertaker) | 1426 | stageUndertakerMap[i] = append(stageUndertakerMap[i], undertaker) |
1419 | } | 1427 | } |
1428 | + break | ||
1420 | } | 1429 | } |
1421 | } | 1430 | } |
1422 | } | 1431 | } |
1432 | + | ||
1423 | log.Logger.Info("阶段承接人map", map[string]interface{}{ | 1433 | log.Logger.Info("阶段承接人map", map[string]interface{}{ |
1424 | "stageUndertakerMap": stageUndertakerMap, | 1434 | "stageUndertakerMap": stageUndertakerMap, |
1425 | }) | 1435 | }) |
1436 | + | ||
1426 | for k, v := range stageUndertakerMap { | 1437 | for k, v := range stageUndertakerMap { |
1427 | stageAndUndertaker = append(stageAndUndertaker, &dto.StageAndUndertaker{ | 1438 | stageAndUndertaker = append(stageAndUndertaker, &dto.StageAndUndertaker{ |
1428 | Stage: k, | 1439 | Stage: k, |
@@ -1431,10 +1442,22 @@ func (dividendsEstimateService *DividendsEstimateService) SearchMoneyIncentivesE | @@ -1431,10 +1442,22 @@ func (dividendsEstimateService *DividendsEstimateService) SearchMoneyIncentivesE | ||
1431 | } | 1442 | } |
1432 | 1443 | ||
1433 | moneyIncentivesEstimateDto := &dto.MoneyIncentivesEstimateDto{} | 1444 | moneyIncentivesEstimateDto := &dto.MoneyIncentivesEstimateDto{} |
1434 | - if err := moneyIncentivesEstimateDto.LoadDto(cooperationContract, stageAndUndertaker); err != nil { | ||
1435 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1445 | + |
1446 | + // 判断当前合约的承接人是否全部分红 | ||
1447 | + allEstimate := true | ||
1448 | + for i, _ := range stageUndertakerMap { | ||
1449 | + if len(stageUndertakerMap[i]) > 0 { | ||
1450 | + allEstimate = false | ||
1451 | + break | ||
1452 | + } | ||
1453 | + } | ||
1454 | + | ||
1455 | + if !allEstimate { | ||
1456 | + if err := moneyIncentivesEstimateDto.LoadDto(cooperationContract, stageAndUndertaker); err != nil { | ||
1457 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
1458 | + } | ||
1459 | + moneyIncentivesEstimateDtos = append(moneyIncentivesEstimateDtos, moneyIncentivesEstimateDto) | ||
1436 | } | 1460 | } |
1437 | - moneyIncentivesEstimateDtos = append(moneyIncentivesEstimateDtos, moneyIncentivesEstimateDto) | ||
1438 | } | 1461 | } |
1439 | 1462 | ||
1440 | if err := transactionContext.CommitTransaction(); err != nil { | 1463 | if err := transactionContext.CommitTransaction(); err != nil { |
@@ -1122,8 +1122,16 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) UpdateDivide | @@ -1122,8 +1122,16 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) UpdateDivide | ||
1122 | } | 1122 | } |
1123 | orderTime := utils.TransformTimestampToTime(orderTimeInt) | 1123 | orderTime := utils.TransformTimestampToTime(orderTimeInt) |
1124 | 1124 | ||
1125 | + // 退货单ID类型转换 | ||
1126 | + dividendsReturnedOrderId, err := strconv.ParseInt(updateDividendsReturnedOrderCommand.DividendsReturnedOrderId, 10, 64) | ||
1127 | + if err != nil { | ||
1128 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "退货单ID类型错误") | ||
1129 | + } | ||
1130 | + | ||
1125 | // 获取分红退货单 | 1131 | // 获取分红退货单 |
1126 | - dividendsReturnedOrder, err := dividendsReturnedOrderRepository.FindOne(map[string]interface{}{"dividendsReturnedOrderId": updateDividendsReturnedOrderCommand.DividendsReturnedOrderId}) | 1132 | + dividendsReturnedOrder, err := dividendsReturnedOrderRepository.FindOne(map[string]interface{}{ |
1133 | + "dividendsReturnedOrderId": dividendsReturnedOrderId, | ||
1134 | + }) | ||
1127 | if err != nil { | 1135 | if err != nil { |
1128 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1136 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1129 | } | 1137 | } |
@@ -9,7 +9,7 @@ import ( | @@ -9,7 +9,7 @@ import ( | ||
9 | 9 | ||
10 | type DividendsEstimateDetail struct { | 10 | type DividendsEstimateDetail struct { |
11 | DividendsUser *domain.User `json:"dividendsUser"` // 共创参与(分红用户) | 11 | DividendsUser *domain.User `json:"dividendsUser"` // 共创参与(分红用户) |
12 | - DividendsParticipateType int32 `json:"dividendsParticipateType"` // 参与类型 | 12 | + DividendsParticipateType int32 `json:"dividendsParticipateType"` // 参与类型 1承接人,2推荐人,3关联业务员 |
13 | DividendsStage int32 `json:"dividendsStage"` // 分红阶段 | 13 | DividendsStage int32 `json:"dividendsStage"` // 分红阶段 |
14 | DividendsAmount float64 `json:"dividendsAmount"` // 分红金额 | 14 | DividendsAmount float64 `json:"dividendsAmount"` // 分红金额 |
15 | OrderOrReturnedOrderNumber string `json:"orderOrReturnedOrderNumber"` // 分红订单号或退货单号 | 15 | OrderOrReturnedOrderNumber string `json:"orderOrReturnedOrderNumber"` // 分红订单号或退货单号 |
@@ -60,26 +60,52 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -60,26 +60,52 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
60 | var dividendsEstimatesCanceled []*domain.DividendsEstimate | 60 | var dividendsEstimatesCanceled []*domain.DividendsEstimate |
61 | var orderOrReturnOrderNums []string | 61 | var orderOrReturnOrderNums []string |
62 | for _, dividendsEstimate := range dividendsEstimates { | 62 | for _, dividendsEstimate := range dividendsEstimates { |
63 | - // 根据当前分红预算单的分红订单号或退货单号获取相关的分红预算单 | ||
64 | - if countRelative, dividendsEstimatesRelative, err2 := dividendsEstimateRepository.Find(map[string]interface{}{ | ||
65 | - "companyId": dividendsEstimate.Company.CompanyId, | ||
66 | - "orgId": dividendsEstimate.Org.OrgId, | ||
67 | - "orderOrReturnedOrderNum": dividendsEstimate.OrderOrReturnedOrderNum, | ||
68 | - }); err2 != nil { | ||
69 | - return nil, err2 | ||
70 | - } else { | ||
71 | - if countRelative > 0 { | ||
72 | - for i, _ := range dividendsEstimatesRelative { | ||
73 | - dividendsEstimatesRelative[i].IsCanceled = true | ||
74 | - dividendsEstimatesRelative[i].Operator = operator | ||
75 | - // 获取相关订单/退货单号 | ||
76 | - orderOrReturnOrderNums = append(orderOrReturnOrderNums, dividendsEstimatesRelative[i].OrderOrReturnedOrderNum) | 63 | + if dividendsEstimate.DividendsType != 3 { // 非金额激励分红预算单处理 |
64 | + // 根据当前分红预算单的分红订单号或退货单号获取相关的分红预算单 | ||
65 | + if countRelative, dividendsEstimatesRelative, err2 := dividendsEstimateRepository.Find(map[string]interface{}{ | ||
66 | + "companyId": dividendsEstimate.Company.CompanyId, | ||
67 | + "orgId": dividendsEstimate.Org.OrgId, | ||
68 | + "orderOrReturnedOrderNum": dividendsEstimate.OrderOrReturnedOrderNum, | ||
69 | + "offsetLimit": false, | ||
70 | + }); err2 != nil { | ||
71 | + return nil, err2 | ||
72 | + } else { | ||
73 | + if countRelative > 0 { | ||
74 | + for i, _ := range dividendsEstimatesRelative { | ||
75 | + dividendsEstimatesRelative[i].IsCanceled = true | ||
76 | + dividendsEstimatesRelative[i].Operator = operator | ||
77 | + // 获取相关订单/退货单号 | ||
78 | + orderOrReturnOrderNums = append(orderOrReturnOrderNums, dividendsEstimatesRelative[i].OrderOrReturnedOrderNum) | ||
79 | + } | ||
80 | + dividendsEstimatesRelativeCanceled, err3 := dividendsEstimateRepository.UpdateMany(dividendsEstimatesRelative) | ||
81 | + if err3 != nil { | ||
82 | + return nil, err3 | ||
83 | + } | ||
84 | + dividendsEstimatesCanceled = append(dividendsEstimatesCanceled, dividendsEstimatesRelativeCanceled...) | ||
77 | } | 85 | } |
78 | - dividendsEstimatesRelativeCanceled, err3 := dividendsEstimateRepository.UpdateMany(dividendsEstimatesRelative) | ||
79 | - if err3 != nil { | ||
80 | - return nil, err3 | 86 | + } |
87 | + } else if dividendsEstimate.DividendsType == 3 { | ||
88 | + // 根据当前分红预算单的分红订单号或退货单号获取相关的分红预算单 | ||
89 | + if countRelative, dividendsEstimatesRelative, err2 := dividendsEstimateRepository.Find(map[string]interface{}{ | ||
90 | + "companyId": dividendsEstimate.Company.CompanyId, | ||
91 | + "orgId": dividendsEstimate.Org.OrgId, | ||
92 | + "cooperationContractNumber": dividendsEstimate.CooperationContractNumber, | ||
93 | + "dividendsType": int32(3), | ||
94 | + "offsetLimit": false, | ||
95 | + }); err2 != nil { | ||
96 | + return nil, err2 | ||
97 | + } else { | ||
98 | + if countRelative > 0 { | ||
99 | + for i, _ := range dividendsEstimatesRelative { | ||
100 | + dividendsEstimatesRelative[i].IsCanceled = true | ||
101 | + dividendsEstimatesRelative[i].Operator = operator | ||
102 | + } | ||
103 | + dividendsEstimatesRelativeCanceled, err3 := dividendsEstimateRepository.UpdateMany(dividendsEstimatesRelative) | ||
104 | + if err3 != nil { | ||
105 | + return nil, err3 | ||
106 | + } | ||
107 | + dividendsEstimatesCanceled = append(dividendsEstimatesCanceled, dividendsEstimatesRelativeCanceled...) | ||
81 | } | 108 | } |
82 | - dividendsEstimatesCanceled = append(dividendsEstimatesCanceled, dividendsEstimatesRelativeCanceled...) | ||
83 | } | 109 | } |
84 | } | 110 | } |
85 | } | 111 | } |
@@ -88,98 +114,107 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -88,98 +114,107 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
88 | var orderNums []string | 114 | var orderNums []string |
89 | var returnedOrderNums []string | 115 | var returnedOrderNums []string |
90 | 116 | ||
91 | - // 订单/退货单号数组去重 | ||
92 | - orderOrReturnOrderNumsWithoutDup := utils.RemoveDuplication(orderOrReturnOrderNums) | ||
93 | - for _, orderNullNum := range orderOrReturnOrderNumsWithoutDup { | ||
94 | - if orderNullNum[:2] == "RE" { // 分红退后单 | ||
95 | - returnedOrderNums = append(returnedOrderNums, orderNullNum) | ||
96 | - } else if orderNullNum[:2] == "SL" { // 分红订单 | ||
97 | - orderNums = append(orderNums, orderNullNum) | 117 | + if len(orderOrReturnOrderNums) > 0 { |
118 | + // 订单/退货单号数组去重 | ||
119 | + orderOrReturnOrderNumsWithoutDup := utils.RemoveDuplication(orderOrReturnOrderNums) | ||
120 | + for _, orderNullNum := range orderOrReturnOrderNumsWithoutDup { | ||
121 | + if orderNullNum[:2] == "RE" { // 分红退后单 | ||
122 | + returnedOrderNums = append(returnedOrderNums, orderNullNum) | ||
123 | + } else if orderNullNum[:2] == "SL" { // 分红订单 | ||
124 | + orderNums = append(orderNums, orderNullNum) | ||
125 | + } | ||
98 | } | 126 | } |
99 | - } | ||
100 | 127 | ||
101 | - // 获取分红订单 | ||
102 | - if countDividendsOrder, orders, err4 := dividendsOrderRepository.Find(map[string]interface{}{ | ||
103 | - "companyId": dividendsEstimates[0].Company.CompanyId, | ||
104 | - "orgId": dividendsEstimates[0].Org.OrgId, | ||
105 | - "dividendsOrderNumbers": orderNums, | ||
106 | - }); err4 != nil { | ||
107 | - return nil, err4 | ||
108 | - } else { | ||
109 | - if countDividendsOrder > 0 { | ||
110 | - for i, _ := range orders { | ||
111 | - orders[i].DividendStatus = 1 | ||
112 | - } | ||
113 | - // 保存订单状态 | ||
114 | - if _, err6 := dividendsOrderRepository.UpdateMany(orders); err6 != nil { | ||
115 | - return nil, err6 | ||
116 | - } | ||
117 | - // 获取订单编号 | ||
118 | - ordersNumbers := make([]string, 0) | ||
119 | - for _, order := range orders { | ||
120 | - ordersNumbers = append(ordersNumbers, order.DividendsOrderNumber) | ||
121 | - } | ||
122 | - // 获取分红订单产品并更新产品状态 | ||
123 | - if countOrderGood, orderGoodsFound, err := orderGoodRepository.Find(map[string]interface{}{ | ||
124 | - "orderNumbers": ordersNumbers, | ||
125 | - "companyId": dividendsEstimates[0].Company.CompanyId, | ||
126 | - "orgId": dividendsEstimates[0].Org.OrgId, | ||
127 | - }); err != nil { | ||
128 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 128 | + // 获取分红订单并更新分红订单产品的状态 |
129 | + if len(orderNums) > 0 { | ||
130 | + if countDividendsOrder, orders, err4 := dividendsOrderRepository.Find(map[string]interface{}{ | ||
131 | + "companyId": dividendsEstimates[0].Company.CompanyId, | ||
132 | + "orgId": dividendsEstimates[0].Org.OrgId, | ||
133 | + "dividendsOrderNumbers": orderNums, | ||
134 | + }); err4 != nil { | ||
135 | + return nil, err4 | ||
129 | } else { | 136 | } else { |
130 | - if countOrderGood > 0 { | ||
131 | - for i, _ := range orderGoodsFound { | ||
132 | - orderGoodsFound[i].OrderGoodDividendsStatus = int32(1) // 待分红 | 137 | + if countDividendsOrder > 0 { |
138 | + for i, _ := range orders { | ||
139 | + orders[i].DividendStatus = 1 | ||
140 | + } | ||
141 | + // 保存订单状态 | ||
142 | + if _, err6 := dividendsOrderRepository.UpdateMany(orders); err6 != nil { | ||
143 | + return nil, err6 | ||
144 | + } | ||
145 | + // 获取订单编号 | ||
146 | + ordersNumbers := make([]string, 0) | ||
147 | + for _, order := range orders { | ||
148 | + ordersNumbers = append(ordersNumbers, order.DividendsOrderNumber) | ||
133 | } | 149 | } |
134 | - if _, err6 := orderGoodRepository.UpdateMany(orderGoodsFound); err6 != nil { | ||
135 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err6.Error()) | 150 | + // 获取分红订单产品并更新产品状态 |
151 | + if len(ordersNumbers) > 0 { | ||
152 | + if countOrderGood, orderGoodsFound, err := orderGoodRepository.Find(map[string]interface{}{ | ||
153 | + "orderNumbers": ordersNumbers, | ||
154 | + "companyId": dividendsEstimates[0].Company.CompanyId, | ||
155 | + "orgId": dividendsEstimates[0].Org.OrgId, | ||
156 | + }); err != nil { | ||
157 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
158 | + } else { | ||
159 | + if countOrderGood > 0 { | ||
160 | + for i, _ := range orderGoodsFound { | ||
161 | + orderGoodsFound[i].OrderGoodDividendsStatus = int32(1) // 待分红 | ||
162 | + } | ||
163 | + if _, err6 := orderGoodRepository.UpdateMany(orderGoodsFound); err6 != nil { | ||
164 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err6.Error()) | ||
165 | + } | ||
166 | + } | ||
167 | + } | ||
136 | } | 168 | } |
137 | } | 169 | } |
138 | } | 170 | } |
139 | } | 171 | } |
140 | - } | ||
141 | 172 | ||
142 | - // 获取分红退货单 | ||
143 | - if countDividendsReturnedOrder, returnedOrders, err5 := dividendsReturnedOrderRepository.Find(map[string]interface{}{ | ||
144 | - "companyId": dividendsEstimates[0].Company.CompanyId, | ||
145 | - "orgId": dividendsEstimates[0].Org.OrgId, | ||
146 | - "dividendsReturnedOrderNumbers": returnedOrderNums, | ||
147 | - }); err5 != nil { | ||
148 | - return nil, err5 | ||
149 | - } else { | ||
150 | - if countDividendsReturnedOrder > 0 { | ||
151 | - for i, _ := range returnedOrders { | ||
152 | - returnedOrders[i].DividendStatus = 1 | ||
153 | - } | ||
154 | - // 保存退货单状态 | ||
155 | - if _, err7 := dividendsReturnedOrderRepository.UpdateMany(returnedOrders); err7 != nil { | ||
156 | - return nil, err7 | ||
157 | - } | ||
158 | - // 获取订单编号 | ||
159 | - returnedOrdersNumbers := make([]string, 0) | ||
160 | - for _, returnedOrder := range returnedOrders { | ||
161 | - returnedOrdersNumbers = append(returnedOrdersNumbers, returnedOrder.DividendsReturnedOrderNumber) | ||
162 | - } | ||
163 | - // 获取退货单产品并更新产品状态 | ||
164 | - if countOrderGood, orderGoodsFound, err := orderGoodRepository.Find(map[string]interface{}{ | ||
165 | - "returnedOrderNumbers": returnedOrdersNumbers, | ||
166 | - "companyId": dividendsEstimates[0].Company.CompanyId, | ||
167 | - "orgId": dividendsEstimates[0].Org.OrgId, | ||
168 | - }); err != nil { | ||
169 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 173 | + // 获取分红退货单并更新订单产品的状态 |
174 | + if len(returnedOrderNums) > 0 { | ||
175 | + if countDividendsReturnedOrder, returnedOrders, err5 := dividendsReturnedOrderRepository.Find(map[string]interface{}{ | ||
176 | + "companyId": dividendsEstimates[0].Company.CompanyId, | ||
177 | + "orgId": dividendsEstimates[0].Org.OrgId, | ||
178 | + "dividendsReturnedOrderNumbers": returnedOrderNums, | ||
179 | + }); err5 != nil { | ||
180 | + return nil, err5 | ||
170 | } else { | 181 | } else { |
171 | - if countOrderGood > 0 { | ||
172 | - for i, _ := range orderGoodsFound { | ||
173 | - orderGoodsFound[i].OrderGoodDividendsStatus = int32(1) // 待分红 | 182 | + if countDividendsReturnedOrder > 0 { |
183 | + for i, _ := range returnedOrders { | ||
184 | + returnedOrders[i].DividendStatus = 1 | ||
185 | + } | ||
186 | + // 保存退货单状态 | ||
187 | + if _, err7 := dividendsReturnedOrderRepository.UpdateMany(returnedOrders); err7 != nil { | ||
188 | + return nil, err7 | ||
174 | } | 189 | } |
175 | - if _, err6 := orderGoodRepository.UpdateMany(orderGoodsFound); err6 != nil { | ||
176 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err6.Error()) | 190 | + // 获取订单编号 |
191 | + returnedOrdersNumbers := make([]string, 0) | ||
192 | + for _, returnedOrder := range returnedOrders { | ||
193 | + returnedOrdersNumbers = append(returnedOrdersNumbers, returnedOrder.DividendsReturnedOrderNumber) | ||
194 | + } | ||
195 | + // 获取退货单产品并更新产品状态 | ||
196 | + if len(returnedOrdersNumbers) > 0 { | ||
197 | + if countOrderGood, orderGoodsFound, err := orderGoodRepository.Find(map[string]interface{}{ | ||
198 | + "returnedOrderNumbers": returnedOrdersNumbers, | ||
199 | + "companyId": dividendsEstimates[0].Company.CompanyId, | ||
200 | + "orgId": dividendsEstimates[0].Org.OrgId, | ||
201 | + }); err != nil { | ||
202 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
203 | + } else { | ||
204 | + if countOrderGood > 0 { | ||
205 | + for i, _ := range orderGoodsFound { | ||
206 | + orderGoodsFound[i].OrderGoodDividendsStatus = int32(1) // 待分红 | ||
207 | + } | ||
208 | + if _, err6 := orderGoodRepository.UpdateMany(orderGoodsFound); err6 != nil { | ||
209 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err6.Error()) | ||
210 | + } | ||
211 | + } | ||
212 | + } | ||
177 | } | 213 | } |
178 | } | 214 | } |
179 | } | 215 | } |
180 | } | 216 | } |
181 | } | 217 | } |
182 | - | ||
183 | return dividendsEstimatesCanceled, nil | 218 | return dividendsEstimatesCanceled, nil |
184 | } | 219 | } |
185 | } | 220 | } |
@@ -44,7 +44,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | @@ -44,7 +44,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | ||
44 | 44 | ||
45 | // 判断金额激励阶段是否合法 | 45 | // 判断金额激励阶段是否合法 |
46 | currentTime := time.Now() | 46 | currentTime := time.Now() |
47 | - if currentTime.Before(moneyIncentivesRuleMatched.MoneyIncentivesStageStart) { | 47 | + if currentTime.Before(moneyIncentivesRuleMatched.MoneyIncentivesTime) { |
48 | return nil, fmt.Errorf("还未到分红时间") | 48 | return nil, fmt.Errorf("还未到分红时间") |
49 | } | 49 | } |
50 | 50 | ||
@@ -61,7 +61,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | @@ -61,7 +61,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | ||
61 | return nil, err | 61 | return nil, err |
62 | } | 62 | } |
63 | if undertakerEstimated { | 63 | if undertakerEstimated { |
64 | - return nil, fmt.Errorf("用户 " + undertaker.UserName + " 已分红") | 64 | + return nil, fmt.Errorf("承接人 " + undertaker.UserName + " 已分红") |
65 | } else { | 65 | } else { |
66 | undertakerDividendsAmount, _ := decimal.NewFromFloat(moneyIncentivesRuleMatched.MoneyIncentivesAmount).Float64() | 66 | undertakerDividendsAmount, _ := decimal.NewFromFloat(moneyIncentivesRuleMatched.MoneyIncentivesAmount).Float64() |
67 | //Mul(decimal.NewFromFloat(1).Sub(decimal.NewFromFloat(moneyIncentivesRuleMatched.SalesmanPercentage).Add(decimal.NewFromFloat(moneyIncentivesRuleMatched.ReferrerPercentage)).Div(decimal.NewFromFloat(100)))).Float64() | 67 | //Mul(decimal.NewFromFloat(1).Sub(decimal.NewFromFloat(moneyIncentivesRuleMatched.SalesmanPercentage).Add(decimal.NewFromFloat(moneyIncentivesRuleMatched.ReferrerPercentage)).Div(decimal.NewFromFloat(100)))).Float64() |
@@ -80,7 +80,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | @@ -80,7 +80,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | ||
80 | Status: undertaker.Status, | 80 | Status: undertaker.Status, |
81 | Company: undertaker.Company, | 81 | Company: undertaker.Company, |
82 | }, | 82 | }, |
83 | - DividendsParticipateType: domain.MONEY_INCENTIVES, | 83 | + DividendsParticipateType: 1, |
84 | DividendsStage: stage, | 84 | DividendsStage: stage, |
85 | DividendsAmount: undertakerDividendsAmount, | 85 | DividendsAmount: undertakerDividendsAmount, |
86 | }) | 86 | }) |
@@ -114,7 +114,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | @@ -114,7 +114,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | ||
114 | UserPhone: undertaker.Salesman.UserPhone, | 114 | UserPhone: undertaker.Salesman.UserPhone, |
115 | Company: undertaker.Salesman.Company, | 115 | Company: undertaker.Salesman.Company, |
116 | }, | 116 | }, |
117 | - DividendsParticipateType: domain.MONEY_INCENTIVES, | 117 | + DividendsParticipateType: 3, |
118 | DividendsStage: stage, | 118 | DividendsStage: stage, |
119 | DividendsAmount: undertakerDividendsAmount, | 119 | DividendsAmount: undertakerDividendsAmount, |
120 | }) | 120 | }) |
@@ -122,7 +122,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | @@ -122,7 +122,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | ||
122 | 122 | ||
123 | } | 123 | } |
124 | 124 | ||
125 | - // 判断关联业务员在当前阶段是否已经分红 | 125 | + // 判断推荐人在当前阶段是否已经分红 |
126 | if undertaker.Referrer != nil { | 126 | if undertaker.Referrer != nil { |
127 | referrerEstimated, err := dividendsEstimateDao.UserEstimated(map[string]interface{}{ | 127 | referrerEstimated, err := dividendsEstimateDao.UserEstimated(map[string]interface{}{ |
128 | "undertakerUid": undertaker.Referrer.UserId, | 128 | "undertakerUid": undertaker.Referrer.UserId, |
@@ -133,7 +133,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | @@ -133,7 +133,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | ||
133 | return nil, err | 133 | return nil, err |
134 | } | 134 | } |
135 | if referrerEstimated { | 135 | if referrerEstimated { |
136 | - return nil, fmt.Errorf("推荐人 " + undertaker.Salesman.UserName + " 已分红") | 136 | + return nil, fmt.Errorf("推荐人 " + undertaker.Referrer.UserName + " 已分红") |
137 | } else { | 137 | } else { |
138 | undertakerDividendsAmount, _ := decimal.NewFromFloat(moneyIncentivesRuleMatched.MoneyIncentivesAmount).Mul(decimal.NewFromFloat(moneyIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64() | 138 | undertakerDividendsAmount, _ := decimal.NewFromFloat(moneyIncentivesRuleMatched.MoneyIncentivesAmount).Mul(decimal.NewFromFloat(moneyIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64() |
139 | dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | 139 | dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ |
@@ -150,7 +150,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | @@ -150,7 +150,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do | ||
150 | UserPhone: undertaker.Referrer.UserPhone, | 150 | UserPhone: undertaker.Referrer.UserPhone, |
151 | Company: undertaker.Referrer.Company, | 151 | Company: undertaker.Referrer.Company, |
152 | }, | 152 | }, |
153 | - DividendsParticipateType: domain.MONEY_INCENTIVES, | 153 | + DividendsParticipateType: 2, |
154 | DividendsStage: stage, | 154 | DividendsStage: stage, |
155 | DividendsAmount: undertakerDividendsAmount, | 155 | DividendsAmount: undertakerDividendsAmount, |
156 | }) | 156 | }) |
@@ -308,6 +308,9 @@ func (repository *DividendsEstimateRepository) Find(queryOptions map[string]inte | @@ -308,6 +308,9 @@ func (repository *DividendsEstimateRepository) Find(queryOptions map[string]inte | ||
308 | if v, ok := queryOptions["cooperationContractNumbers"]; ok && len(v.([]string)) > 0 { | 308 | if v, ok := queryOptions["cooperationContractNumbers"]; ok && len(v.([]string)) > 0 { |
309 | query.Where("cooperation_contract_number in (?)", pg.In(v)) | 309 | query.Where("cooperation_contract_number in (?)", pg.In(v)) |
310 | } | 310 | } |
311 | + if cooperationContractNumber, ok := queryOptions["cooperationContractNumber"]; ok && cooperationContractNumber != "" { | ||
312 | + query.Where("cooperation_contract_number = ?", cooperationContractNumber) | ||
313 | + } | ||
311 | if dividendsUserId, ok := queryOptions["dividendsUserId"]; ok && dividendsUserId.(int64) != 0 { | 314 | if dividendsUserId, ok := queryOptions["dividendsUserId"]; ok && dividendsUserId.(int64) != 0 { |
312 | query.Where(`dividends_user @> '{"uid":"?"}'`, dividendsUserId) | 315 | query.Where(`dividends_user @> '{"uid":"?"}'`, dividendsUserId) |
313 | } | 316 | } |
-
请 注册 或 登录 后发表评论