正在显示
15 个修改的文件
包含
234 行增加
和
28 行删除
| @@ -17,6 +17,8 @@ type SearchCooperationContractQuery struct { | @@ -17,6 +17,8 @@ type SearchCooperationContractQuery struct { | ||
| 17 | CooperationContractNumber string `cname:"共创合约编号" json:"cooperationContractNumber,omitempty"` | 17 | CooperationContractNumber string `cname:"共创合约编号" json:"cooperationContractNumber,omitempty"` |
| 18 | // 发起人姓名 | 18 | // 发起人姓名 |
| 19 | SponsorName string `cname:"发起人姓名" json:"sponsorName,omitempty"` | 19 | SponsorName string `cname:"发起人姓名" json:"sponsorName,omitempty"` |
| 20 | + // 激励类型 | ||
| 21 | + IncentivesType int32 `cname:"激励类型" json:"incentivesType,omitempty"` | ||
| 20 | // 公司ID,通过集成REST上下文获取 | 22 | // 公司ID,通过集成REST上下文获取 |
| 21 | CompanyId int64 `cname:"公司ID" json:"companyId"` | 23 | CompanyId int64 `cname:"公司ID" json:"companyId"` |
| 22 | // 组织机构ID | 24 | // 组织机构ID |
| @@ -30,7 +32,6 @@ type SearchCooperationContractQuery struct { | @@ -30,7 +32,6 @@ type SearchCooperationContractQuery struct { | ||
| 30 | } | 32 | } |
| 31 | 33 | ||
| 32 | func (searchCooperationContractQuery *SearchCooperationContractQuery) Valid(validation *validation.Validation) { | 34 | func (searchCooperationContractQuery *SearchCooperationContractQuery) Valid(validation *validation.Validation) { |
| 33 | - //validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 34 | } | 35 | } |
| 35 | 36 | ||
| 36 | func (searchCooperationContractQuery *SearchCooperationContractQuery) ValidateQuery() error { | 37 | func (searchCooperationContractQuery *SearchCooperationContractQuery) ValidateQuery() error { |
| @@ -126,7 +126,9 @@ func (cooperationContractService *CooperationContractService) CreateCooperationC | @@ -126,7 +126,9 @@ func (cooperationContractService *CooperationContractService) CreateCooperationC | ||
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | // 生成共创合约编号 | 128 | // 生成共创合约编号 |
| 129 | - contractNumber, err2 := cooperationContractDao.GenerateContractNumber() | 129 | + contractNumber, err2 := cooperationContractDao.GenerateContractNumber(map[string]interface{}{ |
| 130 | + "companyId": createCooperationContractCommand.CompanyId, | ||
| 131 | + }) | ||
| 130 | if err2 != nil { | 132 | if err2 != nil { |
| 131 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err2.Error()) | 133 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err2.Error()) |
| 132 | } | 134 | } |
| @@ -134,7 +136,6 @@ func (cooperationContractService *CooperationContractService) CreateCooperationC | @@ -134,7 +136,6 @@ func (cooperationContractService *CooperationContractService) CreateCooperationC | ||
| 134 | // 校验共创合约编号是否唯一 | 136 | // 校验共创合约编号是否唯一 |
| 135 | numberAvailable, _ := cooperationContractDao.CheckContractNumberAvailable(map[string]interface{}{ | 137 | numberAvailable, _ := cooperationContractDao.CheckContractNumberAvailable(map[string]interface{}{ |
| 136 | "companyId": createCooperationContractCommand.CompanyId, | 138 | "companyId": createCooperationContractCommand.CompanyId, |
| 137 | - "orgId": createCooperationContractCommand.OrgId, | ||
| 138 | "cooperationContractNumber": contractNumber, | 139 | "cooperationContractNumber": contractNumber, |
| 139 | }) | 140 | }) |
| 140 | if !numberAvailable { | 141 | if !numberAvailable { |
| @@ -163,7 +163,9 @@ func (cooperationProjectService *CooperationProjectService) CreateCooperationPro | @@ -163,7 +163,9 @@ func (cooperationProjectService *CooperationProjectService) CreateCooperationPro | ||
| 163 | cooperationProjectDao = value | 163 | cooperationProjectDao = value |
| 164 | } | 164 | } |
| 165 | // 生成共创项目编号 | 165 | // 生成共创项目编号 |
| 166 | - projectNumber, err2 := cooperationProjectDao.GenerateProjectNumber() | 166 | + projectNumber, err2 := cooperationProjectDao.GenerateProjectNumber(map[string]interface{}{ |
| 167 | + "companyId": createCooperationProjectCommand.CompanyId, | ||
| 168 | + }) | ||
| 167 | if err2 != nil { | 169 | if err2 != nil { |
| 168 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 170 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| 169 | } | 171 | } |
| @@ -158,7 +158,9 @@ func (creditAccountService *CreditAccountService) CreateCreditAccount(createCred | @@ -158,7 +158,9 @@ func (creditAccountService *CreditAccountService) CreateCreditAccount(createCred | ||
| 158 | } | 158 | } |
| 159 | 159 | ||
| 160 | // 生成账期结算单号 | 160 | // 生成账期结算单号 |
| 161 | - creditAccountNumber, err12 := creditAccountDao.GenerateCreditAccountNumber() | 161 | + creditAccountNumber, err12 := creditAccountDao.GenerateCreditAccountNumber(map[string]interface{}{ |
| 162 | + "companyId": createCreditAccountCommand.CompanyId, | ||
| 163 | + }) | ||
| 162 | if err12 != nil { | 164 | if err12 != nil { |
| 163 | return nil, application.ThrowError(application.TRANSACTION_ERROR, "生成账期结算单号错误") | 165 | return nil, application.ThrowError(application.TRANSACTION_ERROR, "生成账期结算单号错误") |
| 164 | } | 166 | } |
| @@ -625,7 +625,6 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -625,7 +625,6 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
| 625 | // 统计当前分红预算单数 | 625 | // 统计当前分红预算单数 |
| 626 | count, err := dividendsEstimateDao.CountDividendsEstimate(map[string]interface{}{ | 626 | count, err := dividendsEstimateDao.CountDividendsEstimate(map[string]interface{}{ |
| 627 | "companyId": confirmDividendsIncentivesEstimateCommand.CompanyId, | 627 | "companyId": confirmDividendsIncentivesEstimateCommand.CompanyId, |
| 628 | - "orgId": confirmDividendsIncentivesEstimateCommand.OrgId, | ||
| 629 | }) | 628 | }) |
| 630 | if err != nil { | 629 | if err != nil { |
| 631 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 630 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| @@ -697,7 +696,9 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | @@ -697,7 +696,9 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent | ||
| 697 | } else { | 696 | } else { |
| 698 | for _, dividendsReturnedEstimateDetail := range dividendsReturnedEstimateDetails { | 697 | for _, dividendsReturnedEstimateDetail := range dividendsReturnedEstimateDetails { |
| 699 | // 生成分红预算单号 | 698 | // 生成分红预算单号 |
| 700 | - dividendsEstimateOrderNumber, err := dividendsEstimateDao.GenerateDividendsEstimateNumber() | 699 | + dividendsEstimateOrderNumber, err := dividendsEstimateDao.GenerateDividendsEstimateNumber(map[string]interface{}{ |
| 700 | + "companyId": confirmDividendsIncentivesEstimateCommand.CompanyId, | ||
| 701 | + }) | ||
| 701 | if err != nil { | 702 | if err != nil { |
| 702 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 703 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| 703 | } | 704 | } |
| @@ -859,7 +860,9 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmMoneyIncentives | @@ -859,7 +860,9 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmMoneyIncentives | ||
| 859 | } else { | 860 | } else { |
| 860 | for _, dividendsEstimateDetail := range dividendsEstimateDetails { | 861 | for _, dividendsEstimateDetail := range dividendsEstimateDetails { |
| 861 | // 生成分红预算单号 | 862 | // 生成分红预算单号 |
| 862 | - dividendsEstimateOrderNumber, err := dividendsEstimateDao.GenerateDividendsEstimateNumber() | 863 | + dividendsEstimateOrderNumber, err := dividendsEstimateDao.GenerateDividendsEstimateNumber(map[string]interface{}{ |
| 864 | + "companyId": confirmMoneyIncentivesEstimateCommand.CompanyId, | ||
| 865 | + }) | ||
| 863 | if err != nil { | 866 | if err != nil { |
| 864 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 867 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| 865 | } | 868 | } |
| @@ -100,7 +100,9 @@ func (dividendsOrderService *DividendsOrderService) CreateDividendsOrder(createD | @@ -100,7 +100,9 @@ func (dividendsOrderService *DividendsOrderService) CreateDividendsOrder(createD | ||
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | // 生成分红订单号 | 102 | // 生成分红订单号 |
| 103 | - dividendsOrderNumber, err := dividendsOrderDao.GenerateDividendsOrderNumber() | 103 | + dividendsOrderNumber, err := dividendsOrderDao.GenerateDividendsOrderNumber(map[string]interface{}{ |
| 104 | + "companyId": createDividendsOrderCommand.CompanyId, | ||
| 105 | + }) | ||
| 104 | if err != nil { | 106 | if err != nil { |
| 105 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 107 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| 106 | } | 108 | } |
| @@ -108,7 +110,6 @@ func (dividendsOrderService *DividendsOrderService) CreateDividendsOrder(createD | @@ -108,7 +110,6 @@ func (dividendsOrderService *DividendsOrderService) CreateDividendsOrder(createD | ||
| 108 | // 校验分红订单编号是否唯一 | 110 | // 校验分红订单编号是否唯一 |
| 109 | numberAvailable, err := dividendsOrderDao.CheckDividendsOrderNumberAvailable(map[string]interface{}{ | 111 | numberAvailable, err := dividendsOrderDao.CheckDividendsOrderNumberAvailable(map[string]interface{}{ |
| 110 | "companyId": createDividendsOrderCommand.CompanyId, | 112 | "companyId": createDividendsOrderCommand.CompanyId, |
| 111 | - "orgId": createDividendsOrderCommand.OrgId, | ||
| 112 | "dividendsOrderNumber": dividendsOrderNumber, | 113 | "dividendsOrderNumber": dividendsOrderNumber, |
| 113 | }) | 114 | }) |
| 114 | if err != nil { | 115 | if err != nil { |
| @@ -118,11 +119,44 @@ func (dividendsOrderService *DividendsOrderService) CreateDividendsOrder(createD | @@ -118,11 +119,44 @@ func (dividendsOrderService *DividendsOrderService) CreateDividendsOrder(createD | ||
| 118 | return nil, application.ThrowError(application.TRANSACTION_ERROR, "新增分红订单异常") | 119 | return nil, application.ThrowError(application.TRANSACTION_ERROR, "新增分红订单异常") |
| 119 | } | 120 | } |
| 120 | 121 | ||
| 122 | + // 合约仓储初始化 | ||
| 123 | + var cooperationContractRepository domain.CooperationContractRepository | ||
| 124 | + if value, err := factory.CreateCooperationContractRepository(map[string]interface{}{ | ||
| 125 | + "transactionContext": transactionContext, | ||
| 126 | + }); err != nil { | ||
| 127 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 128 | + } else { | ||
| 129 | + cooperationContractRepository = value | ||
| 130 | + } | ||
| 131 | + | ||
| 132 | + // 查找合约 | ||
| 133 | + var cooperationContractsMap map[string]*domain.CooperationContract | ||
| 134 | + if count, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{ | ||
| 135 | + "companyId": createDividendsOrderCommand.CompanyId, | ||
| 136 | + "orgId": createDividendsOrderCommand.OrgId, | ||
| 137 | + }); err != nil { | ||
| 138 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 139 | + } else { | ||
| 140 | + if count > 0 { | ||
| 141 | + for _, cooperationContract := range cooperationContracts { | ||
| 142 | + cooperationContractsMap[cooperationContract.CooperationContractNumber] = cooperationContract | ||
| 143 | + } | ||
| 144 | + } | ||
| 145 | + } | ||
| 146 | + | ||
| 121 | // 新增订单产品 | 147 | // 新增订单产品 |
| 122 | var orderGoods []*domain.OrderGood | 148 | var orderGoods []*domain.OrderGood |
| 123 | var dividendsOrderAmount float64 | 149 | var dividendsOrderAmount float64 |
| 124 | for _, orderGood := range createDividendsOrderCommand.OrderGoods { | 150 | for _, orderGood := range createDividendsOrderCommand.OrderGoods { |
| 125 | - orderGoodAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodPrice).Mul(decimal.NewFromFloat(float64(orderGood.OrderGoodQuantity))).Float64() | 151 | + // 计算订单产品金额 |
| 152 | + orderGoodAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodPrice).Mul(decimal.NewFromFloat(orderGood.OrderGoodQuantity)).Float64() | ||
| 153 | + | ||
| 154 | + // 校验共创合约 | ||
| 155 | + if orderGood.CooperationContractNumber != "" { | ||
| 156 | + if cooperationContractsMap[orderGood.CooperationContractNumber] != nil && cooperationContractsMap[orderGood.CooperationContractNumber].IncentivesType != 1 { | ||
| 157 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "分红订单产品不能关联金额激励规则") | ||
| 158 | + } | ||
| 159 | + } | ||
| 126 | orderGoods = append(orderGoods, &domain.OrderGood{ | 160 | orderGoods = append(orderGoods, &domain.OrderGood{ |
| 127 | OrderGoodId: 0, | 161 | OrderGoodId: 0, |
| 128 | OrderGoodAmount: orderGoodAmount, | 162 | OrderGoodAmount: orderGoodAmount, |
| @@ -141,7 +175,7 @@ func (dividendsOrderService *DividendsOrderService) CreateDividendsOrder(createD | @@ -141,7 +175,7 @@ func (dividendsOrderService *DividendsOrderService) CreateDividendsOrder(createD | ||
| 141 | UpdatedAt: time.Time{}, | 175 | UpdatedAt: time.Time{}, |
| 142 | }) | 176 | }) |
| 143 | // 计算分红订单金额 | 177 | // 计算分红订单金额 |
| 144 | - dividendsOrderAmount, _ = decimal.NewFromFloat(dividendsOrderAmount).Add(decimal.NewFromFloat(orderGood.OrderGoodPrice).Mul(decimal.NewFromFloat(float64(orderGood.OrderGoodQuantity))).Sub(decimal.NewFromFloat(orderGood.OrderGoodExpense))).Float64() | 178 | + dividendsOrderAmount, _ = decimal.NewFromFloat(dividendsOrderAmount).Add(decimal.NewFromFloat(orderGood.OrderGoodPrice).Mul(decimal.NewFromFloat(orderGood.OrderGoodQuantity)).Sub(decimal.NewFromFloat(orderGood.OrderGoodExpense))).Float64() |
| 145 | } | 179 | } |
| 146 | 180 | ||
| 147 | // 订单时间转换 | 181 | // 订单时间转换 |
| @@ -269,13 +303,20 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -269,13 +303,20 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
| 269 | } | 303 | } |
| 270 | 304 | ||
| 271 | // 查找合约 | 305 | // 查找合约 |
| 272 | - _, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{ | 306 | + var cooperationContractsMap map[string]*domain.CooperationContract |
| 307 | + countContracts, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{ | ||
| 273 | "offsetLimit": false, | 308 | "offsetLimit": false, |
| 274 | "companyId": importDividendsOrderCommand.CompanyId, | 309 | "companyId": importDividendsOrderCommand.CompanyId, |
| 275 | "orgId": importDividendsOrderCommand.OrgId, | 310 | "orgId": importDividendsOrderCommand.OrgId, |
| 276 | }) | 311 | }) |
| 277 | if err != nil { | 312 | if err != nil { |
| 278 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 313 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 314 | + } else { | ||
| 315 | + if countContracts > 0 { | ||
| 316 | + for _, cooperationContract := range cooperationContracts { | ||
| 317 | + cooperationContractsMap[cooperationContract.CooperationContractNumber] = cooperationContract | ||
| 318 | + } | ||
| 319 | + } | ||
| 279 | } | 320 | } |
| 280 | 321 | ||
| 281 | // 分红订单DAO初始化 | 322 | // 分红订单DAO初始化 |
| @@ -673,7 +714,14 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | @@ -673,7 +714,14 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD | ||
| 673 | } | 714 | } |
| 674 | 715 | ||
| 675 | // 计算产品金额 | 716 | // 计算产品金额 |
| 676 | - orderGoodAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodPrice).Mul(decimal.NewFromFloat(float64(orderGood.OrderGoodQuantity))).Float64() | 717 | + orderGoodAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodPrice).Mul(decimal.NewFromFloat(orderGood.OrderGoodQuantity)).Float64() |
| 718 | + | ||
| 719 | + // 校验共创合约激励类型是否正确 | ||
| 720 | + if orderGood.CooperationContractNumber != "" { | ||
| 721 | + if cooperationContractsMap[orderGood.CooperationContractNumber] != nil && cooperationContractsMap[orderGood.CooperationContractNumber].IncentivesType != 1 { | ||
| 722 | + orderGoodErrMap[dividendsOrder.OrderGoods[i].LineNumber] = application.ThrowError(application.INTERNAL_SERVER_ERROR, "退货单产品不能关联金额激励规则") | ||
| 723 | + } | ||
| 724 | + } | ||
| 677 | 725 | ||
| 678 | orderGoods = append(orderGoods, &domain.OrderGood{ | 726 | orderGoods = append(orderGoods, &domain.OrderGood{ |
| 679 | OrderGoodId: 0, | 727 | OrderGoodId: 0, |
| @@ -24,6 +24,8 @@ type OrderGoods struct { | @@ -24,6 +24,8 @@ type OrderGoods struct { | ||
| 24 | CooperationContractNumber string `cname:"关联的共创合约编号" json:"cooperationContractNumber"` | 24 | CooperationContractNumber string `cname:"关联的共创合约编号" json:"cooperationContractNumber"` |
| 25 | // 订单产品费用 | 25 | // 订单产品费用 |
| 26 | OrderGoodExpense float64 `cname:"订单产品费用" json:"orderGoodExpense"` | 26 | OrderGoodExpense float64 `cname:"订单产品费用" json:"orderGoodExpense"` |
| 27 | + //行号-错误信息返回 | ||
| 28 | + LineNumber int `json:"lineNumber"` | ||
| 27 | } | 29 | } |
| 28 | 30 | ||
| 29 | type CreateDividendsReturnedOrderCommand struct { | 31 | type CreateDividendsReturnedOrderCommand struct { |
| @@ -99,7 +99,9 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) CreateDivide | @@ -99,7 +99,9 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) CreateDivide | ||
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | // 生成分红订单号 | 101 | // 生成分红订单号 |
| 102 | - dividendsReturnedOrderNumber, err := dividendsReturnedOrderDao.GenerateDividendsReturnedOrderNumber() | 102 | + dividendsReturnedOrderNumber, err := dividendsReturnedOrderDao.GenerateDividendsReturnedOrderNumber(map[string]interface{}{ |
| 103 | + "companyId": createDividendsReturnedOrderCommand.CompanyId, | ||
| 104 | + }) | ||
| 103 | if err != nil { | 105 | if err != nil { |
| 104 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 106 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| 105 | } | 107 | } |
| @@ -121,7 +123,6 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) CreateDivide | @@ -121,7 +123,6 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) CreateDivide | ||
| 121 | // 校验分红退货单编号是否唯一 | 123 | // 校验分红退货单编号是否唯一 |
| 122 | numberAvailable, err := dividendsReturnedOrderDao.CheckDividendsReturnedOrderNumberAvailable(map[string]interface{}{ | 124 | numberAvailable, err := dividendsReturnedOrderDao.CheckDividendsReturnedOrderNumberAvailable(map[string]interface{}{ |
| 123 | "companyId": createDividendsReturnedOrderCommand.CompanyId, | 125 | "companyId": createDividendsReturnedOrderCommand.CompanyId, |
| 124 | - "orgId": createDividendsReturnedOrderCommand.OrgId, | ||
| 125 | "dividendsReturnedOrderNumber": dividendsReturnedOrderNumber, | 126 | "dividendsReturnedOrderNumber": dividendsReturnedOrderNumber, |
| 126 | }) | 127 | }) |
| 127 | if err != nil { | 128 | if err != nil { |
| @@ -131,13 +132,46 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) CreateDivide | @@ -131,13 +132,46 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) CreateDivide | ||
| 131 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "分红退货单号已存在") | 132 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "分红退货单号已存在") |
| 132 | } | 133 | } |
| 133 | 134 | ||
| 135 | + // 合约仓储初始化 | ||
| 136 | + var cooperationContractRepository domain.CooperationContractRepository | ||
| 137 | + if value, err := factory.CreateCooperationContractRepository(map[string]interface{}{ | ||
| 138 | + "transactionContext": transactionContext, | ||
| 139 | + }); err != nil { | ||
| 140 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 141 | + } else { | ||
| 142 | + cooperationContractRepository = value | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | + // 查找合约 | ||
| 146 | + var cooperationContractsMap map[string]*domain.CooperationContract | ||
| 147 | + if count, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{ | ||
| 148 | + "companyId": createDividendsReturnedOrderCommand.CompanyId, | ||
| 149 | + "orgId": createDividendsReturnedOrderCommand.OrgId, | ||
| 150 | + }); err != nil { | ||
| 151 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 152 | + } else { | ||
| 153 | + if count > 0 { | ||
| 154 | + for _, cooperationContract := range cooperationContracts { | ||
| 155 | + cooperationContractsMap[cooperationContract.CooperationContractNumber] = cooperationContract | ||
| 156 | + } | ||
| 157 | + } | ||
| 158 | + } | ||
| 159 | + | ||
| 134 | // 退货金额 | 160 | // 退货金额 |
| 135 | var dividendsReturnedOrderRefund float64 | 161 | var dividendsReturnedOrderRefund float64 |
| 136 | 162 | ||
| 137 | - // 获取分红退货单产品 | 163 | + // 新增分红退货单产品 |
| 138 | var orderGoods []*domain.OrderGood | 164 | var orderGoods []*domain.OrderGood |
| 139 | for _, orderGood := range createDividendsReturnedOrderCommand.OrderGoods { | 165 | for _, orderGood := range createDividendsReturnedOrderCommand.OrderGoods { |
| 140 | - orderGoodAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodPrice).Mul(decimal.NewFromFloat(float64(orderGood.OrderGoodQuantity))).Float64() | 166 | + // 退货产品金额计算 |
| 167 | + orderGoodAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodPrice).Mul(decimal.NewFromFloat(orderGood.OrderGoodQuantity)).Float64() | ||
| 168 | + | ||
| 169 | + // 校验合约激励类型是否正确 | ||
| 170 | + if orderGood.CooperationContractNumber != "" { | ||
| 171 | + if cooperationContractsMap[orderGood.CooperationContractNumber] != nil && cooperationContractsMap[orderGood.CooperationContractNumber].IncentivesType != 1 { | ||
| 172 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "退货单产品不能关联金额激励规则") | ||
| 173 | + } | ||
| 174 | + } | ||
| 141 | orderGoods = append(orderGoods, &domain.OrderGood{ | 175 | orderGoods = append(orderGoods, &domain.OrderGood{ |
| 142 | OrderGoodId: 0, | 176 | OrderGoodId: 0, |
| 143 | OrderGoodAmount: orderGoodAmount, | 177 | OrderGoodAmount: orderGoodAmount, |
| @@ -321,6 +355,33 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -321,6 +355,33 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
| 321 | dividendsReturnedOrderRepository = value | 355 | dividendsReturnedOrderRepository = value |
| 322 | } | 356 | } |
| 323 | 357 | ||
| 358 | + // 合约仓储初始化 | ||
| 359 | + var cooperationContractRepository domain.CooperationContractRepository | ||
| 360 | + if value, err := factory.CreateCooperationContractRepository(map[string]interface{}{ | ||
| 361 | + "transactionContext": transactionContext, | ||
| 362 | + }); err != nil { | ||
| 363 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 364 | + } else { | ||
| 365 | + cooperationContractRepository = value | ||
| 366 | + } | ||
| 367 | + | ||
| 368 | + // 查找合约 | ||
| 369 | + var cooperationContractsMap map[string]*domain.CooperationContract | ||
| 370 | + countContracts, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{ | ||
| 371 | + "offsetLimit": false, | ||
| 372 | + "companyId": importDividendsReturnedOrderCommand.CompanyId, | ||
| 373 | + "orgId": importDividendsReturnedOrderCommand.OrgId, | ||
| 374 | + }) | ||
| 375 | + if err != nil { | ||
| 376 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 377 | + } else { | ||
| 378 | + if countContracts > 0 { | ||
| 379 | + for _, cooperationContract := range cooperationContracts { | ||
| 380 | + cooperationContractsMap[cooperationContract.CooperationContractNumber] = cooperationContract | ||
| 381 | + } | ||
| 382 | + } | ||
| 383 | + } | ||
| 384 | + | ||
| 324 | // 返回信息表头定义 | 385 | // 返回信息表头定义 |
| 325 | var tableHeader = map[string]interface{}{ | 386 | var tableHeader = map[string]interface{}{ |
| 326 | "failReason": "错误详情", | 387 | "failReason": "错误详情", |
| @@ -664,7 +725,9 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -664,7 +725,9 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
| 664 | // 批量导入创建退货单 | 725 | // 批量导入创建退货单 |
| 665 | for _, dividendsReturnedOrder := range createDividendsReturnedOrderCommands { | 726 | for _, dividendsReturnedOrder := range createDividendsReturnedOrderCommands { |
| 666 | // 生成退货订单号 | 727 | // 生成退货订单号 |
| 667 | - dividendsReturnedOrderNumber, err := dividendsReturnedOrderDao.GenerateDividendsReturnedOrderNumber() | 728 | + dividendsReturnedOrderNumber, err := dividendsReturnedOrderDao.GenerateDividendsReturnedOrderNumber(map[string]interface{}{ |
| 729 | + "companyId": importDividendsReturnedOrderCommand.CompanyId, | ||
| 730 | + }) | ||
| 668 | if err != nil { | 731 | if err != nil { |
| 669 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 732 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| 670 | } | 733 | } |
| @@ -672,7 +735,6 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -672,7 +735,6 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
| 672 | // 校验退货订单编号是否唯一 | 735 | // 校验退货订单编号是否唯一 |
| 673 | numberAvailable, err3 := dividendsReturnedOrderDao.CheckDividendsReturnedOrderNumberAvailable(map[string]interface{}{ | 736 | numberAvailable, err3 := dividendsReturnedOrderDao.CheckDividendsReturnedOrderNumberAvailable(map[string]interface{}{ |
| 674 | "companyId": importDividendsReturnedOrderCommand.CompanyId, | 737 | "companyId": importDividendsReturnedOrderCommand.CompanyId, |
| 675 | - "orgId": importDividendsReturnedOrderCommand.OrgId, | ||
| 676 | "dividendsReturnedOrderNumber": dividendsReturnedOrderNumber, | 738 | "dividendsReturnedOrderNumber": dividendsReturnedOrderNumber, |
| 677 | }) | 739 | }) |
| 678 | if err3 != nil { | 740 | if err3 != nil { |
| @@ -685,10 +747,32 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | @@ -685,10 +747,32 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide | ||
| 685 | // 新增订单产品 | 747 | // 新增订单产品 |
| 686 | var orderGoods []*domain.OrderGood | 748 | var orderGoods []*domain.OrderGood |
| 687 | var dividendsReturnedOrderAmount float64 | 749 | var dividendsReturnedOrderAmount float64 |
| 688 | - for _, orderGood := range dividendsReturnedOrder.OrderGoods { | 750 | + orderGoodErrMap := make(map[int]interface{}, 0) |
| 751 | + for i, orderGood := range dividendsReturnedOrder.OrderGoods { | ||
| 752 | + // 校验共创合约是否合法 | ||
| 753 | + contractNumberExist := false | ||
| 754 | + for _, cooperationContract := range cooperationContracts { | ||
| 755 | + if orderGood.CooperationContractNumber == cooperationContract.CooperationContractNumber { | ||
| 756 | + contractNumberExist = true | ||
| 757 | + break | ||
| 758 | + } | ||
| 759 | + } | ||
| 760 | + if !contractNumberExist { | ||
| 761 | + orderGoodErrMap[dividendsReturnedOrder.OrderGoods[i].LineNumber] = application.ThrowError(application.INTERNAL_SERVER_ERROR, fmt.Sprintf("共创合约编号不存在:%s", err)) | ||
| 762 | + } | ||
| 763 | + | ||
| 764 | + // 计算产品金额 | ||
| 765 | + orderGoodAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodPrice).Mul(decimal.NewFromFloat(orderGood.OrderGoodQuantity)).Float64() | ||
| 766 | + | ||
| 767 | + // 校验合约激励类型是否正确 | ||
| 768 | + if orderGood.CooperationContractNumber != "" { | ||
| 769 | + if cooperationContractsMap[orderGood.CooperationContractNumber] != nil && cooperationContractsMap[orderGood.CooperationContractNumber].IncentivesType != 1 { | ||
| 770 | + orderGoodErrMap[dividendsReturnedOrder.OrderGoods[i].LineNumber] = application.ThrowError(application.INTERNAL_SERVER_ERROR, "退货单产品不能关联金额激励规则") | ||
| 771 | + } | ||
| 772 | + } | ||
| 689 | orderGoods = append(orderGoods, &domain.OrderGood{ | 773 | orderGoods = append(orderGoods, &domain.OrderGood{ |
| 690 | OrderGoodId: 0, | 774 | OrderGoodId: 0, |
| 691 | - OrderGoodAmount: orderGood.OrderGoodAmount, | 775 | + OrderGoodAmount: orderGoodAmount, |
| 692 | OrderGoodName: orderGood.OrderGoodName, | 776 | OrderGoodName: orderGood.OrderGoodName, |
| 693 | OrderGoodPrice: orderGood.OrderGoodPrice, | 777 | OrderGoodPrice: orderGood.OrderGoodPrice, |
| 694 | OrderGoodQuantity: orderGood.OrderGoodQuantity, | 778 | OrderGoodQuantity: orderGood.OrderGoodQuantity, |
| @@ -13,7 +13,7 @@ type CooperationContractDao struct { | @@ -13,7 +13,7 @@ type CooperationContractDao struct { | ||
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | // GenerateContractNumber 生成共创合约编号 | 15 | // GenerateContractNumber 生成共创合约编号 |
| 16 | -func (dao *CooperationContractDao) GenerateContractNumber() (string, error) { | 16 | +func (dao *CooperationContractDao) GenerateContractNumber(queryOptions map[string]interface{}) (string, error) { |
| 17 | tx := dao.transactionContext.PgTx | 17 | tx := dao.transactionContext.PgTx |
| 18 | var cooperationContractModels []*models.CooperationContract | 18 | var cooperationContractModels []*models.CooperationContract |
| 19 | query := tx.Model(&cooperationContractModels) | 19 | query := tx.Model(&cooperationContractModels) |
| @@ -22,9 +22,13 @@ func (dao *CooperationContractDao) GenerateContractNumber() (string, error) { | @@ -22,9 +22,13 @@ func (dao *CooperationContractDao) GenerateContractNumber() (string, error) { | ||
| 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) | 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) |
| 23 | query.Where("cooperation_contract.created_at >= ?", todayZeroTime) | 23 | query.Where("cooperation_contract.created_at >= ?", todayZeroTime) |
| 24 | query.Where("cooperation_contract.created_at < ?", nextDayZeroTime) | 24 | query.Where("cooperation_contract.created_at < ?", nextDayZeroTime) |
| 25 | + if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | ||
| 26 | + query = query.Where(`cooperation_contract.company @> '{"companyId":"?"}'`, companyId) | ||
| 27 | + } | ||
| 25 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { | 28 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { |
| 26 | return "", err | 29 | return "", err |
| 27 | } else { | 30 | } else { |
| 31 | + if count < 1000 { | ||
| 28 | countStr := fmt.Sprintf("%03d", count+1) | 32 | countStr := fmt.Sprintf("%03d", count+1) |
| 29 | timestamp := currentTime.Unix() | 33 | timestamp := currentTime.Unix() |
| 30 | timeNow := time.Unix(timestamp, 0) | 34 | timeNow := time.Unix(timestamp, 0) |
| @@ -32,6 +36,16 @@ func (dao *CooperationContractDao) GenerateContractNumber() (string, error) { | @@ -32,6 +36,16 @@ func (dao *CooperationContractDao) GenerateContractNumber() (string, error) { | ||
| 32 | timeString = timeString[2:len(timeString)] | 36 | timeString = timeString[2:len(timeString)] |
| 33 | contractNumber := "HY" + timeString + "#" + countStr | 37 | contractNumber := "HY" + timeString + "#" + countStr |
| 34 | return contractNumber, nil | 38 | return contractNumber, nil |
| 39 | + } else { | ||
| 40 | + countStr := fmt.Sprintf("%d", count+1) | ||
| 41 | + timestamp := currentTime.Unix() | ||
| 42 | + timeNow := time.Unix(timestamp, 0) | ||
| 43 | + timeString := timeNow.Format("20060102") | ||
| 44 | + timeString = timeString[2:len(timeString)] | ||
| 45 | + dividendsOrderNumber := "HY" + timeString + "#" + countStr | ||
| 46 | + return dividendsOrderNumber, nil | ||
| 47 | + } | ||
| 48 | + | ||
| 35 | } | 49 | } |
| 36 | } | 50 | } |
| 37 | 51 |
| @@ -13,7 +13,7 @@ type CooperationProjectDao struct { | @@ -13,7 +13,7 @@ type CooperationProjectDao struct { | ||
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | // GenerateProjectNumber 生成共创项目编码 | 15 | // GenerateProjectNumber 生成共创项目编码 |
| 16 | -func (dao *CooperationProjectDao) GenerateProjectNumber() (string, error) { | 16 | +func (dao *CooperationProjectDao) GenerateProjectNumber(queryOptions map[string]interface{}) (string, error) { |
| 17 | tx := dao.transactionContext.PgTx | 17 | tx := dao.transactionContext.PgTx |
| 18 | var cooperationProjectModels []*models.CooperationProject | 18 | var cooperationProjectModels []*models.CooperationProject |
| 19 | query := tx.Model(&cooperationProjectModels) | 19 | query := tx.Model(&cooperationProjectModels) |
| @@ -22,9 +22,13 @@ func (dao *CooperationProjectDao) GenerateProjectNumber() (string, error) { | @@ -22,9 +22,13 @@ func (dao *CooperationProjectDao) GenerateProjectNumber() (string, error) { | ||
| 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) | 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) |
| 23 | query.Where("cooperation_project.created_at >= ?", todayZeroTime) | 23 | query.Where("cooperation_project.created_at >= ?", todayZeroTime) |
| 24 | query.Where("cooperation_project.created_at < ?", nextDayZeroTime) | 24 | query.Where("cooperation_project.created_at < ?", nextDayZeroTime) |
| 25 | + if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | ||
| 26 | + query = query.Where(`cooperation_contract.company @> '{"companyId":"?"}'`, companyId) | ||
| 27 | + } | ||
| 25 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { | 28 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { |
| 26 | return "", err | 29 | return "", err |
| 27 | } else { | 30 | } else { |
| 31 | + if count < 1000 { | ||
| 28 | countStr := fmt.Sprintf("%03d", count+1) | 32 | countStr := fmt.Sprintf("%03d", count+1) |
| 29 | timestamp := currentTime.Unix() | 33 | timestamp := currentTime.Unix() |
| 30 | timeNow := time.Unix(timestamp, 0) | 34 | timeNow := time.Unix(timestamp, 0) |
| @@ -32,6 +36,15 @@ func (dao *CooperationProjectDao) GenerateProjectNumber() (string, error) { | @@ -32,6 +36,15 @@ func (dao *CooperationProjectDao) GenerateProjectNumber() (string, error) { | ||
| 32 | timeString = timeString[2:len(timeString)] | 36 | timeString = timeString[2:len(timeString)] |
| 33 | contractNumber := "XM" + timeString + "#" + countStr | 37 | contractNumber := "XM" + timeString + "#" + countStr |
| 34 | return contractNumber, nil | 38 | return contractNumber, nil |
| 39 | + } else { | ||
| 40 | + countStr := fmt.Sprintf("%d", count+1) | ||
| 41 | + timestamp := currentTime.Unix() | ||
| 42 | + timeNow := time.Unix(timestamp, 0) | ||
| 43 | + timeString := timeNow.Format("20060102") | ||
| 44 | + timeString = timeString[2:len(timeString)] | ||
| 45 | + contractNumber := "XM" + timeString + "#" + countStr | ||
| 46 | + return contractNumber, nil | ||
| 47 | + } | ||
| 35 | } | 48 | } |
| 36 | } | 49 | } |
| 37 | 50 |
| @@ -13,7 +13,7 @@ type CreditAccountDao struct { | @@ -13,7 +13,7 @@ type CreditAccountDao struct { | ||
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | // GenerateCreditAccountNumber 生成账期结算单号 | 15 | // GenerateCreditAccountNumber 生成账期结算单号 |
| 16 | -func (dao *CreditAccountDao) GenerateCreditAccountNumber() (string, error) { | 16 | +func (dao *CreditAccountDao) GenerateCreditAccountNumber(queryOptions map[string]interface{}) (string, error) { |
| 17 | tx := dao.transactionContext.PgTx | 17 | tx := dao.transactionContext.PgTx |
| 18 | var creditAccountModels []*models.CreditAccount | 18 | var creditAccountModels []*models.CreditAccount |
| 19 | query := tx.Model(&creditAccountModels) | 19 | query := tx.Model(&creditAccountModels) |
| @@ -22,9 +22,13 @@ func (dao *CreditAccountDao) GenerateCreditAccountNumber() (string, error) { | @@ -22,9 +22,13 @@ func (dao *CreditAccountDao) GenerateCreditAccountNumber() (string, error) { | ||
| 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) | 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) |
| 23 | query.Where("credit_account.created_at >= ?", todayZeroTime) | 23 | query.Where("credit_account.created_at >= ?", todayZeroTime) |
| 24 | query.Where("credit_account.created_at < ?", nextDayZeroTime) | 24 | query.Where("credit_account.created_at < ?", nextDayZeroTime) |
| 25 | + if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | ||
| 26 | + query = query.Where(`credit_account.company @> '{"companyId":"?"}'`, companyId) | ||
| 27 | + } | ||
| 25 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { | 28 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { |
| 26 | return "", err | 29 | return "", err |
| 27 | } else { | 30 | } else { |
| 31 | + if count < 1000 { | ||
| 28 | countStr := fmt.Sprintf("%03d", count+1) | 32 | countStr := fmt.Sprintf("%03d", count+1) |
| 29 | timestamp := currentTime.Unix() | 33 | timestamp := currentTime.Unix() |
| 30 | timeNow := time.Unix(timestamp, 0) | 34 | timeNow := time.Unix(timestamp, 0) |
| @@ -32,6 +36,15 @@ func (dao *CreditAccountDao) GenerateCreditAccountNumber() (string, error) { | @@ -32,6 +36,15 @@ func (dao *CreditAccountDao) GenerateCreditAccountNumber() (string, error) { | ||
| 32 | timeString = timeString[2:len(timeString)] | 36 | timeString = timeString[2:len(timeString)] |
| 33 | creditAccountNumber := "JS" + timeString + "#" + countStr | 37 | creditAccountNumber := "JS" + timeString + "#" + countStr |
| 34 | return creditAccountNumber, nil | 38 | return creditAccountNumber, nil |
| 39 | + } else { | ||
| 40 | + countStr := fmt.Sprintf("%d", count+1) | ||
| 41 | + timestamp := currentTime.Unix() | ||
| 42 | + timeNow := time.Unix(timestamp, 0) | ||
| 43 | + timeString := timeNow.Format("20060102") | ||
| 44 | + timeString = timeString[2:len(timeString)] | ||
| 45 | + creditAccountNumber := "JS" + timeString + "#" + countStr | ||
| 46 | + return creditAccountNumber, nil | ||
| 47 | + } | ||
| 35 | } | 48 | } |
| 36 | } | 49 | } |
| 37 | 50 |
| @@ -13,7 +13,7 @@ type DividendsEstimateDao struct { | @@ -13,7 +13,7 @@ type DividendsEstimateDao struct { | ||
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | // GenerateDividendsEstimateNumber 生成分红预算单号 | 15 | // GenerateDividendsEstimateNumber 生成分红预算单号 |
| 16 | -func (dao *DividendsEstimateDao) GenerateDividendsEstimateNumber() (string, error) { | 16 | +func (dao *DividendsEstimateDao) GenerateDividendsEstimateNumber(queryOptions map[string]interface{}) (string, error) { |
| 17 | tx := dao.transactionContext.PgTx | 17 | tx := dao.transactionContext.PgTx |
| 18 | var dividendsEstimateModels []*models.DividendsEstimate | 18 | var dividendsEstimateModels []*models.DividendsEstimate |
| 19 | query := tx.Model(÷ndsEstimateModels) | 19 | query := tx.Model(÷ndsEstimateModels) |
| @@ -22,9 +22,13 @@ func (dao *DividendsEstimateDao) GenerateDividendsEstimateNumber() (string, erro | @@ -22,9 +22,13 @@ func (dao *DividendsEstimateDao) GenerateDividendsEstimateNumber() (string, erro | ||
| 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) | 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) |
| 23 | query.Where("dividends_estimate.created_at >= ?", todayZeroTime) | 23 | query.Where("dividends_estimate.created_at >= ?", todayZeroTime) |
| 24 | query.Where("dividends_estimate.created_at < ?", nextDayZeroTime) | 24 | query.Where("dividends_estimate.created_at < ?", nextDayZeroTime) |
| 25 | + if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | ||
| 26 | + query = query.Where(`dividends_estimate.company @> '{"companyId":"?"}'`, companyId) | ||
| 27 | + } | ||
| 25 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { | 28 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { |
| 26 | return "", err | 29 | return "", err |
| 27 | } else { | 30 | } else { |
| 31 | + if count < 1000 { | ||
| 28 | countStr := fmt.Sprintf("%03d", count+1) | 32 | countStr := fmt.Sprintf("%03d", count+1) |
| 29 | timestamp := currentTime.Unix() | 33 | timestamp := currentTime.Unix() |
| 30 | timeNow := time.Unix(timestamp, 0) | 34 | timeNow := time.Unix(timestamp, 0) |
| @@ -32,6 +36,16 @@ func (dao *DividendsEstimateDao) GenerateDividendsEstimateNumber() (string, erro | @@ -32,6 +36,16 @@ func (dao *DividendsEstimateDao) GenerateDividendsEstimateNumber() (string, erro | ||
| 32 | timeString = timeString[2:len(timeString)] | 36 | timeString = timeString[2:len(timeString)] |
| 33 | dividendsOrderNumber := "FH" + timeString + "#" + countStr | 37 | dividendsOrderNumber := "FH" + timeString + "#" + countStr |
| 34 | return dividendsOrderNumber, nil | 38 | return dividendsOrderNumber, nil |
| 39 | + } else { | ||
| 40 | + countStr := fmt.Sprintf("%d", count+1) | ||
| 41 | + timestamp := currentTime.Unix() | ||
| 42 | + timeNow := time.Unix(timestamp, 0) | ||
| 43 | + timeString := timeNow.Format("20060102") | ||
| 44 | + timeString = timeString[2:len(timeString)] | ||
| 45 | + dividendsOrderNumber := "FH" + timeString + "#" + countStr | ||
| 46 | + return dividendsOrderNumber, nil | ||
| 47 | + } | ||
| 48 | + | ||
| 35 | } | 49 | } |
| 36 | } | 50 | } |
| 37 | 51 |
| @@ -13,7 +13,7 @@ type DividendsOrderDao struct { | @@ -13,7 +13,7 @@ type DividendsOrderDao struct { | ||
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | // GenerateDividendsOrderNumber 生成分红订单号 | 15 | // GenerateDividendsOrderNumber 生成分红订单号 |
| 16 | -func (dao *DividendsOrderDao) GenerateDividendsOrderNumber() (string, error) { | 16 | +func (dao *DividendsOrderDao) GenerateDividendsOrderNumber(queryOptions map[string]interface{}) (string, error) { |
| 17 | tx := dao.transactionContext.PgTx | 17 | tx := dao.transactionContext.PgTx |
| 18 | var dividendsOrderModels []*models.DividendsOrder | 18 | var dividendsOrderModels []*models.DividendsOrder |
| 19 | query := tx.Model(÷ndsOrderModels) | 19 | query := tx.Model(÷ndsOrderModels) |
| @@ -22,6 +22,9 @@ func (dao *DividendsOrderDao) GenerateDividendsOrderNumber() (string, error) { | @@ -22,6 +22,9 @@ func (dao *DividendsOrderDao) GenerateDividendsOrderNumber() (string, error) { | ||
| 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) | 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) |
| 23 | query.Where("dividends_order.created_at >= ?", todayZeroTime) | 23 | query.Where("dividends_order.created_at >= ?", todayZeroTime) |
| 24 | query.Where("dividends_order.created_at < ?", nextDayZeroTime) | 24 | query.Where("dividends_order.created_at < ?", nextDayZeroTime) |
| 25 | + if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | ||
| 26 | + query = query.Where(`dividends_order.company @> '{"companyId":"?"}'`, companyId) | ||
| 27 | + } | ||
| 25 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { | 28 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { |
| 26 | return "", err | 29 | return "", err |
| 27 | } else { | 30 | } else { |
| @@ -13,7 +13,7 @@ type DividendsReturnedOrderDao struct { | @@ -13,7 +13,7 @@ type DividendsReturnedOrderDao struct { | ||
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | // GenerateDividendsReturnedOrderNumber 生成分红退货单号 | 15 | // GenerateDividendsReturnedOrderNumber 生成分红退货单号 |
| 16 | -func (dao *DividendsReturnedOrderDao) GenerateDividendsReturnedOrderNumber() (string, error) { | 16 | +func (dao *DividendsReturnedOrderDao) GenerateDividendsReturnedOrderNumber(queryOptions map[string]interface{}) (string, error) { |
| 17 | tx := dao.transactionContext.PgTx | 17 | tx := dao.transactionContext.PgTx |
| 18 | var dividendsReturnedOrderModels []*models.DividendsReturnedOrder | 18 | var dividendsReturnedOrderModels []*models.DividendsReturnedOrder |
| 19 | query := tx.Model(÷ndsReturnedOrderModels) | 19 | query := tx.Model(÷ndsReturnedOrderModels) |
| @@ -22,6 +22,9 @@ func (dao *DividendsReturnedOrderDao) GenerateDividendsReturnedOrderNumber() (st | @@ -22,6 +22,9 @@ func (dao *DividendsReturnedOrderDao) GenerateDividendsReturnedOrderNumber() (st | ||
| 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) | 22 | nextDayZeroTime := utils.GetNextDayZeroTime(currentTime) |
| 23 | query.Where("dividends_returned_order.created_at >= ?", todayZeroTime) | 23 | query.Where("dividends_returned_order.created_at >= ?", todayZeroTime) |
| 24 | query.Where("dividends_returned_order.created_at < ?", nextDayZeroTime) | 24 | query.Where("dividends_returned_order.created_at < ?", nextDayZeroTime) |
| 25 | + if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | ||
| 26 | + query = query.Where(`dividends_returned_order.company @> '{"companyId":"?"}'`, companyId) | ||
| 27 | + } | ||
| 25 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { | 28 | if count, err := query.AllWithDeleted().SelectAndCount(); err != nil { |
| 26 | return "", err | 29 | return "", err |
| 27 | } else { | 30 | } else { |
| @@ -1159,6 +1159,9 @@ func (repository *CooperationContractRepository) Find(queryOptions map[string]in | @@ -1159,6 +1159,9 @@ func (repository *CooperationContractRepository) Find(queryOptions map[string]in | ||
| 1159 | if cooperationContractNumbers, ok := queryOptions["cooperationContractNumbers"]; ok && len(cooperationContractNumbers.([]string)) != 0 { | 1159 | if cooperationContractNumbers, ok := queryOptions["cooperationContractNumbers"]; ok && len(cooperationContractNumbers.([]string)) != 0 { |
| 1160 | query.Where("cooperation_contract_number in (?)", pg.In(cooperationContractNumbers)) | 1160 | query.Where("cooperation_contract_number in (?)", pg.In(cooperationContractNumbers)) |
| 1161 | } | 1161 | } |
| 1162 | + if incentivesType, ok := queryOptions["incentivesType"]; ok && incentivesType.(int32) != 0 { | ||
| 1163 | + query.Where("incentives_type = ?", incentivesType) | ||
| 1164 | + } | ||
| 1162 | if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { | 1165 | if companyId, ok := queryOptions["companyId"]; ok && companyId.(int64) != 0 { |
| 1163 | query.Where("company->>'companyId' = '?'", companyId) | 1166 | query.Where("company->>'companyId' = '?'", companyId) |
| 1164 | } | 1167 | } |
-
请 注册 或 登录 后发表评论