作者 陈志颖

fix:增加金额激励预算校验

@@ -379,14 +379,6 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent @@ -379,14 +379,6 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent
379 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 379 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
380 } 380 }
381 381
382 - // 用户REST服务初始化  
383 - //var userService service.UserService  
384 - //if value, err := factory.CreateUserService(map[string]interface{}{}); err != nil {  
385 - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())  
386 - //} else {  
387 - // userService = value  
388 - //}  
389 -  
390 // 公司REST服务初始化 382 // 公司REST服务初始化
391 var companyService service.CompanyService 383 var companyService service.CompanyService
392 if value, err := factory.CreateCompanyService(map[string]interface{}{}); err != nil { 384 if value, err := factory.CreateCompanyService(map[string]interface{}{}); err != nil {
@@ -89,69 +89,76 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do @@ -89,69 +89,76 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do
89 DividendsAmount: undertakerDividendsAmount, 89 DividendsAmount: undertakerDividendsAmount,
90 }) 90 })
91 } 91 }
  92 +
92 // 判断业务员在当前阶段是否已经分红 93 // 判断业务员在当前阶段是否已经分红
93 - salesmanEstimated, err := dividendsEstimateDao.UserEstimated(map[string]interface{}{  
94 - "undertakerUid": undertaker.Salesman.UserId,  
95 - "companyId": contract.Company.CompanyId,  
96 - "orgId": contract.Org.OrgId,  
97 - })  
98 - if err != nil {  
99 - return nil, err  
100 - }  
101 - if salesmanEstimated {  
102 - return nil, fmt.Errorf("业务员 " + undertaker.Salesman.UserName + " 已分红")  
103 - } else {  
104 - undertakerDividendsAmount := moneyIncentivesRuleMatched.MoneyIncentivesAmount * (moneyIncentivesRuleMatched.SalesmanPercentage / 100)  
105 - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{  
106 - DividendsUser: &domain.User{  
107 - UserId: undertaker.Salesman.UserId,  
108 - UserBaseId: undertaker.Salesman.UserBaseId,  
109 - Org: undertaker.Salesman.Org,  
110 - Orgs: undertaker.Salesman.Orgs,  
111 - Department: undertaker.Salesman.Department,  
112 - Roles: undertaker.Salesman.Roles,  
113 - UserInfo: undertaker.Salesman.UserInfo,  
114 - UserType: undertaker.Salesman.UserType,  
115 - UserName: undertaker.Salesman.UserName,  
116 - UserPhone: undertaker.Salesman.UserPhone,  
117 - Company: undertaker.Salesman.Company,  
118 - },  
119 - DividendsParticipateType: domain.MONEY_INCENTIVES,  
120 - DividendsStage: stage,  
121 - DividendsAmount: undertakerDividendsAmount, 94 + if undertaker.Salesman.UserId != 0 {
  95 + salesmanEstimated, err := dividendsEstimateDao.UserEstimated(map[string]interface{}{
  96 + "undertakerUid": undertaker.Salesman.UserId,
  97 + "companyId": contract.Company.CompanyId,
  98 + "orgId": contract.Org.OrgId,
122 }) 99 })
  100 + if err != nil {
  101 + return nil, err
  102 + }
  103 + if salesmanEstimated {
  104 + return nil, fmt.Errorf("业务员 " + undertaker.Salesman.UserName + " 已分红")
  105 + } else {
  106 + undertakerDividendsAmount := moneyIncentivesRuleMatched.MoneyIncentivesAmount * (moneyIncentivesRuleMatched.SalesmanPercentage / 100)
  107 + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
  108 + DividendsUser: &domain.User{
  109 + UserId: undertaker.Salesman.UserId,
  110 + UserBaseId: undertaker.Salesman.UserBaseId,
  111 + Org: undertaker.Salesman.Org,
  112 + Orgs: undertaker.Salesman.Orgs,
  113 + Department: undertaker.Salesman.Department,
  114 + Roles: undertaker.Salesman.Roles,
  115 + UserInfo: undertaker.Salesman.UserInfo,
  116 + UserType: undertaker.Salesman.UserType,
  117 + UserName: undertaker.Salesman.UserName,
  118 + UserPhone: undertaker.Salesman.UserPhone,
  119 + Company: undertaker.Salesman.Company,
  120 + },
  121 + DividendsParticipateType: domain.MONEY_INCENTIVES,
  122 + DividendsStage: stage,
  123 + DividendsAmount: undertakerDividendsAmount,
  124 + })
  125 + }
  126 +
123 } 127 }
  128 +
124 // 判断关联业务员在当前阶段是否已经分红 129 // 判断关联业务员在当前阶段是否已经分红
125 - referrerEstimated, err := dividendsEstimateDao.UserEstimated(map[string]interface{}{  
126 - "undertakerUid": undertaker.Referrer.UserId,  
127 - "companyId": contract.Company.CompanyId,  
128 - "orgId": contract.Org.OrgId,  
129 - })  
130 - if err != nil {  
131 - return nil, err  
132 - }  
133 - if referrerEstimated {  
134 - return nil, fmt.Errorf("推荐人 " + undertaker.Salesman.UserName + " 已分红")  
135 - } else {  
136 - undertakerDividendsAmount := moneyIncentivesRuleMatched.MoneyIncentivesAmount * (moneyIncentivesRuleMatched.ReferrerPercentage / 100)  
137 - dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{  
138 - DividendsUser: &domain.User{  
139 - UserId: undertaker.Referrer.UserId,  
140 - UserBaseId: undertaker.Referrer.UserBaseId,  
141 - Org: undertaker.Referrer.Org,  
142 - Orgs: undertaker.Referrer.Orgs,  
143 - Department: undertaker.Referrer.Department,  
144 - Roles: undertaker.Referrer.Roles,  
145 - UserInfo: undertaker.Referrer.UserInfo,  
146 - UserType: undertaker.Referrer.UserType,  
147 - UserName: undertaker.Referrer.UserName,  
148 - UserPhone: undertaker.Referrer.UserPhone,  
149 - Company: undertaker.Referrer.Company,  
150 - },  
151 - DividendsParticipateType: domain.MONEY_INCENTIVES,  
152 - DividendsStage: stage,  
153 - DividendsAmount: undertakerDividendsAmount, 130 + if undertaker.Referrer.UserId != 0 {
  131 + referrerEstimated, err := dividendsEstimateDao.UserEstimated(map[string]interface{}{
  132 + "undertakerUid": undertaker.Referrer.UserId,
  133 + "companyId": contract.Company.CompanyId,
  134 + "orgId": contract.Org.OrgId,
154 }) 135 })
  136 + if err != nil {
  137 + return nil, err
  138 + }
  139 + if referrerEstimated {
  140 + return nil, fmt.Errorf("推荐人 " + undertaker.Salesman.UserName + " 已分红")
  141 + } else {
  142 + undertakerDividendsAmount := moneyIncentivesRuleMatched.MoneyIncentivesAmount * (moneyIncentivesRuleMatched.ReferrerPercentage / 100)
  143 + dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
  144 + DividendsUser: &domain.User{
  145 + UserId: undertaker.Referrer.UserId,
  146 + UserBaseId: undertaker.Referrer.UserBaseId,
  147 + Org: undertaker.Referrer.Org,
  148 + Orgs: undertaker.Referrer.Orgs,
  149 + Department: undertaker.Referrer.Department,
  150 + Roles: undertaker.Referrer.Roles,
  151 + UserInfo: undertaker.Referrer.UserInfo,
  152 + UserType: undertaker.Referrer.UserType,
  153 + UserName: undertaker.Referrer.UserName,
  154 + UserPhone: undertaker.Referrer.UserPhone,
  155 + Company: undertaker.Referrer.Company,
  156 + },
  157 + DividendsParticipateType: domain.MONEY_INCENTIVES,
  158 + DividendsStage: stage,
  159 + DividendsAmount: undertakerDividendsAmount,
  160 + })
  161 + }
155 } 162 }
156 } 163 }
157 return dividendsEstimateDetails, nil 164 return dividendsEstimateDetails, nil