正在显示
43 个修改的文件
包含
920 行增加
和
478 行删除
@@ -11,6 +11,11 @@ | @@ -11,6 +11,11 @@ | ||
11 | - [APP端原型地址](https://9cnuol.axshare.com/) | 11 | - [APP端原型地址](https://9cnuol.axshare.com/) |
12 | - [WEB端原型地址](https://eq4yc2.axshare.com/) | 12 | - [WEB端原型地址](https://eq4yc2.axshare.com/) |
13 | 13 | ||
14 | +## 开发环境服务地址 | ||
15 | +- [后端地址](http://allied-creation-cooperation-dev.fjmaimaimai.com/) | ||
16 | +- [前端地址](http://allied-creation-standard-dev.fjmaimaimai.com/) | ||
17 | +- [H5地址(app)](http://allied-creation-h5-dev.fjmaimaimai.com) | ||
18 | + | ||
14 | ## 项目规范 | 19 | ## 项目规范 |
15 | - 领域描述语言文档位置:document/allied-creation-cooperation/ | 20 | - 领域描述语言文档位置:document/allied-creation-cooperation/ |
16 | - GIT流程:里程碑->问题->功能分支->代码审查->合并分支 | 21 | - GIT流程:里程碑->问题->功能分支->代码审查->合并分支 |
@@ -62,6 +62,8 @@ spec: | @@ -62,6 +62,8 @@ spec: | ||
62 | value: "1" | 62 | value: "1" |
63 | - name: ERROR_BASE_CODE_MULTIPLE | 63 | - name: ERROR_BASE_CODE_MULTIPLE |
64 | value: "1000" | 64 | value: "1000" |
65 | + - name: ENABLE_HTTPS | ||
66 | + value: "true" | ||
65 | - name: ENABLE_KAFKA_LOG | 67 | - name: ENABLE_KAFKA_LOG |
66 | value: "false" | 68 | value: "false" |
67 | - name: USER_MODULE_HOST | 69 | - name: USER_MODULE_HOST |
@@ -62,6 +62,8 @@ spec: | @@ -62,6 +62,8 @@ spec: | ||
62 | value: "beego" | 62 | value: "beego" |
63 | - name: LOG_TYPE | 63 | - name: LOG_TYPE |
64 | value: "file" | 64 | value: "file" |
65 | + - name: ENABLE_HTTPS | ||
66 | + value: "true" | ||
65 | - name: ERROR_BASE_CODE | 67 | - name: ERROR_BASE_CODE |
66 | value: "1" | 68 | value: "1" |
67 | - name: ERROR_BASE_CODE_MULTIPLE | 69 | - name: ERROR_BASE_CODE_MULTIPLE |
@@ -66,6 +66,8 @@ spec: | @@ -66,6 +66,8 @@ spec: | ||
66 | value: "1" | 66 | value: "1" |
67 | - name: ERROR_BASE_CODE_MULTIPLE | 67 | - name: ERROR_BASE_CODE_MULTIPLE |
68 | value: "1000" | 68 | value: "1000" |
69 | + - name: ENABLE_HTTPS | ||
70 | + value: "true" | ||
69 | - name: ENABLE_KAFKA_LOG | 71 | - name: ENABLE_KAFKA_LOG |
70 | value: "false" | 72 | value: "false" |
71 | - name: USER_MODULE_HOST | 73 | - name: USER_MODULE_HOST |
@@ -24,6 +24,10 @@ type OneClickApprovalCooperationApplicationCommand struct { | @@ -24,6 +24,10 @@ type OneClickApprovalCooperationApplicationCommand struct { | ||
24 | Action int32 `cname:"审核动作" json:"action" valid:"Required"` | 24 | Action int32 `cname:"审核动作" json:"action" valid:"Required"` |
25 | // 审核状态 | 25 | // 审核状态 |
26 | CooperationApplicationStatus int32 `cname:"共创申请审核状态" json:"cooperationApplicationStatus"` | 26 | CooperationApplicationStatus int32 `cname:"共创申请审核状态" json:"cooperationApplicationStatus"` |
27 | + // 查询限制 | ||
28 | + OffsetLimit bool `cname:"查询限制" json:"offsetLimit"` | ||
29 | + // 是否取消标志 | ||
30 | + IsCanceled int32 `cname:"是否删除" json:"isCanceled"` | ||
27 | } | 31 | } |
28 | 32 | ||
29 | func (oneClickApprovalCooperationApplicationCommand *OneClickApprovalCooperationApplicationCommand) Valid(validation *validation.Validation) { | 33 | func (oneClickApprovalCooperationApplicationCommand *OneClickApprovalCooperationApplicationCommand) Valid(validation *validation.Validation) { |
@@ -55,20 +55,20 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop | @@ -55,20 +55,20 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop | ||
55 | } | 55 | } |
56 | 56 | ||
57 | // 公司REST服务初始化 | 57 | // 公司REST服务初始化 |
58 | - var companyService service.CompanyService | ||
59 | - if value, err := factory.CreateCompanyService(map[string]interface{}{}); err != nil { | ||
60 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
61 | - } else { | ||
62 | - companyService = value | ||
63 | - } | 58 | + //var companyService service.CompanyService |
59 | + //if value, err := factory.CreateCompanyService(map[string]interface{}{}); err != nil { | ||
60 | + // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
61 | + //} else { | ||
62 | + // companyService = value | ||
63 | + //} | ||
64 | 64 | ||
65 | // 组织机构REST服务初始化 | 65 | // 组织机构REST服务初始化 |
66 | - var organizationService service.OrgService | ||
67 | - if value, err := factory.CreateOrganizationService(map[string]interface{}{}); err != nil { | ||
68 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
69 | - } else { | ||
70 | - organizationService = value | ||
71 | - } | 66 | + //var organizationService service.OrgService |
67 | + //if value, err := factory.CreateOrganizationService(map[string]interface{}{}); err != nil { | ||
68 | + // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
69 | + //} else { | ||
70 | + // organizationService = value | ||
71 | + //} | ||
72 | 72 | ||
73 | // 共创申请仓储初始化 | 73 | // 共创申请仓储初始化 |
74 | var cooperationApplicationRepository domain.CooperationApplicationRepository | 74 | var cooperationApplicationRepository domain.CooperationApplicationRepository |
@@ -162,20 +162,20 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop | @@ -162,20 +162,20 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop | ||
162 | } | 162 | } |
163 | 163 | ||
164 | // 获取公司信息 | 164 | // 获取公司信息 |
165 | - var company *domain.Company | ||
166 | - if data, err := companyService.CompanyFrom(applyForCooperationCommand.CompanyId); err != nil { | ||
167 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取公司信息失败") | ||
168 | - } else { | ||
169 | - company = data | ||
170 | - } | 165 | + //var company *domain.Company |
166 | + //if data, err := companyService.CompanyFrom(applyForCooperationCommand.CompanyId); err != nil { | ||
167 | + // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取公司信息失败") | ||
168 | + //} else { | ||
169 | + // company = data | ||
170 | + //} | ||
171 | 171 | ||
172 | // 获取组织机构信息 | 172 | // 获取组织机构信息 |
173 | - var organization *domain.Org | ||
174 | - if data, err := organizationService.OrgFrom(applyForCooperationCommand.CompanyId, applyForCooperationCommand.OrgId); err != nil { | ||
175 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取组织机构数据失败") | ||
176 | - } else { | ||
177 | - organization = data | ||
178 | - } | 173 | + //var organization *domain.Org |
174 | + //if data, err := organizationService.OrgFrom(applyForCooperationCommand.CompanyId, applyForCooperationCommand.OrgId); err != nil { | ||
175 | + // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取组织机构数据失败") | ||
176 | + //} else { | ||
177 | + // organization = data | ||
178 | + //} | ||
179 | 179 | ||
180 | // 校验:同一个用户,不能多次申请同一个项目 | 180 | // 校验:同一个用户,不能多次申请同一个项目 |
181 | applicationExist, _ := cooperationApplicationDao.CheckApplicationExist(map[string]interface{}{ | 181 | applicationExist, _ := cooperationApplicationDao.CheckApplicationExist(map[string]interface{}{ |
@@ -211,9 +211,9 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop | @@ -211,9 +211,9 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop | ||
211 | CooperationApplicationVerifyTime: time.Time{}, | 211 | CooperationApplicationVerifyTime: time.Time{}, |
212 | CooperationApplyTime: time.Now(), | 212 | CooperationApplyTime: time.Now(), |
213 | CooperationProject: cooperationProject, | 213 | CooperationProject: cooperationProject, |
214 | - Org: organization, | 214 | + Org: cooperationProject.Org, |
215 | IsCanceled: 1, | 215 | IsCanceled: 1, |
216 | - Company: company, | 216 | + Company: cooperationProject.Company, |
217 | CreatedAt: time.Now(), | 217 | CreatedAt: time.Now(), |
218 | DeletedAt: time.Time{}, | 218 | DeletedAt: time.Time{}, |
219 | UpdatedAt: time.Time{}, | 219 | UpdatedAt: time.Time{}, |
@@ -371,6 +371,7 @@ func (cooperationApplicationService *CooperationApplicationService) BatchApprova | @@ -371,6 +371,7 @@ func (cooperationApplicationService *CooperationApplicationService) BatchApprova | ||
371 | // 获取共创申请 | 371 | // 获取共创申请 |
372 | if count, cooperationApplications, err := cooperationApplicationRepository.Find(map[string]interface{}{ | 372 | if count, cooperationApplications, err := cooperationApplicationRepository.Find(map[string]interface{}{ |
373 | "cooperationApplicationIds": cooperationApplicationIds, | 373 | "cooperationApplicationIds": cooperationApplicationIds, |
374 | + "offsetLimit": false, | ||
374 | }); err != nil { | 375 | }); err != nil { |
375 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 376 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
376 | } else { | 377 | } else { |
@@ -444,13 +445,18 @@ func (cooperationApplicationService *CooperationApplicationService) OneClickAppr | @@ -444,13 +445,18 @@ func (cooperationApplicationService *CooperationApplicationService) OneClickAppr | ||
444 | // 获取审核人 | 445 | // 获取审核人 |
445 | var verifier *domain.User | 446 | var verifier *domain.User |
446 | if data, err := userService.UserFrom(oneClickApprovalCooperationApplicationCommand.CompanyId, oneClickApprovalCooperationApplicationCommand.OrgId, oneClickApprovalCooperationApplicationCommand.UserId); err != nil { | 447 | if data, err := userService.UserFrom(oneClickApprovalCooperationApplicationCommand.CompanyId, oneClickApprovalCooperationApplicationCommand.OrgId, oneClickApprovalCooperationApplicationCommand.UserId); err != nil { |
447 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取申请人失败") | 448 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取审核人失败") |
448 | } else { | 449 | } else { |
449 | verifier = data | 450 | verifier = data |
450 | } | 451 | } |
451 | 452 | ||
452 | // 查询共创申请 | 453 | // 查询共创申请 |
453 | oneClickApprovalCooperationApplicationCommand.CooperationApplicationStatus = 1 // 待审核 | 454 | oneClickApprovalCooperationApplicationCommand.CooperationApplicationStatus = 1 // 待审核 |
455 | + oneClickApprovalCooperationApplicationCommand.OffsetLimit = false | ||
456 | + oneClickApprovalCooperationApplicationCommand.IsCanceled = int32(1) | ||
457 | + oneClickApprovalCooperationApplicationCommand.UserBaseId = 0 | ||
458 | + oneClickApprovalCooperationApplicationCommand.UserId = 0 | ||
459 | + | ||
454 | if count, cooperationApplications, err := cooperationApplicationRepository.Find(tool_funs.SimpleStructToMap(oneClickApprovalCooperationApplicationCommand)); err != nil { | 460 | if count, cooperationApplications, err := cooperationApplicationRepository.Find(tool_funs.SimpleStructToMap(oneClickApprovalCooperationApplicationCommand)); err != nil { |
455 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 461 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
456 | } else { | 462 | } else { |
@@ -28,7 +28,7 @@ type UpdateCooperationContractCommand struct { | @@ -28,7 +28,7 @@ type UpdateCooperationContractCommand struct { | ||
28 | // 金额激励规则列表 | 28 | // 金额激励规则列表 |
29 | MoneyIncentivesRules []*CreateMoneyIncentivesRulesCommand `cname:"金额激励规则列表" json:"moneyIncentivesRules,omitempty"` | 29 | MoneyIncentivesRules []*CreateMoneyIncentivesRulesCommand `cname:"金额激励规则列表" json:"moneyIncentivesRules,omitempty"` |
30 | // 承接方列表 | 30 | // 承接方列表 |
31 | - Undertakers []*CreateUndertakersCommand `cname:"承接方列表" json:"undertakers" valid:"Required"` | 31 | + Undertakers []*CreateUndertakersCommand `cname:"承接方列表" json:"undertakers"` |
32 | // 相关人UID列表 | 32 | // 相关人UID列表 |
33 | RelevantIds []string `cname:"相关人列表" json:"relevantIds,omitempty"` | 33 | RelevantIds []string `cname:"相关人列表" json:"relevantIds,omitempty"` |
34 | // 公司ID,通过集成REST上下文获取 | 34 | // 公司ID,通过集成REST上下文获取 |
@@ -561,6 +561,7 @@ func (cooperationContractService *CooperationContractService) BatchRemoveCoopera | @@ -561,6 +561,7 @@ func (cooperationContractService *CooperationContractService) BatchRemoveCoopera | ||
561 | cooperationContractIds, _ := utils.SliceAtoi(batchRemoveCooperationContractCommand.CooperationContractIds) | 561 | cooperationContractIds, _ := utils.SliceAtoi(batchRemoveCooperationContractCommand.CooperationContractIds) |
562 | if count, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{ | 562 | if count, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{ |
563 | "cooperationContractIds": cooperationContractIds, | 563 | "cooperationContractIds": cooperationContractIds, |
564 | + "offsetLimit": false, | ||
564 | }); err != nil { | 565 | }); err != nil { |
565 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 566 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
566 | } else { | 567 | } else { |
@@ -737,6 +738,7 @@ func (cooperationContractService *CooperationContractService) BatchOperateCooper | @@ -737,6 +738,7 @@ func (cooperationContractService *CooperationContractService) BatchOperateCooper | ||
737 | } | 738 | } |
738 | if count, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{ | 739 | if count, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{ |
739 | "cooperationContractIds": cooperationContractIds, | 740 | "cooperationContractIds": cooperationContractIds, |
741 | + "offsetLimit": false, | ||
740 | }); err != nil { | 742 | }); err != nil { |
741 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 743 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
742 | } else { | 744 | } else { |
@@ -1203,7 +1205,6 @@ func (cooperationContractService *CooperationContractService) UpdateCooperationC | @@ -1203,7 +1205,6 @@ func (cooperationContractService *CooperationContractService) UpdateCooperationC | ||
1203 | // 保存共创合约变更记录 | 1205 | // 保存共创合约变更记录 |
1204 | var incentivesRuleChange string | 1206 | var incentivesRuleChange string |
1205 | var incentivesRuleChangeDetail string | 1207 | var incentivesRuleChangeDetail string |
1206 | - var undertakerChange string | ||
1207 | 1208 | ||
1208 | // 规则变更,原【(激励阶段:激励百分点,阶段有效期,推荐人抽点,关联业务员抽点),(激励阶段:激励百分点,阶段有效期,推荐人抽点,关联业务员抽点)】-->更新后【(激励阶段:激励百分点,阶段有效期,推荐人抽点,关联业务员抽点)】 | 1209 | // 规则变更,原【(激励阶段:激励百分点,阶段有效期,推荐人抽点,关联业务员抽点),(激励阶段:激励百分点,阶段有效期,推荐人抽点,关联业务员抽点)】-->更新后【(激励阶段:激励百分点,阶段有效期,推荐人抽点,关联业务员抽点)】 |
1209 | if cooperationContractFound.IncentivesType != cooperationContract.IncentivesType { // 1.激励规则类型变更 | 1210 | if cooperationContractFound.IncentivesType != cooperationContract.IncentivesType { // 1.激励规则类型变更 |
@@ -1380,6 +1381,7 @@ func (cooperationContractService *CooperationContractService) UpdateCooperationC | @@ -1380,6 +1381,7 @@ func (cooperationContractService *CooperationContractService) UpdateCooperationC | ||
1380 | } | 1381 | } |
1381 | 1382 | ||
1382 | /*********************************************** 承接人变更 *****************************************************/ | 1383 | /*********************************************** 承接人变更 *****************************************************/ |
1384 | + var undertakerChange string | ||
1383 | // 计算原合约哈希值 | 1385 | // 计算原合约哈希值 |
1384 | //cooperationContractFoundByte := *(*[]byte)(unsafe.Pointer(&cooperationContractFound.Undertakers)) | 1386 | //cooperationContractFoundByte := *(*[]byte)(unsafe.Pointer(&cooperationContractFound.Undertakers)) |
1385 | var cooperationContractFoundBytes []byte | 1387 | var cooperationContractFoundBytes []byte |
@@ -1439,7 +1441,7 @@ func (cooperationContractService *CooperationContractService) UpdateCooperationC | @@ -1439,7 +1441,7 @@ func (cooperationContractService *CooperationContractService) UpdateCooperationC | ||
1439 | UserPhone: "", | 1441 | UserPhone: "", |
1440 | } | 1442 | } |
1441 | } | 1443 | } |
1442 | - undertakersOriginal = undertakersOriginal + strconv.FormatInt(int64(i+1), 10) + "(" + undertaker.UserName + "," + undertaker.Referrer.UserName + "," + undertaker.Salesman.UserName + ")" | 1444 | + undertakersOriginal = undertakersOriginal + strconv.FormatInt(int64(i+1), 10) + "(" + undertaker.UserInfo.UserName + "," + undertaker.Referrer.UserName + "," + undertaker.Salesman.UserName + ")" |
1443 | } | 1445 | } |
1444 | undertakerChangeTmp1 := "【" + undertakersOriginal + "】" | 1446 | undertakerChangeTmp1 := "【" + undertakersOriginal + "】" |
1445 | 1447 | ||
@@ -1476,7 +1478,7 @@ func (cooperationContractService *CooperationContractService) UpdateCooperationC | @@ -1476,7 +1478,7 @@ func (cooperationContractService *CooperationContractService) UpdateCooperationC | ||
1476 | UserPhone: "", | 1478 | UserPhone: "", |
1477 | } | 1479 | } |
1478 | } | 1480 | } |
1479 | - undertakersChanged = undertakersChanged + strconv.FormatInt(int64(i+1), 10) + "(" + undertaker.UserName + "," + undertaker.Referrer.UserName + "," + undertaker.Salesman.UserName + ")" | 1481 | + undertakersChanged = undertakersChanged + strconv.FormatInt(int64(i+1), 10) + "(" + undertaker.UserInfo.UserName + "," + undertaker.Referrer.UserName + "," + undertaker.Salesman.UserName + ")" |
1480 | } | 1482 | } |
1481 | undertakerChangeTemp2 := "【" + undertakersChanged + "】" | 1483 | undertakerChangeTemp2 := "【" + undertakersChanged + "】" |
1482 | // 拼接承接人变更记录 | 1484 | // 拼接承接人变更记录 |
@@ -328,6 +328,7 @@ func (cooperationModeService *CooperationModeService) BatchRemoveCooperationMode | @@ -328,6 +328,7 @@ func (cooperationModeService *CooperationModeService) BatchRemoveCooperationMode | ||
328 | // 获取共创模式 | 328 | // 获取共创模式 |
329 | if count, cooperationModes, err := cooperationModeRepository.Find(map[string]interface{}{ | 329 | if count, cooperationModes, err := cooperationModeRepository.Find(map[string]interface{}{ |
330 | "cooperationModeIds": cooperationModeIds, | 330 | "cooperationModeIds": cooperationModeIds, |
331 | + "offsetLimit": false, | ||
331 | }); err != nil { | 332 | }); err != nil { |
332 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 333 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
333 | } else { | 334 | } else { |
@@ -14,13 +14,13 @@ type GetCooperationProjectQuery struct { | @@ -14,13 +14,13 @@ type GetCooperationProjectQuery struct { | ||
14 | // 共创项目编号 | 14 | // 共创项目编号 |
15 | CooperationProjectNumber string `cname:"共创项目编号" json:"cooperationProjectNumber"` | 15 | CooperationProjectNumber string `cname:"共创项目编号" json:"cooperationProjectNumber"` |
16 | // 公司ID,通过集成REST上下文获取 | 16 | // 公司ID,通过集成REST上下文获取 |
17 | - CompanyId int64 `cname:"公司ID" json:"companyId" valid:"Required"` | 17 | + CompanyId int64 `cname:"公司ID" json:"companyId"` |
18 | // 组织机构ID | 18 | // 组织机构ID |
19 | - OrgId int64 `cname:"组织机构ID" json:"orgId" valid:"Required"` | 19 | + OrgId int64 `cname:"组织机构ID" json:"orgId"` |
20 | // 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员 | 20 | // 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员 |
21 | - UserId int64 `cname:"用户ID" json:"userId" valid:"Required"` | 21 | + UserId int64 `cname:"用户ID" json:"userId"` |
22 | // 用户基础数据id | 22 | // 用户基础数据id |
23 | - UserBaseId int64 `cname:"用户基础数据ID" json:"userBaseId" valid:"Required"` | 23 | + UserBaseId int64 `cname:"用户基础数据ID" json:"userBaseId"` |
24 | } | 24 | } |
25 | 25 | ||
26 | func (getCooperationProjectQuery *GetCooperationProjectQuery) Valid(validation *validation.Validation) { | 26 | func (getCooperationProjectQuery *GetCooperationProjectQuery) Valid(validation *validation.Validation) { |
@@ -52,6 +52,8 @@ type SearchCooperationProjectQuery struct { | @@ -52,6 +52,8 @@ type SearchCooperationProjectQuery struct { | ||
52 | UserId int64 `cname:"用户ID" json:"userId"` | 52 | UserId int64 `cname:"用户ID" json:"userId"` |
53 | // 用户基础数据id | 53 | // 用户基础数据id |
54 | UserBaseId int64 `cname:"用户基础数据ID" json:"userBaseId"` | 54 | UserBaseId int64 `cname:"用户基础数据ID" json:"userBaseId"` |
55 | + // 额外的查询条件 0:不需要额外查询 1:额外查询 | ||
56 | + SearchCooperationProjectExtQueriesFlag int `cname:"额外的查询条件标识" json:"searchCooperationProjectExtQueriesFlag"` | ||
55 | // 额外的查询条件 | 57 | // 额外的查询条件 |
56 | SearchCooperationProjectExtQueries []*SearchCooperationProjectExtQuery `cname:"额外的查询条件" json:"searchCooperationProjectExtQueries"` | 58 | SearchCooperationProjectExtQueries []*SearchCooperationProjectExtQuery `cname:"额外的查询条件" json:"searchCooperationProjectExtQueries"` |
57 | } | 59 | } |
@@ -281,6 +281,16 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | @@ -281,6 +281,16 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | ||
281 | cooperationApplicationRepository = value | 281 | cooperationApplicationRepository = value |
282 | } | 282 | } |
283 | 283 | ||
284 | + // 共创合约仓储初始化 | ||
285 | + var cooperationContractRepository domain.CooperationContractRepository | ||
286 | + if value, err := factory.CreateCooperationContractRepository(map[string]interface{}{ | ||
287 | + "transactionContext": transactionContext, | ||
288 | + }); err != nil { | ||
289 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
290 | + } else { | ||
291 | + cooperationContractRepository = value | ||
292 | + } | ||
293 | + | ||
284 | var getCooperationProjectQuerySpecific *query.GetCooperationProjectQuery | 294 | var getCooperationProjectQuerySpecific *query.GetCooperationProjectQuery |
285 | if getCooperationProjectQuery.CooperationProjectId != 0 { // 根据ID查询 | 295 | if getCooperationProjectQuery.CooperationProjectId != 0 { // 根据ID查询 |
286 | getCooperationProjectQuerySpecific = &query.GetCooperationProjectQuery{ | 296 | getCooperationProjectQuerySpecific = &query.GetCooperationProjectQuery{ |
@@ -349,6 +359,47 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | @@ -349,6 +359,47 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | ||
349 | undertakerTypesUncheckedAvailable = append(undertakerTypesUncheckedAvailable, 3) | 359 | undertakerTypesUncheckedAvailable = append(undertakerTypesUncheckedAvailable, 3) |
350 | } | 360 | } |
351 | 361 | ||
362 | + // 判断项目关联的合约承接人类型 | ||
363 | + undertakers := make([]*domain.Undertaker, 0) | ||
364 | + if countContracts, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{ | ||
365 | + "cooperationProjectNumber": cooperationProject.CooperationProjectNumber, | ||
366 | + "companyId": cooperationProject.Company.CompanyId, | ||
367 | + "orgId": cooperationProject.Org.OrgId, | ||
368 | + "offsetLimit": false, | ||
369 | + }); err != nil { | ||
370 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
371 | + } else { | ||
372 | + if countContracts > 0 { | ||
373 | + for _, cooperationContract := range cooperationContracts { | ||
374 | + undertakers = append(undertakers, cooperationContract.Undertakers...) | ||
375 | + } | ||
376 | + } | ||
377 | + } | ||
378 | + | ||
379 | + var undertakerUserTypes []int32 | ||
380 | + for _, undertaker := range undertakers { | ||
381 | + undertakerUserTypes = append(undertakerUserTypes, undertaker.UserType) | ||
382 | + } | ||
383 | + | ||
384 | + undertakerUserTypes = utils.RemoveDuplicationInt32(undertakerUserTypes) | ||
385 | + | ||
386 | + for i, userType := range undertakerUserTypes { | ||
387 | + if userType == 1025 { | ||
388 | + undertakerUserTypes[i] = 2 | ||
389 | + } | ||
390 | + } | ||
391 | + | ||
392 | + if utils.IsContain(undertakerUserTypes, int32(1)) && utils.IsContain(undertakerUserTypes, int32(2)) { | ||
393 | + undertakerUserTypes = append(undertakerUserTypes, int32(3)) | ||
394 | + } | ||
395 | + | ||
396 | + // 取项目承接人和合约承接人的交集 | ||
397 | + newUndertakerTypesUncheckedAvailable := utils.Intersect32(undertakerTypesUncheckedAvailable, undertakerUserTypes) | ||
398 | + | ||
399 | + log.Logger.Info("承接人类型", map[string]interface{}{ | ||
400 | + "undertakerUserTypes": undertakerUserTypes, | ||
401 | + }) | ||
402 | + | ||
352 | // 返回所有员工类型的申请通过人 | 403 | // 返回所有员工类型的申请通过人 |
353 | applicants := make([]*domain.User, 0) | 404 | applicants := make([]*domain.User, 0) |
354 | 405 | ||
@@ -357,6 +408,7 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | @@ -357,6 +408,7 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | ||
357 | "cooperationProjectNumberExact": cooperationProject.CooperationProjectNumber, | 408 | "cooperationProjectNumberExact": cooperationProject.CooperationProjectNumber, |
358 | "companyId": cooperationProject.Company.CompanyId, | 409 | "companyId": cooperationProject.Company.CompanyId, |
359 | "orgId": cooperationProject.Org.OrgId, | 410 | "orgId": cooperationProject.Org.OrgId, |
411 | + "offsetLimit": false, | ||
360 | }); err != nil { | 412 | }); err != nil { |
361 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 413 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
362 | } else { | 414 | } else { |
@@ -375,7 +427,7 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | @@ -375,7 +427,7 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec | ||
375 | } | 427 | } |
376 | 428 | ||
377 | cooperationProjectDto := &dto.CooperationProjectsDto{} | 429 | cooperationProjectDto := &dto.CooperationProjectsDto{} |
378 | - if err := cooperationProjectDto.LoadDto(cooperationProject, nil, undertakerTypesUncheckedAvailable, applicants); err != nil { | 430 | + if err := cooperationProjectDto.LoadDto(cooperationProject, nil, newUndertakerTypesUncheckedAvailable, applicants); err != nil { |
379 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 431 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
380 | } | 432 | } |
381 | if err := transactionContext.CommitTransaction(); err != nil { | 433 | if err := transactionContext.CommitTransaction(); err != nil { |
@@ -639,6 +691,7 @@ func (cooperationProjectService *CooperationProjectService) UpdateCooperationPro | @@ -639,6 +691,7 @@ func (cooperationProjectService *CooperationProjectService) UpdateCooperationPro | ||
639 | } | 691 | } |
640 | } | 692 | } |
641 | } | 693 | } |
694 | + | ||
642 | var undertakerTypes []int32 | 695 | var undertakerTypes []int32 |
643 | var k1, k2 int32 | 696 | var k1, k2 int32 |
644 | if len(applicantTypes) > 0 { | 697 | if len(applicantTypes) > 0 { |
@@ -654,6 +707,7 @@ func (cooperationProjectService *CooperationProjectService) UpdateCooperationPro | @@ -654,6 +707,7 @@ func (cooperationProjectService *CooperationProjectService) UpdateCooperationPro | ||
654 | if k1 != 0 && k2 != 0 { | 707 | if k1 != 0 && k2 != 0 { |
655 | undertakerTypes = append(undertakerTypes, 3) | 708 | undertakerTypes = append(undertakerTypes, 3) |
656 | } | 709 | } |
710 | + | ||
657 | // 校验可以修改的承接人(申请人)类型 | 711 | // 校验可以修改的承接人(申请人)类型 |
658 | for _, t := range undertakerTypes { | 712 | for _, t := range undertakerTypes { |
659 | if !utils.IsContain(updateCooperationProjectCommand.CooperationProjectUndertakerTypes, t) { | 713 | if !utils.IsContain(updateCooperationProjectCommand.CooperationProjectUndertakerTypes, t) { |
@@ -766,6 +820,7 @@ func (cooperationProjectService *CooperationProjectService) BatchEndCooperationP | @@ -766,6 +820,7 @@ func (cooperationProjectService *CooperationProjectService) BatchEndCooperationP | ||
766 | } | 820 | } |
767 | if count, cooperationProjects, err := cooperationProjectRepository.Find(map[string]interface{}{ | 821 | if count, cooperationProjects, err := cooperationProjectRepository.Find(map[string]interface{}{ |
768 | "cooperationProjectIds": cooperationProjectIds, | 822 | "cooperationProjectIds": cooperationProjectIds, |
823 | + "offsetLimit": false, | ||
769 | }); err != nil { | 824 | }); err != nil { |
770 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 825 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
771 | } else { | 826 | } else { |
@@ -28,6 +28,8 @@ type SearchDividendsEstimateQuery struct { | @@ -28,6 +28,8 @@ type SearchDividendsEstimateQuery struct { | ||
28 | PageNumber int64 `cname:"页码" json:"pageNumber,omitempty"` | 28 | PageNumber int64 `cname:"页码" json:"pageNumber,omitempty"` |
29 | // 页面大小 | 29 | // 页面大小 |
30 | PageSize int64 `cname:"页面大小" json:"pageSize,omitempty"` | 30 | PageSize int64 `cname:"页面大小" json:"pageSize,omitempty"` |
31 | + // 是否取消(删除) | ||
32 | + IsCanceled bool `cname:"是否取消" json:"isCanceled,omitempty"` | ||
31 | } | 33 | } |
32 | 34 | ||
33 | func (searchDividendsEstimateQuery *SearchDividendsEstimateQuery) Valid(validation *validation.Validation) { | 35 | func (searchDividendsEstimateQuery *SearchDividendsEstimateQuery) Valid(validation *validation.Validation) { |
@@ -343,6 +343,7 @@ func (dividendsEstimateService *DividendsEstimateService) BatchCancelDividendsEs | @@ -343,6 +343,7 @@ func (dividendsEstimateService *DividendsEstimateService) BatchCancelDividendsEs | ||
343 | // 获取分红预算 | 343 | // 获取分红预算 |
344 | if count, dividendsEstimates, err := dividendsEstimateRepository.Find(map[string]interface{}{ | 344 | if count, dividendsEstimates, err := dividendsEstimateRepository.Find(map[string]interface{}{ |
345 | "dividendsEstimateIds": dividendsEstimateIds, | 345 | "dividendsEstimateIds": dividendsEstimateIds, |
346 | + "offsetLimit": false, | ||
346 | }); err != nil { | 347 | }); err != nil { |
347 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 348 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
348 | } else { | 349 | } else { |
@@ -520,6 +521,7 @@ func (dividendsEstimateService *DividendsEstimateService) CreateDividendsEstimat | @@ -520,6 +521,7 @@ func (dividendsEstimateService *DividendsEstimateService) CreateDividendsEstimat | ||
520 | 521 | ||
521 | // ConfirmDividendsIncentivesEstimate 确定业绩激励分红预算 | 522 | // ConfirmDividendsIncentivesEstimate 确定业绩激励分红预算 |
522 | func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncentivesEstimate(confirmDividendsIncentivesEstimateCommand *command.ConfirmDividendsIncentivesEstimateCommand) (interface{}, error) { | 523 | func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncentivesEstimate(confirmDividendsIncentivesEstimateCommand *command.ConfirmDividendsIncentivesEstimateCommand) (interface{}, error) { |
524 | + start := time.Now() | ||
523 | if err := confirmDividendsIncentivesEstimateCommand.ValidateCommand(); err != nil { | 525 | if err := confirmDividendsIncentivesEstimateCommand.ValidateCommand(); err != nil { |
524 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | 526 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) |
525 | } | 527 | } |
@@ -549,12 +551,14 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -549,12 +551,14 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
549 | } | 551 | } |
550 | 552 | ||
551 | // 获取公司信息 | 553 | // 获取公司信息 |
554 | + startGetCompany := time.Now() | ||
552 | var company *domain.Company | 555 | var company *domain.Company |
553 | if data, err := companyService.CompanyFrom(confirmDividendsIncentivesEstimateCommand.CompanyId); err != nil { | 556 | if data, err := companyService.CompanyFrom(confirmDividendsIncentivesEstimateCommand.CompanyId); err != nil { |
554 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 557 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
555 | } else { | 558 | } else { |
556 | company = data | 559 | company = data |
557 | } | 560 | } |
561 | + fmt.Println("获取公司信息耗时:", time.Since(startGetCompany)) | ||
558 | 562 | ||
559 | // 组织机构REST服务初始化 | 563 | // 组织机构REST服务初始化 |
560 | var organizationService service.OrgService | 564 | var organizationService service.OrgService |
@@ -565,12 +569,14 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -565,12 +569,14 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
565 | } | 569 | } |
566 | 570 | ||
567 | // 获取组织机构信息 | 571 | // 获取组织机构信息 |
572 | + startGetOrg := time.Now() | ||
568 | var organization *domain.Org | 573 | var organization *domain.Org |
569 | if data, err := organizationService.OrgFrom(confirmDividendsIncentivesEstimateCommand.CompanyId, confirmDividendsIncentivesEstimateCommand.OrgId); err != nil { | 574 | if data, err := organizationService.OrgFrom(confirmDividendsIncentivesEstimateCommand.CompanyId, confirmDividendsIncentivesEstimateCommand.OrgId); err != nil { |
570 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 575 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
571 | } else { | 576 | } else { |
572 | organization = data | 577 | organization = data |
573 | } | 578 | } |
579 | + fmt.Println("获取组织机构数据耗时:", time.Since(startGetOrg)) | ||
574 | 580 | ||
575 | // 用户REST服务初始化 | 581 | // 用户REST服务初始化 |
576 | var userService service.UserService | 582 | var userService service.UserService |
@@ -581,12 +587,14 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -581,12 +587,14 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
581 | } | 587 | } |
582 | 588 | ||
583 | // 获取操作人 | 589 | // 获取操作人 |
590 | + startGetOperator := time.Now() | ||
584 | var operator *domain.User | 591 | var operator *domain.User |
585 | if data, err := userService.OperatorFrom(confirmDividendsIncentivesEstimateCommand.CompanyId, confirmDividendsIncentivesEstimateCommand.OrgId, confirmDividendsIncentivesEstimateCommand.UserId); err != nil { | 592 | if data, err := userService.OperatorFrom(confirmDividendsIncentivesEstimateCommand.CompanyId, confirmDividendsIncentivesEstimateCommand.OrgId, confirmDividendsIncentivesEstimateCommand.UserId); err != nil { |
586 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 593 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
587 | } else { | 594 | } else { |
588 | operator = data | 595 | operator = data |
589 | } | 596 | } |
597 | + fmt.Println("获取操作人耗时:", time.Since(startGetOperator)) | ||
590 | 598 | ||
591 | // 订单产品仓储初始化 | 599 | // 订单产品仓储初始化 |
592 | var orderGoodRepository domain.OrderGoodRepository | 600 | var orderGoodRepository domain.OrderGoodRepository |
@@ -638,6 +646,16 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -638,6 +646,16 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
638 | dividendsReturnedOrderRepository = value | 646 | dividendsReturnedOrderRepository = value |
639 | } | 647 | } |
640 | 648 | ||
649 | + // 共创合约仓储初始化 | ||
650 | + var cooperationContractRepository domain.CooperationContractRepository | ||
651 | + if value, err := factory.CreateCooperationContractRepository(map[string]interface{}{ | ||
652 | + "transactionContext": transactionContext, | ||
653 | + }); err != nil { | ||
654 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
655 | + } else { | ||
656 | + cooperationContractRepository = value | ||
657 | + } | ||
658 | + | ||
641 | // 初始化确认业绩激励分红预算领域服务 | 659 | // 初始化确认业绩激励分红预算领域服务 |
642 | var confirmDividendsIncentivesEstimateService service.ConfirmDividendsIncentivesEstimateService | 660 | var confirmDividendsIncentivesEstimateService service.ConfirmDividendsIncentivesEstimateService |
643 | if value, err := factory.CreateConfirmDividendsIncentivesEstimateService(map[string]interface{}{ | 661 | if value, err := factory.CreateConfirmDividendsIncentivesEstimateService(map[string]interface{}{ |
@@ -658,13 +676,52 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -658,13 +676,52 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
658 | estimateFailedDividendsOrders := make(map[string]string) | 676 | estimateFailedDividendsOrders := make(map[string]string) |
659 | 677 | ||
660 | // 获取订单产品 | 678 | // 获取订单产品 |
679 | + startGetOrderGoods := time.Now() | ||
661 | if _, orderGoods, err := orderGoodRepository.Find(map[string]interface{}{ | 680 | if _, orderGoods, err := orderGoodRepository.Find(map[string]interface{}{ |
662 | "orderGoodIds": orderGoodIds, | 681 | "orderGoodIds": orderGoodIds, |
682 | + "offsetLimit": false, | ||
663 | }); err != nil { | 683 | }); err != nil { |
664 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 684 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
665 | } else { | 685 | } else { |
686 | + fmt.Println("获取订单产品耗时:", time.Since(startGetOrderGoods)) | ||
687 | + | ||
666 | dividendsEstimates := make([]*domain.DividendsEstimate, 0) | 688 | dividendsEstimates := make([]*domain.DividendsEstimate, 0) |
667 | 689 | ||
690 | + var cooperationContractNumbers []string | ||
691 | + | ||
692 | + // 获取订单产品合约编号 | ||
693 | + for _, orderGood := range orderGoods { | ||
694 | + cooperationContractNumbers = append(cooperationContractNumbers, orderGood.CooperationContractNumber) | ||
695 | + } | ||
696 | + | ||
697 | + newCooperationContractNumbers := utils.RemoveDuplicationString(cooperationContractNumbers) | ||
698 | + | ||
699 | + cooperationContractsMap := make(map[string]*domain.CooperationContract, 0) | ||
700 | + | ||
701 | + // 查询共创合约 | ||
702 | + startQueryContracts := time.Now() | ||
703 | + if len(newCooperationContractNumbers) > 0 { | ||
704 | + if count, cooperationContractsFound, err := cooperationContractRepository.Find(map[string]interface{}{ | ||
705 | + "cooperationContractNumbers": newCooperationContractNumbers, | ||
706 | + "companyId": confirmDividendsIncentivesEstimateCommand.CompanyId, | ||
707 | + "orgId": confirmDividendsIncentivesEstimateCommand.OrgId, | ||
708 | + "offsetLimit": false, | ||
709 | + }); err != nil { | ||
710 | + return nil, err | ||
711 | + } else { | ||
712 | + if count > 0 { | ||
713 | + for _, cooperationContractFound := range cooperationContractsFound { | ||
714 | + cooperationContractsMap[cooperationContractFound.CooperationContractNumber] = cooperationContractFound | ||
715 | + } | ||
716 | + } | ||
717 | + } | ||
718 | + } else { | ||
719 | + return map[string]interface{}{ | ||
720 | + "report": fmt.Sprintf("已完成0单订单分红预算,生成0单分红预算,失败原因:产品未关联合约"), | ||
721 | + }, nil | ||
722 | + } | ||
723 | + fmt.Println("查询共创合约耗时:", time.Since(startQueryContracts)) | ||
724 | + | ||
668 | // 统计当前企业分红预算单数 | 725 | // 统计当前企业分红预算单数 |
669 | count, err := dividendsEstimateDao.CountDividendsEstimate(map[string]interface{}{ | 726 | count, err := dividendsEstimateDao.CountDividendsEstimate(map[string]interface{}{ |
670 | "companyId": confirmDividendsIncentivesEstimateCommand.CompanyId, | 727 | "companyId": confirmDividendsIncentivesEstimateCommand.CompanyId, |
@@ -674,131 +731,133 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -674,131 +731,133 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
674 | } | 731 | } |
675 | 732 | ||
676 | var countDividendsEstimate int64 | 733 | var countDividendsEstimate int64 |
734 | + | ||
735 | + orderGoodsToConfirm := make([]*domain.OrderGood, 0) | ||
736 | + returnedOrderGoodsToConfirm := make([]*domain.OrderGood, 0) | ||
737 | + | ||
677 | for _, orderGood := range orderGoods { | 738 | for _, orderGood := range orderGoods { |
678 | - dividendsEstimate := &domain.DividendsEstimate{} | ||
679 | - if orderGood.DividendsOrderNumber != "" { // 查询分红订单 | ||
680 | - // 临时方案 | ||
681 | - orderGoodsToConfirm := make([]*domain.OrderGood, 0) | 739 | + if orderGood.DividendsOrderNumber != "" { |
682 | orderGoodsToConfirm = append(orderGoodsToConfirm, orderGood) | 740 | orderGoodsToConfirm = append(orderGoodsToConfirm, orderGood) |
683 | - // 分红订单产品预算 | ||
684 | - if dividendsEstimateDetails, err := confirmDividendsIncentivesEstimateService.Confirm(orderGoodsToConfirm); err != nil { | ||
685 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
686 | - } else { | ||
687 | - for _, dividendsEstimateDetail := range dividendsEstimateDetails { | ||
688 | - if dividendsEstimateDetail.IsSuccessfully { | ||
689 | - // 生成分红预算单号 | ||
690 | - dividendsEstimateOrderNumber, err := dividendsEstimateDetail.GenerateSpecificDividendsEstimateNumber(int64(count), countDividendsEstimate) | ||
691 | - if err != nil { | ||
692 | - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
693 | - } | 741 | + } else if orderGood.DividendsReturnedOrderNumber != "" { |
742 | + returnedOrderGoodsToConfirm = append(returnedOrderGoodsToConfirm, orderGood) | ||
743 | + } | ||
744 | + } | ||
694 | 745 | ||
695 | - // 记录成功的订单号 | ||
696 | - estimateSuccessfullyDividendsOrders[dividendsEstimateDetail.OrderOrReturnedOrderNumber] = dividendsEstimateDetail.OrderOrReturnedOrderNumber | ||
697 | - | ||
698 | - // 统计分红预算单数目 | ||
699 | - countDividendsEstimate = countDividendsEstimate + 1 | ||
700 | - | ||
701 | - dividendsEstimate = &domain.DividendsEstimate{ | ||
702 | - DividendsEstimateId: 0, | ||
703 | - DividendsAccountStatus: domain.TO_BE_ACCOUNT, | ||
704 | - DividendsAmount: dividendsEstimateDetail.DividendsAmount, | ||
705 | - DividendsEstimateOrderNumber: dividendsEstimateOrderNumber, | ||
706 | - DividendsEstimateTime: time.Now(), | ||
707 | - DividendsParticipateType: dividendsEstimateDetail.DividendsParticipateType, | ||
708 | - DividendsType: domain.ORDER_DIVIDENDS, | ||
709 | - DividendsTypeName: "订单分红", | ||
710 | - OrderOrReturnedOrderNum: orderGood.DividendsOrderNumber, | ||
711 | - CooperationContractNumber: orderGood.CooperationContractNumber, | ||
712 | - DividendsUser: dividendsEstimateDetail.DividendsUser, | ||
713 | - DividendsPercentage: dividendsEstimateDetail.DividendsPercentage, | ||
714 | - DividendsStage: dividendsEstimateDetail.DividendsStage, | ||
715 | - Org: organization, | ||
716 | - Company: company, | ||
717 | - Operator: operator, | ||
718 | - OperateTime: time.Time{}, | ||
719 | - IsCanceled: false, | ||
720 | - CreatedAt: time.Now(), | ||
721 | - DeletedAt: time.Time{}, | ||
722 | - UpdatedAt: time.Time{}, | ||
723 | - OrderGoodId: orderGood.OrderGoodId, | ||
724 | - OrderGoodAmount: orderGood.OrderGoodAmount, | ||
725 | - PaymentStatus: int32(1), | ||
726 | - CooperationContractUndertakerId: dividendsEstimateDetail.CooperationContractUndertakerId, | ||
727 | - } | 746 | + startConfirm := time.Now() |
747 | + if len(orderGoodsToConfirm) > 0 { // 分红订单产品预算 | ||
748 | + if dividendsEstimateDetails, err := confirmDividendsIncentivesEstimateService.Confirm(orderGoodsToConfirm, confirmDividendsIncentivesEstimateCommand.CompanyId, confirmDividendsIncentivesEstimateCommand.OrgId, cooperationContractsMap); err != nil { | ||
749 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
750 | + } else { | ||
751 | + for _, dividendsEstimateDetail := range dividendsEstimateDetails { | ||
752 | + if dividendsEstimateDetail.IsSuccessfully { | ||
753 | + // 生成分红预算单号 | ||
754 | + dividendsEstimateOrderNumber, err := dividendsEstimateDetail.GenerateSpecificDividendsEstimateNumber(int64(count), countDividendsEstimate) | ||
755 | + if err != nil { | ||
756 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
757 | + } | ||
728 | 758 | ||
729 | - dividendsEstimates = append(dividendsEstimates, dividendsEstimate) | ||
730 | - } else { | ||
731 | - // 记录失败的订单号和原因 | ||
732 | - estimateFailedDividendsOrders[dividendsEstimateDetail.OrderOrReturnedOrderNumber] = dividendsEstimateDetail.Reason | 759 | + // 记录成功的订单号 |
760 | + estimateSuccessfullyDividendsOrders[dividendsEstimateDetail.OrderOrReturnedOrderNumber] = dividendsEstimateDetail.OrderOrReturnedOrderNumber | ||
761 | + | ||
762 | + // 统计分红预算单数目 | ||
763 | + countDividendsEstimate = countDividendsEstimate + 1 | ||
764 | + | ||
765 | + dividendsEstimate := &domain.DividendsEstimate{ | ||
766 | + DividendsEstimateId: 0, | ||
767 | + DividendsAccountStatus: domain.TO_BE_ACCOUNT, | ||
768 | + DividendsAmount: dividendsEstimateDetail.DividendsAmount, | ||
769 | + DividendsEstimateOrderNumber: dividendsEstimateOrderNumber, | ||
770 | + DividendsEstimateTime: time.Now(), | ||
771 | + DividendsParticipateType: dividendsEstimateDetail.DividendsParticipateType, | ||
772 | + DividendsType: domain.ORDER_DIVIDENDS, | ||
773 | + DividendsTypeName: "订单分红", | ||
774 | + OrderOrReturnedOrderNum: dividendsEstimateDetail.OrderOrReturnedOrderNumber, | ||
775 | + CooperationContractNumber: dividendsEstimateDetail.CooperationContractNumber, | ||
776 | + DividendsUser: dividendsEstimateDetail.DividendsUser, | ||
777 | + DividendsPercentage: dividendsEstimateDetail.DividendsPercentage, | ||
778 | + DividendsStage: dividendsEstimateDetail.DividendsStage, | ||
779 | + Org: organization, | ||
780 | + Company: company, | ||
781 | + Operator: operator, | ||
782 | + OperateTime: time.Time{}, | ||
783 | + IsCanceled: false, | ||
784 | + CreatedAt: time.Now(), | ||
785 | + DeletedAt: time.Time{}, | ||
786 | + UpdatedAt: time.Time{}, | ||
787 | + OrderGoodId: dividendsEstimateDetail.OrderGoodId, | ||
788 | + OrderGoodAmount: dividendsEstimateDetail.OrderGoodAmount, | ||
789 | + PaymentStatus: int32(1), | ||
790 | + CooperationContractUndertakerId: dividendsEstimateDetail.CooperationContractUndertakerId, | ||
733 | } | 791 | } |
792 | + | ||
793 | + dividendsEstimates = append(dividendsEstimates, dividendsEstimate) | ||
794 | + } else { | ||
795 | + // 记录失败的订单号和原因 | ||
796 | + estimateFailedDividendsOrders[dividendsEstimateDetail.OrderOrReturnedOrderNumber] = dividendsEstimateDetail.Reason | ||
734 | } | 797 | } |
735 | } | 798 | } |
736 | - } else if orderGood.DividendsReturnedOrderNumber != "" { // 查询分红退货单 | ||
737 | - orderGoodsToConfirm := make([]*domain.OrderGood, 0) | ||
738 | - orderGoodsToConfirm = append(orderGoodsToConfirm, orderGood) | ||
739 | - // 分红退货单产品预算 | ||
740 | - if dividendsReturnedEstimateDetails, err := confirmDividendsIncentivesEstimateService.Confirm(orderGoodsToConfirm); err != nil { | ||
741 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
742 | - } else { | ||
743 | - for _, dividendsReturnedEstimateDetail := range dividendsReturnedEstimateDetails { | ||
744 | - if dividendsReturnedEstimateDetail.IsSuccessfully { | ||
745 | - // 生成分红预算单号 | ||
746 | - dividendsEstimateOrderNumber, err := dividendsReturnedEstimateDetail.GenerateSpecificDividendsEstimateNumber(int64(count), countDividendsEstimate) | ||
747 | - if err != nil { | ||
748 | - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
749 | - } | ||
750 | - | ||
751 | - // 记录成功的退货单号 | ||
752 | - estimateSuccessfullyDividendsOrders[dividendsReturnedEstimateDetail.OrderOrReturnedOrderNumber] = dividendsReturnedEstimateDetail.OrderOrReturnedOrderNumber | ||
753 | - | ||
754 | - // 统计生成的预算单数量 | ||
755 | - countDividendsEstimate = countDividendsEstimate + 1 | ||
756 | - | ||
757 | - dividendsEstimate = &domain.DividendsEstimate{ | ||
758 | - DividendsEstimateId: 0, | ||
759 | - DividendsAccountStatus: domain.TO_BE_ACCOUNT, | ||
760 | - DividendsAmount: dividendsReturnedEstimateDetail.DividendsAmount, | ||
761 | - DividendsEstimateOrderNumber: dividendsEstimateOrderNumber, | ||
762 | - DividendsEstimateTime: time.Now(), | ||
763 | - DividendsParticipateType: dividendsReturnedEstimateDetail.DividendsParticipateType, | ||
764 | - DividendsType: domain.RETURN_WRITE_OFF, | ||
765 | - DividendsTypeName: "退货冲销", | ||
766 | - OrderOrReturnedOrderNum: orderGood.DividendsReturnedOrderNumber, | ||
767 | - CooperationContractNumber: orderGood.CooperationContractNumber, | ||
768 | - DividendsUser: dividendsReturnedEstimateDetail.DividendsUser, | ||
769 | - DividendsPercentage: dividendsReturnedEstimateDetail.DividendsPercentage, | ||
770 | - DividendsStage: dividendsReturnedEstimateDetail.DividendsStage, | ||
771 | - Org: organization, | ||
772 | - Company: company, | ||
773 | - Operator: operator, | ||
774 | - OperateTime: time.Time{}, | ||
775 | - IsCanceled: false, | ||
776 | - CreatedAt: time.Now(), | ||
777 | - DeletedAt: time.Time{}, | ||
778 | - UpdatedAt: time.Time{}, | ||
779 | - OrderGoodId: orderGood.OrderGoodId, | ||
780 | - OrderGoodAmount: orderGood.OrderGoodAmount, | ||
781 | - PaymentStatus: int32(1), | ||
782 | - CooperationContractUndertakerId: dividendsReturnedEstimateDetail.CooperationContractUndertakerId, | ||
783 | - } | 799 | + } |
800 | + } else if len(returnedOrderGoodsToConfirm) > 0 { // 退货单产品预算 | ||
801 | + if dividendsReturnedEstimateDetails, err := confirmDividendsIncentivesEstimateService.Confirm(returnedOrderGoodsToConfirm, confirmDividendsIncentivesEstimateCommand.CompanyId, confirmDividendsIncentivesEstimateCommand.OrgId, cooperationContractsMap); err != nil { | ||
802 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
803 | + } else { | ||
804 | + for _, dividendsReturnedEstimateDetail := range dividendsReturnedEstimateDetails { | ||
805 | + if dividendsReturnedEstimateDetail.IsSuccessfully { | ||
806 | + // 生成分红预算单号 | ||
807 | + dividendsEstimateOrderNumber, err := dividendsReturnedEstimateDetail.GenerateSpecificDividendsEstimateNumber(int64(count), countDividendsEstimate) | ||
808 | + if err != nil { | ||
809 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
810 | + } | ||
784 | 811 | ||
785 | - dividendsEstimates = append(dividendsEstimates, dividendsEstimate) | ||
786 | - } else { | ||
787 | - // 记录失败的退货单号和原因 | ||
788 | - estimateFailedDividendsOrders[dividendsReturnedEstimateDetail.OrderOrReturnedOrderNumber] = dividendsReturnedEstimateDetail.Reason | 812 | + // 记录成功的退货单号 |
813 | + estimateSuccessfullyDividendsOrders[dividendsReturnedEstimateDetail.OrderOrReturnedOrderNumber] = dividendsReturnedEstimateDetail.OrderOrReturnedOrderNumber | ||
814 | + | ||
815 | + // 统计生成的预算单数量 | ||
816 | + countDividendsEstimate = countDividendsEstimate + 1 | ||
817 | + | ||
818 | + dividendsEstimate := &domain.DividendsEstimate{ | ||
819 | + DividendsEstimateId: 0, | ||
820 | + DividendsAccountStatus: domain.TO_BE_ACCOUNT, | ||
821 | + DividendsAmount: dividendsReturnedEstimateDetail.DividendsAmount, | ||
822 | + DividendsEstimateOrderNumber: dividendsEstimateOrderNumber, | ||
823 | + DividendsEstimateTime: time.Now(), | ||
824 | + DividendsParticipateType: dividendsReturnedEstimateDetail.DividendsParticipateType, | ||
825 | + DividendsType: domain.RETURN_WRITE_OFF, | ||
826 | + DividendsTypeName: "退货冲销", | ||
827 | + OrderOrReturnedOrderNum: dividendsReturnedEstimateDetail.OrderOrReturnedOrderNumber, | ||
828 | + CooperationContractNumber: dividendsReturnedEstimateDetail.CooperationContractNumber, | ||
829 | + DividendsUser: dividendsReturnedEstimateDetail.DividendsUser, | ||
830 | + DividendsPercentage: dividendsReturnedEstimateDetail.DividendsPercentage, | ||
831 | + DividendsStage: dividendsReturnedEstimateDetail.DividendsStage, | ||
832 | + Org: organization, | ||
833 | + Company: company, | ||
834 | + Operator: operator, | ||
835 | + OperateTime: time.Time{}, | ||
836 | + IsCanceled: false, | ||
837 | + CreatedAt: time.Now(), | ||
838 | + DeletedAt: time.Time{}, | ||
839 | + UpdatedAt: time.Time{}, | ||
840 | + OrderGoodId: dividendsReturnedEstimateDetail.OrderGoodId, | ||
841 | + OrderGoodAmount: dividendsReturnedEstimateDetail.OrderGoodAmount, | ||
842 | + PaymentStatus: int32(1), | ||
843 | + CooperationContractUndertakerId: dividendsReturnedEstimateDetail.CooperationContractUndertakerId, | ||
789 | } | 844 | } |
845 | + | ||
846 | + dividendsEstimates = append(dividendsEstimates, dividendsEstimate) | ||
847 | + } else { | ||
848 | + // 记录失败的退货单号和原因 | ||
849 | + estimateFailedDividendsOrders[dividendsReturnedEstimateDetail.OrderOrReturnedOrderNumber] = dividendsReturnedEstimateDetail.Reason | ||
790 | } | 850 | } |
791 | } | 851 | } |
792 | } | 852 | } |
793 | } | 853 | } |
854 | + fmt.Println("订单分红耗时:", time.Since(startConfirm)) | ||
794 | 855 | ||
795 | - log.Logger.Info("新增的分红预算单", map[string]interface{}{ | ||
796 | - "dividendsEstimates": dividendsEstimates, | ||
797 | - }) | ||
798 | - | 856 | + startInsert := time.Now() |
799 | if dividendsEstimatesSaved, err := dividendsEstimateRepository.SaveMany(dividendsEstimates); err != nil { | 857 | if dividendsEstimatesSaved, err := dividendsEstimateRepository.SaveMany(dividendsEstimates); err != nil { |
800 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 858 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
801 | } else { | 859 | } else { |
860 | + fmt.Println("插入预算单耗时:", time.Since(startInsert)) | ||
802 | // 获取产品ID | 861 | // 获取产品ID |
803 | orderGoodSavedIds := make([]int64, 0) | 862 | orderGoodSavedIds := make([]int64, 0) |
804 | for _, dividendsEstimate := range dividendsEstimates { | 863 | for _, dividendsEstimate := range dividendsEstimates { |
@@ -806,10 +865,14 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -806,10 +865,14 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
806 | } | 865 | } |
807 | 866 | ||
808 | // 更新订单产品分红状态 | 867 | // 更新订单产品分红状态 |
868 | + startUpdateGoodStatus := time.Now() | ||
809 | var orderGoodsSaved []*domain.OrderGood | 869 | var orderGoodsSaved []*domain.OrderGood |
810 | if len(orderGoodSavedIds) > 0 { | 870 | if len(orderGoodSavedIds) > 0 { |
871 | + // 订单产品ID去重 | ||
872 | + newOrderGoodIds := utils.RemoveDuplicationInt64(orderGoodSavedIds) | ||
811 | if countOrderGood, orderGoodsFound, err := orderGoodRepository.Find(map[string]interface{}{ | 873 | if countOrderGood, orderGoodsFound, err := orderGoodRepository.Find(map[string]interface{}{ |
812 | - "orderGoodIds": orderGoodSavedIds, | 874 | + "orderGoodIds": newOrderGoodIds, |
875 | + "offsetLimit": false, | ||
813 | }); err != nil { | 876 | }); err != nil { |
814 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 877 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
815 | } else { | 878 | } else { |
@@ -824,6 +887,7 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -824,6 +887,7 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
824 | } | 887 | } |
825 | } | 888 | } |
826 | } | 889 | } |
890 | + fmt.Println("更新订单产品分红状态耗时:", time.Since(startUpdateGoodStatus)) | ||
827 | 891 | ||
828 | // 分离分红订单和退货单 | 892 | // 分离分红订单和退货单 |
829 | dividendsOrderNumbers := make([]string, 0) | 893 | dividendsOrderNumbers := make([]string, 0) |
@@ -840,20 +904,14 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -840,20 +904,14 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
840 | } | 904 | } |
841 | } | 905 | } |
842 | 906 | ||
843 | - log.Logger.Info("分红订单", map[string]interface{}{ | ||
844 | - "dividendsOrderNumbers": dividendsOrderNumbers, | ||
845 | - }) | ||
846 | - | ||
847 | - log.Logger.Info("分红退货单", map[string]interface{}{ | ||
848 | - "dividendsReturnedOrderNumbers": dividendsReturnedOrderNumbers, | ||
849 | - }) | ||
850 | - | ||
851 | // 查找分红订单 | 907 | // 查找分红订单 |
908 | + startUpdateOrder := time.Now() | ||
852 | if len(dividendsOrderNumbers) > 0 { | 909 | if len(dividendsOrderNumbers) > 0 { |
853 | if countDividendsOrdersFound, dividendsOrdersFound, err := dividendsOrderRepository.Find(map[string]interface{}{ | 910 | if countDividendsOrdersFound, dividendsOrdersFound, err := dividendsOrderRepository.Find(map[string]interface{}{ |
854 | "dividendsOrderNumbers": dividendsOrderNumbers, | 911 | "dividendsOrderNumbers": dividendsOrderNumbers, |
855 | "companyId": confirmDividendsIncentivesEstimateCommand.CompanyId, | 912 | "companyId": confirmDividendsIncentivesEstimateCommand.CompanyId, |
856 | "orgId": confirmDividendsIncentivesEstimateCommand.OrgId, | 913 | "orgId": confirmDividendsIncentivesEstimateCommand.OrgId, |
914 | + "offsetLimit": false, | ||
857 | }); err != nil { | 915 | }); err != nil { |
858 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 916 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
859 | } else { | 917 | } else { |
@@ -890,13 +948,16 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -890,13 +948,16 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
890 | } | 948 | } |
891 | } | 949 | } |
892 | } | 950 | } |
951 | + fmt.Println("更新订单耗时:", time.Since(startUpdateOrder)) | ||
893 | 952 | ||
894 | // 查找分红退货单 | 953 | // 查找分红退货单 |
954 | + startUpdateReturnedOrder := time.Now() | ||
895 | if len(dividendsReturnedOrderNumbers) > 0 { | 955 | if len(dividendsReturnedOrderNumbers) > 0 { |
896 | if countDividendsReturnedOrdersFound, dividendsReturnedOrdersFound, err := dividendsReturnedOrderRepository.Find(map[string]interface{}{ | 956 | if countDividendsReturnedOrdersFound, dividendsReturnedOrdersFound, err := dividendsReturnedOrderRepository.Find(map[string]interface{}{ |
897 | "dividendsReturnedOrderNumbers": dividendsReturnedOrderNumbers, | 957 | "dividendsReturnedOrderNumbers": dividendsReturnedOrderNumbers, |
898 | "companyId": confirmDividendsIncentivesEstimateCommand.CompanyId, | 958 | "companyId": confirmDividendsIncentivesEstimateCommand.CompanyId, |
899 | "orgId": confirmDividendsIncentivesEstimateCommand.OrgId, | 959 | "orgId": confirmDividendsIncentivesEstimateCommand.OrgId, |
960 | + "offsetLimit": false, | ||
900 | }); err != nil { | 961 | }); err != nil { |
901 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 962 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
902 | } else { | 963 | } else { |
@@ -933,9 +994,13 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -933,9 +994,13 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
933 | } | 994 | } |
934 | } | 995 | } |
935 | 996 | ||
997 | + fmt.Println("更新退货单耗时:", time.Since(startUpdateReturnedOrder)) | ||
998 | + | ||
999 | + startCommit := time.Now() | ||
936 | if err := transactionContext.CommitTransaction(); err != nil { | 1000 | if err := transactionContext.CommitTransaction(); err != nil { |
937 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 1001 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
938 | } | 1002 | } |
1003 | + fmt.Println("提交事务耗时:", time.Since(startCommit)) | ||
939 | 1004 | ||
940 | // 统计成功的分红预算 | 1005 | // 统计成功的分红预算 |
941 | successfullyCount := len(dividendsEstimatesSaved) | 1006 | successfullyCount := len(dividendsEstimatesSaved) |
@@ -952,6 +1017,8 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -952,6 +1017,8 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
952 | failedReasonStr = "无" | 1017 | failedReasonStr = "无" |
953 | } | 1018 | } |
954 | 1019 | ||
1020 | + fmt.Println("函数执行完毕:", time.Since(start)) | ||
1021 | + | ||
955 | return map[string]interface{}{ | 1022 | return map[string]interface{}{ |
956 | "report": fmt.Sprintf("已完成%d单订单分红预算,生成%d单分红预算,%d笔订单分红预算失败,失败原因:%s", len(estimateSuccessfullyDividendsOrders), successfullyCount, len(estimateFailedDividendsOrders), failedReasonStr), | 1023 | "report": fmt.Sprintf("已完成%d单订单分红预算,生成%d单分红预算,%d笔订单分红预算失败,失败原因:%s", len(estimateSuccessfullyDividendsOrders), successfullyCount, len(estimateFailedDividendsOrders), failedReasonStr), |
957 | }, nil | 1024 | }, nil |
@@ -1166,7 +1233,10 @@ func (dividendsEstimateService *DividendsEstimateService) GetDividendsEstimate(g | @@ -1166,7 +1233,10 @@ func (dividendsEstimateService *DividendsEstimateService) GetDividendsEstimate(g | ||
1166 | } else { | 1233 | } else { |
1167 | dividendsEstimateRepository = value | 1234 | dividendsEstimateRepository = value |
1168 | } | 1235 | } |
1169 | - dividendsEstimate, err := dividendsEstimateRepository.FindOne(map[string]interface{}{"dividendsEstimateId": getDividendsEstimateQuery.DividendsEstimateId}) | 1236 | + dividendsEstimate, err := dividendsEstimateRepository.FindOne(map[string]interface{}{ |
1237 | + "dividendsEstimateId": getDividendsEstimateQuery.DividendsEstimateId, | ||
1238 | + "isCanceled": false, | ||
1239 | + }) | ||
1170 | if err != nil { | 1240 | if err != nil { |
1171 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1241 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1172 | } | 1242 | } |
@@ -1283,6 +1353,7 @@ func (dividendsEstimateService *DividendsEstimateService) SearchDividendsEstimat | @@ -1283,6 +1353,7 @@ func (dividendsEstimateService *DividendsEstimateService) SearchDividendsEstimat | ||
1283 | } else { | 1353 | } else { |
1284 | dividendsEstimateRepository = value | 1354 | dividendsEstimateRepository = value |
1285 | } | 1355 | } |
1356 | + searchDividendsEstimateQuery.IsCanceled = false | ||
1286 | if count, dividendsEstimates, err := dividendsEstimateRepository.Find(tool_funs.SimpleStructToMap(searchDividendsEstimateQuery)); err != nil { | 1357 | if count, dividendsEstimates, err := dividendsEstimateRepository.Find(tool_funs.SimpleStructToMap(searchDividendsEstimateQuery)); err != nil { |
1287 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1358 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1288 | } else { | 1359 | } else { |
@@ -14,13 +14,13 @@ type GetDividendsOrderQuery struct { | @@ -14,13 +14,13 @@ type GetDividendsOrderQuery struct { | ||
14 | // 分红订单编号 | 14 | // 分红订单编号 |
15 | DividendsOrderNumber string `cname:"分红订单编号" json:"dividendsOrderNumber,omitempty"` | 15 | DividendsOrderNumber string `cname:"分红订单编号" json:"dividendsOrderNumber,omitempty"` |
16 | // 公司ID,通过集成REST上下文获取 | 16 | // 公司ID,通过集成REST上下文获取 |
17 | - CompanyId int64 `cname:"公司ID" json:"companyId" valid:"Required"` | 17 | + CompanyId int64 `cname:"公司ID" json:"companyId"` |
18 | // 组织机构ID | 18 | // 组织机构ID |
19 | - OrgId int64 `cname:"组织机构ID" json:"orgId" valid:"Required"` | 19 | + OrgId int64 `cname:"组织机构ID" json:"orgId"` |
20 | // 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员 | 20 | // 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员 |
21 | - UserId int64 `cname:"用户ID" json:"userId" valid:"Required"` | 21 | + UserId int64 `cname:"用户ID" json:"userId"` |
22 | // 用户基础数据id | 22 | // 用户基础数据id |
23 | - UserBaseId int64 `cname:"用户基础数据ID" json:"userBaseId" valid:"Required"` | 23 | + UserBaseId int64 `cname:"用户基础数据ID" json:"userBaseId"` |
24 | } | 24 | } |
25 | 25 | ||
26 | func (getDividendsOrderQuery *GetDividendsOrderQuery) Valid(validation *validation.Validation) { | 26 | func (getDividendsOrderQuery *GetDividendsOrderQuery) Valid(validation *validation.Validation) { |
@@ -406,8 +406,8 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -406,8 +406,8 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
406 | v := reflect.ValueOf(dividendsOrder) | 406 | v := reflect.ValueOf(dividendsOrder) |
407 | for k := 0; k < t.NumField(); k++ { | 407 | for k := 0; k < t.NumField(); k++ { |
408 | //fmt.Println("name:", fmt.Sprintf("%+v", t.Field(k).Name), ", value:", fmt.Sprintf("%v", v.Field(k).Interface()), ", yaml:", t.Field(k).Tag.Get("yaml")) | 408 | //fmt.Println("name:", fmt.Sprintf("%+v", t.Field(k).Name), ", value:", fmt.Sprintf("%v", v.Field(k).Interface()), ", yaml:", t.Field(k).Tag.Get("yaml")) |
409 | - fmt.Println("name:", fmt.Sprintf("%+v", t.Field(k).Name), ", value:", fmt.Sprintf("%v", v.Field(k).Interface())) | ||
410 | - if t.Field(k).Name != "RegionName" && t.Field(k).Name != "Expense" { | 409 | + //fmt.Println("name:", fmt.Sprintf("%+v", t.Field(k).Name), ", value:", fmt.Sprintf("%v", v.Field(k).Interface())) |
410 | + if t.Field(k).Name != "Expense" { | ||
411 | if v.Field(k).Interface() == "" { | 411 | if v.Field(k).Interface() == "" { |
412 | col := strconv.Itoa(k + 1) | 412 | col := strconv.Itoa(k + 1) |
413 | nullCell = append(nullCell, col) | 413 | nullCell = append(nullCell, col) |
@@ -439,10 +439,11 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -439,10 +439,11 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
439 | 439 | ||
440 | /***************************************************** 3.单元格类型校验 *********************************************/ | 440 | /***************************************************** 3.单元格类型校验 *********************************************/ |
441 | typeError := make([]*domain.FailInfo, 0) | 441 | typeError := make([]*domain.FailInfo, 0) |
442 | - for _, dividendsOrder := range importDividendsOrderCommand.DividendsOrderData { // 行 | ||
443 | - var myRow []*domain.FailInfo | 442 | + |
443 | + for j, dividendsOrder := range importDividendsOrderCommand.DividendsOrderData { // 行 | ||
444 | t := reflect.TypeOf(dividendsOrder) | 444 | t := reflect.TypeOf(dividendsOrder) |
445 | v := reflect.ValueOf(dividendsOrder) | 445 | v := reflect.ValueOf(dividendsOrder) |
446 | + var myRow []*domain.FailInfo | ||
446 | for k := 0; k < t.NumField(); k++ { // 列 | 447 | for k := 0; k < t.NumField(); k++ { // 列 |
447 | //r := strconv.Itoa(i + 1) | 448 | //r := strconv.Itoa(i + 1) |
448 | switch k { | 449 | switch k { |
@@ -454,7 +455,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -454,7 +455,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
454 | tmpRow := &domain.FailInfo{ | 455 | tmpRow := &domain.FailInfo{ |
455 | FailReason: "订单日期格式错误,请输入正确的订单日期", | 456 | FailReason: "订单日期格式错误,请输入正确的订单日期", |
456 | } | 457 | } |
457 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | 458 | + tmpRow.ImportDividendsOrderData = &importDividendsOrderCommand.DividendsOrderData[j] |
458 | myRow = append(myRow, tmpRow) | 459 | myRow = append(myRow, tmpRow) |
459 | continue | 460 | continue |
460 | } | 461 | } |
@@ -467,7 +468,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -467,7 +468,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
467 | tmpRow := &domain.FailInfo{ | 468 | tmpRow := &domain.FailInfo{ |
468 | FailReason: "行产品数量格式错误,产品数量必须整数", | 469 | FailReason: "行产品数量格式错误,产品数量必须整数", |
469 | } | 470 | } |
470 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | 471 | + tmpRow.ImportDividendsOrderData = &importDividendsOrderCommand.DividendsOrderData[j] |
471 | myRow = append(myRow, tmpRow) | 472 | myRow = append(myRow, tmpRow) |
472 | continue | 473 | continue |
473 | } | 474 | } |
@@ -476,7 +477,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -476,7 +477,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
476 | tmpRow := &domain.FailInfo{ | 477 | tmpRow := &domain.FailInfo{ |
477 | FailReason: "产品数量必须大于0,请重新填写", | 478 | FailReason: "产品数量必须大于0,请重新填写", |
478 | } | 479 | } |
479 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | 480 | + tmpRow.ImportDividendsOrderData = &importDividendsOrderCommand.DividendsOrderData[j] |
480 | myRow = append(myRow, tmpRow) | 481 | myRow = append(myRow, tmpRow) |
481 | continue | 482 | continue |
482 | } | 483 | } |
@@ -489,7 +490,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -489,7 +490,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
489 | tmpRow := &domain.FailInfo{ | 490 | tmpRow := &domain.FailInfo{ |
490 | FailReason: "产品价格格式错误,产品价格必须为数字类型", | 491 | FailReason: "产品价格格式错误,产品价格必须为数字类型", |
491 | } | 492 | } |
492 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | 493 | + tmpRow.ImportDividendsOrderData = &importDividendsOrderCommand.DividendsOrderData[j] |
493 | myRow = append(myRow, tmpRow) | 494 | myRow = append(myRow, tmpRow) |
494 | continue | 495 | continue |
495 | } | 496 | } |
@@ -499,7 +500,16 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -499,7 +500,16 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
499 | tmpRow := &domain.FailInfo{ | 500 | tmpRow := &domain.FailInfo{ |
500 | FailReason: "产品价格超过最大限制,产品价格小数点前面不能超过十六位数字,并保留两位小数", | 501 | FailReason: "产品价格超过最大限制,产品价格小数点前面不能超过十六位数字,并保留两位小数", |
501 | } | 502 | } |
502 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | 503 | + tmpRow.ImportDividendsOrderData = &importDividendsOrderCommand.DividendsOrderData[j] |
504 | + myRow = append(myRow, tmpRow) | ||
505 | + continue | ||
506 | + } | ||
507 | + // 正负判断 | ||
508 | + if univalent < 0 { | ||
509 | + tmpRow := &domain.FailInfo{ | ||
510 | + FailReason: "产品价格必须大于0,请重新填写", | ||
511 | + } | ||
512 | + tmpRow.ImportDividendsOrderData = &importDividendsOrderCommand.DividendsOrderData[j] | ||
503 | myRow = append(myRow, tmpRow) | 513 | myRow = append(myRow, tmpRow) |
504 | continue | 514 | continue |
505 | } | 515 | } |
@@ -513,7 +523,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -513,7 +523,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
513 | tmpRow := &domain.FailInfo{ | 523 | tmpRow := &domain.FailInfo{ |
514 | FailReason: "费用格式错误,费用必须为数字类型", | 524 | FailReason: "费用格式错误,费用必须为数字类型", |
515 | } | 525 | } |
516 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | 526 | + tmpRow.ImportDividendsOrderData = &importDividendsOrderCommand.DividendsOrderData[j] |
517 | myRow = append(myRow, tmpRow) | 527 | myRow = append(myRow, tmpRow) |
518 | log.Logger.Info("费用类型错误", map[string]interface{}{ | 528 | log.Logger.Info("费用类型错误", map[string]interface{}{ |
519 | "tmpRow": tmpRow, | 529 | "tmpRow": tmpRow, |
@@ -525,7 +535,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -525,7 +535,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
525 | tmpRow := &domain.FailInfo{ | 535 | tmpRow := &domain.FailInfo{ |
526 | FailReason: "费用超过最大限制,费用小数点前面不能超过十六位数字,并保留两位小数", | 536 | FailReason: "费用超过最大限制,费用小数点前面不能超过十六位数字,并保留两位小数", |
527 | } | 537 | } |
528 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | 538 | + tmpRow.ImportDividendsOrderData = &importDividendsOrderCommand.DividendsOrderData[j] |
529 | myRow = append(myRow, tmpRow) | 539 | myRow = append(myRow, tmpRow) |
530 | continue | 540 | continue |
531 | } | 541 | } |
@@ -558,16 +568,17 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -558,16 +568,17 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
558 | var dividendsOrderCommands = make(map[string]*command.CreateDividendsOrderCommand) | 568 | var dividendsOrderCommands = make(map[string]*command.CreateDividendsOrderCommand) |
559 | 569 | ||
560 | for i, dividendsOrder := range importDividendsOrderCommand.DividendsOrderData { | 570 | for i, dividendsOrder := range importDividendsOrderCommand.DividendsOrderData { |
561 | - hashValue := md5.Sum([]byte(dividendsOrder.OriginalOrderNum + dividendsOrder.OrderTime)) | 571 | + hashValue := md5.Sum([]byte(dividendsOrder.OriginalOrderNum)) |
562 | hashString := hex.EncodeToString(hashValue[:]) | 572 | hashString := hex.EncodeToString(hashValue[:]) |
573 | + | ||
563 | if _, ok := dividendsOrderCommands[hashString]; !ok { | 574 | if _, ok := dividendsOrderCommands[hashString]; !ok { |
564 | // 订单日期时间格式转换 | 575 | // 订单日期时间格式转换 |
565 | timeValue, err := time.ParseInLocation("2006/01/02", dividendsOrder.OrderTime, time.Local) | 576 | timeValue, err := time.ParseInLocation("2006/01/02", dividendsOrder.OrderTime, time.Local) |
566 | if err != nil { | 577 | if err != nil { |
567 | tmpRow := &domain.FailInfo{ | 578 | tmpRow := &domain.FailInfo{ |
568 | - FailReason: "无效的订单日期", | 579 | + FailReason: "无效的订单日期", |
580 | + ImportDividendsOrderData: &importDividendsOrderCommand.DividendsOrderData[i], | ||
569 | } | 581 | } |
570 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | ||
571 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 582 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
572 | continue | 583 | continue |
573 | } | 584 | } |
@@ -576,7 +587,8 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -576,7 +587,8 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
576 | quantity, err := strconv.ParseFloat(dividendsOrder.OrderGoodQuantity, 64) | 587 | quantity, err := strconv.ParseFloat(dividendsOrder.OrderGoodQuantity, 64) |
577 | if err != nil { | 588 | if err != nil { |
578 | tmpRow := &domain.FailInfo{ | 589 | tmpRow := &domain.FailInfo{ |
579 | - FailReason: "产品数量类型错误", | 590 | + FailReason: "产品数量类型错误", |
591 | + ImportDividendsOrderData: &importDividendsOrderCommand.DividendsOrderData[i], | ||
580 | } | 592 | } |
581 | tmpRow.ImportDividendsOrderData = ÷ndsOrder | 593 | tmpRow.ImportDividendsOrderData = ÷ndsOrder |
582 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 594 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
@@ -586,9 +598,9 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -586,9 +598,9 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
586 | price, err := strconv.ParseFloat(dividendsOrder.OrderGoodPrice, 64) | 598 | price, err := strconv.ParseFloat(dividendsOrder.OrderGoodPrice, 64) |
587 | if err != nil { | 599 | if err != nil { |
588 | tmpRow := &domain.FailInfo{ | 600 | tmpRow := &domain.FailInfo{ |
589 | - FailReason: "产品价格类型错误", | 601 | + FailReason: "产品价格类型错误", |
602 | + ImportDividendsOrderData: &importDividendsOrderCommand.DividendsOrderData[i], | ||
590 | } | 603 | } |
591 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | ||
592 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 604 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
593 | continue | 605 | continue |
594 | } | 606 | } |
@@ -597,9 +609,9 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -597,9 +609,9 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
597 | if dividendsOrder.Expense != "" { | 609 | if dividendsOrder.Expense != "" { |
598 | if expenseParse, err := strconv.ParseFloat(dividendsOrder.Expense, 64); err != nil { | 610 | if expenseParse, err := strconv.ParseFloat(dividendsOrder.Expense, 64); err != nil { |
599 | tmpRow := &domain.FailInfo{ | 611 | tmpRow := &domain.FailInfo{ |
600 | - FailReason: "费用类型错误", | 612 | + FailReason: "费用类型错误", |
613 | + ImportDividendsOrderData: &importDividendsOrderCommand.DividendsOrderData[i], | ||
601 | } | 614 | } |
602 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | ||
603 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 615 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
604 | continue | 616 | continue |
605 | } else { | 617 | } else { |
@@ -634,14 +646,26 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -634,14 +646,26 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
634 | UserBaseId: importDividendsOrderCommand.UserBaseId, | 646 | UserBaseId: importDividendsOrderCommand.UserBaseId, |
635 | LineNumbers: []int{i}, // 记录行号 | 647 | LineNumbers: []int{i}, // 记录行号 |
636 | } | 648 | } |
637 | - } else { // 聚合同一笔订单产品 | 649 | + |
650 | + } else if _, exist := dividendsOrderCommands[hashString]; exist { // 聚合同一笔订单产品 | ||
651 | + // 订单日期时间格式转换 | ||
652 | + timeValue, err := time.ParseInLocation("2006/01/02", dividendsOrder.OrderTime, time.Local) | ||
653 | + if err != nil { | ||
654 | + tmpRow := &domain.FailInfo{ | ||
655 | + FailReason: "无效的订单日期", | ||
656 | + ImportDividendsOrderData: &importDividendsOrderCommand.DividendsOrderData[i], | ||
657 | + } | ||
658 | + aggregateErrorList = append(aggregateErrorList, tmpRow) | ||
659 | + continue | ||
660 | + } | ||
661 | + | ||
638 | // 产品相关:产品名称,产品数量、产品价格、费用 | 662 | // 产品相关:产品名称,产品数量、产品价格、费用 |
639 | quantity, err := strconv.ParseFloat(dividendsOrder.OrderGoodQuantity, 64) | 663 | quantity, err := strconv.ParseFloat(dividendsOrder.OrderGoodQuantity, 64) |
640 | if err != nil { | 664 | if err != nil { |
641 | tmpRow := &domain.FailInfo{ | 665 | tmpRow := &domain.FailInfo{ |
642 | - FailReason: "产品数量类型错误", | 666 | + FailReason: "产品数量类型错误", |
667 | + ImportDividendsOrderData: &importDividendsOrderCommand.DividendsOrderData[i], | ||
643 | } | 668 | } |
644 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | ||
645 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 669 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
646 | continue | 670 | continue |
647 | } | 671 | } |
@@ -649,9 +673,9 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -649,9 +673,9 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
649 | price, err := strconv.ParseFloat(dividendsOrder.OrderGoodPrice, 64) | 673 | price, err := strconv.ParseFloat(dividendsOrder.OrderGoodPrice, 64) |
650 | if err != nil { | 674 | if err != nil { |
651 | tmpRow := &domain.FailInfo{ | 675 | tmpRow := &domain.FailInfo{ |
652 | - FailReason: "产品价格类型错误", | 676 | + FailReason: "产品价格类型错误", |
677 | + ImportDividendsOrderData: &importDividendsOrderCommand.DividendsOrderData[i], | ||
653 | } | 678 | } |
654 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | ||
655 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 679 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
656 | continue | 680 | continue |
657 | } | 681 | } |
@@ -660,9 +684,9 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -660,9 +684,9 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
660 | if dividendsOrder.Expense != "" { | 684 | if dividendsOrder.Expense != "" { |
661 | if expenseParse, err := strconv.ParseFloat(dividendsOrder.Expense, 64); err != nil { | 685 | if expenseParse, err := strconv.ParseFloat(dividendsOrder.Expense, 64); err != nil { |
662 | tmpRow := &domain.FailInfo{ | 686 | tmpRow := &domain.FailInfo{ |
663 | - FailReason: "费用类型错误", | 687 | + FailReason: "费用类型错误", |
688 | + ImportDividendsOrderData: &importDividendsOrderCommand.DividendsOrderData[i], | ||
664 | } | 689 | } |
665 | - tmpRow.ImportDividendsOrderData = ÷ndsOrder | ||
666 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 690 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
667 | continue | 691 | continue |
668 | } else { | 692 | } else { |
@@ -670,6 +694,29 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -670,6 +694,29 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
670 | } | 694 | } |
671 | } | 695 | } |
672 | 696 | ||
697 | + log.Logger.Info("订单时间1:", map[string]interface{}{ | ||
698 | + "timeValue": strconv.FormatInt(timeValue.Local().UnixNano()/1e6, 10), | ||
699 | + }) | ||
700 | + | ||
701 | + log.Logger.Info("订单时间2:", map[string]interface{}{ | ||
702 | + "timeValue": dividendsOrderCommands[hashString].OrderTime, | ||
703 | + }) | ||
704 | + | ||
705 | + if strconv.FormatInt(timeValue.Local().UnixNano()/1e6, 10) != dividendsOrderCommands[hashString].OrderTime { | ||
706 | + log.Logger.Info("订单:", map[string]interface{}{ | ||
707 | + "order": dividendsOrder, | ||
708 | + }) | ||
709 | + tmpRow := &domain.FailInfo{ | ||
710 | + FailReason: "同一来源单号的订单,订单日期必须相同", | ||
711 | + ImportDividendsOrderData: &importDividendsOrderCommand.DividendsOrderData[i], | ||
712 | + } | ||
713 | + aggregateErrorList = append(aggregateErrorList, tmpRow) | ||
714 | + log.Logger.Info("聚合订单错误:", map[string]interface{}{ | ||
715 | + "aggregateErrorList": aggregateErrorList, | ||
716 | + }) | ||
717 | + continue | ||
718 | + } | ||
719 | + | ||
673 | dividendsOrderCommands[hashString].OrderGoods = append(dividendsOrderCommands[hashString].OrderGoods, command.OrderGoods{ | 720 | dividendsOrderCommands[hashString].OrderGoods = append(dividendsOrderCommands[hashString].OrderGoods, command.OrderGoods{ |
674 | OrderGoodId: "0", | 721 | OrderGoodId: "0", |
675 | OrderGoodAmount: 0, | 722 | OrderGoodAmount: 0, |
@@ -861,6 +908,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -861,6 +908,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
861 | DividendsReturnedOrderNumber: "", | 908 | DividendsReturnedOrderNumber: "", |
862 | CooperationContractNumber: orderGood.CooperationContractNumber, | 909 | CooperationContractNumber: orderGood.CooperationContractNumber, |
863 | OrderGoodExpense: orderGood.OrderGoodExpense, | 910 | OrderGoodExpense: orderGood.OrderGoodExpense, |
911 | + OrderGoodDividendsStatus: int32(1), | ||
864 | OrgId: importDividendsOrderCommand.OrgId, | 912 | OrgId: importDividendsOrderCommand.OrgId, |
865 | CompanyId: importDividendsOrderCommand.CompanyId, | 913 | CompanyId: importDividendsOrderCommand.CompanyId, |
866 | CreatedAt: time.Now(), | 914 | CreatedAt: time.Now(), |
@@ -1077,6 +1125,7 @@ func (dividendsOrderService *DividendsOrderService) RemoveDividendsOrder(removeD | @@ -1077,6 +1125,7 @@ func (dividendsOrderService *DividendsOrderService) RemoveDividendsOrder(removeD | ||
1077 | 1125 | ||
1078 | // BatchRemoveDividendsOrder 批量移除分红订单实体对象 | 1126 | // BatchRemoveDividendsOrder 批量移除分红订单实体对象 |
1079 | func (dividendsOrderService *DividendsOrderService) BatchRemoveDividendsOrder(batchRemoveDividendsOrderCommand *command.BatchRemoveDividendsOrderCommand) (interface{}, error) { | 1127 | func (dividendsOrderService *DividendsOrderService) BatchRemoveDividendsOrder(batchRemoveDividendsOrderCommand *command.BatchRemoveDividendsOrderCommand) (interface{}, error) { |
1128 | + start := time.Now() | ||
1080 | if err := batchRemoveDividendsOrderCommand.ValidateCommand(); err != nil { | 1129 | if err := batchRemoveDividendsOrderCommand.ValidateCommand(); err != nil { |
1081 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | 1130 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) |
1082 | } | 1131 | } |
@@ -1121,18 +1170,42 @@ func (dividendsOrderService *DividendsOrderService) BatchRemoveDividendsOrder(ba | @@ -1121,18 +1170,42 @@ func (dividendsOrderService *DividendsOrderService) BatchRemoveDividendsOrder(ba | ||
1121 | dividendsEstimateRepository = value | 1170 | dividendsEstimateRepository = value |
1122 | } | 1171 | } |
1123 | 1172 | ||
1173 | + // 分红预算单DAO初始化 | ||
1174 | + //var dividendsEstimateDao *dao.DividendsEstimateDao | ||
1175 | + //if value, err := factory.CreateDividendsEstimateDao(map[string]interface{}{ | ||
1176 | + // "transactionContext": transactionContext, | ||
1177 | + //}); err != nil { | ||
1178 | + // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
1179 | + //} else { | ||
1180 | + // dividendsEstimateDao = value | ||
1181 | + //} | ||
1182 | + | ||
1183 | + // 分红退货单DAO初始化 | ||
1184 | + //var dividendsReturnedOrderDao *dao.DividendsReturnedOrderDao | ||
1185 | + //if value, err := factory.CreateDividendsReturnedOrderDao(map[string]interface{}{ | ||
1186 | + // "transactionContext": transactionContext, | ||
1187 | + //}); err != nil { | ||
1188 | + // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
1189 | + //} else { | ||
1190 | + // dividendsReturnedOrderDao = value | ||
1191 | + //} | ||
1192 | + | ||
1124 | dividendsOrderIds, err := utils.SliceAtoi(batchRemoveDividendsOrderCommand.DividendsOrderIds) | 1193 | dividendsOrderIds, err := utils.SliceAtoi(batchRemoveDividendsOrderCommand.DividendsOrderIds) |
1125 | if err != nil { | 1194 | if err != nil { |
1126 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "分红订单ID类型错误") | 1195 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "分红订单ID类型错误") |
1127 | } | 1196 | } |
1197 | + | ||
1128 | if count, dividendsOrders, err := dividendsOrderRepository.Find(map[string]interface{}{ | 1198 | if count, dividendsOrders, err := dividendsOrderRepository.Find(map[string]interface{}{ |
1129 | "dividendsOrderIds": dividendsOrderIds, | 1199 | "dividendsOrderIds": dividendsOrderIds, |
1200 | + "offsetLimit": false, | ||
1130 | }); err != nil { | 1201 | }); err != nil { |
1131 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1202 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1132 | } else { | 1203 | } else { |
1204 | + fmt.Println("截止目前耗时1:", time.Since(start)) | ||
1133 | if count > 0 { | 1205 | if count > 0 { |
1134 | - // 校验分红订单是否有退货单关联 | ||
1135 | for _, dividendsOrder := range dividendsOrders { | 1206 | for _, dividendsOrder := range dividendsOrders { |
1207 | + // 校验分红订单是否有关联的退货单 | ||
1208 | + startCount := time.Now() | ||
1136 | if countReturnedOrder, _, err := dividendsReturnedOrderRepository.Find(map[string]interface{}{ | 1209 | if countReturnedOrder, _, err := dividendsReturnedOrderRepository.Find(map[string]interface{}{ |
1137 | "dividendsOrderNumber": dividendsOrder.DividendsOrderNumber, | 1210 | "dividendsOrderNumber": dividendsOrder.DividendsOrderNumber, |
1138 | "companyId": dividendsOrder.Company.CompanyId, | 1211 | "companyId": dividendsOrder.Company.CompanyId, |
@@ -1145,13 +1218,29 @@ func (dividendsOrderService *DividendsOrderService) BatchRemoveDividendsOrder(ba | @@ -1145,13 +1218,29 @@ func (dividendsOrderService *DividendsOrderService) BatchRemoveDividendsOrder(ba | ||
1145 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, fmt.Sprintf("分红订单%s有关联的退货单,不可删除", dividendsOrder.DividendsOrderNumber)) | 1218 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, fmt.Sprintf("分红订单%s有关联的退货单,不可删除", dividendsOrder.DividendsOrderNumber)) |
1146 | } | 1219 | } |
1147 | } | 1220 | } |
1221 | + fmt.Println("退货单计数:", time.Since(startCount)) | ||
1222 | + | ||
1223 | + //startCount := time.Now() | ||
1224 | + //if returnedOrderExist, err := dividendsReturnedOrderDao.CheckDividendsReturnedOrderExist(map[string]interface{}{ | ||
1225 | + // "dividendsOrderNumber": dividendsOrder.DividendsOrderNumber, | ||
1226 | + // "companyId": dividendsOrder.Company.CompanyId, | ||
1227 | + //}); err != nil { | ||
1228 | + // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
1229 | + //} else { | ||
1230 | + // if returnedOrderExist { | ||
1231 | + // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, fmt.Sprintf("分红订单%s有关联的退货单,不可删除", dividendsOrder.DividendsOrderNumber)) | ||
1232 | + // } | ||
1233 | + //} | ||
1234 | + //fmt.Println("退货单计数:", time.Since(startCount)) | ||
1148 | 1235 | ||
1149 | // 校验分红订单是否有分红预算 | 1236 | // 校验分红订单是否有分红预算 |
1237 | + startEstimateCount := time.Now() | ||
1150 | if countRelative, _, err2 := dividendsEstimateRepository.Find(map[string]interface{}{ | 1238 | if countRelative, _, err2 := dividendsEstimateRepository.Find(map[string]interface{}{ |
1151 | "companyId": dividendsOrder.Company.CompanyId, | 1239 | "companyId": dividendsOrder.Company.CompanyId, |
1152 | "orgId": dividendsOrder.Org.OrgId, | 1240 | "orgId": dividendsOrder.Org.OrgId, |
1153 | "orderOrReturnedOrderNum": dividendsOrder.DividendsOrderNumber, | 1241 | "orderOrReturnedOrderNum": dividendsOrder.DividendsOrderNumber, |
1154 | - "offsetLimit": false, | 1242 | + "limit": 1, |
1243 | + "offset": 0, | ||
1155 | "isCanceled": false, | 1244 | "isCanceled": false, |
1156 | }); err2 != nil { | 1245 | }); err2 != nil { |
1157 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err2.Error()) | 1246 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err2.Error()) |
@@ -1160,15 +1249,34 @@ func (dividendsOrderService *DividendsOrderService) BatchRemoveDividendsOrder(ba | @@ -1160,15 +1249,34 @@ func (dividendsOrderService *DividendsOrderService) BatchRemoveDividendsOrder(ba | ||
1160 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, fmt.Sprintf("分红订单%s有关联的预算单,不可删除", dividendsOrder.DividendsOrderNumber)) | 1249 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, fmt.Sprintf("分红订单%s有关联的预算单,不可删除", dividendsOrder.DividendsOrderNumber)) |
1161 | } | 1250 | } |
1162 | } | 1251 | } |
1252 | + fmt.Println("预算单计数:", time.Since(startEstimateCount)) | ||
1253 | + | ||
1254 | + //startEstimateCount := time.Now() | ||
1255 | + //if estimateOrderExist, err3 := dividendsEstimateDao.CheckDividendsEstimateOrderExist(map[string]interface{}{ | ||
1256 | + // "companyId": dividendsOrder.Company.CompanyId, | ||
1257 | + // "orgId": dividendsOrder.Org.OrgId, | ||
1258 | + // "orderOrReturnedOrderNum": dividendsOrder.DividendsOrderNumber, | ||
1259 | + // "isCanceled": false, | ||
1260 | + //}); err3 != nil { | ||
1261 | + // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err3.Error()) | ||
1262 | + //} else { | ||
1263 | + // if estimateOrderExist { | ||
1264 | + // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, fmt.Sprintf("分红订单%s有关联的预算单,不可删除", dividendsOrder.DividendsOrderNumber)) | ||
1265 | + // } | ||
1266 | + //} | ||
1267 | + //fmt.Println("预算单计数:", time.Since(startEstimateCount)) | ||
1163 | } | 1268 | } |
1269 | + fmt.Println("截止目前耗时2:", time.Since(start)) | ||
1164 | 1270 | ||
1165 | dividendsOrdersRemoved, err := dividendsOrderRepository.BatchRemove(dividendsOrders) | 1271 | dividendsOrdersRemoved, err := dividendsOrderRepository.BatchRemove(dividendsOrders) |
1166 | if err != nil { | 1272 | if err != nil { |
1167 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 1273 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
1168 | } | 1274 | } |
1275 | + fmt.Println("截止目前耗时3:", time.Since(start)) | ||
1169 | if err := transactionContext.CommitTransaction(); err != nil { | 1276 | if err := transactionContext.CommitTransaction(); err != nil { |
1170 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 1277 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
1171 | } | 1278 | } |
1279 | + fmt.Println("截止目前耗时4:", time.Since(start)) | ||
1172 | return dividendsOrdersRemoved, nil | 1280 | return dividendsOrdersRemoved, nil |
1173 | } else { | 1281 | } else { |
1174 | return map[string]interface{}{}, nil | 1282 | return map[string]interface{}{}, nil |
@@ -445,14 +445,14 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -445,14 +445,14 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
445 | t := reflect.TypeOf(dividendsReturnedOrder) | 445 | t := reflect.TypeOf(dividendsReturnedOrder) |
446 | v := reflect.ValueOf(dividendsReturnedOrder) | 446 | v := reflect.ValueOf(dividendsReturnedOrder) |
447 | for k := 0; k < t.NumField(); k++ { | 447 | for k := 0; k < t.NumField(); k++ { |
448 | - fmt.Println("name:", fmt.Sprintf("%+v", t.Field(k).Name), ", value:", fmt.Sprintf("%v", v.Field(k).Interface())) | ||
449 | - if t.Field(k).Name != "RegionName" { | ||
450 | - if v.Field(k).Interface() == "" { | ||
451 | - col := strconv.Itoa(k + 1) | ||
452 | - nullCell = append(nullCell, col) | ||
453 | - nullFlag = true | ||
454 | - } | 448 | + //fmt.Println("name:", fmt.Sprintf("%+v", t.Field(k).Name), ", value:", fmt.Sprintf("%v", v.Field(k).Interface())) |
449 | + //if t.Field(k).Name != "RegionName" { | ||
450 | + if v.Field(k).Interface() == "" { | ||
451 | + col := strconv.Itoa(k + 1) | ||
452 | + nullCell = append(nullCell, col) | ||
453 | + nullFlag = true | ||
455 | } | 454 | } |
455 | + //} | ||
456 | } | 456 | } |
457 | if nullFlag { | 457 | if nullFlag { |
458 | myRow := &domain.FailReturnedInfo{ | 458 | myRow := &domain.FailReturnedInfo{ |
@@ -478,10 +478,11 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -478,10 +478,11 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
478 | 478 | ||
479 | /***************************************************** 3.单元格类型校验 *********************************************/ | 479 | /***************************************************** 3.单元格类型校验 *********************************************/ |
480 | typeError := make([]*domain.FailReturnedInfo, 0) | 480 | typeError := make([]*domain.FailReturnedInfo, 0) |
481 | - for _, dividendsReturnedOrder := range importDividendsReturnedOrderCommand.DividendsReturnedOrderData { // 行 | ||
482 | - var myRow []*domain.FailReturnedInfo | 481 | + |
482 | + for j, dividendsReturnedOrder := range importDividendsReturnedOrderCommand.DividendsReturnedOrderData { // 行 | ||
483 | t := reflect.TypeOf(dividendsReturnedOrder) | 483 | t := reflect.TypeOf(dividendsReturnedOrder) |
484 | v := reflect.ValueOf(dividendsReturnedOrder) | 484 | v := reflect.ValueOf(dividendsReturnedOrder) |
485 | + var myRow []*domain.FailReturnedInfo | ||
485 | for k := 0; k < t.NumField(); k++ { // 列 | 486 | for k := 0; k < t.NumField(); k++ { // 列 |
486 | switch k { | 487 | switch k { |
487 | case 3: // 退货日期校验 | 488 | case 3: // 退货日期校验 |
@@ -491,7 +492,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -491,7 +492,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
491 | if !ok { | 492 | if !ok { |
492 | tmpRow := &domain.FailReturnedInfo{ | 493 | tmpRow := &domain.FailReturnedInfo{ |
493 | FailReason: "退货日期格式错误,请输入正确的退货日期", | 494 | FailReason: "退货日期格式错误,请输入正确的退货日期", |
494 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 495 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[j], |
495 | } | 496 | } |
496 | myRow = append(myRow, tmpRow) | 497 | myRow = append(myRow, tmpRow) |
497 | continue | 498 | continue |
@@ -504,7 +505,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -504,7 +505,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
504 | if !ok { | 505 | if !ok { |
505 | tmpRow := &domain.FailReturnedInfo{ | 506 | tmpRow := &domain.FailReturnedInfo{ |
506 | FailReason: "订单日期格式错误,请输入正确的订单日期", | 507 | FailReason: "订单日期格式错误,请输入正确的订单日期", |
507 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 508 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[j], |
508 | } | 509 | } |
509 | myRow = append(myRow, tmpRow) | 510 | myRow = append(myRow, tmpRow) |
510 | continue | 511 | continue |
@@ -517,7 +518,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -517,7 +518,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
517 | if err != nil { | 518 | if err != nil { |
518 | tmpRow := &domain.FailReturnedInfo{ | 519 | tmpRow := &domain.FailReturnedInfo{ |
519 | FailReason: "退货数量格式错误,退货数量必须整数", | 520 | FailReason: "退货数量格式错误,退货数量必须整数", |
520 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 521 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[j], |
521 | } | 522 | } |
522 | myRow = append(myRow, tmpRow) | 523 | myRow = append(myRow, tmpRow) |
523 | continue | 524 | continue |
@@ -526,7 +527,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -526,7 +527,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
526 | if orderGoodQuantity < 0 { | 527 | if orderGoodQuantity < 0 { |
527 | tmpRow := &domain.FailReturnedInfo{ | 528 | tmpRow := &domain.FailReturnedInfo{ |
528 | FailReason: "退货数量必须大于0,请重新填写", | 529 | FailReason: "退货数量必须大于0,请重新填写", |
529 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 530 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[j], |
530 | } | 531 | } |
531 | myRow = append(myRow, tmpRow) | 532 | myRow = append(myRow, tmpRow) |
532 | continue | 533 | continue |
@@ -539,7 +540,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -539,7 +540,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
539 | if typeErr != nil { | 540 | if typeErr != nil { |
540 | tmpRow := &domain.FailReturnedInfo{ | 541 | tmpRow := &domain.FailReturnedInfo{ |
541 | FailReason: "退货价格格式错误,退货价格必须为数字类型", | 542 | FailReason: "退货价格格式错误,退货价格必须为数字类型", |
542 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 543 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[j], |
543 | } | 544 | } |
544 | myRow = append(myRow, tmpRow) | 545 | myRow = append(myRow, tmpRow) |
545 | continue | 546 | continue |
@@ -549,7 +550,17 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -549,7 +550,17 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
549 | if univalent >= 1e16 { | 550 | if univalent >= 1e16 { |
550 | tmpRow := &domain.FailReturnedInfo{ | 551 | tmpRow := &domain.FailReturnedInfo{ |
551 | FailReason: "退货价格超过最大限制,退货价格小数点前面不能超过十六位数字,并保留两位小数", | 552 | FailReason: "退货价格超过最大限制,退货价格小数点前面不能超过十六位数字,并保留两位小数", |
552 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 553 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[j], |
554 | + } | ||
555 | + myRow = append(myRow, tmpRow) | ||
556 | + continue | ||
557 | + } | ||
558 | + | ||
559 | + // 正负判断 | ||
560 | + if univalent < 0 { | ||
561 | + tmpRow := &domain.FailReturnedInfo{ | ||
562 | + FailReason: "退货价格必须大于0,请重新填写", | ||
563 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[j], | ||
553 | } | 564 | } |
554 | myRow = append(myRow, tmpRow) | 565 | myRow = append(myRow, tmpRow) |
555 | continue | 566 | continue |
@@ -581,7 +592,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -581,7 +592,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
581 | var dividendsReturnedOrderCommands = make(map[string]*command.CreateDividendsReturnedOrderCommand) | 592 | var dividendsReturnedOrderCommands = make(map[string]*command.CreateDividendsReturnedOrderCommand) |
582 | 593 | ||
583 | for i, dividendsReturnedOrder := range importDividendsReturnedOrderCommand.DividendsReturnedOrderData { | 594 | for i, dividendsReturnedOrder := range importDividendsReturnedOrderCommand.DividendsReturnedOrderData { |
584 | - hashValue := md5.Sum([]byte(dividendsReturnedOrder.OriginalOrderNum + dividendsReturnedOrder.OrderTime)) | 595 | + hashValue := md5.Sum([]byte(dividendsReturnedOrder.OriginalOrderNum + dividendsReturnedOrder.DividendsReturnedDate)) |
585 | hashString := hex.EncodeToString(hashValue[:]) | 596 | hashString := hex.EncodeToString(hashValue[:]) |
586 | if _, ok := dividendsReturnedOrderCommands[hashString]; !ok { | 597 | if _, ok := dividendsReturnedOrderCommands[hashString]; !ok { |
587 | // 订单日期时间格式转换 | 598 | // 订单日期时间格式转换 |
@@ -589,7 +600,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -589,7 +600,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
589 | if err != nil { | 600 | if err != nil { |
590 | tmpRow := &domain.FailReturnedInfo{ | 601 | tmpRow := &domain.FailReturnedInfo{ |
591 | FailReason: "无效的订单日期", | 602 | FailReason: "无效的订单日期", |
592 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 603 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[i], |
593 | } | 604 | } |
594 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 605 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
595 | continue | 606 | continue |
@@ -600,7 +611,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -600,7 +611,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
600 | if err != nil { | 611 | if err != nil { |
601 | tmpRow := &domain.FailReturnedInfo{ | 612 | tmpRow := &domain.FailReturnedInfo{ |
602 | FailReason: "无效的退货日期", | 613 | FailReason: "无效的退货日期", |
603 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 614 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[i], |
604 | } | 615 | } |
605 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 616 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
606 | continue | 617 | continue |
@@ -611,7 +622,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -611,7 +622,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
611 | if err != nil { | 622 | if err != nil { |
612 | tmpRow := &domain.FailReturnedInfo{ | 623 | tmpRow := &domain.FailReturnedInfo{ |
613 | FailReason: "产品数量类型错误", | 624 | FailReason: "产品数量类型错误", |
614 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 625 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[i], |
615 | } | 626 | } |
616 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 627 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
617 | continue | 628 | continue |
@@ -621,7 +632,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -621,7 +632,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
621 | if err != nil { | 632 | if err != nil { |
622 | tmpRow := &domain.FailReturnedInfo{ | 633 | tmpRow := &domain.FailReturnedInfo{ |
623 | FailReason: "产品价格类型错误", | 634 | FailReason: "产品价格类型错误", |
624 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 635 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[i], |
625 | } | 636 | } |
626 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 637 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
627 | continue | 638 | continue |
@@ -656,12 +667,23 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -656,12 +667,23 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
656 | LineNumbers: []int{i}, // 记录行号 | 667 | LineNumbers: []int{i}, // 记录行号 |
657 | } | 668 | } |
658 | } else { // 聚合同一笔订单产品 | 669 | } else { // 聚合同一笔订单产品 |
670 | + // 订单日期时间格式转换 | ||
671 | + timeValue, err := time.ParseInLocation("2006/01/02", dividendsReturnedOrder.OrderTime, time.Local) | ||
672 | + if err != nil { | ||
673 | + tmpRow := &domain.FailReturnedInfo{ | ||
674 | + FailReason: "无效的订单日期", | ||
675 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[i], | ||
676 | + } | ||
677 | + aggregateErrorList = append(aggregateErrorList, tmpRow) | ||
678 | + continue | ||
679 | + } | ||
680 | + | ||
659 | // 产品相关:产品名称,退货数量、退货价格 | 681 | // 产品相关:产品名称,退货数量、退货价格 |
660 | quantity, err := strconv.ParseFloat(dividendsReturnedOrder.OrderGoodQuantity, 64) | 682 | quantity, err := strconv.ParseFloat(dividendsReturnedOrder.OrderGoodQuantity, 64) |
661 | if err != nil { | 683 | if err != nil { |
662 | tmpRow := &domain.FailReturnedInfo{ | 684 | tmpRow := &domain.FailReturnedInfo{ |
663 | FailReason: "产品数量类型错误", | 685 | FailReason: "产品数量类型错误", |
664 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 686 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[i], |
665 | } | 687 | } |
666 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 688 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
667 | continue | 689 | continue |
@@ -671,7 +693,16 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -671,7 +693,16 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
671 | if err != nil { | 693 | if err != nil { |
672 | tmpRow := &domain.FailReturnedInfo{ | 694 | tmpRow := &domain.FailReturnedInfo{ |
673 | FailReason: "产品价格类型错误", | 695 | FailReason: "产品价格类型错误", |
674 | - ImportDividendsReturnedOrderData: ÷ndsReturnedOrder, | 696 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[i], |
697 | + } | ||
698 | + aggregateErrorList = append(aggregateErrorList, tmpRow) | ||
699 | + continue | ||
700 | + } | ||
701 | + | ||
702 | + if strconv.FormatInt(timeValue.Local().UnixNano()/1e6, 10) != dividendsReturnedOrderCommands[hashString].OrderTime { | ||
703 | + tmpRow := &domain.FailReturnedInfo{ | ||
704 | + FailReason: "同一来源单号的退货单,订单日期必须相同", | ||
705 | + ImportDividendsReturnedOrderData: &importDividendsReturnedOrderCommand.DividendsReturnedOrderData[i], | ||
675 | } | 706 | } |
676 | aggregateErrorList = append(aggregateErrorList, tmpRow) | 707 | aggregateErrorList = append(aggregateErrorList, tmpRow) |
677 | continue | 708 | continue |
@@ -844,12 +875,14 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -844,12 +875,14 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
844 | contractNumberExist := false | 875 | contractNumberExist := false |
845 | for _, cooperationContract := range cooperationContracts { | 876 | for _, cooperationContract := range cooperationContracts { |
846 | if orderGood.CooperationContractNumber == cooperationContract.CooperationContractNumber { | 877 | if orderGood.CooperationContractNumber == cooperationContract.CooperationContractNumber { |
847 | - contractNumberExist = true | ||
848 | - break | 878 | + if cooperationContract.Status == 1 { |
879 | + contractNumberExist = true | ||
880 | + break | ||
881 | + } | ||
849 | } | 882 | } |
850 | } | 883 | } |
851 | if !contractNumberExist { | 884 | if !contractNumberExist { |
852 | - orderGoodErrMap[dividendsReturnedOrder.OrderGoods[j].LineNumber] = "退货单产品关联的共创合约不存在" | 885 | + orderGoodErrMap[dividendsReturnedOrder.OrderGoods[j].LineNumber] = "退货单产品关联的共创合约不存在或已暂停" |
853 | continue | 886 | continue |
854 | } | 887 | } |
855 | 888 | ||
@@ -1113,6 +1146,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) BatchRemoveD | @@ -1113,6 +1146,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) BatchRemoveD | ||
1113 | } | 1146 | } |
1114 | if count, dividendsReturnedOrders, err := dividendsReturnedOrderRepository.Find(map[string]interface{}{ | 1147 | if count, dividendsReturnedOrders, err := dividendsReturnedOrderRepository.Find(map[string]interface{}{ |
1115 | "dividendsReturnedOrderIds": dividendsReturnedOrderIds, | 1148 | "dividendsReturnedOrderIds": dividendsReturnedOrderIds, |
1149 | + "offsetLimit": false, | ||
1116 | }); err != nil { | 1150 | }); err != nil { |
1117 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1151 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1118 | } else { | 1152 | } else { |
@@ -17,6 +17,9 @@ var USER_MODULE_HOST = "http://127.0.0.1:8081" | @@ -17,6 +17,9 @@ var USER_MODULE_HOST = "http://127.0.0.1:8081" | ||
17 | // BASIC_MODULE_HOST 基础服务模块 | 17 | // BASIC_MODULE_HOST 基础服务模块 |
18 | var BASIC_MODULE_HOST = "http://127.0.0.1:8080" | 18 | var BASIC_MODULE_HOST = "http://127.0.0.1:8080" |
19 | 19 | ||
20 | +// ENABLE_HTTPS 是否开启https访问 | ||
21 | +var ENABLE_HTTPS = "false" | ||
22 | + | ||
20 | func init() { | 23 | func init() { |
21 | if os.Getenv("LOG_TYPE") != "" { | 24 | if os.Getenv("LOG_TYPE") != "" { |
22 | LOG_TYPE = os.Getenv("LOG_TYPE") | 25 | LOG_TYPE = os.Getenv("LOG_TYPE") |
@@ -39,4 +42,7 @@ func init() { | @@ -39,4 +42,7 @@ func init() { | ||
39 | if os.Getenv("BASIC_MODULE_HOST") != "" { | 42 | if os.Getenv("BASIC_MODULE_HOST") != "" { |
40 | BASIC_MODULE_HOST = os.Getenv("BASIC_MODULE_HOST") | 43 | BASIC_MODULE_HOST = os.Getenv("BASIC_MODULE_HOST") |
41 | } | 44 | } |
45 | + if os.Getenv("ENABLE_HTTPS") != "" { | ||
46 | + ENABLE_HTTPS = os.Getenv("ENABLE_HTTPS") | ||
47 | + } | ||
42 | } | 48 | } |
@@ -78,6 +78,7 @@ type DividendsEstimateRepository interface { | @@ -78,6 +78,7 @@ type DividendsEstimateRepository interface { | ||
78 | SaveMany(dividendsEstimates []*DividendsEstimate) ([]*DividendsEstimate, error) | 78 | SaveMany(dividendsEstimates []*DividendsEstimate) ([]*DividendsEstimate, error) |
79 | UpdateMany(dividendsEstimates []*DividendsEstimate) ([]*DividendsEstimate, error) | 79 | UpdateMany(dividendsEstimates []*DividendsEstimate) ([]*DividendsEstimate, error) |
80 | Remove(dividendsEstimate *DividendsEstimate) (*DividendsEstimate, error) | 80 | Remove(dividendsEstimate *DividendsEstimate) (*DividendsEstimate, error) |
81 | + BatchRemove(dividendsEstimates []*DividendsEstimate) ([]*DividendsEstimate, error) | ||
81 | FindOne(queryOptions map[string]interface{}) (*DividendsEstimate, error) | 82 | FindOne(queryOptions map[string]interface{}) (*DividendsEstimate, error) |
82 | Find(queryOptions map[string]interface{}) (int64, []*DividendsEstimate, error) | 83 | Find(queryOptions map[string]interface{}) (int64, []*DividendsEstimate, error) |
83 | } | 84 | } |
@@ -17,6 +17,9 @@ type DividendsEstimateDetail struct { | @@ -17,6 +17,9 @@ type DividendsEstimateDetail struct { | ||
17 | IsSuccessfully bool `json:"isSuccessfully"` // 是否预算成功 | 17 | IsSuccessfully bool `json:"isSuccessfully"` // 是否预算成功 |
18 | Reason string `json:"reason"` // 错误原因 | 18 | Reason string `json:"reason"` // 错误原因 |
19 | CooperationContractUndertakerId int64 `json:"cooperationContractUndertakerId"` // 承接人记录ID | 19 | CooperationContractUndertakerId int64 `json:"cooperationContractUndertakerId"` // 承接人记录ID |
20 | + CooperationContractNumber string `json:"cooperationContractNumber"` | ||
21 | + OrderGoodId int64 `json:"orderGoodId"` | ||
22 | + OrderGoodAmount float64 `json:"orderGoodAmount"` | ||
20 | } | 23 | } |
21 | 24 | ||
22 | // GenerateSpecificDividendsEstimateNumber 批量生成自定义分红预算单号 | 25 | // GenerateSpecificDividendsEstimateNumber 批量生成自定义分红预算单号 |
@@ -43,5 +46,5 @@ func (DividendsEstimateDetail *DividendsEstimateDetail) GenerateSpecificDividend | @@ -43,5 +46,5 @@ func (DividendsEstimateDetail *DividendsEstimateDetail) GenerateSpecificDividend | ||
43 | 46 | ||
44 | type ConfirmDividendsIncentivesEstimateService interface { | 47 | type ConfirmDividendsIncentivesEstimateService interface { |
45 | coreDomain.DomainEventPublisher | 48 | coreDomain.DomainEventPublisher |
46 | - Confirm(orderGoods []*domain.OrderGood) ([]*DividendsEstimateDetail, error) | 49 | + Confirm(orderGoods []*domain.OrderGood, companyId int64, orgId int64, cooperationContractsMap map[string]*domain.CooperationContract) ([]*DividendsEstimateDetail, error) |
47 | } | 50 | } |
不能预览此文件类型
@@ -144,6 +144,16 @@ func (dao *CooperationContractDao) SearchCooperationContractByUndertaker(queryOp | @@ -144,6 +144,16 @@ func (dao *CooperationContractDao) SearchCooperationContractByUndertaker(queryOp | ||
144 | if sponsorName, ok := queryOptions["sponsorName"]; ok && sponsorName != "" { | 144 | if sponsorName, ok := queryOptions["sponsorName"]; ok && sponsorName != "" { |
145 | query = query.Where(`A.cooperation_contract_sponsor->>'userName')::text LIKE ?`, fmt.Sprintf("%%%s%%", sponsorName)) | 145 | query = query.Where(`A.cooperation_contract_sponsor->>'userName')::text LIKE ?`, fmt.Sprintf("%%%s%%", sponsorName)) |
146 | } | 146 | } |
147 | + if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | ||
148 | + query.Where("A.company->>'companyId' = '?'", companyId) | ||
149 | + } | ||
150 | + if orgId, ok := queryOptions["orgId"]; ok && orgId.(int64) != 0 { | ||
151 | + query.Where("A.org->>'orgId' = '?'", orgId) | ||
152 | + } | ||
153 | + if orgIds, ok := queryOptions["orgIds"]; ok && len(orgIds.([]int64)) > 0 { | ||
154 | + newOrgIds := utils.SliceItoa(orgIds.([]int64)) | ||
155 | + query.Where("A.org->>'orgId' in (?)", pg.In(newOrgIds)) | ||
156 | + } | ||
147 | query.Join("JOIN cooperation_contracts AS A ON A.cooperation_contract_number = cooperation_contract_undertaker.cooperation_contract_number") | 157 | query.Join("JOIN cooperation_contracts AS A ON A.cooperation_contract_number = cooperation_contract_undertaker.cooperation_contract_number") |
148 | query.Join("JOIN cooperation_modes AS B ON B.cooperation_mode_number = A.cooperation_mode_number") | 158 | query.Join("JOIN cooperation_modes AS B ON B.cooperation_mode_number = A.cooperation_mode_number") |
149 | query = query.Order("cooperation_contract_undertaker_id DESC") | 159 | query = query.Order("cooperation_contract_undertaker_id DESC") |
@@ -147,9 +147,9 @@ func (dao *CreditAccountDao) CooperationUsersDividendsStatistics(queryOptions ma | @@ -147,9 +147,9 @@ func (dao *CreditAccountDao) CooperationUsersDividendsStatistics(queryOptions ma | ||
147 | if v, ok := queryOptions["sortByActuallyPaidAmount"]; ok { | 147 | if v, ok := queryOptions["sortByActuallyPaidAmount"]; ok { |
148 | vInt := v.(int) | 148 | vInt := v.(int) |
149 | if vInt == 1 { | 149 | if vInt == 1 { |
150 | - query.Order("divides_amount asc") | 150 | + query.Order("actually_paid_amount asc") |
151 | } else { | 151 | } else { |
152 | - query.Order("divides_amount desc") | 152 | + query.Order("actually_paid_amount desc") |
153 | } | 153 | } |
154 | } | 154 | } |
155 | query.GroupExpr("participator->>'userId'") | 155 | query.GroupExpr("participator->>'userId'") |
@@ -26,7 +26,7 @@ func (dao *DividendsEstimateDao) GenerateDividendsEstimateNumber(queryOptions ma | @@ -26,7 +26,7 @@ func (dao *DividendsEstimateDao) GenerateDividendsEstimateNumber(queryOptions ma | ||
26 | if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | 26 | if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { |
27 | query = query.Where(`dividends_estimate.company @> '{"companyId":"?"}'`, companyId) | 27 | query = query.Where(`dividends_estimate.company @> '{"companyId":"?"}'`, companyId) |
28 | } | 28 | } |
29 | - if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { | 29 | + if count, err := query.AllWithDeleted().Count(); err != nil { |
30 | return "", err | 30 | return "", err |
31 | } else { | 31 | } else { |
32 | if count < 1000 { | 32 | if count < 1000 { |
@@ -68,6 +68,31 @@ func (dao *DividendsEstimateDao) CheckDividendsEstimateOrderNumberAvailable(quer | @@ -68,6 +68,31 @@ func (dao *DividendsEstimateDao) CheckDividendsEstimateOrderNumberAvailable(quer | ||
68 | return !ok, err | 68 | return !ok, err |
69 | } | 69 | } |
70 | 70 | ||
71 | +// CheckDividendsEstimateOrderExist 判断是否存在分红预算单 | ||
72 | +func (dao *DividendsEstimateDao) CheckDividendsEstimateOrderExist(queryOptions map[string]interface{}) (bool, error) { | ||
73 | + tx := dao.transactionContext.PgTx | ||
74 | + var dividendsEstimateModels []*models.DividendsEstimate | ||
75 | + query := tx.Model(÷ndsEstimateModels) | ||
76 | + if orderOrReturnedOrderNum, ok := queryOptions["orderOrReturnedOrderNum"]; ok && orderOrReturnedOrderNum != "" { | ||
77 | + query = query.Where("order_or_returned_order_num = ?", orderOrReturnedOrderNum) | ||
78 | + } | ||
79 | + if isCanceled, ok := queryOptions["isCanceled"]; ok { | ||
80 | + query.Where("is_canceled = ?", isCanceled.(bool)) | ||
81 | + } | ||
82 | + if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | ||
83 | + query = query.Where(`dividends_estimate.company @> '{"companyId":"?"}'`, companyId) | ||
84 | + } | ||
85 | + if orgId, ok := queryOptions["orgId"]; ok && orgId.(int64) != 0 { | ||
86 | + query = query.Where(`dividends_estimate.org @> '{"orgId":"?"}'`, orgId) | ||
87 | + } | ||
88 | + count, err := query.Count() | ||
89 | + if count > 0 { | ||
90 | + return true, err | ||
91 | + } else { | ||
92 | + return false, err | ||
93 | + } | ||
94 | +} | ||
95 | + | ||
71 | // UserEstimated 判断金额激励用户是否已分红(已生成分红预算单) | 96 | // UserEstimated 判断金额激励用户是否已分红(已生成分红预算单) |
72 | func (dao *DividendsEstimateDao) UserEstimated(queryOptions map[string]interface{}) (bool, error) { | 97 | func (dao *DividendsEstimateDao) UserEstimated(queryOptions map[string]interface{}) (bool, error) { |
73 | tx := dao.transactionContext.PgTx | 98 | tx := dao.transactionContext.PgTx |
@@ -118,7 +143,7 @@ func (dao *DividendsEstimateDao) CountDividendsEstimate(queryOptions map[string] | @@ -118,7 +143,7 @@ func (dao *DividendsEstimateDao) CountDividendsEstimate(queryOptions map[string] | ||
118 | if orgId, ok := queryOptions["orgId"]; ok && orgId.(int64) != 0 { | 143 | if orgId, ok := queryOptions["orgId"]; ok && orgId.(int64) != 0 { |
119 | query = query.Where(`dividends_estimate.org @> '{"orgId":"?"}'`, orgId) | 144 | query = query.Where(`dividends_estimate.org @> '{"orgId":"?"}'`, orgId) |
120 | } | 145 | } |
121 | - if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { | 146 | + if count, err := query.AllWithDeleted().Count(); err != nil { |
122 | return 0, err | 147 | return 0, err |
123 | } else { | 148 | } else { |
124 | return count, nil | 149 | return count, nil |
@@ -104,7 +104,7 @@ func (dao *DividendsOrderDao) CountDividendsOrder(queryOptions map[string]interf | @@ -104,7 +104,7 @@ func (dao *DividendsOrderDao) CountDividendsOrder(queryOptions map[string]interf | ||
104 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) | 104 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) |
105 | query.Where("dividends_order.created_at >= ?", todayZeroTime) | 105 | query.Where("dividends_order.created_at >= ?", todayZeroTime) |
106 | query.Where("dividends_order.created_at < ?", nextDayZeroTime) | 106 | query.Where("dividends_order.created_at < ?", nextDayZeroTime) |
107 | - if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { | 107 | + if count, err := query.AllWithDeleted().Count(); err != nil { |
108 | return 0, err | 108 | return 0, err |
109 | } else { | 109 | } else { |
110 | return count, nil | 110 | return count, nil |
@@ -38,6 +38,28 @@ func (dao *DividendsReturnedOrderDao) GenerateDividendsReturnedOrderNumber(query | @@ -38,6 +38,28 @@ func (dao *DividendsReturnedOrderDao) GenerateDividendsReturnedOrderNumber(query | ||
38 | } | 38 | } |
39 | } | 39 | } |
40 | 40 | ||
41 | +// CheckDividendsEstimateOrderExist 判断是否存在分红预算单 | ||
42 | +func (dao *DividendsReturnedOrderDao) CheckDividendsReturnedOrderExist(queryOptions map[string]interface{}) (bool, error) { | ||
43 | + tx := dao.transactionContext.PgTx | ||
44 | + var dividendsReturnedOrderModels []*models.DividendsReturnedOrder | ||
45 | + query := tx.Model(÷ndsReturnedOrderModels) | ||
46 | + if dividendsOrderNumber, ok := queryOptions["dividendsOrderNumber"]; ok && dividendsOrderNumber != "" { | ||
47 | + query = query.Where("dividends_order_number = ?", dividendsOrderNumber) | ||
48 | + } | ||
49 | + if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | ||
50 | + query = query.Where(`dividends_returned_order.company @> '{"companyId":"?"}'`, companyId) | ||
51 | + } | ||
52 | + if orgId, ok := queryOptions["orgId"]; ok && orgId.(int64) != 0 { | ||
53 | + query = query.Where(`dividends_returned_order.org @> '{"orgId":"?"}'`, orgId) | ||
54 | + } | ||
55 | + count, err := query.Count() | ||
56 | + if count > 0 { | ||
57 | + return true, err | ||
58 | + } else { | ||
59 | + return false, err | ||
60 | + } | ||
61 | +} | ||
62 | + | ||
41 | // CheckDividendsReturnedOrderNumberAvailable 校验分红订单是否唯一 | 63 | // CheckDividendsReturnedOrderNumberAvailable 校验分红订单是否唯一 |
42 | func (dao *DividendsReturnedOrderDao) CheckDividendsReturnedOrderNumberAvailable(queryOptions map[string]interface{}) (bool, error) { | 64 | func (dao *DividendsReturnedOrderDao) CheckDividendsReturnedOrderNumberAvailable(queryOptions map[string]interface{}) (bool, error) { |
43 | tx := dao.transactionContext.PgTx | 65 | tx := dao.transactionContext.PgTx |
@@ -91,7 +113,7 @@ func (dao *DividendsReturnedOrderDao) CountDividendsReturnedOrder(queryOptions m | @@ -91,7 +113,7 @@ func (dao *DividendsReturnedOrderDao) CountDividendsReturnedOrder(queryOptions m | ||
91 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) | 113 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) |
92 | query.Where("dividends_returned_order.created_at >= ?", todayZeroTime) | 114 | query.Where("dividends_returned_order.created_at >= ?", todayZeroTime) |
93 | query.Where("dividends_returned_order.created_at < ?", nextDayZeroTime) | 115 | query.Where("dividends_returned_order.created_at < ?", nextDayZeroTime) |
94 | - if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { | 116 | + if count, err := query.AllWithDeleted().Count(); err != nil { |
95 | return 0, err | 117 | return 0, err |
96 | } else { | 118 | } else { |
97 | return count, nil | 119 | return count, nil |
@@ -32,7 +32,7 @@ func (dao *OrderGoodDao) CooperationGoodsStatistics(queryOptions map[string]inte | @@ -32,7 +32,7 @@ func (dao *OrderGoodDao) CooperationGoodsStatistics(queryOptions map[string]inte | ||
32 | if v, ok := queryOptions["limit"]; ok { | 32 | if v, ok := queryOptions["limit"]; ok { |
33 | queryLimit += fmt.Sprintf("limit %v \n", v) | 33 | queryLimit += fmt.Sprintf("limit %v \n", v) |
34 | } | 34 | } |
35 | - sql := fmt.Sprintf(`select order_good_name good_name,sum(coalesce(order_good_amount,0)) good_amount from order_goods | 35 | + sql := fmt.Sprintf(`select order_good_name good_name,sum(coalesce(case when dividends_order_number is not null then order_good_amount else -order_good_amount end,0)) good_amount from order_goods |
36 | where company_id=? and org_id = ? and deleted_at is null %v | 36 | where company_id=? and org_id = ? and deleted_at is null %v |
37 | GROUP BY order_good_name | 37 | GROUP BY order_good_name |
38 | order by good_amount desc | 38 | order by good_amount desc |
@@ -8,6 +8,7 @@ import ( | @@ -8,6 +8,7 @@ import ( | ||
8 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain" | 8 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain" |
9 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/repository" | 9 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/repository" |
10 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils" | 10 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils" |
11 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/log" | ||
11 | ) | 12 | ) |
12 | 13 | ||
13 | type CancelDividendsEstimateService struct { | 14 | type CancelDividendsEstimateService struct { |
@@ -20,7 +21,12 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -20,7 +21,12 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
20 | var dividendsOrderRepository domain.DividendsOrderRepository // 分红订单仓储 | 21 | var dividendsOrderRepository domain.DividendsOrderRepository // 分红订单仓储 |
21 | var dividendsReturnedOrderRepository domain.DividendsReturnedOrderRepository // 分红退货单仓储 | 22 | var dividendsReturnedOrderRepository domain.DividendsReturnedOrderRepository // 分红退货单仓储 |
22 | var orderGoodRepository domain.OrderGoodRepository // 订单产品仓储 | 23 | var orderGoodRepository domain.OrderGoodRepository // 订单产品仓储 |
23 | - //var cooperationContactRepository domain.CooperationContractRepository // 合约仓储 | 24 | + |
25 | + type orderGoodInfo struct { | ||
26 | + OrderGoodId int64 | ||
27 | + CompanyId int64 | ||
28 | + OrgId int64 | ||
29 | + } | ||
24 | 30 | ||
25 | // 分红预算单仓储初始化 | 31 | // 分红预算单仓储初始化 |
26 | if repo, err := repository.NewDividendsEstimateRepository(domainService.transactionContext); err != nil { | 32 | if repo, err := repository.NewDividendsEstimateRepository(domainService.transactionContext); err != nil { |
@@ -50,16 +56,10 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -50,16 +56,10 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
50 | orderGoodRepository = repo | 56 | orderGoodRepository = repo |
51 | } | 57 | } |
52 | 58 | ||
53 | - // 共创合约仓储初始化 | ||
54 | - //if repo, err := repository.NewCooperationContractRepository(domainService.transactionContext); err != nil { | ||
55 | - // return nil, err | ||
56 | - //} else { | ||
57 | - // cooperationContactRepository = repo | ||
58 | - //} | ||
59 | - | ||
60 | // 获取分红预算单 | 59 | // 获取分红预算单 |
61 | if count, dividendsEstimates, err := dividendsEstimateRepository.Find(map[string]interface{}{ | 60 | if count, dividendsEstimates, err := dividendsEstimateRepository.Find(map[string]interface{}{ |
62 | "dividendsEstimateIds": dividendsEstimateIds, | 61 | "dividendsEstimateIds": dividendsEstimateIds, |
62 | + "offsetLimit": false, | ||
63 | }); err != nil { | 63 | }); err != nil { |
64 | return nil, err | 64 | return nil, err |
65 | } else { | 65 | } else { |
@@ -67,6 +67,7 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -67,6 +67,7 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
67 | var dividendsEstimatesCanceled []*domain.DividendsEstimate | 67 | var dividendsEstimatesCanceled []*domain.DividendsEstimate |
68 | var orderOrReturnOrderNums []string | 68 | var orderOrReturnOrderNums []string |
69 | var orderGoodIds []int64 | 69 | var orderGoodIds []int64 |
70 | + orderGoodMaps := make(map[string][]int64, 0) | ||
70 | for _, dividendsEstimate := range dividendsEstimates { | 71 | for _, dividendsEstimate := range dividendsEstimates { |
71 | if dividendsEstimate.DividendsType == 1 || dividendsEstimate.DividendsType == 2 { // 1.订单分红 2.退货冲销 | 72 | if dividendsEstimate.DividendsType == 1 || dividendsEstimate.DividendsType == 2 { // 1.订单分红 2.退货冲销 |
72 | // 根据当前分红预算单的分红订单号或退货单号获取相关的分红预算单 | 73 | // 根据当前分红预算单的分红订单号或退货单号获取相关的分红预算单 |
@@ -90,7 +91,9 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -90,7 +91,9 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
90 | // 获取相关订单/退货单号 | 91 | // 获取相关订单/退货单号 |
91 | orderOrReturnOrderNums = append(orderOrReturnOrderNums, dividendsEstimatesRelative[i].OrderOrReturnedOrderNum) | 92 | orderOrReturnOrderNums = append(orderOrReturnOrderNums, dividendsEstimatesRelative[i].OrderOrReturnedOrderNum) |
92 | orderGoodIds = append(orderGoodIds, dividendsEstimatesRelative[i].OrderGoodId) | 93 | orderGoodIds = append(orderGoodIds, dividendsEstimatesRelative[i].OrderGoodId) |
94 | + orderGoodMaps[dividendsEstimatesRelative[i].OrderOrReturnedOrderNum] = append(orderGoodMaps[dividendsEstimatesRelative[i].OrderOrReturnedOrderNum], dividendsEstimatesRelative[i].OrderGoodId) | ||
93 | } | 95 | } |
96 | + //dividendsEstimatesRelativeCanceled, err3 := dividendsEstimateRepository.BatchRemove(dividendsEstimatesRelative) | ||
94 | dividendsEstimatesRelativeCanceled, err3 := dividendsEstimateRepository.UpdateMany(dividendsEstimatesRelative) | 97 | dividendsEstimatesRelativeCanceled, err3 := dividendsEstimateRepository.UpdateMany(dividendsEstimatesRelative) |
95 | if err3 != nil { | 98 | if err3 != nil { |
96 | return nil, err3 | 99 | return nil, err3 |
@@ -117,6 +120,7 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -117,6 +120,7 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
117 | dividendsEstimatesRelative[i].IsCanceled = true | 120 | dividendsEstimatesRelative[i].IsCanceled = true |
118 | dividendsEstimatesRelative[i].Operator = operator | 121 | dividendsEstimatesRelative[i].Operator = operator |
119 | } | 122 | } |
123 | + //dividendsEstimatesRelativeCanceled, err4 := dividendsEstimateRepository.BatchRemove(dividendsEstimatesRelative) | ||
120 | dividendsEstimatesRelativeCanceled, err4 := dividendsEstimateRepository.UpdateMany(dividendsEstimatesRelative) | 124 | dividendsEstimatesRelativeCanceled, err4 := dividendsEstimateRepository.UpdateMany(dividendsEstimatesRelative) |
121 | if err4 != nil { | 125 | if err4 != nil { |
122 | return nil, err4 | 126 | return nil, err4 |
@@ -154,23 +158,26 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -154,23 +158,26 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
154 | "companyId": dividendsEstimates[0].Company.CompanyId, | 158 | "companyId": dividendsEstimates[0].Company.CompanyId, |
155 | "orgId": dividendsEstimates[0].Org.OrgId, | 159 | "orgId": dividendsEstimates[0].Org.OrgId, |
156 | "dividendsOrderNumbers": orderNums, | 160 | "dividendsOrderNumbers": orderNums, |
161 | + "offsetLimit": false, | ||
157 | }); err4 != nil { | 162 | }); err4 != nil { |
158 | return nil, err4 | 163 | return nil, err4 |
159 | } else { | 164 | } else { |
160 | - // orderGoodIds去重 | ||
161 | - newOrderGoodIds := utils.RemoveDuplicationInt64(orderGoodIds) | ||
162 | - | ||
163 | if countDividendsOrder > 0 { | 165 | if countDividendsOrder > 0 { |
164 | for i, order := range orders { | 166 | for i, order := range orders { |
165 | - goods := make([]*domain.OrderGood, 0) | 167 | + // 取消分红的订单产品 |
168 | + newOrderGoodIds := utils.RemoveDuplicationInt64(orderGoodMaps[order.DividendsOrderNumber]) | ||
169 | + var goodIds []int64 | ||
166 | for _, good := range order.Goods { | 170 | for _, good := range order.Goods { |
167 | if good.OrderGoodDividendsStatus == 2 { | 171 | if good.OrderGoodDividendsStatus == 2 { |
168 | - goods = append(goods, good) | 172 | + goodIds = append(goodIds, good.OrderGoodId) |
169 | } | 173 | } |
170 | } | 174 | } |
171 | - if len(goods) == len(newOrderGoodIds) { // 1.已分红的产品数量等于取消的产品数量,订单分红状态变更为未分红 | 175 | + // goodIds去重 |
176 | + newGoodIds := utils.RemoveDuplicationInt64(goodIds) | ||
177 | + log.Logger.Info("") | ||
178 | + if len(newGoodIds) == len(newOrderGoodIds) { // 1.已分红的产品数量等于取消的产品数量,订单分红状态变更为未分红 | ||
172 | orders[i].DividendStatus = 1 | 179 | orders[i].DividendStatus = 1 |
173 | - } else if len(goods) > len(newOrderGoodIds) { // 3.已分红的产品数量大于被取消分红的产品数量,订单分红状态变更为部分分红 | 180 | + } else if len(newGoodIds) > len(newOrderGoodIds) { // 3.已分红的产品数量大于被取消分红的产品数量,订单分红状态变更为部分分红 |
174 | orders[i].DividendStatus = 3 | 181 | orders[i].DividendStatus = 3 |
175 | } | 182 | } |
176 | orders[i].DividendStatus = order.DividendStatus | 183 | orders[i].DividendStatus = order.DividendStatus |
@@ -193,6 +200,7 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -193,6 +200,7 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
193 | "orderGoodIds": orderGoodIds, | 200 | "orderGoodIds": orderGoodIds, |
194 | "companyId": dividendsEstimates[0].Company.CompanyId, | 201 | "companyId": dividendsEstimates[0].Company.CompanyId, |
195 | "orgId": dividendsEstimates[0].Org.OrgId, | 202 | "orgId": dividendsEstimates[0].Org.OrgId, |
203 | + "offsetLimit": false, | ||
196 | }); err != nil { | 204 | }); err != nil { |
197 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 205 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
198 | } else { | 206 | } else { |
@@ -216,24 +224,25 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -216,24 +224,25 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
216 | "companyId": dividendsEstimates[0].Company.CompanyId, | 224 | "companyId": dividendsEstimates[0].Company.CompanyId, |
217 | "orgId": dividendsEstimates[0].Org.OrgId, | 225 | "orgId": dividendsEstimates[0].Org.OrgId, |
218 | "dividendsReturnedOrderNumbers": returnedOrderNums, | 226 | "dividendsReturnedOrderNumbers": returnedOrderNums, |
227 | + "offsetLimit": false, | ||
219 | }); err5 != nil { | 228 | }); err5 != nil { |
220 | return nil, err5 | 229 | return nil, err5 |
221 | } else { | 230 | } else { |
222 | - // orderGoodIds去重 | ||
223 | - newReturnedOrderGoodIds := utils.RemoveDuplicationInt64(orderGoodIds) | ||
224 | - | ||
225 | if countDividendsReturnedOrder > 0 { | 231 | if countDividendsReturnedOrder > 0 { |
226 | for i, returnedOrder := range returnedOrders { | 232 | for i, returnedOrder := range returnedOrders { |
227 | - goods := make([]*domain.OrderGood, 0) | 233 | + // 已取消的退货单产品 |
234 | + newReturnedOrderGoodIds := utils.RemoveDuplicationInt64(orderGoodMaps[returnedOrder.DividendsReturnedOrderNumber]) | ||
235 | + var goodIds []int64 | ||
228 | for _, good := range returnedOrder.Goods { | 236 | for _, good := range returnedOrder.Goods { |
229 | if good.OrderGoodDividendsStatus == 2 { | 237 | if good.OrderGoodDividendsStatus == 2 { |
230 | - goods = append(goods, good) | 238 | + goodIds = append(goodIds, good.OrderGoodId) |
231 | } | 239 | } |
232 | } | 240 | } |
233 | - | ||
234 | - if len(goods) == len(newReturnedOrderGoodIds) { // 1.已分红的产品数量等于取消的产品数量,退货单分红状态变更为未分红 | 241 | + // goodIds去重 |
242 | + newGoodIds := utils.RemoveDuplicationInt64(goodIds) | ||
243 | + if len(newGoodIds) == len(newReturnedOrderGoodIds) { // 1.已分红的产品数量等于取消的产品数量,退货单分红状态变更为未分红 | ||
235 | returnedOrders[i].DividendStatus = 1 | 244 | returnedOrders[i].DividendStatus = 1 |
236 | - } else if len(goods) > len(newReturnedOrderGoodIds) { // 3.已分红的产品数量大于被取消分红的产品数量,退货单分红状态变更为部分分红 | 245 | + } else if len(newGoodIds) > len(newReturnedOrderGoodIds) { // 3.已分红的产品数量大于被取消分红的产品数量,退货单分红状态变更为部分分红 |
237 | returnedOrders[i].DividendStatus = 3 | 246 | returnedOrders[i].DividendStatus = 3 |
238 | } | 247 | } |
239 | returnedOrders[i].DividendStatus = returnedOrder.DividendStatus | 248 | returnedOrders[i].DividendStatus = returnedOrder.DividendStatus |
@@ -256,6 +265,7 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | @@ -256,6 +265,7 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst | ||
256 | "orderGoodIds": orderGoodIds, | 265 | "orderGoodIds": orderGoodIds, |
257 | "companyId": dividendsEstimates[0].Company.CompanyId, | 266 | "companyId": dividendsEstimates[0].Company.CompanyId, |
258 | "orgId": dividendsEstimates[0].Org.OrgId, | 267 | "orgId": dividendsEstimates[0].Org.OrgId, |
268 | + "offsetLimit": false, | ||
259 | }); err != nil { | 269 | }); err != nil { |
260 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 270 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
261 | } else { | 271 | } else { |
@@ -8,7 +8,6 @@ import ( | @@ -8,7 +8,6 @@ import ( | ||
8 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain" | 8 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain" |
9 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service" | 9 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service" |
10 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/repository" | 10 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/repository" |
11 | - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/log" | ||
12 | ) | 11 | ) |
13 | 12 | ||
14 | type ConfirmDividendsIncentivesEstimateService struct { | 13 | type ConfirmDividendsIncentivesEstimateService struct { |
@@ -17,26 +16,10 @@ type ConfirmDividendsIncentivesEstimateService struct { | @@ -17,26 +16,10 @@ type ConfirmDividendsIncentivesEstimateService struct { | ||
17 | } | 16 | } |
18 | 17 | ||
19 | // Confirm 确认业绩分红预算 | 18 | // Confirm 确认业绩分红预算 |
20 | -func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoods []*domain.OrderGood) ([]*service.DividendsEstimateDetail, error) { | ||
21 | - var cooperationContractRepository domain.CooperationContractRepository // 共创合约仓储 | ||
22 | - var cooperationProjectRepository domain.CooperationProjectRepository // 共创项目仓储 | 19 | +func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoods []*domain.OrderGood, companyId int64, orgId int64, cooperationContractsMap map[string]*domain.CooperationContract) ([]*service.DividendsEstimateDetail, error) { |
23 | var dividendsOrderRepository domain.DividendsOrderRepository // 分红订单仓储 | 20 | var dividendsOrderRepository domain.DividendsOrderRepository // 分红订单仓储 |
24 | var dividendsReturnedOrderRepository domain.DividendsReturnedOrderRepository // 分红退货单仓储 | 21 | var dividendsReturnedOrderRepository domain.DividendsReturnedOrderRepository // 分红退货单仓储 |
25 | 22 | ||
26 | - // 共创合约仓储初始化 | ||
27 | - if repo, err := repository.NewCooperationContractRepository(domainService.transactionContext); err != nil { | ||
28 | - return nil, err | ||
29 | - } else { | ||
30 | - cooperationContractRepository = repo | ||
31 | - } | ||
32 | - | ||
33 | - // 共创项目仓储初始化 | ||
34 | - if repo, err := repository.NewCooperationProjectRepository(domainService.transactionContext); err != nil { | ||
35 | - return nil, err | ||
36 | - } else { | ||
37 | - cooperationProjectRepository = repo | ||
38 | - } | ||
39 | - | ||
40 | // 分红订单仓储初始化 | 23 | // 分红订单仓储初始化 |
41 | if repo, err := repository.NewDividendsOrderRepository(domainService.transactionContext); err != nil { | 24 | if repo, err := repository.NewDividendsOrderRepository(domainService.transactionContext); err != nil { |
42 | return nil, err | 25 | return nil, err |
@@ -54,17 +37,7 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -54,17 +37,7 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
54 | // 确认业绩分红预算 | 37 | // 确认业绩分红预算 |
55 | var dividendsEstimateDetails []*service.DividendsEstimateDetail | 38 | var dividendsEstimateDetails []*service.DividendsEstimateDetail |
56 | for _, orderGood := range orderGoods { | 39 | for _, orderGood := range orderGoods { |
57 | - log.Logger.Info("业绩分红预算产品", map[string]interface{}{ | ||
58 | - "orderGood": orderGood, | ||
59 | - }) | ||
60 | - | ||
61 | - // 获取合约 | ||
62 | - cooperationContract, err := cooperationContractRepository.FindOne(map[string]interface{}{ | ||
63 | - "cooperationContractNumber": orderGood.CooperationContractNumber, | ||
64 | - "companyId": orderGood.CompanyId, | ||
65 | - "orgId": orderGood.OrgId, | ||
66 | - }) | ||
67 | - if err != nil { | 40 | + if orderGood.CooperationContractNumber == "" { |
68 | var orderNumber string | 41 | var orderNumber string |
69 | if orderGood.DividendsOrderNumber != "" { | 42 | if orderGood.DividendsOrderNumber != "" { |
70 | orderNumber = orderGood.DividendsOrderNumber | 43 | orderNumber = orderGood.DividendsOrderNumber |
@@ -78,11 +51,14 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -78,11 +51,14 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
78 | DividendsAmount: 0, | 51 | DividendsAmount: 0, |
79 | OrderOrReturnedOrderNumber: orderNumber, | 52 | OrderOrReturnedOrderNumber: orderNumber, |
80 | IsSuccessfully: false, | 53 | IsSuccessfully: false, |
81 | - Reason: "共创合约错误", | 54 | + Reason: "产品未关联合约,不能进行分红预算", |
82 | }) | 55 | }) |
83 | continue | 56 | continue |
84 | } | 57 | } |
85 | - if cooperationContract == nil { | 58 | + |
59 | + // 获取合约 | ||
60 | + var cooperationContract *domain.CooperationContract | ||
61 | + if _, ok := cooperationContractsMap[orderGood.CooperationContractNumber]; !ok { | ||
86 | var orderNumber string | 62 | var orderNumber string |
87 | if orderGood.DividendsOrderNumber != "" { | 63 | if orderGood.DividendsOrderNumber != "" { |
88 | orderNumber = orderGood.DividendsOrderNumber | 64 | orderNumber = orderGood.DividendsOrderNumber |
@@ -100,9 +76,7 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -100,9 +76,7 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
100 | }) | 76 | }) |
101 | continue | 77 | continue |
102 | } else { | 78 | } else { |
103 | - log.Logger.Info("产品相关的合约", map[string]interface{}{ | ||
104 | - "cooperationContract": cooperationContract, | ||
105 | - }) | 79 | + cooperationContract = cooperationContractsMap[orderGood.CooperationContractNumber] |
106 | if cooperationContract.Status == 2 { | 80 | if cooperationContract.Status == 2 { |
107 | var orderNumber string | 81 | var orderNumber string |
108 | if orderGood.DividendsOrderNumber != "" { | 82 | if orderGood.DividendsOrderNumber != "" { |
@@ -123,51 +97,6 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -123,51 +97,6 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
123 | } | 97 | } |
124 | } | 98 | } |
125 | 99 | ||
126 | - // 获取共创项目 | ||
127 | - if cooperationContract.CooperationProjectNumber != "" { | ||
128 | - cooperationProject, err := cooperationProjectRepository.FindOne(map[string]interface{}{ | ||
129 | - "cooperationProjectNumber": cooperationContract.CooperationProjectNumber, | ||
130 | - "companyId": cooperationContract.Company.CompanyId, | ||
131 | - "orgId": cooperationContract.Org.OrgId, | ||
132 | - }) | ||
133 | - if err != nil { | ||
134 | - var orderNumber string | ||
135 | - if orderGood.DividendsOrderNumber != "" { | ||
136 | - orderNumber = orderGood.DividendsOrderNumber | ||
137 | - } else { | ||
138 | - orderNumber = orderGood.DividendsReturnedOrderNumber | ||
139 | - } | ||
140 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
141 | - DividendsUser: nil, | ||
142 | - DividendsParticipateType: 0, | ||
143 | - DividendsStage: 0, | ||
144 | - DividendsAmount: 0, | ||
145 | - OrderOrReturnedOrderNumber: orderNumber, | ||
146 | - IsSuccessfully: false, | ||
147 | - Reason: "共创项目" + cooperationContract.CooperationProjectNumber + "查询错误", | ||
148 | - }) | ||
149 | - continue | ||
150 | - } | ||
151 | - if cooperationProject == nil { | ||
152 | - var orderNumber string | ||
153 | - if orderGood.DividendsOrderNumber != "" { | ||
154 | - orderNumber = orderGood.DividendsOrderNumber | ||
155 | - } else { | ||
156 | - orderNumber = orderGood.DividendsReturnedOrderNumber | ||
157 | - } | ||
158 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
159 | - DividendsUser: nil, | ||
160 | - DividendsParticipateType: 0, | ||
161 | - DividendsStage: 0, | ||
162 | - DividendsAmount: 0, | ||
163 | - OrderOrReturnedOrderNumber: orderNumber, | ||
164 | - IsSuccessfully: false, | ||
165 | - Reason: "共创项目" + cooperationContract.CooperationProjectNumber + "已结束或不存在", | ||
166 | - }) | ||
167 | - continue | ||
168 | - } | ||
169 | - } | ||
170 | - | ||
171 | if orderGood.DividendsOrderNumber != "" { // 获取分红订单 | 100 | if orderGood.DividendsOrderNumber != "" { // 获取分红订单 |
172 | // 获取分红订单 | 101 | // 获取分红订单 |
173 | dividendsOrder, err2 := dividendsOrderRepository.FindOne(map[string]interface{}{ | 102 | dividendsOrder, err2 := dividendsOrderRepository.FindOne(map[string]interface{}{ |
@@ -250,6 +179,9 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -250,6 +179,9 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
250 | IsSuccessfully: true, | 179 | IsSuccessfully: true, |
251 | CooperationContractUndertakerId: undertaker.UndertakerId, | 180 | CooperationContractUndertakerId: undertaker.UndertakerId, |
252 | DividendsPercentage: dividendsIncentivesRuleMatched.DividendsIncentivesPercentage, | 181 | DividendsPercentage: dividendsIncentivesRuleMatched.DividendsIncentivesPercentage, |
182 | + CooperationContractNumber: orderGood.CooperationContractNumber, | ||
183 | + OrderGoodId: orderGood.OrderGoodId, | ||
184 | + OrderGoodAmount: orderGood.OrderGoodAmount, | ||
253 | }) | 185 | }) |
254 | } | 186 | } |
255 | // 添加推荐人分红预算信息详情 | 187 | // 添加推荐人分红预算信息详情 |
@@ -277,6 +209,9 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -277,6 +209,9 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
277 | IsSuccessfully: true, | 209 | IsSuccessfully: true, |
278 | CooperationContractUndertakerId: undertaker.UndertakerId, | 210 | CooperationContractUndertakerId: undertaker.UndertakerId, |
279 | DividendsPercentage: dividendsIncentivesRuleMatched.ReferrerPercentage, | 211 | DividendsPercentage: dividendsIncentivesRuleMatched.ReferrerPercentage, |
212 | + CooperationContractNumber: orderGood.CooperationContractNumber, | ||
213 | + OrderGoodId: orderGood.OrderGoodId, | ||
214 | + OrderGoodAmount: orderGood.OrderGoodAmount, | ||
280 | }) | 215 | }) |
281 | } | 216 | } |
282 | } | 217 | } |
@@ -305,6 +240,9 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -305,6 +240,9 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
305 | IsSuccessfully: true, | 240 | IsSuccessfully: true, |
306 | CooperationContractUndertakerId: undertaker.UndertakerId, | 241 | CooperationContractUndertakerId: undertaker.UndertakerId, |
307 | DividendsPercentage: dividendsIncentivesRuleMatched.SalesmanPercentage, | 242 | DividendsPercentage: dividendsIncentivesRuleMatched.SalesmanPercentage, |
243 | + CooperationContractNumber: orderGood.CooperationContractNumber, | ||
244 | + OrderGoodId: orderGood.OrderGoodId, | ||
245 | + OrderGoodAmount: orderGood.OrderGoodAmount, | ||
308 | }) | 246 | }) |
309 | } | 247 | } |
310 | } | 248 | } |
@@ -350,95 +288,118 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | @@ -350,95 +288,118 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo | ||
350 | } | 288 | } |
351 | } | 289 | } |
352 | // 计算分红 | 290 | // 计算分红 |
353 | - for _, undertaker := range cooperationContract.Undertakers { | ||
354 | - // 添加承接人分红退货预算信息详情 | ||
355 | - if dividendsIncentivesRuleMatched.DividendsIncentivesPercentage > 0 { | ||
356 | - undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
357 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
358 | - DividendsUser: &domain.User{ | ||
359 | - UserId: undertaker.UserId, | ||
360 | - UserBaseId: undertaker.UserBaseId, | ||
361 | - Org: undertaker.Org, | ||
362 | - Orgs: undertaker.Orgs, | ||
363 | - Department: undertaker.Department, | ||
364 | - Roles: undertaker.Roles, | ||
365 | - UserInfo: undertaker.UserInfo, | ||
366 | - UserType: undertaker.UserType, | ||
367 | - UserName: undertaker.UserInfo.UserName, | ||
368 | - UserPhone: undertaker.UserPhone, | ||
369 | - Status: undertaker.Status, | ||
370 | - Company: undertaker.Company, | ||
371 | - }, | ||
372 | - DividendsParticipateType: domain.UNDERTAKER, | ||
373 | - DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | ||
374 | - DividendsAmount: -undertakerDividendsAmount, | ||
375 | - OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | ||
376 | - IsSuccessfully: true, | ||
377 | - CooperationContractUndertakerId: undertaker.UndertakerId, | ||
378 | - DividendsPercentage: dividendsIncentivesRuleMatched.DividendsIncentivesPercentage, | ||
379 | - }) | ||
380 | - } | ||
381 | - | ||
382 | - // 添加推荐人分红退货预算信息详情 | ||
383 | - if undertaker.Referrer != nil { | ||
384 | - if dividendsIncentivesRuleMatched.ReferrerPercentage > 0 { | ||
385 | - referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64() | 291 | + if len(cooperationContract.Undertakers) <= 0 { |
292 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
293 | + DividendsUser: nil, | ||
294 | + DividendsParticipateType: 0, | ||
295 | + DividendsStage: 0, | ||
296 | + DividendsAmount: 0, | ||
297 | + OrderOrReturnedOrderNumber: orderGood.DividendsReturnedOrderNumber, | ||
298 | + IsSuccessfully: false, | ||
299 | + Reason: "合约承接人不存在", | ||
300 | + }) | ||
301 | + continue | ||
302 | + } else { | ||
303 | + for _, undertaker := range cooperationContract.Undertakers { | ||
304 | + // 添加承接人分红退货预算信息详情 | ||
305 | + if dividendsIncentivesRuleMatched.DividendsIncentivesPercentage > 0 { | ||
306 | + undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
386 | dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | 307 | dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ |
387 | DividendsUser: &domain.User{ | 308 | DividendsUser: &domain.User{ |
388 | - UserId: undertaker.Referrer.UserId, | ||
389 | - UserBaseId: undertaker.Referrer.UserBaseId, | ||
390 | - Org: undertaker.Referrer.Org, | ||
391 | - Orgs: undertaker.Referrer.Orgs, | ||
392 | - Department: undertaker.Referrer.Department, | ||
393 | - Roles: undertaker.Referrer.Roles, | ||
394 | - UserInfo: undertaker.Referrer.UserInfo, | ||
395 | - UserType: undertaker.Referrer.UserType, | ||
396 | - UserName: undertaker.Referrer.UserName, | ||
397 | - UserPhone: undertaker.Referrer.UserPhone, | ||
398 | - Company: undertaker.Referrer.Company, | 309 | + UserId: undertaker.UserId, |
310 | + UserBaseId: undertaker.UserBaseId, | ||
311 | + Org: undertaker.Org, | ||
312 | + Orgs: undertaker.Orgs, | ||
313 | + Department: undertaker.Department, | ||
314 | + Roles: undertaker.Roles, | ||
315 | + UserInfo: undertaker.UserInfo, | ||
316 | + UserType: undertaker.UserType, | ||
317 | + UserName: undertaker.UserInfo.UserName, | ||
318 | + UserPhone: undertaker.UserPhone, | ||
319 | + Status: undertaker.Status, | ||
320 | + Company: undertaker.Company, | ||
399 | }, | 321 | }, |
400 | - DividendsParticipateType: domain.REFERRER, | 322 | + DividendsParticipateType: domain.UNDERTAKER, |
401 | DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | 323 | DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, |
402 | - DividendsAmount: -referrerDividendsAmount, | 324 | + DividendsAmount: -undertakerDividendsAmount, |
403 | OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | 325 | OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, |
404 | IsSuccessfully: true, | 326 | IsSuccessfully: true, |
405 | CooperationContractUndertakerId: undertaker.UndertakerId, | 327 | CooperationContractUndertakerId: undertaker.UndertakerId, |
406 | - DividendsPercentage: dividendsIncentivesRuleMatched.ReferrerPercentage, | 328 | + DividendsPercentage: dividendsIncentivesRuleMatched.DividendsIncentivesPercentage, |
329 | + CooperationContractNumber: orderGood.CooperationContractNumber, | ||
330 | + OrderGoodId: orderGood.OrderGoodId, | ||
331 | + OrderGoodAmount: orderGood.OrderGoodAmount, | ||
407 | }) | 332 | }) |
408 | } | 333 | } |
409 | - } | ||
410 | 334 | ||
411 | - // 添加关联业务员分红退货预算信息详情 | ||
412 | - if undertaker.Salesman != nil { | ||
413 | - if dividendsIncentivesRuleMatched.SalesmanPercentage > 0 { | ||
414 | - salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
415 | - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
416 | - DividendsUser: &domain.User{ | ||
417 | - UserId: undertaker.Salesman.UserId, | ||
418 | - UserBaseId: undertaker.Salesman.UserBaseId, | ||
419 | - Org: undertaker.Salesman.Org, | ||
420 | - Orgs: undertaker.Salesman.Orgs, | ||
421 | - Department: undertaker.Salesman.Department, | ||
422 | - Roles: undertaker.Salesman.Roles, | ||
423 | - UserInfo: undertaker.Salesman.UserInfo, | ||
424 | - UserType: undertaker.Salesman.UserType, | ||
425 | - UserName: undertaker.Salesman.UserInfo.UserName, | ||
426 | - UserPhone: undertaker.Salesman.UserPhone, | ||
427 | - Company: undertaker.Salesman.Company, | ||
428 | - }, | ||
429 | - DividendsParticipateType: domain.SALESMAN, | ||
430 | - DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | ||
431 | - DividendsAmount: -salesmanDividendsAmount, | ||
432 | - OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | ||
433 | - IsSuccessfully: true, | ||
434 | - CooperationContractUndertakerId: undertaker.UndertakerId, | ||
435 | - DividendsPercentage: dividendsIncentivesRuleMatched.SalesmanPercentage, | ||
436 | - }) | 335 | + // 添加推荐人分红退货预算信息详情 |
336 | + if undertaker.Referrer != nil { | ||
337 | + if dividendsIncentivesRuleMatched.ReferrerPercentage > 0 { | ||
338 | + referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
339 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
340 | + DividendsUser: &domain.User{ | ||
341 | + UserId: undertaker.Referrer.UserId, | ||
342 | + UserBaseId: undertaker.Referrer.UserBaseId, | ||
343 | + Org: undertaker.Referrer.Org, | ||
344 | + Orgs: undertaker.Referrer.Orgs, | ||
345 | + Department: undertaker.Referrer.Department, | ||
346 | + Roles: undertaker.Referrer.Roles, | ||
347 | + UserInfo: undertaker.Referrer.UserInfo, | ||
348 | + UserType: undertaker.Referrer.UserType, | ||
349 | + UserName: undertaker.Referrer.UserName, | ||
350 | + UserPhone: undertaker.Referrer.UserPhone, | ||
351 | + Company: undertaker.Referrer.Company, | ||
352 | + }, | ||
353 | + DividendsParticipateType: domain.REFERRER, | ||
354 | + DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | ||
355 | + DividendsAmount: -referrerDividendsAmount, | ||
356 | + OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | ||
357 | + IsSuccessfully: true, | ||
358 | + CooperationContractUndertakerId: undertaker.UndertakerId, | ||
359 | + DividendsPercentage: dividendsIncentivesRuleMatched.ReferrerPercentage, | ||
360 | + CooperationContractNumber: orderGood.CooperationContractNumber, | ||
361 | + OrderGoodId: orderGood.OrderGoodId, | ||
362 | + OrderGoodAmount: orderGood.OrderGoodAmount, | ||
363 | + }) | ||
364 | + } | ||
365 | + } | ||
366 | + | ||
367 | + // 添加关联业务员分红退货预算信息详情 | ||
368 | + if undertaker.Salesman != nil { | ||
369 | + if dividendsIncentivesRuleMatched.SalesmanPercentage > 0 { | ||
370 | + salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64() | ||
371 | + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ | ||
372 | + DividendsUser: &domain.User{ | ||
373 | + UserId: undertaker.Salesman.UserId, | ||
374 | + UserBaseId: undertaker.Salesman.UserBaseId, | ||
375 | + Org: undertaker.Salesman.Org, | ||
376 | + Orgs: undertaker.Salesman.Orgs, | ||
377 | + Department: undertaker.Salesman.Department, | ||
378 | + Roles: undertaker.Salesman.Roles, | ||
379 | + UserInfo: undertaker.Salesman.UserInfo, | ||
380 | + UserType: undertaker.Salesman.UserType, | ||
381 | + UserName: undertaker.Salesman.UserInfo.UserName, | ||
382 | + UserPhone: undertaker.Salesman.UserPhone, | ||
383 | + Company: undertaker.Salesman.Company, | ||
384 | + }, | ||
385 | + DividendsParticipateType: domain.SALESMAN, | ||
386 | + DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, | ||
387 | + DividendsAmount: -salesmanDividendsAmount, | ||
388 | + OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber, | ||
389 | + IsSuccessfully: true, | ||
390 | + CooperationContractUndertakerId: undertaker.UndertakerId, | ||
391 | + DividendsPercentage: dividendsIncentivesRuleMatched.SalesmanPercentage, | ||
392 | + CooperationContractNumber: orderGood.CooperationContractNumber, | ||
393 | + OrderGoodId: orderGood.OrderGoodId, | ||
394 | + OrderGoodAmount: orderGood.OrderGoodAmount, | ||
395 | + }) | ||
396 | + } | ||
437 | } | 397 | } |
438 | } | 398 | } |
439 | } | 399 | } |
440 | } | 400 | } |
441 | } | 401 | } |
402 | + | ||
442 | return dividendsEstimateDetails, nil | 403 | return dividendsEstimateDetails, nil |
443 | } | 404 | } |
444 | 405 |
@@ -68,7 +68,7 @@ func (ptr *CooperationStatisticsService) CooperationGoodsStatistics(queryOptions | @@ -68,7 +68,7 @@ func (ptr *CooperationStatisticsService) CooperationGoodsStatistics(queryOptions | ||
68 | // 2.计算百分比 | 68 | // 2.计算百分比 |
69 | var totalAmount float64 | 69 | var totalAmount float64 |
70 | for i := range goods { | 70 | for i := range goods { |
71 | - goods[i].Rank = int32(i + 1) | 71 | + goods[i].Rank = int32(i+1) + int32(request.Offset) |
72 | totalAmount += goods[i].GoodAmount | 72 | totalAmount += goods[i].GoodAmount |
73 | } | 73 | } |
74 | for i := range goods { | 74 | for i := range goods { |
@@ -655,8 +655,16 @@ func (ptr *CooperationStatisticsService) PaymentHistoryHistogramStatistics(query | @@ -655,8 +655,16 @@ func (ptr *CooperationStatisticsService) PaymentHistoryHistogramStatistics(query | ||
655 | // 按关联相关人过滤 | 655 | // 按关联相关人过滤 |
656 | var contractNumbers []string | 656 | var contractNumbers []string |
657 | var err error | 657 | var err error |
658 | + var retMap = map[string]interface{}{ | ||
659 | + "xAxis": map[string]interface{}{ | ||
660 | + "data": []string{}, | ||
661 | + }, | ||
662 | + "source": map[string]interface{}{ | ||
663 | + "value": []float64{}, | ||
664 | + }, | ||
665 | + } | ||
658 | if request.UserBaseId > 0 { | 666 | if request.UserBaseId > 0 { |
659 | - var retMap = make([]interface{}, 0) | 667 | + |
660 | contractNumbers, err = ptr.getUnderTakerContracts(map[string]interface{}{"userId": request.UserId}) | 668 | contractNumbers, err = ptr.getUnderTakerContracts(map[string]interface{}{"userId": request.UserId}) |
661 | if len(contractNumbers) == 0 { | 669 | if len(contractNumbers) == 0 { |
662 | return retMap, nil | 670 | return retMap, nil |
@@ -666,7 +674,6 @@ func (ptr *CooperationStatisticsService) PaymentHistoryHistogramStatistics(query | @@ -666,7 +674,6 @@ func (ptr *CooperationStatisticsService) PaymentHistoryHistogramStatistics(query | ||
666 | } | 674 | } |
667 | queryOptions["cooperationContractNumbers"] = contractNumbers | 675 | queryOptions["cooperationContractNumbers"] = contractNumbers |
668 | } else if request.UserId > 0 && request.OrgId > 0 { | 676 | } else if request.UserId > 0 && request.OrgId > 0 { |
669 | - var retMap = make([]interface{}, 0) | ||
670 | contractNumbers, err = ptr.getRelevantContracts(map[string]interface{}{"userId": request.UserId}) | 677 | contractNumbers, err = ptr.getRelevantContracts(map[string]interface{}{"userId": request.UserId}) |
671 | if len(contractNumbers) == 0 { | 678 | if len(contractNumbers) == 0 { |
672 | return retMap, nil | 679 | return retMap, nil |
@@ -693,7 +700,13 @@ func (ptr *CooperationStatisticsService) PaymentHistoryHistogramStatistics(query | @@ -693,7 +700,13 @@ func (ptr *CooperationStatisticsService) PaymentHistoryHistogramStatistics(query | ||
693 | } | 700 | } |
694 | queryOptions["paymentBeginTime"] = item.BeginTime | 701 | queryOptions["paymentBeginTime"] = item.BeginTime |
695 | queryOptions["paymentEndTime"] = item.EndTime | 702 | queryOptions["paymentEndTime"] = item.EndTime |
696 | - if err := creditAccountDao.DividendsStatistics(queryOptions, dividends); err != nil { | 703 | + if err := creditAccountDao.DividendsStatistics(map[string]interface{}{ |
704 | + "orgId": request.OrgId, | ||
705 | + "userBaseId": request.UserBaseId, | ||
706 | + "cooperationContractNumbers": contractNumbers, | ||
707 | + "paymentBeginTime": item.BeginTime, | ||
708 | + "paymentEndTime": item.EndTime, | ||
709 | + }, dividends); err != nil { | ||
697 | return nil, err | 710 | return nil, err |
698 | } | 711 | } |
699 | values = append(values, dividends.Paid) | 712 | values = append(values, dividends.Paid) |
@@ -367,6 +367,10 @@ func (ptr *CooperationStatisticsService) GetContractDividends(queryOptions map[s | @@ -367,6 +367,10 @@ func (ptr *CooperationStatisticsService) GetContractDividends(queryOptions map[s | ||
367 | if a.DividendsPercentage > 0 { | 367 | if a.DividendsPercentage > 0 { |
368 | item["dividendsRatio"] = a.DividendsPercentage | 368 | item["dividendsRatio"] = a.DividendsPercentage |
369 | } | 369 | } |
370 | + // 金额激励承接人分红比例百分百,业务员 推荐人按设定的比例 | ||
371 | + if a.DividendsType == 3 && a.DividendsPercentage == 0 { | ||
372 | + item["dividendsRatio"] = 100 | ||
373 | + } | ||
370 | dividends = append(dividends, item) | 374 | dividends = append(dividends, item) |
371 | } | 375 | } |
372 | res["dividends"] = dividends | 376 | res["dividends"] = dividends |
@@ -424,7 +428,12 @@ func (ptr *CooperationStatisticsService) DividendsStatistics(queryOptions map[st | @@ -424,7 +428,12 @@ func (ptr *CooperationStatisticsService) DividendsStatistics(queryOptions map[st | ||
424 | if err := dividendsEstimateDao.DividendsEstimateStatistics(queryOptions, allDividendsEstimate); err != nil { | 428 | if err := dividendsEstimateDao.DividendsEstimateStatistics(queryOptions, allDividendsEstimate); err != nil { |
425 | return nil, err | 429 | return nil, err |
426 | } | 430 | } |
427 | - if err := creditAccountDao.DividendsStatistics(queryOptions, allDividends); err != nil { | 431 | + if err := creditAccountDao.DividendsStatistics(map[string]interface{}{ |
432 | + "companyId": request.CompanyId, | ||
433 | + "orgId": request.OrgId, | ||
434 | + "userBaseId": request.UserBaseId, | ||
435 | + "cooperationContractNumbers": contractNumbers, | ||
436 | + }, allDividends); err != nil { | ||
428 | return nil, err | 437 | return nil, err |
429 | } | 438 | } |
430 | allDividendsEstimate.Paid = allDividends.Paid | 439 | allDividendsEstimate.Paid = allDividends.Paid |
@@ -435,12 +444,12 @@ func (ptr *CooperationStatisticsService) DividendsStatistics(queryOptions map[st | @@ -435,12 +444,12 @@ func (ptr *CooperationStatisticsService) DividendsStatistics(queryOptions map[st | ||
435 | return nil, err | 444 | return nil, err |
436 | } | 445 | } |
437 | if err := creditAccountDao.DividendsStatistics(map[string]interface{}{ | 446 | if err := creditAccountDao.DividendsStatistics(map[string]interface{}{ |
438 | - "companyId": request.CompanyId, | ||
439 | - "orgId": request.OrgId, | ||
440 | - "userId": request.UserId, | ||
441 | - "userBaseId": request.UserBaseId, | ||
442 | - "paymentBeginTime": queryOptions["beginTime"], | ||
443 | - "paymentEndTime": queryOptions["endTime"], | 447 | + "companyId": request.CompanyId, |
448 | + "orgId": request.OrgId, | ||
449 | + "userBaseId": request.UserBaseId, | ||
450 | + "paymentBeginTime": queryOptions["beginTime"], | ||
451 | + "paymentEndTime": queryOptions["endTime"], | ||
452 | + "cooperationContractNumbers": contractNumbers, | ||
444 | }, annualDividends); err != nil { | 453 | }, annualDividends); err != nil { |
445 | return nil, err | 454 | return nil, err |
446 | } | 455 | } |
@@ -451,12 +460,12 @@ func (ptr *CooperationStatisticsService) DividendsStatistics(queryOptions map[st | @@ -451,12 +460,12 @@ func (ptr *CooperationStatisticsService) DividendsStatistics(queryOptions map[st | ||
451 | return nil, err | 460 | return nil, err |
452 | } | 461 | } |
453 | if err := creditAccountDao.DividendsStatistics(map[string]interface{}{ | 462 | if err := creditAccountDao.DividendsStatistics(map[string]interface{}{ |
454 | - "companyId": request.CompanyId, | ||
455 | - "orgId": request.OrgId, | ||
456 | - "userId": request.UserId, | ||
457 | - "userBaseId": request.UserBaseId, | ||
458 | - "paymentBeginTime": queryOptions["beginTime"], | ||
459 | - "paymentEndTime": queryOptions["endTime"], | 463 | + "companyId": request.CompanyId, |
464 | + "orgId": request.OrgId, | ||
465 | + "userBaseId": request.UserBaseId, | ||
466 | + "paymentBeginTime": queryOptions["beginTime"], | ||
467 | + "paymentEndTime": queryOptions["endTime"], | ||
468 | + "cooperationContractNumbers": contractNumbers, | ||
460 | }, quarterDividends); err != nil { | 469 | }, quarterDividends); err != nil { |
461 | return nil, err | 470 | return nil, err |
462 | } | 471 | } |
@@ -9,7 +9,6 @@ import ( | @@ -9,7 +9,6 @@ import ( | ||
9 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models" | 9 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models" |
10 | _ "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models" | 10 | _ "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models" |
11 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/log" | 11 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/log" |
12 | - | ||
13 | rawlog "log" | 12 | rawlog "log" |
14 | ) | 13 | ) |
15 | 14 |
@@ -15,9 +15,9 @@ func TransformToCooperationContractChangeLogDomainModelFromPgModels(cooperationC | @@ -15,9 +15,9 @@ func TransformToCooperationContractChangeLogDomainModelFromPgModels(cooperationC | ||
15 | Company: cooperationContractChangeLogModel.Company, | 15 | Company: cooperationContractChangeLogModel.Company, |
16 | Org: cooperationContractChangeLogModel.Org, | 16 | Org: cooperationContractChangeLogModel.Org, |
17 | Operator: cooperationContractChangeLogModel.Operator, | 17 | Operator: cooperationContractChangeLogModel.Operator, |
18 | - OperatorTime: cooperationContractChangeLogModel.OperatorTime, | 18 | + OperatorTime: cooperationContractChangeLogModel.OperatorTime.Local(), |
19 | UpdatedAt: cooperationContractChangeLogModel.UpdatedAt, | 19 | UpdatedAt: cooperationContractChangeLogModel.UpdatedAt, |
20 | DeletedAt: cooperationContractChangeLogModel.DeletedAt, | 20 | DeletedAt: cooperationContractChangeLogModel.DeletedAt, |
21 | - CreatedAt: cooperationContractChangeLogModel.CreatedAt, | 21 | + CreatedAt: cooperationContractChangeLogModel.CreatedAt.Local(), |
22 | }, nil | 22 | }, nil |
23 | } | 23 | } |
@@ -164,8 +164,10 @@ func (repository *CooperationApplicationRepository) UpdateMany(cooperationApplic | @@ -164,8 +164,10 @@ func (repository *CooperationApplicationRepository) UpdateMany(cooperationApplic | ||
164 | UpdatedAt: time.Now(), | 164 | UpdatedAt: time.Now(), |
165 | }) | 165 | }) |
166 | } | 166 | } |
167 | - if _, err := tx.Model(&cooperationApplicationModels).WherePK().Update(); err != nil { | ||
168 | - return nil, err | 167 | + if len(cooperationApplicationModels) > 0 { |
168 | + if _, err := tx.Model(&cooperationApplicationModels).WherePK().Update(); err != nil { | ||
169 | + return nil, err | ||
170 | + } | ||
169 | } | 171 | } |
170 | return cooperationApplications, nil | 172 | return cooperationApplications, nil |
171 | } | 173 | } |
@@ -51,7 +51,7 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai | @@ -51,7 +51,7 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai | ||
51 | updateFields := sqlbuilder.RemoveSqlFields(sqlBuildFields, "cooperationContract_id") | 51 | updateFields := sqlbuilder.RemoveSqlFields(sqlBuildFields, "cooperationContract_id") |
52 | updateFieldsSnippet := sqlbuilder.SqlUpdateFieldsSnippet(updateFields) | 52 | updateFieldsSnippet := sqlbuilder.SqlUpdateFieldsSnippet(updateFields) |
53 | tx := repository.transactionContext.PgTx | 53 | tx := repository.transactionContext.PgTx |
54 | - if cooperationContract.Identify() == nil { | 54 | + if cooperationContract.Identify() == nil { // 新增合约 |
55 | cooperationContractId, err := repository.nextIdentify() | 55 | cooperationContractId, err := repository.nextIdentify() |
56 | if err != nil { | 56 | if err != nil { |
57 | return cooperationContract, err | 57 | return cooperationContract, err |
@@ -256,7 +256,7 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai | @@ -256,7 +256,7 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai | ||
256 | return nil, err | 256 | return nil, err |
257 | } | 257 | } |
258 | } | 258 | } |
259 | - } else { | 259 | + } else { // 编辑合约 |
260 | if _, err := tx.QueryOne( | 260 | if _, err := tx.QueryOne( |
261 | pg.Scan( | 261 | pg.Scan( |
262 | &cooperationContract.CooperationContractId, | 262 | &cooperationContract.CooperationContractId, |
@@ -823,13 +823,6 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai | @@ -823,13 +823,6 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai | ||
823 | } | 823 | } |
824 | } | 824 | } |
825 | } | 825 | } |
826 | - // 返回新增的合约 | ||
827 | - //cooperationContractSaved, err := repository.FindOne(map[string]interface{}{ | ||
828 | - // "cooperationContractId": cooperationContract.CooperationContractId, | ||
829 | - //}) | ||
830 | - //if err != nil { | ||
831 | - // return nil, err | ||
832 | - //} | ||
833 | return cooperationContract, nil | 826 | return cooperationContract, nil |
834 | } | 827 | } |
835 | 828 | ||
@@ -1111,7 +1104,8 @@ func (repository *CooperationContractRepository) FindOne(queryOptions map[string | @@ -1111,7 +1104,8 @@ func (repository *CooperationContractRepository) FindOne(queryOptions map[string | ||
1111 | if err := cooperationContractUndertakerQuery. | 1104 | if err := cooperationContractUndertakerQuery. |
1112 | Where("company->>'companyId' = '?'", cooperationContractModel.Company.CompanyId). | 1105 | Where("company->>'companyId' = '?'", cooperationContractModel.Company.CompanyId). |
1113 | Where("org->>'orgId' = '?'", cooperationContractModel.Org.OrgId). | 1106 | Where("org->>'orgId' = '?'", cooperationContractModel.Org.OrgId). |
1114 | - Where("cooperation_contract_id = ?", cooperationContractModel.CooperationContractId). | 1107 | + //Where("cooperation_contract_id = ?", cooperationContractModel.CooperationContractId). |
1108 | + Where("cooperation_contract_number = ?", cooperationContractModel.CooperationContractNumber). | ||
1115 | Select(); err != nil { | 1109 | Select(); err != nil { |
1116 | return nil, fmt.Errorf("合约承接人不存在") | 1110 | return nil, fmt.Errorf("合约承接人不存在") |
1117 | } | 1111 | } |
@@ -1149,6 +1143,9 @@ func (repository *CooperationContractRepository) Find(queryOptions map[string]in | @@ -1149,6 +1143,9 @@ func (repository *CooperationContractRepository) Find(queryOptions map[string]in | ||
1149 | if cooperationContractName, ok := queryOptions["cooperationContractName"]; ok && cooperationContractName != "" { | 1143 | if cooperationContractName, ok := queryOptions["cooperationContractName"]; ok && cooperationContractName != "" { |
1150 | query.Where("cooperation_contract_name like ?", fmt.Sprintf("%%%s%%", cooperationContractName)) | 1144 | query.Where("cooperation_contract_name like ?", fmt.Sprintf("%%%s%%", cooperationContractName)) |
1151 | } | 1145 | } |
1146 | + if cooperationProjectNumber, ok := queryOptions["cooperationProjectNumber"]; ok && cooperationProjectNumber != "" { | ||
1147 | + query.Where("cooperation_project_number = ?", cooperationProjectNumber) | ||
1148 | + } | ||
1152 | if departmentName, ok := queryOptions["departmentName"]; ok && departmentName != "" { | 1149 | if departmentName, ok := queryOptions["departmentName"]; ok && departmentName != "" { |
1153 | query.Where(`(cooperation_contract.department->>'departmentName')::text LIKE ?`, fmt.Sprintf("%%%s%%", departmentName)) | 1150 | query.Where(`(cooperation_contract.department->>'departmentName')::text LIKE ?`, fmt.Sprintf("%%%s%%", departmentName)) |
1154 | } | 1151 | } |
@@ -276,29 +276,37 @@ func (repository *CooperationProjectRepository) Find(queryOptions map[string]int | @@ -276,29 +276,37 @@ func (repository *CooperationProjectRepository) Find(queryOptions map[string]int | ||
276 | return q, nil | 276 | return q, nil |
277 | }) | 277 | }) |
278 | } | 278 | } |
279 | - if searchCooperationProjectExtQueries, ok := queryOptions["searchCooperationProjectExtQueries"]; ok && len(searchCooperationProjectExtQueries.([]*query2.SearchCooperationProjectExtQuery)) > 0 { | ||
280 | - for _, searchCooperationProjectExtQuery := range searchCooperationProjectExtQueries.([]*query2.SearchCooperationProjectExtQuery) { | ||
281 | - query.WhereOrGroup(func(q *orm.Query) (*orm.Query, error) { | ||
282 | - if searchCooperationProjectExtQuery.ExtCompanyId != 0 { | ||
283 | - q.Where("company->>'companyId' = '?'", searchCooperationProjectExtQuery.ExtCompanyId) | ||
284 | - } | ||
285 | - if searchCooperationProjectExtQuery.ExtOrgId != 0 { | ||
286 | - q.Where("org->>'orgId' = '?'", searchCooperationProjectExtQuery.ExtOrgId) | ||
287 | - } | ||
288 | - if len(searchCooperationProjectExtQuery.ExtOrgIds) > 0 { | ||
289 | - newOrgIds := utils.SliceItoa(searchCooperationProjectExtQuery.ExtOrgIds) | ||
290 | - q.Where("org->>'orgId' in (?)", pg.In(newOrgIds)) | ||
291 | - } | ||
292 | - if len(searchCooperationProjectExtQuery.ExtCooperationProjectUndertakerTypes) > 0 { | ||
293 | - q.WhereGroup(func(q *orm.Query) (*orm.Query, error) { | ||
294 | - for _, cooperationProjectUndertakerType := range searchCooperationProjectExtQuery.ExtCooperationProjectUndertakerTypes { | ||
295 | - q.WhereOr(`cooperation_project.cooperation_project_undertaker_types @> '{?}'`, cooperationProjectUndertakerType) | 279 | + if searchCooperationProjectExtQueriesFlag, ok := queryOptions["searchCooperationProjectExtQueriesFlag"]; ok && searchCooperationProjectExtQueriesFlag.(int) != 0 { |
280 | + if searchCooperationProjectExtQueries, ok := queryOptions["searchCooperationProjectExtQueries"]; ok && len(searchCooperationProjectExtQueries.([]*query2.SearchCooperationProjectExtQuery)) > 0 { | ||
281 | + query.WhereGroup(func(q *orm.Query) (*orm.Query, error) { | ||
282 | + for _, searchCooperationProjectExtQuery := range searchCooperationProjectExtQueries.([]*query2.SearchCooperationProjectExtQuery) { | ||
283 | + query.WhereOrGroup(func(q *orm.Query) (*orm.Query, error) { | ||
284 | + if searchCooperationProjectExtQuery.ExtCompanyId != 0 { | ||
285 | + q.Where("company->>'companyId' = '?'", searchCooperationProjectExtQuery.ExtCompanyId) | ||
286 | + } | ||
287 | + if searchCooperationProjectExtQuery.ExtOrgId != 0 { | ||
288 | + q.Where("org->>'orgId' = '?'", searchCooperationProjectExtQuery.ExtOrgId) | ||
289 | + } | ||
290 | + if len(searchCooperationProjectExtQuery.ExtOrgIds) > 0 { | ||
291 | + newOrgIds := utils.SliceItoa(searchCooperationProjectExtQuery.ExtOrgIds) | ||
292 | + q.Where("org->>'orgId' in (?)", pg.In(newOrgIds)) | ||
293 | + } | ||
294 | + if len(searchCooperationProjectExtQuery.ExtCooperationProjectUndertakerTypes) > 0 { | ||
295 | + q.WhereGroup(func(q *orm.Query) (*orm.Query, error) { | ||
296 | + for _, cooperationProjectUndertakerType := range searchCooperationProjectExtQuery.ExtCooperationProjectUndertakerTypes { | ||
297 | + q.WhereOr(`cooperation_project.cooperation_project_undertaker_types @> '{?}'`, cooperationProjectUndertakerType) | ||
298 | + } | ||
299 | + return q, nil | ||
300 | + }) | ||
296 | } | 301 | } |
297 | return q, nil | 302 | return q, nil |
298 | }) | 303 | }) |
299 | } | 304 | } |
305 | + query.WhereOr(`cooperation_project.cooperation_project_undertaker_types @> '{?}'`, 3) //公开 | ||
300 | return q, nil | 306 | return q, nil |
301 | }) | 307 | }) |
308 | + } else { | ||
309 | + query.Where(`cooperation_project.cooperation_project_undertaker_types @> '{?}'`, 3) //公开 | ||
302 | } | 310 | } |
303 | } | 311 | } |
304 | if departmentName, ok := queryOptions["departmentName"]; ok && departmentName != "" { | 312 | if departmentName, ok := queryOptions["departmentName"]; ok && departmentName != "" { |
@@ -223,15 +223,16 @@ func (repository *DividendsEstimateRepository) SaveMany(dividendsEstimates []*do | @@ -223,15 +223,16 @@ func (repository *DividendsEstimateRepository) SaveMany(dividendsEstimates []*do | ||
223 | if _, err := tx.Model(÷ndsEstimateModels).Insert(); err != nil { | 223 | if _, err := tx.Model(÷ndsEstimateModels).Insert(); err != nil { |
224 | return nil, err | 224 | return nil, err |
225 | } | 225 | } |
226 | - var dividendsEstimatesSaved []*domain.DividendsEstimate | ||
227 | - for _, dividendsEstimateModel := range dividendsEstimateModels { | ||
228 | - if dividendsEstimate, err := transform.TransformToDividendsEstimateDomainModelFromPgModels(dividendsEstimateModel); err != nil { | ||
229 | - return dividendsEstimates, err | ||
230 | - } else { | ||
231 | - dividendsEstimatesSaved = append(dividendsEstimatesSaved, dividendsEstimate) | ||
232 | - } | ||
233 | - } | ||
234 | - return dividendsEstimatesSaved, nil | 226 | + //var dividendsEstimatesSaved []*domain.DividendsEstimate |
227 | + //for _, dividendsEstimateModel := range dividendsEstimateModels { | ||
228 | + // if dividendsEstimate, err := transform.TransformToDividendsEstimateDomainModelFromPgModels(dividendsEstimateModel); err != nil { | ||
229 | + // return dividendsEstimates, err | ||
230 | + // } else { | ||
231 | + // dividendsEstimatesSaved = append(dividendsEstimatesSaved, dividendsEstimate) | ||
232 | + // } | ||
233 | + //} | ||
234 | + //return dividendsEstimatesSaved, nil | ||
235 | + return dividendsEstimates, nil | ||
235 | } | 236 | } |
236 | return nil, nil | 237 | return nil, nil |
237 | } | 238 | } |
@@ -270,15 +271,16 @@ func (repository *DividendsEstimateRepository) UpdateMany(dividendsEstimates []* | @@ -270,15 +271,16 @@ func (repository *DividendsEstimateRepository) UpdateMany(dividendsEstimates []* | ||
270 | if _, err := tx.Model(÷ndsEstimateModels).WherePK().Update(); err != nil { | 271 | if _, err := tx.Model(÷ndsEstimateModels).WherePK().Update(); err != nil { |
271 | return nil, err | 272 | return nil, err |
272 | } | 273 | } |
273 | - var dividendsEstimatesUpdated []*domain.DividendsEstimate | ||
274 | - for _, dividendsEstimateModel := range dividendsEstimateModels { | ||
275 | - if dividendsEstimate, err := transform.TransformToDividendsEstimateDomainModelFromPgModels(dividendsEstimateModel); err != nil { | ||
276 | - return dividendsEstimates, err | ||
277 | - } else { | ||
278 | - dividendsEstimatesUpdated = append(dividendsEstimatesUpdated, dividendsEstimate) | ||
279 | - } | ||
280 | - } | ||
281 | - return dividendsEstimatesUpdated, nil | 274 | + //var dividendsEstimatesUpdated []*domain.DividendsEstimate |
275 | + //for _, dividendsEstimateModel := range dividendsEstimateModels { | ||
276 | + // if dividendsEstimate, err := transform.TransformToDividendsEstimateDomainModelFromPgModels(dividendsEstimateModel); err != nil { | ||
277 | + // return dividendsEstimates, err | ||
278 | + // } else { | ||
279 | + // dividendsEstimatesUpdated = append(dividendsEstimatesUpdated, dividendsEstimate) | ||
280 | + // } | ||
281 | + //} | ||
282 | + //return dividendsEstimatesUpdated, nil | ||
283 | + return dividendsEstimates, nil | ||
282 | } | 284 | } |
283 | 285 | ||
284 | func (repository *DividendsEstimateRepository) Remove(dividendsEstimate *domain.DividendsEstimate) (*domain.DividendsEstimate, error) { | 286 | func (repository *DividendsEstimateRepository) Remove(dividendsEstimate *domain.DividendsEstimate) (*domain.DividendsEstimate, error) { |
@@ -291,6 +293,21 @@ func (repository *DividendsEstimateRepository) Remove(dividendsEstimate *domain. | @@ -291,6 +293,21 @@ func (repository *DividendsEstimateRepository) Remove(dividendsEstimate *domain. | ||
291 | return dividendsEstimate, nil | 293 | return dividendsEstimate, nil |
292 | } | 294 | } |
293 | 295 | ||
296 | +func (repository *DividendsEstimateRepository) BatchRemove(dividendsEstimates []*domain.DividendsEstimate) ([]*domain.DividendsEstimate, error) { | ||
297 | + tx := repository.transactionContext.PgTx | ||
298 | + var dividendsEstimateModels []*models.DividendsEstimate | ||
299 | + for _, dividendsEstimate := range dividendsEstimates { | ||
300 | + dividendsEstimateModels = append(dividendsEstimateModels, &models.DividendsEstimate{ | ||
301 | + DividendsEstimateId: dividendsEstimate.Identify().(int64), | ||
302 | + }) | ||
303 | + } | ||
304 | + if _, err := tx.Model(÷ndsEstimateModels).WherePK().Delete(); err != nil { | ||
305 | + return dividendsEstimates, err | ||
306 | + } else { | ||
307 | + return dividendsEstimates, nil | ||
308 | + } | ||
309 | +} | ||
310 | + | ||
294 | func (repository *DividendsEstimateRepository) FindOne(queryOptions map[string]interface{}) (*domain.DividendsEstimate, error) { | 311 | func (repository *DividendsEstimateRepository) FindOne(queryOptions map[string]interface{}) (*domain.DividendsEstimate, error) { |
295 | tx := repository.transactionContext.PgTx | 312 | tx := repository.transactionContext.PgTx |
296 | dividendsEstimateModel := new(models.DividendsEstimate) | 313 | dividendsEstimateModel := new(models.DividendsEstimate) |
@@ -299,6 +316,9 @@ func (repository *DividendsEstimateRepository) FindOne(queryOptions map[string]i | @@ -299,6 +316,9 @@ func (repository *DividendsEstimateRepository) FindOne(queryOptions map[string]i | ||
299 | if orderOrReturnedOrderNum, ok := queryOptions["orderOrReturnedOrderNum"]; ok && orderOrReturnedOrderNum != "" { | 316 | if orderOrReturnedOrderNum, ok := queryOptions["orderOrReturnedOrderNum"]; ok && orderOrReturnedOrderNum != "" { |
300 | query.Where("order_or_returned_order_num = ?", orderOrReturnedOrderNum) | 317 | query.Where("order_or_returned_order_num = ?", orderOrReturnedOrderNum) |
301 | } | 318 | } |
319 | + if isCanceled, ok := queryOptions["isCanceled"]; ok { | ||
320 | + query.Where("is_canceled = ?", isCanceled.(bool)) | ||
321 | + } | ||
302 | if err := query.First(); err != nil { | 322 | if err := query.First(); err != nil { |
303 | if err.Error() == "pg: no rows in result set" { | 323 | if err.Error() == "pg: no rows in result set" { |
304 | return nil, fmt.Errorf("分红预算单不存在") | 324 | return nil, fmt.Errorf("分红预算单不存在") |
@@ -490,15 +490,6 @@ func (repository *DividendsOrderRepository) BatchRemove(dividendsOrders []*domai | @@ -490,15 +490,6 @@ func (repository *DividendsOrderRepository) BatchRemove(dividendsOrders []*domai | ||
490 | } else { | 490 | } else { |
491 | for _, dividendsOrder := range dividendsOrders { | 491 | for _, dividendsOrder := range dividendsOrders { |
492 | // 删除订单产品 | 492 | // 删除订单产品 |
493 | - //var orderGoodModels []*models.OrderGood | ||
494 | - //if _, err := tx.Model(&orderGoodModels). | ||
495 | - // Where("company_id = ?", dividendsOrder.Company.CompanyId). | ||
496 | - // Where("org_id = ?", dividendsOrder.Org.OrgId). | ||
497 | - // Where("dividends_order_number = ?", dividendsOrder.DividendsOrderNumber).WherePK().Delete(); err != nil { | ||
498 | - // return nil, err | ||
499 | - //} | ||
500 | - | ||
501 | - // 删除订单产品 | ||
502 | var orderGoodModels []*models.OrderGood | 493 | var orderGoodModels []*models.OrderGood |
503 | orderGoodQuery := tx.Model(&orderGoodModels) | 494 | orderGoodQuery := tx.Model(&orderGoodModels) |
504 | if err := orderGoodQuery. | 495 | if err := orderGoodQuery. |
@@ -30,6 +30,26 @@ func Intersect(nums1 []int64, nums2 []int64) []int64 { | @@ -30,6 +30,26 @@ func Intersect(nums1 []int64, nums2 []int64) []int64 { | ||
30 | return intersection | 30 | return intersection |
31 | } | 31 | } |
32 | 32 | ||
33 | +// Intersect32 返回两个数组的交集 | ||
34 | +func Intersect32(nums1 []int32, nums2 []int32) []int32 { | ||
35 | + if len(nums1) > len(nums2) { | ||
36 | + return Intersect32(nums2, nums1) | ||
37 | + } | ||
38 | + m := map[int32]int32{} | ||
39 | + for _, num := range nums1 { | ||
40 | + m[num]++ | ||
41 | + } | ||
42 | + | ||
43 | + var intersection []int32 | ||
44 | + for _, num := range nums2 { | ||
45 | + if m[num] > 0 { | ||
46 | + intersection = append(intersection, num) | ||
47 | + m[num]-- | ||
48 | + } | ||
49 | + } | ||
50 | + return intersection | ||
51 | +} | ||
52 | + | ||
33 | // Difference 求差集 slice1-并集 | 53 | // Difference 求差集 slice1-并集 |
34 | func Difference(slice1, slice2 []int64) []int64 { | 54 | func Difference(slice1, slice2 []int64) []int64 { |
35 | m := make(map[int64]int) | 55 | m := make(map[int64]int) |
@@ -144,6 +164,36 @@ func RemoveDuplicationInt64(arr []int64) []int64 { | @@ -144,6 +164,36 @@ func RemoveDuplicationInt64(arr []int64) []int64 { | ||
144 | return arr[:j] | 164 | return arr[:j] |
145 | } | 165 | } |
146 | 166 | ||
167 | +func RemoveDuplicationString(arr []string) []string { | ||
168 | + set := make(map[string]struct{}, len(arr)) | ||
169 | + j := 0 | ||
170 | + for _, v := range arr { | ||
171 | + _, ok := set[v] | ||
172 | + if ok { | ||
173 | + continue | ||
174 | + } | ||
175 | + set[v] = struct{}{} | ||
176 | + arr[j] = v | ||
177 | + j++ | ||
178 | + } | ||
179 | + return arr[:j] | ||
180 | +} | ||
181 | + | ||
182 | +func RemoveDuplicationInt32(arr []int32) []int32 { | ||
183 | + set := make(map[int32]struct{}, len(arr)) | ||
184 | + j := 0 | ||
185 | + for _, v := range arr { | ||
186 | + _, ok := set[v] | ||
187 | + if ok { | ||
188 | + continue | ||
189 | + } | ||
190 | + set[v] = struct{}{} | ||
191 | + arr[j] = v | ||
192 | + j++ | ||
193 | + } | ||
194 | + return arr[:j] | ||
195 | +} | ||
196 | + | ||
147 | // IsContain 判断int32数组是否包含 | 197 | // IsContain 判断int32数组是否包含 |
148 | func IsContain(items []int32, item int32) bool { | 198 | func IsContain(items []int32, item int32) bool { |
149 | for _, eachItem := range items { | 199 | for _, eachItem := range items { |
@@ -50,7 +50,8 @@ func (logger *BeegoLog) Debug(msg string, appends ...map[string]interface{}) { | @@ -50,7 +50,8 @@ func (logger *BeegoLog) Debug(msg string, appends ...map[string]interface{}) { | ||
50 | logs.Debug(msg, make(map[string]interface{}, 0)) | 50 | logs.Debug(msg, make(map[string]interface{}, 0)) |
51 | } else { | 51 | } else { |
52 | var out bytes.Buffer | 52 | var out bytes.Buffer |
53 | - err := json.Indent(&out, appendsJson, "", " ") | 53 | + //err := json.Indent(&out, appendsJson, "", " ") |
54 | + err := json.Compact(&out, appendsJson) | ||
54 | if err != nil { | 55 | if err != nil { |
55 | fmt.Println(msg) | 56 | fmt.Println(msg) |
56 | return | 57 | return |
@@ -65,7 +66,8 @@ func (logger *BeegoLog) Info(msg string, appends ...map[string]interface{}) { | @@ -65,7 +66,8 @@ func (logger *BeegoLog) Info(msg string, appends ...map[string]interface{}) { | ||
65 | logs.Info(msg, make(map[string]interface{}, 0)) | 66 | logs.Info(msg, make(map[string]interface{}, 0)) |
66 | } else { | 67 | } else { |
67 | var out bytes.Buffer | 68 | var out bytes.Buffer |
68 | - err := json.Indent(&out, appendsJson, "", " ") | 69 | + //err := json.Indent(&out, appendsJson, "", " ") |
70 | + err := json.Compact(&out, appendsJson) | ||
69 | if err != nil { | 71 | if err != nil { |
70 | fmt.Println(msg) | 72 | fmt.Println(msg) |
71 | return | 73 | return |
@@ -32,7 +32,16 @@ func init() { | @@ -32,7 +32,16 @@ func init() { | ||
32 | } | 32 | } |
33 | } | 33 | } |
34 | //https支持 | 34 | //https支持 |
35 | - web.BConfig.Listen.EnableHTTPS = true | 35 | + if os.Getenv("ENABLE_HTTPS") != "" { |
36 | + enableHTTPS := os.Getenv("ENABLE_HTTPS") | ||
37 | + if enableHTTPS == "true" { | ||
38 | + web.BConfig.Listen.EnableHTTPS = true | ||
39 | + } else { | ||
40 | + web.BConfig.Listen.EnableHTTPS = false | ||
41 | + } | ||
42 | + } else { | ||
43 | + web.BConfig.Listen.EnableHTTPS = false | ||
44 | + } | ||
36 | web.BConfig.Listen.HTTPSPort = 443 | 45 | web.BConfig.Listen.HTTPSPort = 443 |
37 | web.BConfig.Listen.HTTPSCertFile = "./config/fjmaimaimai.com_bundle.crt" | 46 | web.BConfig.Listen.HTTPSCertFile = "./config/fjmaimaimai.com_bundle.crt" |
38 | web.BConfig.Listen.HTTPSKeyFile = "./config/fjmaimaimai.com.key" | 47 | web.BConfig.Listen.HTTPSKeyFile = "./config/fjmaimaimai.com.key" |
@@ -55,14 +55,18 @@ func (controller *CooperationProjectController) GetCooperationProject() { | @@ -55,14 +55,18 @@ func (controller *CooperationProjectController) GetCooperationProject() { | ||
55 | cooperationProjectService := service.NewCooperationProjectService(nil) | 55 | cooperationProjectService := service.NewCooperationProjectService(nil) |
56 | getCooperationProjectQuery := &query.GetCooperationProjectQuery{} | 56 | getCooperationProjectQuery := &query.GetCooperationProjectQuery{} |
57 | header := controller.GetRequestHeader(controller.Ctx) | 57 | header := controller.GetRequestHeader(controller.Ctx) |
58 | - getCooperationProjectQuery.CompanyId = header.CompanyId | ||
59 | - getCooperationProjectQuery.OrgId = header.OrgId | 58 | + //getCooperationProjectQuery.CompanyId = header.CompanyId |
59 | + //getCooperationProjectQuery.OrgId = header.OrgId | ||
60 | getCooperationProjectQuery.UserId = header.UserId | 60 | getCooperationProjectQuery.UserId = header.UserId |
61 | getCooperationProjectQuery.UserBaseId = header.UserBaseId | 61 | getCooperationProjectQuery.UserBaseId = header.UserBaseId |
62 | cooperationProjectId, _ := controller.GetInt64(":cooperationProjectId") | 62 | cooperationProjectId, _ := controller.GetInt64(":cooperationProjectId") |
63 | getCooperationProjectQuery.CooperationProjectId = cooperationProjectId | 63 | getCooperationProjectQuery.CooperationProjectId = cooperationProjectId |
64 | cooperationProjectNumber := controller.GetString("cooperationProjectNumber") | 64 | cooperationProjectNumber := controller.GetString("cooperationProjectNumber") |
65 | getCooperationProjectQuery.CooperationProjectNumber = cooperationProjectNumber | 65 | getCooperationProjectQuery.CooperationProjectNumber = cooperationProjectNumber |
66 | + companyId, _ := controller.GetInt64("companyId") | ||
67 | + getCooperationProjectQuery.CompanyId = companyId | ||
68 | + orgId, _ := controller.GetInt64("orgId") | ||
69 | + getCooperationProjectQuery.OrgId = orgId | ||
66 | data, err := cooperationProjectService.GetCooperationProject(getCooperationProjectQuery) | 70 | data, err := cooperationProjectService.GetCooperationProject(getCooperationProjectQuery) |
67 | controller.Response(data, err) | 71 | controller.Response(data, err) |
68 | } | 72 | } |
@@ -55,14 +55,18 @@ func (controller *DividendsOrderController) GetDividendsOrder() { | @@ -55,14 +55,18 @@ func (controller *DividendsOrderController) GetDividendsOrder() { | ||
55 | dividendsOrderService := service.NewDividendsOrderService(nil) | 55 | dividendsOrderService := service.NewDividendsOrderService(nil) |
56 | getDividendsOrderQuery := &query.GetDividendsOrderQuery{} | 56 | getDividendsOrderQuery := &query.GetDividendsOrderQuery{} |
57 | header := controller.GetRequestHeader(controller.Ctx) | 57 | header := controller.GetRequestHeader(controller.Ctx) |
58 | - getDividendsOrderQuery.CompanyId = header.CompanyId | ||
59 | - getDividendsOrderQuery.OrgId = header.OrgId | 58 | + //getDividendsOrderQuery.CompanyId = header.CompanyId |
59 | + //getDividendsOrderQuery.OrgId = header.OrgId | ||
60 | getDividendsOrderQuery.UserId = header.UserId | 60 | getDividendsOrderQuery.UserId = header.UserId |
61 | getDividendsOrderQuery.UserBaseId = header.UserBaseId | 61 | getDividendsOrderQuery.UserBaseId = header.UserBaseId |
62 | dividendsOrderId, _ := controller.GetInt64(":dividendsOrderId") | 62 | dividendsOrderId, _ := controller.GetInt64(":dividendsOrderId") |
63 | getDividendsOrderQuery.DividendsOrderId = dividendsOrderId | 63 | getDividendsOrderQuery.DividendsOrderId = dividendsOrderId |
64 | dividendsOrderNumber := controller.GetString("dividendsOrderNumber") | 64 | dividendsOrderNumber := controller.GetString("dividendsOrderNumber") |
65 | getDividendsOrderQuery.DividendsOrderNumber = dividendsOrderNumber | 65 | getDividendsOrderQuery.DividendsOrderNumber = dividendsOrderNumber |
66 | + companyId, _ := controller.GetInt64("companyId") | ||
67 | + getDividendsOrderQuery.CompanyId = companyId | ||
68 | + orgId, _ := controller.GetInt64("orgId") | ||
69 | + getDividendsOrderQuery.OrgId = orgId | ||
66 | data, err := dividendsOrderService.GetDividendsOrder(getDividendsOrderQuery) | 70 | data, err := dividendsOrderService.GetDividendsOrder(getDividendsOrderQuery) |
67 | controller.Response(data, err) | 71 | controller.Response(data, err) |
68 | } | 72 | } |
-
请 注册 或 登录 后发表评论