作者 陈志颖

合并分支 'dev' 到 'test'

Dev



查看合并请求 !28
@@ -237,7 +237,11 @@ func (dividendsEstimateService *DividendsEstimateService) CancelDividendsEstimat @@ -237,7 +237,11 @@ func (dividendsEstimateService *DividendsEstimateService) CancelDividendsEstimat
237 237
238 // 校验是否能够取消 238 // 校验是否能够取消
239 if dividendsEstimate.DividendsType == domain.ORDER_DIVIDENDS || dividendsEstimate.DividendsType == domain.RETURN_WRITE_OFF { // 订单分红、退货冲销 239 if dividendsEstimate.DividendsType == domain.ORDER_DIVIDENDS || dividendsEstimate.DividendsType == domain.RETURN_WRITE_OFF { // 订单分红、退货冲销
240 - if count, dividendsEstimatesRelative, err2 := dividendsEstimateRepository.Find(map[string]interface{}{"orderOrReturnedOrderNum": dividendsEstimate.OrderOrReturnedOrderNum}); err2 != nil { 240 + if count, dividendsEstimatesRelative, err2 := dividendsEstimateRepository.Find(map[string]interface{}{
  241 + "orderOrReturnedOrderNum": dividendsEstimate.OrderOrReturnedOrderNum,
  242 + "companyId": dividendsEstimate.Company.CompanyId,
  243 + "orgId": dividendsEstimate.Org.OrgId,
  244 + }); err2 != nil {
241 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err2.Error()) 245 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err2.Error())
242 } else { 246 } else {
243 if count > 0 { 247 if count > 0 {
@@ -249,7 +253,11 @@ func (dividendsEstimateService *DividendsEstimateService) CancelDividendsEstimat @@ -249,7 +253,11 @@ func (dividendsEstimateService *DividendsEstimateService) CancelDividendsEstimat
249 } 253 }
250 } 254 }
251 } else if dividendsEstimate.DividendsType == domain.MONEY_INCENTIVES { // 金额激励分红 255 } else if dividendsEstimate.DividendsType == domain.MONEY_INCENTIVES { // 金额激励分红
252 - if count, dividendsEstimatesRelative, err3 := dividendsEstimateRepository.Find(map[string]interface{}{"cooperationContractNumber": dividendsEstimate.CooperationContractNumber}); err3 != nil { 256 + if count, dividendsEstimatesRelative, err3 := dividendsEstimateRepository.Find(map[string]interface{}{
  257 + "cooperationContractNumber": dividendsEstimate.CooperationContractNumber,
  258 + "companyId": dividendsEstimate.Company.CompanyId,
  259 + "orgId": dividendsEstimate.Org.OrgId,
  260 + }); err3 != nil {
253 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err3.Error()) 261 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err3.Error())
254 } else { 262 } else {
255 if count > 0 { 263 if count > 0 {
@@ -347,10 +355,14 @@ func (dividendsEstimateService *DividendsEstimateService) BatchCancelDividendsEs @@ -347,10 +355,14 @@ func (dividendsEstimateService *DividendsEstimateService) BatchCancelDividendsEs
347 355
348 // 校验是否能够取消 356 // 校验是否能够取消
349 if dividendsEstimate.DividendsType == domain.ORDER_DIVIDENDS || dividendsEstimate.DividendsType == domain.RETURN_WRITE_OFF { // 订单分红、退货冲销 357 if dividendsEstimate.DividendsType == domain.ORDER_DIVIDENDS || dividendsEstimate.DividendsType == domain.RETURN_WRITE_OFF { // 订单分红、退货冲销
350 - if count, dividendsEstimatesRelative, err2 := dividendsEstimateRepository.Find(map[string]interface{}{"orderOrReturnedOrderNum": dividendsEstimate.OrderOrReturnedOrderNum}); err2 != nil { 358 + if countRelativeDividendsEstimates, dividendsEstimatesRelative, err2 := dividendsEstimateRepository.Find(map[string]interface{}{
  359 + "orderOrReturnedOrderNum": dividendsEstimate.OrderOrReturnedOrderNum,
  360 + "companyId": dividendsEstimate.Company.CompanyId,
  361 + "orgId": dividendsEstimate.Org.OrgId,
  362 + }); err2 != nil {
351 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err2.Error()) 363 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err2.Error())
352 } else { 364 } else {
353 - if count > 0 { 365 + if countRelativeDividendsEstimates > 0 {
354 for _, dividendsEstimateRelative := range dividendsEstimatesRelative { 366 for _, dividendsEstimateRelative := range dividendsEstimatesRelative {
355 if dividendsEstimateRelative.DividendsAccountStatus == domain.ACCOUNTED { 367 if dividendsEstimateRelative.DividendsAccountStatus == domain.ACCOUNTED {
356 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已有相关分红预算单已结算,无法取消") 368 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已有相关分红预算单已结算,无法取消")
@@ -359,10 +371,14 @@ func (dividendsEstimateService *DividendsEstimateService) BatchCancelDividendsEs @@ -359,10 +371,14 @@ func (dividendsEstimateService *DividendsEstimateService) BatchCancelDividendsEs
359 } 371 }
360 } 372 }
361 } else if dividendsEstimate.DividendsType == domain.MONEY_INCENTIVES { // 金额激励分红 373 } else if dividendsEstimate.DividendsType == domain.MONEY_INCENTIVES { // 金额激励分红
362 - if count, dividendsEstimatesRelative, err3 := dividendsEstimateRepository.Find(map[string]interface{}{"cooperationContractNumber": dividendsEstimate.CooperationContractNumber}); err3 != nil { 374 + if countRelativeDividendsEstimates, dividendsEstimatesRelative, err3 := dividendsEstimateRepository.Find(map[string]interface{}{
  375 + "cooperationContractNumber": dividendsEstimate.CooperationContractNumber,
  376 + "companyId": dividendsEstimate.Company.CompanyId,
  377 + "orgId": dividendsEstimate.Org.OrgId,
  378 + }); err3 != nil {
363 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err3.Error()) 379 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err3.Error())
364 } else { 380 } else {
365 - if count > 0 { 381 + if countRelativeDividendsEstimates > 0 {
366 for _, dividendsEstimateRelative := range dividendsEstimatesRelative { 382 for _, dividendsEstimateRelative := range dividendsEstimatesRelative {
367 if dividendsEstimateRelative.DividendsAccountStatus == domain.ACCOUNTED { 383 if dividendsEstimateRelative.DividendsAccountStatus == domain.ACCOUNTED {
368 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已有相关分红预算单已结算,无法取消") 384 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已有相关分红预算单已结算,无法取消")
@@ -117,21 +117,6 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo @@ -117,21 +117,6 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo
117 continue 117 continue
118 } 118 }
119 119
120 - // 校验合约关联的项目是否已结束  
121 - //if cooperationProject.Status == 2 {  
122 - // dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{  
123 - // DividendsUser: nil,  
124 - // DividendsParticipateType: 0,  
125 - // DividendsStage: 0,  
126 - // DividendsAmount: 0,  
127 - // OrderOrReturnedOrderNumber: orderGood.DividendsOrderNumber,  
128 - // IsSuccessfully: false,  
129 - // Reason: "共创项目" + orderGood.CooperationContractNumber + "已结束",  
130 - // })  
131 - // continue  
132 - // //return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("共创项目%s已结束", cooperationContract.CooperationProjectNumber))  
133 - //}  
134 -  
135 if orderGood.DividendsOrderNumber != "" { // 获取分红订单 120 if orderGood.DividendsOrderNumber != "" { // 获取分红订单
136 // 获取分红订单 121 // 获取分红订单
137 dividendsOrder, err2 := dividendsOrderRepository.FindOne(map[string]interface{}{ 122 dividendsOrder, err2 := dividendsOrderRepository.FindOne(map[string]interface{}{
@@ -190,75 +175,82 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo @@ -190,75 +175,82 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo
190 if dividendsIncentivesRuleMatched != nil { 175 if dividendsIncentivesRuleMatched != nil {
191 for _, undertaker := range cooperationContract.Undertakers { 176 for _, undertaker := range cooperationContract.Undertakers {
192 // 添加承接人分红预算信息详情 177 // 添加承接人分红预算信息详情
193 - undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64()  
194 - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{  
195 - DividendsUser: &domain.User{  
196 - UserId: undertaker.UserId,  
197 - UserBaseId: undertaker.UserBaseId,  
198 - Org: undertaker.Org,  
199 - Orgs: undertaker.Orgs,  
200 - Department: undertaker.Department,  
201 - Roles: undertaker.Roles,  
202 - UserInfo: undertaker.UserInfo,  
203 - UserType: undertaker.UserType,  
204 - UserName: undertaker.UserInfo.UserName,  
205 - UserPhone: undertaker.UserPhone,  
206 - Status: undertaker.Status,  
207 - Company: undertaker.Company,  
208 - },  
209 - DividendsParticipateType: domain.UNDERTAKER,  
210 - DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,  
211 - DividendsAmount: undertakerDividendsAmount,  
212 - OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber,  
213 - IsSuccessfully: true,  
214 - })  
215 - // 添加推荐人分红预算信息详情  
216 - if undertaker.Referrer != nil {  
217 - referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64() 178 + if dividendsIncentivesRuleMatched.DividendsIncentivesPercentage > 0 {
  179 + undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64()
218 dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ 180 dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
219 DividendsUser: &domain.User{ 181 DividendsUser: &domain.User{
220 - UserId: undertaker.Referrer.UserId,  
221 - UserBaseId: undertaker.Referrer.UserBaseId,  
222 - Org: undertaker.Referrer.Org,  
223 - Orgs: undertaker.Referrer.Orgs,  
224 - Department: undertaker.Referrer.Department,  
225 - Roles: undertaker.Referrer.Roles,  
226 - UserInfo: undertaker.Referrer.UserInfo,  
227 - UserType: undertaker.Referrer.UserType,  
228 - UserName: undertaker.Referrer.UserName,  
229 - UserPhone: undertaker.Referrer.UserPhone,  
230 - Company: undertaker.Referrer.Company, 182 + UserId: undertaker.UserId,
  183 + UserBaseId: undertaker.UserBaseId,
  184 + Org: undertaker.Org,
  185 + Orgs: undertaker.Orgs,
  186 + Department: undertaker.Department,
  187 + Roles: undertaker.Roles,
  188 + UserInfo: undertaker.UserInfo,
  189 + UserType: undertaker.UserType,
  190 + UserName: undertaker.UserInfo.UserName,
  191 + UserPhone: undertaker.UserPhone,
  192 + Status: undertaker.Status,
  193 + Company: undertaker.Company,
231 }, 194 },
232 - DividendsParticipateType: domain.REFERRER, 195 + DividendsParticipateType: domain.UNDERTAKER,
233 DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, 196 DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
234 - DividendsAmount: referrerDividendsAmount, 197 + DividendsAmount: undertakerDividendsAmount,
235 OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber, 198 OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber,
236 IsSuccessfully: true, 199 IsSuccessfully: true,
237 }) 200 })
238 } 201 }
  202 +
  203 + // 添加推荐人分红预算信息详情
  204 + if undertaker.Referrer != nil {
  205 + if dividendsIncentivesRuleMatched.ReferrerPercentage > 0 {
  206 + referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64()
  207 + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
  208 + DividendsUser: &domain.User{
  209 + UserId: undertaker.Referrer.UserId,
  210 + UserBaseId: undertaker.Referrer.UserBaseId,
  211 + Org: undertaker.Referrer.Org,
  212 + Orgs: undertaker.Referrer.Orgs,
  213 + Department: undertaker.Referrer.Department,
  214 + Roles: undertaker.Referrer.Roles,
  215 + UserInfo: undertaker.Referrer.UserInfo,
  216 + UserType: undertaker.Referrer.UserType,
  217 + UserName: undertaker.Referrer.UserName,
  218 + UserPhone: undertaker.Referrer.UserPhone,
  219 + Company: undertaker.Referrer.Company,
  220 + },
  221 + DividendsParticipateType: domain.REFERRER,
  222 + DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
  223 + DividendsAmount: referrerDividendsAmount,
  224 + OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber,
  225 + IsSuccessfully: true,
  226 + })
  227 + }
  228 + }
239 // 添加关联业务员分红预算信息详情 229 // 添加关联业务员分红预算信息详情
240 if undertaker.Salesman != nil { 230 if undertaker.Salesman != nil {
241 - salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64()  
242 - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{  
243 - DividendsUser: &domain.User{  
244 - UserId: undertaker.Salesman.UserId,  
245 - UserBaseId: undertaker.Salesman.UserBaseId,  
246 - Org: undertaker.Salesman.Org,  
247 - Orgs: undertaker.Salesman.Orgs,  
248 - Department: undertaker.Salesman.Department,  
249 - Roles: undertaker.Salesman.Roles,  
250 - UserInfo: undertaker.Salesman.UserInfo,  
251 - UserType: undertaker.Salesman.UserType,  
252 - UserName: undertaker.Salesman.UserInfo.UserName,  
253 - UserPhone: undertaker.Salesman.UserPhone,  
254 - Company: undertaker.Salesman.Company,  
255 - },  
256 - DividendsParticipateType: domain.SALESMAN,  
257 - DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,  
258 - DividendsAmount: salesmanDividendsAmount,  
259 - OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber,  
260 - IsSuccessfully: true,  
261 - }) 231 + if dividendsIncentivesRuleMatched.SalesmanPercentage > 0 {
  232 + salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64()
  233 + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
  234 + DividendsUser: &domain.User{
  235 + UserId: undertaker.Salesman.UserId,
  236 + UserBaseId: undertaker.Salesman.UserBaseId,
  237 + Org: undertaker.Salesman.Org,
  238 + Orgs: undertaker.Salesman.Orgs,
  239 + Department: undertaker.Salesman.Department,
  240 + Roles: undertaker.Salesman.Roles,
  241 + UserInfo: undertaker.Salesman.UserInfo,
  242 + UserType: undertaker.Salesman.UserType,
  243 + UserName: undertaker.Salesman.UserInfo.UserName,
  244 + UserPhone: undertaker.Salesman.UserPhone,
  245 + Company: undertaker.Salesman.Company,
  246 + },
  247 + DividendsParticipateType: domain.SALESMAN,
  248 + DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
  249 + DividendsAmount: salesmanDividendsAmount,
  250 + OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber,
  251 + IsSuccessfully: true,
  252 + })
  253 + }
262 } 254 }
263 } 255 }
264 } 256 }
@@ -304,75 +296,84 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo @@ -304,75 +296,84 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo
304 // 计算分红 296 // 计算分红
305 for _, undertaker := range cooperationContract.Undertakers { 297 for _, undertaker := range cooperationContract.Undertakers {
306 // 添加承接人分红退货预算信息详情 298 // 添加承接人分红退货预算信息详情
307 - undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64()  
308 - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{  
309 - DividendsUser: &domain.User{  
310 - UserId: undertaker.UserId,  
311 - UserBaseId: undertaker.UserBaseId,  
312 - Org: undertaker.Org,  
313 - Orgs: undertaker.Orgs,  
314 - Department: undertaker.Department,  
315 - Roles: undertaker.Roles,  
316 - UserInfo: undertaker.UserInfo,  
317 - UserType: undertaker.UserType,  
318 - UserName: undertaker.UserInfo.UserName,  
319 - UserPhone: undertaker.UserPhone,  
320 - Status: undertaker.Status,  
321 - Company: undertaker.Company,  
322 - },  
323 - DividendsParticipateType: domain.UNDERTAKER,  
324 - DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,  
325 - DividendsAmount: -undertakerDividendsAmount,  
326 - OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,  
327 - IsSuccessfully: true,  
328 - })  
329 - // 添加推荐人分红退货预算信息详情  
330 - if undertaker.Referrer != nil {  
331 - referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64() 299 + if dividendsIncentivesRuleMatched.DividendsIncentivesPercentage > 0 {
  300 + undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64()
332 dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{ 301 dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
333 DividendsUser: &domain.User{ 302 DividendsUser: &domain.User{
334 - UserId: undertaker.Referrer.UserId,  
335 - UserBaseId: undertaker.Referrer.UserBaseId,  
336 - Org: undertaker.Referrer.Org,  
337 - Orgs: undertaker.Referrer.Orgs,  
338 - Department: undertaker.Referrer.Department,  
339 - Roles: undertaker.Referrer.Roles,  
340 - UserInfo: undertaker.Referrer.UserInfo,  
341 - UserType: undertaker.Referrer.UserType,  
342 - UserName: undertaker.Referrer.UserName,  
343 - UserPhone: undertaker.Referrer.UserPhone,  
344 - Company: undertaker.Referrer.Company, 303 + UserId: undertaker.UserId,
  304 + UserBaseId: undertaker.UserBaseId,
  305 + Org: undertaker.Org,
  306 + Orgs: undertaker.Orgs,
  307 + Department: undertaker.Department,
  308 + Roles: undertaker.Roles,
  309 + UserInfo: undertaker.UserInfo,
  310 + UserType: undertaker.UserType,
  311 + UserName: undertaker.UserInfo.UserName,
  312 + UserPhone: undertaker.UserPhone,
  313 + Status: undertaker.Status,
  314 + Company: undertaker.Company,
345 }, 315 },
346 - DividendsParticipateType: domain.REFERRER, 316 + DividendsParticipateType: domain.UNDERTAKER,
347 DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage, 317 DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
348 - DividendsAmount: -referrerDividendsAmount, 318 + DividendsAmount: -undertakerDividendsAmount,
349 OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber, 319 OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,
350 IsSuccessfully: true, 320 IsSuccessfully: true,
351 }) 321 })
352 } 322 }
  323 +
  324 + // 添加推荐人分红退货预算信息详情
  325 + if undertaker.Referrer != nil {
  326 + if dividendsIncentivesRuleMatched.ReferrerPercentage > 0 {
  327 + referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64()
  328 + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
  329 + DividendsUser: &domain.User{
  330 + UserId: undertaker.Referrer.UserId,
  331 + UserBaseId: undertaker.Referrer.UserBaseId,
  332 + Org: undertaker.Referrer.Org,
  333 + Orgs: undertaker.Referrer.Orgs,
  334 + Department: undertaker.Referrer.Department,
  335 + Roles: undertaker.Referrer.Roles,
  336 + UserInfo: undertaker.Referrer.UserInfo,
  337 + UserType: undertaker.Referrer.UserType,
  338 + UserName: undertaker.Referrer.UserName,
  339 + UserPhone: undertaker.Referrer.UserPhone,
  340 + Company: undertaker.Referrer.Company,
  341 + },
  342 + DividendsParticipateType: domain.REFERRER,
  343 + DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
  344 + DividendsAmount: -referrerDividendsAmount,
  345 + OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,
  346 + IsSuccessfully: true,
  347 + })
  348 + }
  349 + }
  350 +
353 // 添加关联业务员分红退货预算信息详情 351 // 添加关联业务员分红退货预算信息详情
354 if undertaker.Salesman != nil { 352 if undertaker.Salesman != nil {
355 - salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64()  
356 - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{  
357 - DividendsUser: &domain.User{  
358 - UserId: undertaker.Salesman.UserId,  
359 - UserBaseId: undertaker.Salesman.UserBaseId,  
360 - Org: undertaker.Salesman.Org,  
361 - Orgs: undertaker.Salesman.Orgs,  
362 - Department: undertaker.Salesman.Department,  
363 - Roles: undertaker.Salesman.Roles,  
364 - UserInfo: undertaker.Salesman.UserInfo,  
365 - UserType: undertaker.Salesman.UserType,  
366 - UserName: undertaker.Salesman.UserInfo.UserName,  
367 - UserPhone: undertaker.Salesman.UserPhone,  
368 - Company: undertaker.Salesman.Company,  
369 - },  
370 - DividendsParticipateType: domain.SALESMAN,  
371 - DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,  
372 - DividendsAmount: -salesmanDividendsAmount,  
373 - OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,  
374 - IsSuccessfully: true,  
375 - }) 353 + if dividendsIncentivesRuleMatched.SalesmanPercentage > 0 {
  354 + salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64()
  355 + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
  356 + DividendsUser: &domain.User{
  357 + UserId: undertaker.Salesman.UserId,
  358 + UserBaseId: undertaker.Salesman.UserBaseId,
  359 + Org: undertaker.Salesman.Org,
  360 + Orgs: undertaker.Salesman.Orgs,
  361 + Department: undertaker.Salesman.Department,
  362 + Roles: undertaker.Salesman.Roles,
  363 + UserInfo: undertaker.Salesman.UserInfo,
  364 + UserType: undertaker.Salesman.UserType,
  365 + UserName: undertaker.Salesman.UserInfo.UserName,
  366 + UserPhone: undertaker.Salesman.UserPhone,
  367 + Company: undertaker.Salesman.Company,
  368 + },
  369 + DividendsParticipateType: domain.SALESMAN,
  370 + DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
  371 + DividendsAmount: -salesmanDividendsAmount,
  372 + OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,
  373 + IsSuccessfully: true,
  374 + })
  375 + }
  376 +
376 } 377 }
377 } 378 }
378 } 379 }
1 package transform 1 package transform
2 2
3 import ( 3 import (
  4 + "github.com/shopspring/decimal"
4 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain" 5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models" 6 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models"
6 ) 7 )
7 8
8 func TransformToDividendsEstimateDomainModelFromPgModels(dividendsEstimateModel *models.DividendsEstimate) (*domain.DividendsEstimate, error) { 9 func TransformToDividendsEstimateDomainModelFromPgModels(dividendsEstimateModel *models.DividendsEstimate) (*domain.DividendsEstimate, error) {
  10 + dividendsAmount, _ := decimal.NewFromFloatWithExponent(dividendsEstimateModel.DividendsAmount, -2).Float64()
9 return &domain.DividendsEstimate{ 11 return &domain.DividendsEstimate{
10 DividendsEstimateId: dividendsEstimateModel.DividendsEstimateId, 12 DividendsEstimateId: dividendsEstimateModel.DividendsEstimateId,
11 DividendsAccountStatus: dividendsEstimateModel.DividendsAccountStatus, 13 DividendsAccountStatus: dividendsEstimateModel.DividendsAccountStatus,
12 - DividendsAmount: dividendsEstimateModel.DividendsAmount, 14 + DividendsAmount: dividendsAmount,
13 DividendsEstimateOrderNumber: dividendsEstimateModel.DividendsEstimateOrderNumber, 15 DividendsEstimateOrderNumber: dividendsEstimateModel.DividendsEstimateOrderNumber,
14 DividendsEstimateTime: dividendsEstimateModel.DividendsEstimateTime, 16 DividendsEstimateTime: dividendsEstimateModel.DividendsEstimateTime,
15 DividendsParticipateType: dividendsEstimateModel.DividendsParticipateType, 17 DividendsParticipateType: dividendsEstimateModel.DividendsParticipateType,
1 package transform 1 package transform
2 2
3 import ( 3 import (
  4 + "github.com/shopspring/decimal"
4 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain" 5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models" 6 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models"
6 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils" 7 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils"
@@ -8,10 +9,11 @@ import ( @@ -8,10 +9,11 @@ import (
8 9
9 func TransformToMoneyIncentivesRuleDomainModelFromPgModels(moneyIncentivesRuleModel *models.MoneyIncentivesRule) (*domain.MoneyIncentivesRule, error) { 10 func TransformToMoneyIncentivesRuleDomainModelFromPgModels(moneyIncentivesRuleModel *models.MoneyIncentivesRule) (*domain.MoneyIncentivesRule, error) {
10 stageString := utils.NumberToCNNumber(int(moneyIncentivesRuleModel.MoneyIncentivesStage)) 11 stageString := utils.NumberToCNNumber(int(moneyIncentivesRuleModel.MoneyIncentivesStage))
  12 + moneyIncentivesAmount, _ := decimal.NewFromFloatWithExponent(moneyIncentivesRuleModel.MoneyIncentivesAmount, -2).Float64()
11 return &domain.MoneyIncentivesRule{ 13 return &domain.MoneyIncentivesRule{
12 MoneyIncentivesRuleId: moneyIncentivesRuleModel.MoneyIncentivesRuleId, 14 MoneyIncentivesRuleId: moneyIncentivesRuleModel.MoneyIncentivesRuleId,
13 CooperationContractNumber: moneyIncentivesRuleModel.CooperationContractNumber, 15 CooperationContractNumber: moneyIncentivesRuleModel.CooperationContractNumber,
14 - MoneyIncentivesAmount: moneyIncentivesRuleModel.MoneyIncentivesAmount, 16 + MoneyIncentivesAmount: moneyIncentivesAmount,
15 MoneyIncentivesStage: moneyIncentivesRuleModel.MoneyIncentivesStage, 17 MoneyIncentivesStage: moneyIncentivesRuleModel.MoneyIncentivesStage,
16 MoneyIncentivesStageCN: stageString, 18 MoneyIncentivesStageCN: stageString,
17 MoneyIncentivesStageEnd: moneyIncentivesRuleModel.MoneyIncentivesStageEnd, 19 MoneyIncentivesStageEnd: moneyIncentivesRuleModel.MoneyIncentivesStageEnd,
1 package transform 1 package transform
2 2
3 import ( 3 import (
  4 + "github.com/shopspring/decimal"
4 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain" 5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models" 6 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models"
6 ) 7 )
7 8
8 func TransformToOrderGoodDomainModelFromPgModels(orderGoodModel *models.OrderGood) (*domain.OrderGood, error) { 9 func TransformToOrderGoodDomainModelFromPgModels(orderGoodModel *models.OrderGood) (*domain.OrderGood, error) {
  10 + orderGoodAmount, _ := decimal.NewFromFloatWithExponent(orderGoodModel.OrderGoodAmount, -2).Float64()
9 return &domain.OrderGood{ 11 return &domain.OrderGood{
10 OrderGoodId: orderGoodModel.OrderGoodId, 12 OrderGoodId: orderGoodModel.OrderGoodId,
11 - OrderGoodAmount: orderGoodModel.OrderGoodAmount, 13 + OrderGoodAmount: orderGoodAmount,
12 OrderGoodName: orderGoodModel.OrderGoodName, 14 OrderGoodName: orderGoodModel.OrderGoodName,
13 OrderGoodPrice: orderGoodModel.OrderGoodPrice, 15 OrderGoodPrice: orderGoodModel.OrderGoodPrice,
14 OrderGoodQuantity: orderGoodModel.OrderGoodQuantity, 16 OrderGoodQuantity: orderGoodModel.OrderGoodQuantity,