作者 陈志颖

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,15 +209,20 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend @@ -208,15 +209,20 @@ 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 // 添加分红订单产品
  218 + log.Logger.Info("待添加的分红订单产品", map[string]interface{}{
  219 + "orderGoodsToAddModels": orderGoodsToAddModels,
  220 + })
  221 + if len(orderGoodsToAddModels) > 0 {
217 if _, err := tx.Model(&orderGoodsToAddModels).Insert(); err != nil { 222 if _, err := tx.Model(&orderGoodsToAddModels).Insert(); err != nil {
218 return nil, err 223 return nil, err
219 } 224 }
  225 + }
220 226
221 // 待更新或者删除的ids 227 // 待更新或者删除的ids
222 var orderGoodIdsToUpdateOrDelete []int64 228 var orderGoodIdsToUpdateOrDelete []int64
@@ -234,9 +240,14 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend @@ -234,9 +240,14 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
234 } 240 }
235 } 241 }
236 } 242 }
  243 + log.Logger.Info("待更新的分红订单产品", map[string]interface{}{
  244 + "orderGoodModelsToUpdate": orderGoodModelsToUpdate,
  245 + })
  246 + if len(orderGoodModelsToUpdate) > 0 {
237 if _, err := tx.Model(&orderGoodModelsToUpdate).WherePK().Update(); err != nil { 247 if _, err := tx.Model(&orderGoodModelsToUpdate).WherePK().Update(); err != nil {
238 return nil, err 248 return nil, err
239 } 249 }
  250 + }
240 251
241 // 待删除的分红订单产品id 252 // 待删除的分红订单产品id
242 orderGoodIdsToDelete := utils.Difference(orderGoodIdsFetched, orderGoodIdsToUpdateOrDelete) 253 orderGoodIdsToDelete := utils.Difference(orderGoodIdsFetched, orderGoodIdsToUpdateOrDelete)
@@ -248,10 +259,15 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend @@ -248,10 +259,15 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
248 } 259 }
249 } 260 }
250 } 261 }
251 - if _, err := tx.Model(&orderGoodModelsToDelete).WherePK().Delete(); err != nil { 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 {
252 return nil, err 267 return nil, err
253 } 268 }
254 } 269 }
  270 + }
255 return dividendsOrder, nil 271 return dividendsOrder, nil
256 } 272 }
257 273
@@ -224,9 +224,11 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder @@ -224,9 +224,11 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
224 }) 224 })
225 } 225 }
226 // 添加分红退货订单产品 226 // 添加分红退货订单产品
  227 + if len(orderGoodsToAddModels) > 0 {
227 if _, err := tx.Model(&orderGoodsToAddModels).Insert(); err != nil { 228 if _, err := tx.Model(&orderGoodsToAddModels).Insert(); err != nil {
228 return nil, err 229 return nil, err
229 } 230 }
  231 + }
230 232
231 // 待更新或者删除的ids 233 // 待更新或者删除的ids
232 var orderGoodIdsToUpdateOrDelete []int64 234 var orderGoodIdsToUpdateOrDelete []int64
@@ -244,9 +246,11 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder @@ -244,9 +246,11 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
244 } 246 }
245 } 247 }
246 } 248 }
  249 + if len(orderGoodModelsToUpdate) > 0 {
247 if _, err := tx.Model(&orderGoodModelsToUpdate).WherePK().Update(); err != nil { 250 if _, err := tx.Model(&orderGoodModelsToUpdate).WherePK().Update(); err != nil {
248 return nil, err 251 return nil, err
249 } 252 }
  253 + }
250 254
251 // 待删除的分红退货订单产品id 255 // 待删除的分红退货订单产品id
252 orderGoodIdsToDelete := utils.Difference(orderGoodIdsFetched, orderGoodIdsToUpdateOrDelete) 256 orderGoodIdsToDelete := utils.Difference(orderGoodIdsFetched, orderGoodIdsToUpdateOrDelete)
@@ -258,10 +262,12 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder @@ -258,10 +262,12 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
258 } 262 }
259 } 263 }
260 } 264 }
261 - if _, err := tx.Model(&orderGoodModelsToDelete).WherePK().Delete(); err != nil { 265 + if len(orderGoodModelsToDelete) > 0 {
  266 + if _, err := tx.Model(&orderGoodModelsToDelete).Delete(); err != nil {
262 return nil, err 267 return nil, err
263 } 268 }
264 } 269 }
  270 + }
265 return dividendsReturnedOrder, nil 271 return dividendsReturnedOrder, nil
266 } 272 }
267 273