作者 陈志颖

refactor:优化分红订单导入

... ... @@ -446,6 +446,7 @@ func (cooperationContractService *CooperationContractService) ListCooperationCon
defer func() {
_ = transactionContext.RollbackTransaction()
}()
// 合约仓储初始化
var cooperationContractRepository domain.CooperationContractRepository
if value, err := factory.CreateCooperationContractRepository(map[string]interface{}{
"transactionContext": transactionContext,
... ... @@ -454,6 +455,7 @@ func (cooperationContractService *CooperationContractService) ListCooperationCon
} else {
cooperationContractRepository = value
}
// 查找合约
if count, cooperationContracts, err := cooperationContractRepository.Find(tool_funs.SimpleStructToMap(listCooperationContractQuery)); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
} else {
... ...
... ... @@ -5,6 +5,7 @@ import (
"github.com/beego/beego/v2/core/validation"
"reflect"
"strings"
"time"
)
type OrderGoods struct {
... ... @@ -55,6 +56,28 @@ type CreateDividendsOrderCommand struct {
LineNumbers []int `cname:"记录行号" json:"lineNumbers"`
}
// GenerateSpecificDividendsOrderNumber 生成自定义分红订单
func (createDividendsOrderCommand *CreateDividendsOrderCommand) GenerateSpecificDividendsOrderNumber(count int64, orderTime time.Time, index int64) (string, error) {
currentTime := time.Now()
if count+index < 1000 {
countStr := fmt.Sprintf("%03d", count+index+1)
timestamp := currentTime.Unix()
timeNow := time.Unix(timestamp, 0)
timeString := timeNow.Format("20060102")
timeString = timeString[2:len(timeString)]
dividendsOrderNumber := "SL" + timeString + "#" + countStr
return dividendsOrderNumber, nil
} else {
countStr := fmt.Sprintf("%d", count+index+1)
timestamp := currentTime.Unix()
timeNow := time.Unix(timestamp, 0)
timeString := timeNow.Format("20060102")
timeString = timeString[2:len(timeString)]
dividendsOrderNumber := "SL" + timeString + "#" + countStr
return dividendsOrderNumber, nil
}
}
func (createDividendsOrderCommand *CreateDividendsOrderCommand) Valid(validation *validation.Validation) {
}
... ...
... ... @@ -153,7 +153,6 @@ func (dividendsOrderService *DividendsOrderService) CreateDividendsOrder(createD
// 新增分红订单
newDividendsOrder := &domain.DividendsOrder{
DividendsOrderId: 0,
DividendsOrderNumber: dividendsOrderNumber,
DividendsOriginalOrderNum: createDividendsOrderCommand.DividendsOriginalOrderNum,
DividendsOrderAmount: dividendsOrderAmount,
... ... @@ -259,6 +258,26 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
operator = data
}
// 合约仓储初始化
var cooperationContractRepository domain.CooperationContractRepository
if value, err := factory.CreateCooperationContractRepository(map[string]interface{}{
"transactionContext": transactionContext,
}); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
} else {
cooperationContractRepository = value
}
// 查找合约
_, cooperationContracts, err := cooperationContractRepository.Find(map[string]interface{}{
"offsetLimit": false,
"companyId": importDividendsOrderCommand.CompanyId,
"orgId": importDividendsOrderCommand.OrgId,
})
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
}
// 分红订单DAO初始化
var dividendsOrderDao *dao.DividendsOrderDao
if value, err := factory.CreateDividendsOrderDao(map[string]interface{}{
... ... @@ -619,56 +638,38 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
}, nil
}
// 创建分红订单领域模型
var creatDividendsOrder []*domain.DividendsOrder
// 统计当前分红订单数
count, err := dividendsOrderDao.CountDividendsOrder(map[string]interface{}{})
// 批量创建分红订单
for _, dividendsOrder := range createDividendsOrderCommands {
// TODO 表为空时生成分红订单号
dividendsOrderNumber, err := dividendsOrderDao.GenerateDividendsOrderNumber()
for i, dividendsOrder := range createDividendsOrderCommands {
// 生成分红订单号
dividendsOrderNumber, err := dividendsOrder.GenerateSpecificDividendsOrderNumber(int64(count), time.Time{}, int64(i))
if err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
}
// 校验分红订单编号是否唯一
numberAvailable, err3 := dividendsOrderDao.CheckDividendsOrderNumberAvailable(map[string]interface{}{
"companyId": importDividendsOrderCommand.CompanyId,
"orgId": importDividendsOrderCommand.OrgId,
"dividendsOrderNumber": dividendsOrderNumber,
})
if err3 != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err3.Error())
}
if !numberAvailable {
return nil, application.ThrowError(application.TRANSACTION_ERROR, "新增分红订单异常")
}
// 共创合约DAO初始化
var cooperationContractDao *dao.CooperationContractDao
if value, err := factory.CreateCooperationContractDao(map[string]interface{}{
"transactionContext": transactionContext,
}); err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
} else {
cooperationContractDao = value
}
// 新增订单产品
var orderGoods []*domain.OrderGood
var dividendsOrderAmount float64
orderGoodErrMap := make(map[int]interface{}, 0)
for i, orderGood := range dividendsOrder.OrderGoods {
// 校验共创合约是否合法
if orderGood.CooperationContractNumber != "" {
contractNumberExist, _ := cooperationContractDao.CheckContractNumberExist(map[string]interface{}{
"companyId": importDividendsOrderCommand.CompanyId,
"orgId": importDividendsOrderCommand.OrgId,
"cooperationContractNumber": orderGood.CooperationContractNumber,
})
if !contractNumberExist {
orderGoodErrMap[dividendsOrder.OrderGoods[i].LineNumber] = application.ThrowError(application.INTERNAL_SERVER_ERROR, fmt.Sprintf("共创合约编号不存在:%s", err))
contractNumberExist := false
for _, cooperationContract := range cooperationContracts {
if orderGood.CooperationContractNumber == cooperationContract.CooperationContractNumber {
contractNumberExist = true
break
}
}
if !contractNumberExist {
orderGoodErrMap[dividendsOrder.OrderGoods[i].LineNumber] = application.ThrowError(application.INTERNAL_SERVER_ERROR, fmt.Sprintf("共创合约编号不存在:%s", err))
}
// 计算产品金额
orderGoodAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodPrice).Mul(decimal.NewFromFloat(float64(orderGood.OrderGoodQuantity))).Float64()
orderGoods = append(orderGoods, &domain.OrderGood{
... ... @@ -927,7 +928,10 @@ func (dividendsOrderService *DividendsOrderService) BatchRemoveDividendsOrder(ba
dividendsOrderRepository = value
}
dividendsOrderIds, _ := utils.SliceAtoi(batchRemoveDividendsOrderCommand.DividendsOrderIds)
dividendsOrderIds, err := utils.SliceAtoi(batchRemoveDividendsOrderCommand.DividendsOrderIds)
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "分红订单ID类型错误")
}
if count, dividendsOrders, err := dividendsOrderRepository.Find(map[string]interface{}{
"dividendsOrderIds": dividendsOrderIds,
}); err != nil {
... ...
... ... @@ -57,6 +57,7 @@ type FailReturnedInfo struct {
type DividendsReturnedOrderRepository interface {
Save(dividendsReturnedOrder *DividendsReturnedOrder) (*DividendsReturnedOrder, error)
SaveMany(dividendsReturnedOrders []*DividendsReturnedOrder) ([]*DividendsReturnedOrder, error)
UpdateMany(dividendsReturnedOrder []*DividendsReturnedOrder) ([]*DividendsReturnedOrder, error)
Remove(dividendsReturnedOrder *DividendsReturnedOrder) (*DividendsReturnedOrder, error)
BatchRemove(dividendsReturnedOrders []*DividendsReturnedOrder) ([]*DividendsReturnedOrder, error)
... ...
... ... @@ -25,13 +25,23 @@ func (dao *DividendsOrderDao) GenerateDividendsOrderNumber() (string, error) {
if count, err := query.AllWithDeleted().SelectAndCount(); err != nil {
return "", err
} else {
countStr := fmt.Sprintf("%03d", count+1)
timestamp := currentTime.Unix()
timeNow := time.Unix(timestamp, 0)
timeString := timeNow.Format("20060102")
timeString = timeString[2:len(timeString)]
dividendsOrderNumber := "SL" + timeString + "#" + countStr
return dividendsOrderNumber, nil
if count < 1000 {
countStr := fmt.Sprintf("%03d", count+1)
timestamp := currentTime.Unix()
timeNow := time.Unix(timestamp, 0)
timeString := timeNow.Format("20060102")
timeString = timeString[2:len(timeString)]
dividendsOrderNumber := "SL" + timeString + "#" + countStr
return dividendsOrderNumber, nil
} else {
countStr := fmt.Sprintf("%d", count+1)
timestamp := currentTime.Unix()
timeNow := time.Unix(timestamp, 0)
timeString := timeNow.Format("20060102")
timeString = timeString[2:len(timeString)]
dividendsOrderNumber := "SL" + timeString + "#" + countStr
return dividendsOrderNumber, nil
}
}
}
... ... @@ -78,6 +88,23 @@ func (dao *DividendsOrderDao) CalculateDividendsOrderAmount(queryOptions map[str
return dividendsOrderModel.DividendsOrderAmount, nil
}
// CountDividendsOrder 统计当前订单总数
func (dao *DividendsOrderDao) CountDividendsOrder(queryOptions map[string]interface{}) (int, error) {
tx := dao.transactionContext.PgTx
var dividendsOrderModels []*models.DividendsOrder
query := tx.Model(&dividendsOrderModels)
currentTime := time.Now()
todayZeroTime := utils.GetZeroTime(currentTime)
nextDayZeroTime := utils.GetNextDayZeroTime(currentTime)
query.Where("dividends_order.created_at >= ?", todayZeroTime)
query.Where("dividends_order.created_at < ?", nextDayZeroTime)
if count, err := query.AllWithDeleted().SelectAndCount(); err != nil {
return 0, err
} else {
return count, nil
}
}
func NewDividendsOrderDao(transactionContext *pgTransaction.TransactionContext) (*DividendsOrderDao, error) {
if transactionContext == nil {
return nil, fmt.Errorf("transactionContext参数不能为空")
... ...
... ... @@ -10,7 +10,7 @@ type DividendsOrder struct {
// 分红订单ID
DividendsOrderId int64 `comment:"分红订单ID" pg:",pk"`
// 分红订单号
DividendsOrderNumber string `comment:"分红订单号"`
DividendsOrderNumber string `comment:"分红订单号" pg:",unique"`
// 分红订单原单号
DividendsOriginalOrderNum string `comment:"分红订单原单号"`
// 分红订单金额
... ...
... ... @@ -17,14 +17,11 @@ import (
type DividendsOrderRepository struct {
transactionContext *pgTransaction.TransactionContext
IdWorker *snowflake.IdWorker
}
func (repository *DividendsOrderRepository) nextIdentify() (int64, error) {
IdWorker, err := snowflake.NewIdWorker(1)
if err != nil {
return 0, err
}
id, err := IdWorker.NextId()
id, err := repository.IdWorker.NextId()
return id, err
}
... ... @@ -55,12 +52,12 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
updateFieldsSnippet := sqlbuilder.SqlUpdateFieldsSnippet(updateFields)
tx := repository.transactionContext.PgTx
if dividendsOrder.Identify() == nil {
//dividendsOrderId, err := repository.nextIdentify()
//if err != nil {
// return dividendsOrder, err
//} else {
// dividendsOrder.DividendsOrderId = dividendsOrderId
//}
dividendsOrderId, err := repository.nextIdentify()
if err != nil {
return dividendsOrder, err
} else {
dividendsOrder.DividendsOrderId = dividendsOrderId
}
if _, err := tx.QueryOne(
pg.Scan(
&dividendsOrder.DividendsOrderId,
... ... @@ -105,7 +102,16 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
// 新增分红订单产品
var orderGoodsModel []*models.OrderGood
for _, good := range dividendsOrder.Goods {
if good.Identify() == nil {
orderGoodId, err := repository.nextIdentify()
if err != nil {
return nil, err
} else {
good.OrderGoodId = orderGoodId
}
}
orderGoodsModel = append(orderGoodsModel, &models.OrderGood{
OrderGoodId: good.OrderGoodId,
OrderGoodAmount: good.OrderGoodAmount,
OrderGoodName: good.OrderGoodName,
OrderGoodPrice: good.OrderGoodPrice,
... ... @@ -197,7 +203,16 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
// 将待添加的分红订单产品领域模型转换为数据模型
var orderGoodsToAddModels []*models.OrderGood
for _, goodDomain := range orderGoodsToAdd {
if goodDomain.Identify() == nil {
orderGoodId, err := repository.nextIdentify()
if err != nil {
return nil, err
} else {
goodDomain.OrderGoodId = orderGoodId
}
}
orderGoodsToAddModels = append(orderGoodsToAddModels, &models.OrderGood{
OrderGoodId: goodDomain.OrderGoodId,
OrderGoodAmount: goodDomain.OrderGoodAmount,
OrderGoodName: goodDomain.OrderGoodName,
OrderGoodPrice: goodDomain.OrderGoodPrice,
... ... @@ -240,9 +255,6 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
}
}
}
log.Logger.Info("待更新的分红订单产品", map[string]interface{}{
"orderGoodModelsToUpdate": orderGoodModelsToUpdate,
})
if len(orderGoodModelsToUpdate) > 0 {
for i, orderGoodModelToUpdate := range orderGoodModelsToUpdate {
... ... @@ -268,8 +280,14 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
}
}
}
if _, err := tx.Model(&orderGoodModelsToUpdate).WherePK().Update(); err != nil {
return nil, err
if len(orderGoodModelsToUpdate) > 0 {
log.Logger.Info("待更新的分红订单产品", map[string]interface{}{
"orderGoodModelsToUpdate": orderGoodModelsToUpdate,
})
if _, err := tx.Model(&orderGoodModelsToUpdate).WherePK().Update(); err != nil {
return nil, err
}
}
}
... ... @@ -283,10 +301,11 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
}
}
}
log.Logger.Info("待删除的订单产品", map[string]interface{}{
"orderGoodModelsToDelete": orderGoodModelsToDelete,
})
if len(orderGoodModelsToDelete) > 0 {
log.Logger.Info("待删除的订单产品", map[string]interface{}{
"orderGoodModelsToDelete": orderGoodModelsToDelete,
})
if _, err := tx.Model(&orderGoodModelsToDelete).Delete(); err != nil {
return nil, err
}
... ... @@ -300,7 +319,16 @@ func (repository *DividendsOrderRepository) SaveMany(dividendsOrders []*domain.D
var dividendsOrderModels []*models.DividendsOrder
var orderGoodsModel []*models.OrderGood
for _, dividendsOrder := range dividendsOrders {
if dividendsOrder.Identify() == nil {
dividendsOrderId, err := repository.nextIdentify()
if err != nil {
return nil, err
} else {
dividendsOrder.DividendsOrderId = dividendsOrderId
}
}
dividendsOrderModels = append(dividendsOrderModels, &models.DividendsOrder{
DividendsOrderId: dividendsOrder.DividendsOrderId,
DividendsOrderNumber: dividendsOrder.DividendsOrderNumber,
DividendsOriginalOrderNum: dividendsOrder.DividendsOriginalOrderNum,
DividendsOrderAmount: dividendsOrder.DividendsOrderAmount,
... ... @@ -319,7 +347,16 @@ func (repository *DividendsOrderRepository) SaveMany(dividendsOrders []*domain.D
Remarks: dividendsOrder.Remarks,
})
for _, good := range dividendsOrder.Goods {
if good.Identify() == nil {
orderGoodId, err := repository.nextIdentify()
if err != nil {
return nil, err
} else {
good.OrderGoodId = orderGoodId
}
}
orderGoodsModel = append(orderGoodsModel, &models.OrderGood{
OrderGoodId: good.OrderGoodId,
OrderGoodAmount: good.OrderGoodAmount,
OrderGoodName: good.OrderGoodName,
OrderGoodPrice: good.OrderGoodPrice,
... ... @@ -544,8 +581,13 @@ func NewDividendsOrderRepository(transactionContext *pgTransaction.TransactionCo
if transactionContext == nil {
return nil, fmt.Errorf("transactionContext参数不能为nil")
} else {
idWorker, err := snowflake.NewIdWorker(1)
if err != nil {
return nil, err
}
return &DividendsOrderRepository{
transactionContext: transactionContext,
IdWorker: idWorker,
}, nil
}
}
... ...
... ... @@ -17,14 +17,11 @@ import (
type DividendsReturnedOrderRepository struct {
transactionContext *pgTransaction.TransactionContext
IdWorker *snowflake.IdWorker
}
func (repository *DividendsReturnedOrderRepository) nextIdentify() (int64, error) {
IdWorker, err := snowflake.NewIdWorker(1)
if err != nil {
return 0, err
}
id, err := IdWorker.NextId()
id, err := repository.IdWorker.NextId()
return id, err
}
... ... @@ -111,7 +108,16 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
// 新增退货单产品
var orderGoodsModel []*models.OrderGood
for _, good := range dividendsReturnedOrder.Goods {
if good.Identify() == nil {
goodId, err := repository.nextIdentify()
if err != nil {
return nil, err
} else {
good.OrderGoodId = goodId
}
}
orderGoodsModel = append(orderGoodsModel, &models.OrderGood{
OrderGoodId: good.OrderGoodId,
OrderGoodAmount: good.OrderGoodAmount,
OrderGoodName: good.OrderGoodName,
OrderGoodPrice: good.OrderGoodPrice,
... ... @@ -207,7 +213,16 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
// 将待添加的分红退户订单产品领域模型转换为数据模型
var orderGoodsToAddModels []*models.OrderGood
for _, goodDomain := range orderGoodsToAdd {
if goodDomain.Identify() == nil {
goodId, err := repository.nextIdentify()
if err != nil {
return nil, err
} else {
goodDomain.OrderGoodId = goodId
}
}
orderGoodsToAddModels = append(orderGoodsToAddModels, &models.OrderGood{
OrderGoodId: goodDomain.OrderGoodId,
OrderGoodAmount: goodDomain.OrderGoodAmount,
OrderGoodName: goodDomain.OrderGoodName,
OrderGoodPrice: goodDomain.OrderGoodPrice,
... ... @@ -298,6 +313,100 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
return dividendsReturnedOrder, nil
}
func (repository *DividendsReturnedOrderRepository) SaveMany(dividendsReturnedOrders []*domain.DividendsReturnedOrder) ([]*domain.DividendsReturnedOrder, error) {
tx := repository.transactionContext.PgTx
var dividendsReturnedOrderModels []*models.DividendsReturnedOrder
var orderGoodsModel []*models.OrderGood
for _, dividendsReturnedOrder := range dividendsReturnedOrders {
if dividendsReturnedOrder.Identify() == nil {
dividendsReturnedOrderId, err := repository.nextIdentify()
if err != nil {
return nil, err
} else {
dividendsReturnedOrder.DividendsReturnedOrderId = dividendsReturnedOrderId
}
}
dividendsReturnedOrderModels = append(dividendsReturnedOrderModels, &models.DividendsReturnedOrder{
DividendsReturnedOrderId: dividendsReturnedOrder.DividendsReturnedOrderId,
DividendsReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber,
DividendsReturnedOrderRefund: dividendsReturnedOrder.DividendsReturnedOrderRefund,
OriginalOrderNum: dividendsReturnedOrder.OriginalOrderNum,
DividendsOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,
DividendsReturnedCustomerName: dividendsReturnedOrder.DividendsReturnedCustomerName,
OrderTime: dividendsReturnedOrder.OrderTime,
DividendsReturnedDate: dividendsReturnedOrder.DividendsReturnedDate,
Region: dividendsReturnedOrder.Region,
Remarks: dividendsReturnedOrder.Remarks,
DividendStatus: dividendsReturnedOrder.DividendStatus,
DividendTime: time.Time{},
Org: dividendsReturnedOrder.Org,
Company: dividendsReturnedOrder.Company,
CreatedAt: time.Now(),
DeletedAt: dividendsReturnedOrder.DeletedAt,
UpdatedAt: dividendsReturnedOrder.UpdatedAt,
Operator: dividendsReturnedOrder.Operator,
OperateTime: time.Now(),
})
for _, good := range dividendsReturnedOrder.Goods {
if good.Identify() == nil {
orderGoodId, err := repository.nextIdentify()
if err != nil {
return nil, err
} else {
good.OrderGoodId = orderGoodId
}
}
orderGoodsModel = append(orderGoodsModel, &models.OrderGood{
OrderGoodId: good.OrderGoodId,
OrderGoodAmount: good.OrderGoodAmount,
OrderGoodName: good.OrderGoodName,
OrderGoodPrice: good.OrderGoodPrice,
OrderGoodQuantity: good.OrderGoodQuantity,
DividendsOrderNumber: "",
DividendsReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber,
CooperationContractNumber: good.CooperationContractNumber,
CompanyId: good.CompanyId,
OrgId: good.OrgId,
OrderGoodExpense: good.OrderGoodExpense,
OrderGoodDividendsStatus: good.OrderGoodDividendsStatus,
CreatedAt: time.Now(),
DeletedAt: time.Time{},
UpdatedAt: time.Time{},
})
}
}
if _, err := tx.Model(&dividendsReturnedOrderModels).Insert(); err != nil { // 新增分红订单
return nil, err
} else { // 新增分红订单产品
if _, err := tx.Model(&orderGoodsModel).Insert(); err != nil {
return nil, err
}
}
var dividendsReturnedOrdersSaved []*domain.DividendsReturnedOrder
for _, dividendsReturnedOrderModel := range dividendsReturnedOrderModels {
//获取订单产品
var orderGoodModels []*models.OrderGood
orderGoodModelQuery := tx.Model(&orderGoodModels)
if err := orderGoodModelQuery.
Where("company_id = ?", dividendsReturnedOrderModel.Company.CompanyId).
Where("org_id = ?", dividendsReturnedOrderModel.Org.OrgId).
Where("dividends_returned_order_number = ?", dividendsReturnedOrderModel.DividendsReturnedOrderNumber).
Select(); err != nil {
log.Logger.Error("分红退货单关联的产品不存在", map[string]interface{}{
"dividendsReturnedOrderModel": dividendsReturnedOrderModel,
})
return nil, fmt.Errorf("分红退货单关联的产品不存在")
}
// 聚合分红退货单
if dividendsReturnedOrder, err := transform.TransformToDividendsReturnedOrderDomainModelFromPgModels(dividendsReturnedOrderModel, orderGoodModels); err != nil {
return dividendsReturnedOrders, err
} else {
dividendsReturnedOrders = append(dividendsReturnedOrders, dividendsReturnedOrder)
}
}
return dividendsReturnedOrdersSaved, nil
}
func (repository *DividendsReturnedOrderRepository) UpdateMany(dividendsReturnedOrders []*domain.DividendsReturnedOrder) ([]*domain.DividendsReturnedOrder, error) {
tx := repository.transactionContext.PgTx
var dividendsReturnedOrderModels []*models.DividendsReturnedOrder
... ... @@ -469,8 +578,13 @@ func NewDividendsReturnedOrderRepository(transactionContext *pgTransaction.Trans
if transactionContext == nil {
return nil, fmt.Errorf("transactionContext参数不能为nil")
} else {
idWorker, err := snowflake.NewIdWorker(1)
if err != nil {
return nil, err
}
return &DividendsReturnedOrderRepository{
transactionContext: transactionContext,
IdWorker: idWorker,
}, nil
}
}
... ...
... ... @@ -16,14 +16,11 @@ import (
type OrderGoodRepository struct {
transactionContext *pgTransaction.TransactionContext
IdWorker *snowflake.IdWorker
}
func (repository *OrderGoodRepository) nextIdentify() (int64, error) {
IdWorker, err := snowflake.NewIdWorker(1)
if err != nil {
return 0, err
}
id, err := IdWorker.NextId()
id, err := repository.IdWorker.NextId()
return id, err
}
... ... @@ -216,8 +213,13 @@ func NewOrderGoodRepository(transactionContext *pgTransaction.TransactionContext
if transactionContext == nil {
return nil, fmt.Errorf("transactionContext参数不能为nil")
} else {
idWorker, err := snowflake.NewIdWorker(1)
if err != nil {
return nil, err
}
return &OrderGoodRepository{
transactionContext: transactionContext,
IdWorker: idWorker,
}, nil
}
}
... ...