作者 陈志颖

fix:修复订单产品编辑问题

@@ -147,12 +147,14 @@ func (creditAccountService *CreditAccountService) CreateCreditAccount(createCred @@ -147,12 +147,14 @@ func (creditAccountService *CreditAccountService) CreateCreditAccount(createCred
147 // 预算明细 147 // 预算明细
148 var creditAccounts []*domain.CreditAccount 148 var creditAccounts []*domain.CreditAccount
149 var accountDetail []*domain.AccountDetail 149 var accountDetail []*domain.AccountDetail
  150 + var settlementAmount float64
150 for _, dividendsEstimate := range dividendsEstimates { 151 for _, dividendsEstimate := range dividendsEstimates {
151 accountDetail = append(accountDetail, &domain.AccountDetail{ 152 accountDetail = append(accountDetail, &domain.AccountDetail{
152 DividendsEstimateOrderNumber: dividendsEstimate.DividendsEstimateOrderNumber, 153 DividendsEstimateOrderNumber: dividendsEstimate.DividendsEstimateOrderNumber,
153 DividendsType: dividendsEstimate.DividendsType, 154 DividendsType: dividendsEstimate.DividendsType,
154 DividendsAmount: dividendsEstimate.DividendsAmount, 155 DividendsAmount: dividendsEstimate.DividendsAmount,
155 }) 156 })
  157 + settlementAmount = settlementAmount + dividendsEstimate.DividendsAmount
156 } 158 }
157 159
158 // 生成账期结算单号 160 // 生成账期结算单号
@@ -167,7 +169,7 @@ func (creditAccountService *CreditAccountService) CreateCreditAccount(createCred @@ -167,7 +169,7 @@ func (creditAccountService *CreditAccountService) CreateCreditAccount(createCred
167 CreditAccountOrderNum: creditAccountNumber, 169 CreditAccountOrderNum: creditAccountNumber,
168 PaymentStatus: 1, 170 PaymentStatus: 1,
169 PaymentTime: time.Time{}, 171 PaymentTime: time.Time{},
170 - SettlementAmount: dividendsEstimates[0].DividendsAmount, 172 + SettlementAmount: settlementAmount,
171 SettlementTime: time.Now(), 173 SettlementTime: time.Now(),
172 Participator: &domain.Participator{ // 共创参与 174 Participator: &domain.Participator{ // 共创参与
173 UserId: dividendsEstimates[0].DividendsUser.UserId, 175 UserId: dividendsEstimates[0].DividendsUser.UserId,
@@ -183,7 +185,7 @@ func (creditAccountService *CreditAccountService) CreateCreditAccount(createCred @@ -183,7 +185,7 @@ func (creditAccountService *CreditAccountService) CreateCreditAccount(createCred
183 Status: dividendsEstimates[0].DividendsUser.Status, 185 Status: dividendsEstimates[0].DividendsUser.Status,
184 Company: dividendsEstimates[0].DividendsUser.Company, 186 Company: dividendsEstimates[0].DividendsUser.Company,
185 }, 187 },
186 - AccountDetail: accountDetail, 188 + AccountDetail: accountDetail, // 结算明细,多笔分红预算单
187 PaymentDocumentAttachment: nil, 189 PaymentDocumentAttachment: nil,
188 Org: organization, 190 Org: organization,
189 Company: company, 191 Company: company,
@@ -318,8 +320,11 @@ func (creditAccountService *CreditAccountService) PayCreditAccount(payCreditAcco @@ -318,8 +320,11 @@ func (creditAccountService *CreditAccountService) PayCreditAccount(payCreditAcco
318 defer func() { 320 defer func() {
319 _ = transactionContext.RollbackTransaction() 321 _ = transactionContext.RollbackTransaction()
320 }() 322 }()
  323 +
321 // 参数类型转换 324 // 参数类型转换
322 creditAccountId, _ := strconv.ParseInt(payCreditAccountCommand.CreditAccountId, 10, 64) 325 creditAccountId, _ := strconv.ParseInt(payCreditAccountCommand.CreditAccountId, 10, 64)
  326 +
  327 + // 账期结算仓储初始化
323 var creditAccountRepository domain.CreditAccountRepository 328 var creditAccountRepository domain.CreditAccountRepository
324 if value, err1 := factory.CreateCreditAccountRepository(map[string]interface{}{ 329 if value, err1 := factory.CreateCreditAccountRepository(map[string]interface{}{
325 "transactionContext": transactionContext, 330 "transactionContext": transactionContext,
@@ -328,6 +333,7 @@ func (creditAccountService *CreditAccountService) PayCreditAccount(payCreditAcco @@ -328,6 +333,7 @@ func (creditAccountService *CreditAccountService) PayCreditAccount(payCreditAcco
328 } else { 333 } else {
329 creditAccountRepository = value 334 creditAccountRepository = value
330 } 335 }
  336 +
331 // 获取待支付的账期结算单 337 // 获取待支付的账期结算单
332 creditAccount, err := creditAccountRepository.FindOne(map[string]interface{}{"creditAccountId": creditAccountId}) 338 creditAccount, err := creditAccountRepository.FindOne(map[string]interface{}{"creditAccountId": creditAccountId})
333 if err != nil { 339 if err != nil {
@@ -339,8 +345,11 @@ func (creditAccountService *CreditAccountService) PayCreditAccount(payCreditAcco @@ -339,8 +345,11 @@ func (creditAccountService *CreditAccountService) PayCreditAccount(payCreditAcco
339 if err2 := creditAccount.Update(tool_funs.SimpleStructToMap(payCreditAccountCommand)); err2 != nil { 345 if err2 := creditAccount.Update(tool_funs.SimpleStructToMap(payCreditAccountCommand)); err2 != nil {
340 return nil, application.ThrowError(application.BUSINESS_ERROR, err2.Error()) 346 return nil, application.ThrowError(application.BUSINESS_ERROR, err2.Error())
341 } 347 }
342 - // 支付状态设置 348 +
  349 + // 支付更新设置
343 creditAccount.PaymentStatus = 2 350 creditAccount.PaymentStatus = 2
  351 + creditAccount.PaymentTime = time.Now()
  352 +
344 if creditAccountSaved, err4 := creditAccountRepository.Save(creditAccount); err4 != nil { 353 if creditAccountSaved, err4 := creditAccountRepository.Save(creditAccount); err4 != nil {
345 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err4.Error()) 354 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err4.Error())
346 } else { 355 } else {
@@ -4,6 +4,7 @@ import ( @@ -4,6 +4,7 @@ import (
4 "fmt" 4 "fmt"
5 "github.com/go-pg/pg/v10" 5 "github.com/go-pg/pg/v10"
6 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils" 6 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils"
  7 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/log"
7 "time" 8 "time"
8 9
9 "github.com/linmadan/egglib-go/persistent/pg/sqlbuilder" 10 "github.com/linmadan/egglib-go/persistent/pg/sqlbuilder"
@@ -208,14 +209,19 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend @@ -208,14 +209,19 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
208 OrgId: goodDomain.OrgId, 209 OrgId: goodDomain.OrgId,
209 CompanyId: goodDomain.CompanyId, 210 CompanyId: goodDomain.CompanyId,
210 OrderGoodDividendsStatus: goodDomain.OrderGoodDividendsStatus, 211 OrderGoodDividendsStatus: goodDomain.OrderGoodDividendsStatus,
211 - CreatedAt: time.Time{}, 212 + CreatedAt: time.Now(),
212 DeletedAt: time.Time{}, 213 DeletedAt: time.Time{},
213 - UpdatedAt: time.Now(), 214 + UpdatedAt: time.Time{},
214 }) 215 })
215 } 216 }
216 // 添加分红订单产品 217 // 添加分红订单产品
217 - if _, err := tx.Model(&orderGoodsToAddModels).Insert(); err != nil {  
218 - return nil, err 218 + log.Logger.Info("待添加的分红订单产品", map[string]interface{}{
  219 + "orderGoodsToAddModels": orderGoodsToAddModels,
  220 + })
  221 + if len(orderGoodsToAddModels) > 0 {
  222 + if _, err := tx.Model(&orderGoodsToAddModels).Insert(); err != nil {
  223 + return nil, err
  224 + }
219 } 225 }
220 226
221 // 待更新或者删除的ids 227 // 待更新或者删除的ids
@@ -234,8 +240,13 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend @@ -234,8 +240,13 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
234 } 240 }
235 } 241 }
236 } 242 }
237 - if _, err := tx.Model(&orderGoodModelsToUpdate).WherePK().Update(); err != nil {  
238 - return nil, err 243 + log.Logger.Info("待更新的分红订单产品", map[string]interface{}{
  244 + "orderGoodModelsToUpdate": orderGoodModelsToUpdate,
  245 + })
  246 + if len(orderGoodModelsToUpdate) > 0 {
  247 + if _, err := tx.Model(&orderGoodModelsToUpdate).WherePK().Update(); err != nil {
  248 + return nil, err
  249 + }
239 } 250 }
240 251
241 // 待删除的分红订单产品id 252 // 待删除的分红订单产品id
@@ -248,8 +259,13 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend @@ -248,8 +259,13 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
248 } 259 }
249 } 260 }
250 } 261 }
251 - if _, err := tx.Model(&orderGoodModelsToDelete).WherePK().Delete(); err != nil {  
252 - return nil, err 262 + log.Logger.Info("待删除的订单产品", map[string]interface{}{
  263 + "orderGoodModelsToDelete": orderGoodModelsToDelete,
  264 + })
  265 + if len(orderGoodModelsToDelete) > 0 {
  266 + if _, err := tx.Model(&orderGoodModelsToDelete).Delete(); err != nil {
  267 + return nil, err
  268 + }
253 } 269 }
254 } 270 }
255 return dividendsOrder, nil 271 return dividendsOrder, nil
@@ -224,8 +224,10 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder @@ -224,8 +224,10 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
224 }) 224 })
225 } 225 }
226 // 添加分红退货订单产品 226 // 添加分红退货订单产品
227 - if _, err := tx.Model(&orderGoodsToAddModels).Insert(); err != nil {  
228 - return nil, err 227 + if len(orderGoodsToAddModels) > 0 {
  228 + if _, err := tx.Model(&orderGoodsToAddModels).Insert(); err != nil {
  229 + return nil, err
  230 + }
229 } 231 }
230 232
231 // 待更新或者删除的ids 233 // 待更新或者删除的ids
@@ -244,8 +246,10 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder @@ -244,8 +246,10 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
244 } 246 }
245 } 247 }
246 } 248 }
247 - if _, err := tx.Model(&orderGoodModelsToUpdate).WherePK().Update(); err != nil {  
248 - return nil, err 249 + if len(orderGoodModelsToUpdate) > 0 {
  250 + if _, err := tx.Model(&orderGoodModelsToUpdate).WherePK().Update(); err != nil {
  251 + return nil, err
  252 + }
249 } 253 }
250 254
251 // 待删除的分红退货订单产品id 255 // 待删除的分红退货订单产品id
@@ -258,8 +262,10 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder @@ -258,8 +262,10 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
258 } 262 }
259 } 263 }
260 } 264 }
261 - if _, err := tx.Model(&orderGoodModelsToDelete).WherePK().Delete(); err != nil {  
262 - return nil, err 265 + if len(orderGoodModelsToDelete) > 0 {
  266 + if _, err := tx.Model(&orderGoodModelsToDelete).Delete(); err != nil {
  267 + return nil, err
  268 + }
263 } 269 }
264 } 270 }
265 return dividendsReturnedOrder, nil 271 return dividendsReturnedOrder, nil