作者 陈志颖

fix:分红退货单仓储删除方法修复

... ... @@ -9,59 +9,84 @@ import (
"github.com/beego/beego/v2/core/validation"
)
// CreateDividendsIncentivesRulesCommand 业绩分红激励规则
type CreateDividendsIncentivesRulesCommand struct {
DividendsIncentivesRuleId string `cname:"分红激励规则ID" json:"dividendsIncentivesRuleId"`
CooperationContractNumber string `cname:"共创合约编号" json:"cooperationContractNumber"`
ReferrerPercentage float64 `cname:"推荐人抽成" json:"referrerPercentage"`
SalesmanPercentage float64 `cname:"业务员抽成" json:"salesmanPercentage"`
DividendsIncentivesPercentage float64 `cname:"分红规则激励百分点" json:"dividendsIncentivesPercentage"`
DividendsIncentivesStage int32 `cname:"分红激励阶段" json:"dividendsIncentivesStage"`
DividendsIncentivesStageEnd time.Time `cname:"业绩分红阶段结束时间" json:"dividendsIncentivesStageEnd"`
// 分红激励规则ID
DividendsIncentivesRuleId string `cname:"分红激励规则ID" json:"dividendsIncentivesRuleId,omitempty"`
// 共创合约编号
CooperationContractNumber string `cname:"共创合约编号" json:"cooperationContractNumber,omitempty"`
// 推荐人抽成
ReferrerPercentage float64 `cname:"推荐人抽成" json:"referrerPercentage"`
// 业务员抽成
SalesmanPercentage float64 `cname:"业务员抽成" json:"salesmanPercentage"`
// 分红规则激励百分点
DividendsIncentivesPercentage float64 `cname:"分红规则激励百分点" json:"dividendsIncentivesPercentage"`
// 分红激励阶段
DividendsIncentivesStage int32 `cname:"分红激励阶段" json:"dividendsIncentivesStage"`
// 业绩分红阶段开始时间
DividendsIncentivesStageStart time.Time `cname:"业绩分红阶段开始时间" json:"dividendsIncentivesStageStart"`
// 业绩分红阶段结束时间
DividendsIncentivesStageEnd time.Time `cname:"业绩分红阶段结束时间" json:"dividendsIncentivesStageEnd"`
}
// CreateMoneyIncentivesRulesCommand 金额激励规则
type CreateMoneyIncentivesRulesCommand struct {
MoneyIncentivesRuleId string `cname:"金额激励规则ID" json:"moneyIncentivesRuleId"`
CooperationContractNumber string `cname:"共创合约编号" json:"cooperationContractNumber"`
MoneyIncentivesAmount float64 `cname:"激励金额" json:"moneyIncentivesAmount"`
MoneyIncentivesStage int32 `cname:"金额激励阶段" json:"moneyIncentivesStage"`
MoneyIncentivesStageEnd time.Time `cname:"" json:"moneyIncentivesStageEnd"`
MoneyIncentivesStageStart time.Time `cname:"金额激励时间" json:"moneyIncentivesStageStart"`
MoneyIncentivesTime time.Time `cname:"" json:"moneyIncentivesTime"`
ReferrerPercentage float64 `cname:"推荐人抽成" json:"referrerPercentage"`
SalesmanPercentage float64 `cname:"业务员抽成" json:"salesmanPercentage"`
// 金额激励规则ID
MoneyIncentivesRuleId string `cname:"金额激励规则ID" json:"moneyIncentivesRuleId"`
// 共创合约编号
CooperationContractNumber string `cname:"共创合约编号" json:"cooperationContractNumber"`
// 激励金额
MoneyIncentivesAmount float64 `cname:"激励金额" json:"moneyIncentivesAmount"`
// 金额激励阶段
MoneyIncentivesStage int32 `cname:"金额激励阶段" json:"moneyIncentivesStage"`
// 金额激励结束时间
MoneyIncentivesStageEnd time.Time `cname:"金额激励结束时间" json:"moneyIncentivesStageEnd"`
// 金额激励开始时间
MoneyIncentivesStageStart time.Time `cname:"金额激励开始时间" json:"moneyIncentivesStageStart"`
// 金额激励时间
MoneyIncentivesTime time.Time `cname:"金额激励时间" json:"moneyIncentivesTime"`
// 推荐人抽成
ReferrerPercentage float64 `cname:"推荐人抽成" json:"referrerPercentage"`
// 业务员抽成
SalesmanPercentage float64 `cname:"业务员抽成" json:"salesmanPercentage"`
}
// CreateUndertakersCommand 承接人
type CreateUndertakersCommand struct {
UndertakerId string `cname:"承接人ID" json:"undertakerId"`
UserId string `cname:"承接人UID" json:"userId"`
// 承接人ID
UndertakerId string `cname:"承接人ID" json:"undertakerId"`
// 承接人用户ID
UserId string `cname:"承接人UID" json:"userId"`
// 附件
ContractAttachment []struct {
// 文件类型
FileType string `cname:"文件类型" json:"fileType"`
Name string `cname:"文件名称" json:"name"`
Url string `cname:"文件路径" json:"url"`
FileSize int64 `cname:"文件大小" json:"fileSize"`
// 文件名称
Name string `cname:"文件名称" json:"name"`
// 文件路径
Url string `cname:"文件路径" json:"url"`
// 文件大小
FileSize int64 `cname:"文件大小" json:"fileSize"`
} `cname:"附件" json:"contractAttachment"`
// 推荐人用户ID
ReferrerId string `cname:"推荐UID" json:"referrerId"`
// 业务员用户ID
SalesmanId string `cname:"业务员UID" json:"salesmanId"`
}
type CreateRelevantPeopleCommand struct {
UserId string `cname:"相关人UID" json:"userId"`
}
type CreateCooperationContractCommand struct {
// 共创合约描述
CooperationContractDescription string `cname:"共创合约描述" json:"cooperationContractDescription" valid:"Required"`
// 共创项目编号
CooperationProjectNumber string `cname:"共创项目编号" json:"cooperationProjectNumber" valid:"Required"`
// 共创合约发起部门编码
CooperationProjectNumber string `cname:"共创项目编号" json:"cooperationProjectNumber,omitempty"`
// 共创合约发起部门ID
DepartmentId string `cname:"共创合约发起部门ID" json:"departmentId" valid:"Required"`
// 共创合约承接对象,1员工,2共创用户,3公开
CooperationContractUndertakerTypes []int32 `cname:"共创合约承接对象" json:"cooperationContractUndertakerTypes" valid:"Required"`
// 共创合约名称
CooperationContractName string `cname:"共创合约名称" json:"cooperationContractName" valid:"Required"`
// 共创模式编码
CooperationModeNumber string `cname:"共创模式编码" json:"cooperationModeNumber" valid:"Required"`
CooperationModeNumber string `cname:"共创模式编码" json:"cooperationModeNumber,omitempty"`
// 共创合约发起人uid
SponsorUid string `cname:"共创合约发起人uid" json:"sponsorUid,omitempty"`
// 业绩分红激励规则列表
... ...
... ... @@ -94,6 +94,26 @@ func (cooperationContractService *CooperationContractService) CreateCooperationC
organization = data
}
// 部门REST服务初始化
var departmentService service.DepartmentService
if value, err := factory.CreateDepartmentService(map[string]interface{}{}); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
} else {
departmentService = value
}
// 获取部门
var department *domain.Department
departmentId, err := strconv.ParseInt(createCooperationContractCommand.DepartmentId, 10, 64)
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
}
if data, err := departmentService.DepartmentFrom(createCooperationContractCommand.CompanyId, departmentId); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
} else {
department = data
}
// 共创合约DAO初始化
var cooperationContractDao *dao.CooperationContractDao
if value, err := factory.CreateCooperationContractDao(map[string]interface{}{
... ... @@ -103,11 +123,13 @@ func (cooperationContractService *CooperationContractService) CreateCooperationC
} else {
cooperationContractDao = value
}
// 生成共创合约编号
contractNumber, err2 := cooperationContractDao.GenerateContractNumber()
if err2 != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err2.Error())
}
// 校验共创合约编号是否唯一
numberAvailable, _ := cooperationContractDao.CheckContractNumberAvailable(map[string]interface{}{
"companyId": createCooperationContractCommand.CompanyId,
... ... @@ -122,7 +144,10 @@ func (cooperationContractService *CooperationContractService) CreateCooperationC
var undertakers []*domain.Undertaker
for _, undertaker := range createCooperationContractCommand.Undertakers {
var undertakerDomain *domain.Undertaker
undertakerUid, _ := strconv.ParseInt(undertaker.UserId, 10, 64)
undertakerUid, err := strconv.ParseInt(undertaker.UserId, 10, 64)
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "承接人UID错误")
}
if data, err := userService.UndertakerFrom(createCooperationContractCommand.CompanyId, createCooperationContractCommand.OrgId, undertakerUid); err != nil {
log.Logger.Error(err.Error())
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
... ... @@ -268,6 +293,7 @@ func (cooperationContractService *CooperationContractService) CreateCooperationC
Status: 1,
Org: organization,
Company: company,
Department: department,
Operator: operator,
DividendsIncentivesRules: dividendsIncentivesRules,
MoneyIncentivesRules: moneyIncentivesRules,
... ...
... ... @@ -150,6 +150,9 @@ func (repository *CooperationModeRepository) FindOne(queryOptions map[string]int
cooperationModeModel := new(models.CooperationMode)
query := sqlbuilder.BuildQuery(tx.Model(cooperationModeModel), queryOptions)
query.SetWhereByQueryOption("cooperation_mode.cooperation_mode_id = ?", "cooperationModeId")
if cooperationModeNumber, ok := queryOptions["cooperationModeNumber"]; ok && cooperationModeNumber != "" {
query.Where("cooperation_mode_number = ?", cooperationModeNumber)
}
if err := query.First(); err != nil {
if err.Error() == "pg: no rows in result set" {
return nil, fmt.Errorf("没有此资源")
... ...
... ... @@ -272,7 +272,7 @@ func (repository *DividendsReturnedOrderRepository) Remove(dividendsReturnedOrde
} else {
// 删除分红退货单产品
var orderGoodModels []*models.OrderGood
if _, err := tx.Model(&orderGoodModels).Where("dividends_returned_order_number = ?", dividendsReturnedOrder.DividendsOrderNumber).Delete(); err != nil {
if _, err := tx.Model(&orderGoodModels).Where("dividends_returned_order_number = ?", dividendsReturnedOrder.DividendsReturnedOrderNumber).Delete(); err != nil {
return nil, err
}
}
... ...