作者 陈志颖

feat:修改dsl,增加新增员工时初始化栏目默认值

version: v1
kind: Attribute
metadata:
name: invalidValue
description: 无效的栏目数组
type:
array: column
... ...
... ... @@ -24,3 +24,7 @@ metadata:
description: 栏目数组
type:
array: column
- name: invalidValue
description: 无效栏目数组
type:
array: column
... ...
... ... @@ -2,19 +2,30 @@ package command
import (
"fmt"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
"github.com/astaxie/beego/validation"
)
type CreateColumnSettingCommand struct {
// 公司id
CompanyId int `json:"companyId"`
// 用户uid
Uid int64 `json:"uid"`
// 栏目设置描述
Description string `json:"description" valid:"Required"`
// 栏目设置关联用户名称
UserName string `json:"userName" valid:"Required"`
// 默认栏目设置
Value []domain.Column `json:"value"`
// 无效栏目设置爱
InvalidValue []domain.Column `json:"invalidValue"`
// 模块键值
Key string `json:"key"`
}
func (createColumnSettingCommand *CreateColumnSettingCommand) Valid(validation *validation.Validation) {
validation.SetError("CustomValid", "未实现的自定义认证")
_ = validation.SetError("CustomValid", "未实现的自定义认证")
}
func (createColumnSettingCommand *CreateColumnSettingCommand) ValidateCommand() error {
... ...
... ... @@ -9,6 +9,10 @@ import (
type RemoveColumnSettingCommand struct {
// 栏目设置id
ColumnSettingId int64 `json:"columnSettingId" valid:"Required"`
// 用户uid
Uid int64 `json:"uid"`
// 公司id
CompanyId int `json:"companyId"`
}
func (removeColumnSettingCommand *RemoveColumnSettingCommand) Valid(validation *validation.Validation) {
... ...
... ... @@ -2,15 +2,24 @@ package command
import (
"fmt"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
"github.com/astaxie/beego/validation"
)
type ResetColumnCommand struct {
// 公司id
CompanyId int `json:"companyId"`
// 用户uid
Uid int64 `json:"uid"`
// 默认栏目
Value []domain.Column `json:"value"`
// 默认无效栏目
InvalidValue []domain.Column `json:"invalidValue"`
}
func (resetColumnCommand *ResetColumnCommand) Valid(validation *validation.Validation) {
validation.SetError("CustomValid", "未实现的自定义认证")
_ = validation.SetError("CustomValid", "未实现的自定义认证")
}
func (resetColumnCommand *ResetColumnCommand) ValidateCommand() error {
... ...
... ... @@ -2,17 +2,30 @@ package command
import (
"fmt"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
"github.com/astaxie/beego/validation"
)
type UpdateColumnSettingCommand struct {
// 栏目设置id
ColumnSettingId int64 `json:"columnSettingId" valid:"Required"`
ColumnSettingId int64 `json:"columnSettingId"`
// 公司id
CompanyId int `json:"companyId"`
// 用户uid
Uid int64 `json:"uid"`
// 选中的栏目
Selected []domain.Column `json:"selected"`
// 未选中的栏目
UnSelected []domain.Column `json:"unselected"`
// 栏目设置
Value []domain.Column `json:"value"`
// 无效栏目设置
InvalidValue []domain.Column `json:"invalidValue"`
}
func (updateColumnSettingCommand *UpdateColumnSettingCommand) Valid(validation *validation.Validation) {
validation.SetError("CustomValid", "未实现的自定义认证")
_ = validation.SetError("CustomValid", "未实现的自定义认证")
}
func (updateColumnSettingCommand *UpdateColumnSettingCommand) ValidateCommand() error {
... ...
... ... @@ -8,7 +8,11 @@ import (
type GetColumnSettingQuery struct {
// 栏目设置id
ColumnSettingId int64 `json:"columnSettingId" valid:"Required"`
ColumnSettingId int64 `json:"columnSettingId"`
// 公司id
CompanyId int `json:"companyId"`
// 用户uid
Uid int64 `json:"uid"`
}
func (getColumnSettingQuery *GetColumnSettingQuery) Valid(validation *validation.Validation) {
... ...
... ... @@ -14,7 +14,7 @@ type ListColumnSettingQuery struct {
}
func (listColumnSettingQuery *ListColumnSettingQuery) Valid(validation *validation.Validation) {
validation.SetError("CustomValid", "未实现的自定义认证")
_ = validation.SetError("CustomValid", "未实现的自定义认证")
}
func (listColumnSettingQuery *ListColumnSettingQuery) ValidateQuery() error {
... ...
... ... @@ -7,14 +7,23 @@ import (
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/columnSetting/command"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/columnSetting/query"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/factory"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/constant"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
"strconv"
"time"
)
// 栏目设置
type ColumnSettingService struct {
}
// 创建栏目设置增删改查
/**
* @Author SteveChan
* @Description //TODO 新增用户时,初始化栏目设置
* @Date 23:13 2021/1/26
* @Param
* @return
**/
func (columnSettingService *ColumnSettingService) CreateColumnSetting(createColumnSettingCommand *command.CreateColumnSettingCommand) (interface{}, error) {
if err := createColumnSettingCommand.ValidateCommand(); err != nil {
return nil, application.ThrowError(application.ARG_ERROR, err.Error())
... ... @@ -23,35 +32,48 @@ func (columnSettingService *ColumnSettingService) CreateColumnSetting(createColu
if err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
}
if err := transactionContext.StartTransaction(); err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
if errStart := transactionContext.StartTransaction(); errStart != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, errStart.Error())
}
defer func() {
transactionContext.RollbackTransaction()
_ = transactionContext.RollbackTransaction()
}()
newColumnSetting := &domain.ColumnSetting{
Description: createColumnSettingCommand.Description,
UserName: createColumnSettingCommand.UserName,
Description: createColumnSettingCommand.Description,
UserName: createColumnSettingCommand.UserName,
CompanyId: createColumnSettingCommand.CompanyId,
Uid: createColumnSettingCommand.Uid,
Key: constant.ORDER_BASE, // 订单栏目模块名称
Value: domain.DefaultColumns, // 栏目值数组,创建用户时使用默认栏目设置
InvalidValue: domain.DefaultInvalidColumns, // 初始化无效栏目数组
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
}
var columnSettingRepository domain.ColumnSettingRepository
if value, err := factory.CreateColumnSettingRepository(map[string]interface{}{
if value, errFac := factory.CreateColumnSettingRepository(map[string]interface{}{
"transactionContext": transactionContext,
}); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
}); errFac != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, errFac.Error())
} else {
columnSettingRepository = value
}
if columnSetting, err := columnSettingRepository.Save(newColumnSetting); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
if columnSetting, errSaved := columnSettingRepository.Save(newColumnSetting); errSaved != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, errSaved.Error())
} else {
if err := transactionContext.CommitTransaction(); err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
if errCommit := transactionContext.CommitTransaction(); errCommit != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, errCommit.Error())
}
return columnSetting, nil
}
}
// 返回栏目设置增删改查
/**
* @Author SteveChan
* @Description //TODO 返回栏目设置
* @Date 23:14 2021/1/26
* @Param
* @return
**/
func (columnSettingService *ColumnSettingService) GetColumnSetting(getColumnSettingQuery *query.GetColumnSettingQuery) (interface{}, error) {
if err := getColumnSettingQuery.ValidateQuery(); err != nil {
return nil, application.ThrowError(application.ARG_ERROR, err.Error())
... ... @@ -64,27 +86,27 @@ func (columnSettingService *ColumnSettingService) GetColumnSetting(getColumnSett
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
}
defer func() {
transactionContext.RollbackTransaction()
_ = transactionContext.RollbackTransaction()
}()
var columnSettingRepository domain.ColumnSettingRepository
if value, err := factory.CreateColumnSettingRepository(map[string]interface{}{
if value, errFact := factory.CreateColumnSettingRepository(map[string]interface{}{
"transactionContext": transactionContext,
}); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
}); errFact != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, errFact.Error())
} else {
columnSettingRepository = value
}
columnSetting, err := columnSettingRepository.FindOne(map[string]interface{}{"column_settingId": getColumnSettingQuery.ColumnSettingId})
columnSettingFound, err := columnSettingRepository.FindOne(map[string]interface{}{"uid": getColumnSettingQuery.Uid, "companyId": getColumnSettingQuery.CompanyId})
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
}
if columnSetting == nil {
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getColumnSettingQuery.ColumnSettingId)))
if columnSettingFound == nil {
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", strconv.FormatInt(getColumnSettingQuery.Uid, 10)))
} else {
if err := transactionContext.CommitTransaction(); err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
if errCommit := transactionContext.CommitTransaction(); errCommit != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, errCommit.Error())
}
return columnSetting, nil
return columnSettingFound, nil
}
}
... ... @@ -124,7 +146,13 @@ func (columnSettingService *ColumnSettingService) ListColumnSetting(listColumnSe
}
}
// 移除栏目设置增删改查
/**
* @Author SteveChan
* @Description //TODO 删除用户时移除栏目设置
* @Date 23:14 2021/1/26
* @Param
* @return
**/
func (columnSettingService *ColumnSettingService) RemoveColumnSetting(removeColumnSettingCommand *command.RemoveColumnSettingCommand) (interface{}, error) {
if err := removeColumnSettingCommand.ValidateCommand(); err != nil {
return nil, application.ThrowError(application.ARG_ERROR, err.Error())
... ... @@ -137,7 +165,7 @@ func (columnSettingService *ColumnSettingService) RemoveColumnSetting(removeColu
return nil, application.ThrowError(application.TRANSACTION_ERROR, errSt.Error())
}
defer func() {
transactionContext.RollbackTransaction()
_ = transactionContext.RollbackTransaction()
}()
var columnSettingRepository domain.ColumnSettingRepository
if value, errFac := factory.CreateColumnSettingRepository(map[string]interface{}{
... ... @@ -147,14 +175,14 @@ func (columnSettingService *ColumnSettingService) RemoveColumnSetting(removeColu
} else {
columnSettingRepository = value
}
columnSetting, err := columnSettingRepository.FindOne(map[string]interface{}{"column_settingId": removeColumnSettingCommand.ColumnSettingId})
columnSettingFound, err := columnSettingRepository.FindOne(map[string]interface{}{"uid": removeColumnSettingCommand.Uid, "companyId": removeColumnSettingCommand.CompanyId})
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
}
if columnSetting == nil {
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeColumnSettingCommand.ColumnSettingId)))
if columnSettingFound == nil {
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", strconv.FormatInt(removeColumnSettingCommand.Uid, 10)))
}
if columnSettingRemoved, errRm := columnSettingRepository.Remove(columnSetting); errRm != nil {
if columnSettingRemoved, _, errRm := columnSettingRepository.Remove(columnSettingFound, nil); errRm != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, errRm.Error())
} else {
if errTr := transactionContext.CommitTransaction(); errTr != nil {
... ... @@ -164,7 +192,13 @@ func (columnSettingService *ColumnSettingService) RemoveColumnSetting(removeColu
}
}
// 重置栏目设置
/**
* @Author SteveChan
* @Description //TODO 重置栏目设置
* @Date 23:15 2021/1/26
* @Param
* @return
**/
func (columnSettingService *ColumnSettingService) ResetColumn(resetColumnCommand *command.ResetColumnCommand) (interface{}, error) {
if err := resetColumnCommand.ValidateCommand(); err != nil {
return nil, application.ThrowError(application.ARG_ERROR, err.Error())
... ... @@ -173,19 +207,48 @@ func (columnSettingService *ColumnSettingService) ResetColumn(resetColumnCommand
if err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
}
if err := transactionContext.StartTransaction(); err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
if errStart := transactionContext.StartTransaction(); errStart != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, errStart.Error())
}
defer func() {
transactionContext.RollbackTransaction()
_ = transactionContext.RollbackTransaction()
}()
if err := transactionContext.CommitTransaction(); err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
var columnSettingRepository domain.ColumnSettingRepository
if value, errFact := factory.CreateColumnSettingRepository(map[string]interface{}{
"transactionContext": transactionContext,
}); errFact != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, errFact.Error())
} else {
columnSettingRepository = value
}
columnSettingFound, err := columnSettingRepository.FindOne(map[string]interface{}{"uid": resetColumnCommand.Uid, "companyId": resetColumnCommand.CompanyId})
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
}
if columnSettingFound == nil {
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", strconv.FormatInt(resetColumnCommand.Uid, 10)))
}
if errUpdated := columnSettingFound.Update(tool_funs.SimpleStructToMap(resetColumnCommand)); errUpdated != nil {
return nil, application.ThrowError(application.BUSINESS_ERROR, errUpdated.Error())
}
if columnSettingSaved, errSaved := columnSettingRepository.Save(columnSettingFound); errSaved != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, errSaved.Error())
} else {
if errCommit := transactionContext.CommitTransaction(); errCommit != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, errCommit.Error())
}
return columnSettingSaved, nil
}
return nil, nil
}
// 更新栏目设置增删改查
/**
* @Author SteveChan
* @Description //TODO 更新栏目设置
* @Date 23:15 2021/1/26
* @Param
* @return
**/
func (columnSettingService *ColumnSettingService) UpdateColumnSetting(updateColumnSettingCommand *command.UpdateColumnSettingCommand) (interface{}, error) {
if err := updateColumnSettingCommand.ValidateCommand(); err != nil {
return nil, application.ThrowError(application.ARG_ERROR, err.Error())
... ... @@ -194,35 +257,37 @@ func (columnSettingService *ColumnSettingService) UpdateColumnSetting(updateColu
if err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
}
if err := transactionContext.StartTransaction(); err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
if errStart := transactionContext.StartTransaction(); errStart != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, errStart.Error())
}
defer func() {
transactionContext.RollbackTransaction()
_ = transactionContext.RollbackTransaction()
}()
var columnSettingRepository domain.ColumnSettingRepository
if value, err := factory.CreateColumnSettingRepository(map[string]interface{}{
if value, errFact := factory.CreateColumnSettingRepository(map[string]interface{}{
"transactionContext": transactionContext,
}); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
}); errFact != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, errFact.Error())
} else {
columnSettingRepository = value
}
columnSetting, err := columnSettingRepository.FindOne(map[string]interface{}{"column_settingId": updateColumnSettingCommand.ColumnSettingId})
updateColumnSettingCommand.Value = updateColumnSettingCommand.Selected
updateColumnSettingCommand.InvalidValue = updateColumnSettingCommand.UnSelected
columnSetting, err := columnSettingRepository.FindOne(map[string]interface{}{"uid": updateColumnSettingCommand.Uid, "companyId": updateColumnSettingCommand.CompanyId})
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
}
if columnSetting == nil {
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateColumnSettingCommand.ColumnSettingId)))
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", strconv.FormatInt(updateColumnSettingCommand.Uid, 10)))
}
if err := columnSetting.Update(tool_funs.SimpleStructToMap(updateColumnSettingCommand)); err != nil {
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
if errUpdated := columnSetting.Update(tool_funs.SimpleStructToMap(updateColumnSettingCommand)); errUpdated != nil {
return nil, application.ThrowError(application.BUSINESS_ERROR, errUpdated.Error())
}
if columnSettingSaved, err := columnSettingRepository.Save(columnSetting); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
if columnSettingSaved, errSaved := columnSettingRepository.Save(columnSetting); errSaved != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, errSaved.Error())
} else {
if err := transactionContext.CommitTransaction(); err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
if errCommit := transactionContext.CommitTransaction(); errCommit != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, errCommit.Error())
}
return columnSettingSaved, nil
}
... ...
... ... @@ -894,7 +894,7 @@ func (service OrderInfoService) ListOrderBonusForExcel(listOrderQuery query.List
/**
* @Author SteveChan
* @Description // 导出订单数据
* @Description //TODO 根据栏目设置,导出订单数据
* @Date 22:05 2021/1/10
* @Param
* @return
... ... @@ -927,6 +927,7 @@ func (service OrderInfoService) ListOrderForExcel(listOrderQuery query.ListOrder
listOrderQuery.DeliveryCode, // 发货单号
[2]string{listOrderQuery.UpdateTimeBegin, listOrderQuery.UpdateTimeEnd},
[2]string{listOrderQuery.CreateTimeBegin, listOrderQuery.CreateTimeEnd},
[2]string{listOrderQuery.SaleDateStart, listOrderQuery.SaleDateEnd},
listOrderQuery.PartnerCategory,
)
if err != nil {
... ...
... ... @@ -85,6 +85,13 @@ func (s SyncOrderService) SyncOrderFromBestshop(cmd command.CreateOrderFromBests
return err
}
/**
* @Author SteveChan
* @Description //TODO 同步小程序订单,增加销售时间
* @Date 23:53 2021/1/26
* @Param
* @return
**/
func (s SyncOrderService) CreateOrderFromBestshop(cmd command.CreateOrderFromBestshop) error {
var (
transactionContext, _ = factory.CreateTransactionContext(nil)
... ...
... ... @@ -4,6 +4,7 @@ import (
"encoding/json"
"errors"
"fmt"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/constant"
"time"
"github.com/astaxie/beego/logs"
... ... @@ -85,6 +86,13 @@ func NewSyncEmployeeService(option map[string]interface{}) *SyncEmployeeService
var _ SyncAction = (*SyncEmployeeService)(nil)
/**
* @Author SteveChan
* @Description //TODO 新增、导入用户初始化栏目设置
* @Date 23:54 2021/1/26
* @Param
* @return
**/
func (service SyncEmployeeService) DoAction(action string, byteData []byte) error {
switch action {
case "add":
... ... @@ -157,6 +165,13 @@ func (service SyncEmployeeService) DoAction(action string, byteData []byte) erro
}
}
/**
* @Author SteveChan
* @Description //TODO 初始化栏目设置
* @Date 00:07 2021/1/27
* @Param
* @return
**/
//addEmployeeData 添加用户
func (service SyncEmployeeService) addEmployeeData(datas []EmployeeData) error {
var (
... ... @@ -167,7 +182,7 @@ func (service SyncEmployeeService) addEmployeeData(datas []EmployeeData) error {
return err
}
defer func() {
transactionContext.RollbackTransaction()
_ = transactionContext.RollbackTransaction()
}()
var usersRepository domain.UsersRepository
if usersRepository, err = factory.CreateUsersRepository(map[string]interface{}{
... ... @@ -175,6 +190,12 @@ func (service SyncEmployeeService) addEmployeeData(datas []EmployeeData) error {
}); err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
}
var columnSettingRepository domain.ColumnSettingRepository
if columnSettingRepository, err = factory.CreateColumnSettingRepository(map[string]interface{}{
"transactionContext": transactionContext,
}); err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
}
for i := range datas {
data := datas[i]
newUser := domain.Users{
... ... @@ -202,7 +223,24 @@ func (service SyncEmployeeService) addEmployeeData(datas []EmployeeData) error {
if err = usersRepository.Add(&newUser); err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
}
// 初始化栏目设置
newColumnSetting := &domain.ColumnSetting{
Description: "订单管理栏目设置",
UserName: data.Name,
CompanyId: int(data.CompanyId),
Uid: data.Id,
Key: constant.ORDER_BASE, // 订单栏目模块名称
Value: domain.DefaultColumns, // 栏目值数组,创建用户时使用默认栏目设置
InvalidValue: domain.DefaultInvalidColumns, // 初始化无效栏目数组
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
}
if _, err = columnSettingRepository.Save(newColumnSetting); err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
}
}
err = transactionContext.CommitTransaction()
return err
}
... ... @@ -270,7 +308,7 @@ func (service SyncEmployeeService) deleteEmployeeData(data DeleteUserData) error
return err
}
defer func() {
transactionContext.RollbackTransaction()
_ = transactionContext.RollbackTransaction()
}()
var usersRepository domain.UsersRepository
if usersRepository, err = factory.CreateUsersRepository(map[string]interface{}{
... ... @@ -281,6 +319,25 @@ func (service SyncEmployeeService) deleteEmployeeData(data DeleteUserData) error
if err = usersRepository.Remove(data.Ids); err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
}
// TODO 删除栏目设置
var columnSettingRepository domain.ColumnSettingRepository
if value, errFac := factory.CreateColumnSettingRepository(map[string]interface{}{
"transactionContext": transactionContext,
}); errFac != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
} else {
columnSettingRepository = value
}
_, columnSettingsFound, err := columnSettingRepository.Find(map[string]interface{}{"ids": data.Ids, "companyId": data.CompanyId})
if err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
}
if len(columnSettingsFound) == 0 {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
}
if _, _, errRm := columnSettingRepository.Remove(nil, columnSettingsFound); errRm != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, errRm.Error())
}
err = transactionContext.CommitTransaction()
return err
}
... ... @@ -295,7 +352,7 @@ func (service SyncEmployeeService) updateUsersStatus(data ForbidAllowUserData) e
return err
}
defer func() {
transactionContext.RollbackTransaction()
_ = transactionContext.RollbackTransaction()
}()
var uDao *dao.UsersDao
if uDao, err = factory.CreateUsersDao(map[string]interface{}{
... ...
... ... @@ -16,6 +16,9 @@ var (
UCENTER_CHECK_ALT = "rsF0pL!6DwjBO735"
)
// 栏目常量设置
var ORDER_BASE = "order_base" // 订单管理栏目
var (
BUSINESS_ADMIN_HOST = "http://suplus-business-admin-test.fjmaimaimai.com" //企业平台的地址
)
... ...
... ... @@ -9,7 +9,7 @@ package domain
// 栏目项值对象
type Column struct {
// 列标记
ColumnId string `json:"columnId"`
Id string `json:"id"`
// 列标记中文
ParamCn string `json:"paramCn"`
// 列标记是否固定,1:固定,2:不固定
... ...
... ... @@ -2,12 +2,78 @@ package domain
import "time"
// 默认选中栏目
var DefaultColumns = []Column{
{
Id: "index",
ParamCn: "序号",
ParamFix: 1,
}, {
Id: "orderId",
ParamCn: "订单号",
ParamFix: 2,
}, {
Id: "shipmentsId",
ParamCn: "发货单号",
ParamFix: 2,
}, {
Id: "saleDate",
ParamCn: "销售日期",
ParamFix: 2,
}, {
Id: "orderNum",
ParamCn: "订单数量",
ParamFix: 2,
}, {
Id: "quantityControl",
ParamCn: "数量调整",
ParamFix: 2,
}, {
Id: "orderPrice",
ParamCn: "订单金额",
ParamFix: 2,
}, {
Id: "priceControl",
ParamCn: "金额调整",
ParamFix: 2,
}, {
Id: "orderDist",
ParamCn: "订单区域",
ParamFix: 2,
}, {
Id: "partnerCategory",
ParamCn: "合伙人类型",
ParamFix: 2,
}, {
Id: "buyer",
ParamCn: "客户",
ParamFix: 2,
}, {
Id: "partner",
ParamCn: "合伙人",
ParamFix: 2,
},
}
// 默认未选中栏目
var DefaultInvalidColumns = []Column{
{
Id: "update_time",
ParamCn: "更新时间",
ParamFix: 2,
}, {
Id: "create_time",
ParamCn: "创建时间",
ParamFix: 2,
},
}
// 栏目设置
type ColumnSetting struct {
// 栏目设置id
Id int64 `json:"id"`
// 栏目设置关联用户公司id
CompanyId int32 `json:"companyId"`
CompanyId int `json:"companyId"`
// 栏目设置创建时间
CreatedAt time.Time `json:"createdAt"`
// 栏目设置描述
... ... @@ -20,13 +86,15 @@ type ColumnSetting struct {
UpdatedAt time.Time `json:"updatedAt"`
// 栏目设置关联用户名称
UserName string `json:"userName"`
// 栏目数组
// 有效栏目数组
Value []Column `json:"value"`
// 无效栏目数组
InvalidValue []Column `json:"invalidValue"`
}
type ColumnSettingRepository interface {
Save(columnSetting *ColumnSetting) (*ColumnSetting, error)
Remove(columnSetting *ColumnSetting) (*ColumnSetting, error)
Remove(columnSetting *ColumnSetting, columnSettings []*ColumnSetting) (*ColumnSetting, []*ColumnSetting, error)
FindOne(queryOptions map[string]interface{}) (*ColumnSetting, error)
Find(queryOptions map[string]interface{}) (int64, []*ColumnSetting, error)
}
... ... @@ -39,11 +107,8 @@ func (columnSetting *ColumnSetting) Identify() interface{} {
}
func (columnSetting *ColumnSetting) Update(data map[string]interface{}) error {
if columnSettingId, ok := data["columnSettingId"]; ok {
columnSetting.Id = columnSettingId.(int64)
}
if companyId, ok := data["companyId"]; ok {
columnSetting.CompanyId = companyId.(int32)
columnSetting.CompanyId = companyId.(int)
}
if createdAt, ok := data["createdAt"]; ok {
columnSetting.CreatedAt = createdAt.(time.Time)
... ... @@ -66,5 +131,8 @@ func (columnSetting *ColumnSetting) Update(data map[string]interface{}) error {
if value, ok := data["value"]; ok {
columnSetting.Value = value.([]Column)
}
if invalidValue, ok := data["invalidValue"]; ok {
columnSetting.InvalidValue = invalidValue.([]Column)
}
return nil
}
... ...
... ... @@ -259,6 +259,13 @@ type CustomOrderListForExcel struct {
PartnerName string //合伙人
}
/**
* @Author SteveChan
* @Description //TODO 导出到excel,增加栏目设置
* @Date 23:45 2021/1/26
* @Param
* @return
**/
//OrderListForExcel 获取实际订单列表用于excel导出
//@param companyId 公司id
//@param orderType 订单类型
... ... @@ -267,7 +274,7 @@ type CustomOrderListForExcel struct {
//@param updateTime 订单更新时间范围"[开始时间,结束时间]",时间格式"2006-01-02 15:04:05+07"
//@param createTime 订单的创建时间范围"[开始时间,结束时间]" 时间格式"2006-01-02 15:04:05+07"
func (dao OrderBaseDao) OrderListForExcel(companyId int64, partnerName string, orderCode string, deliveryCode string,
updateTime [2]string, createTime [2]string, partnerCategory int) (
updateTime [2]string, createTime [2]string, saleDate [2]string, partnerCategory int) (
result []CustomOrderListForExcel, err error) {
sqlstr := `
SELECT t1.order_code,t1.delivery_code
... ... @@ -306,17 +313,14 @@ func (dao OrderBaseDao) OrderListForExcel(companyId int64, partnerName string, o
params = append(params, partnerCategory)
sqlstr += ` AND t1.partner_category@>'{"id":?}' `
}
if len(updateTime[0]) > 0 {
params = append(params, updateTime[0])
sqlstr += ` AND t1.update_time>=? `
}
if len(updateTime[1]) > 0 {
params = append(params, updateTime[1])
sqlstr += ` AND t1.update_time<=? `
}
if len(createTime[0]) > 0 {
params = append(params, createTime[0])
sqlstr += ` AND t1.create_time>=? `
... ... @@ -325,6 +329,14 @@ func (dao OrderBaseDao) OrderListForExcel(companyId int64, partnerName string, o
params = append(params, createTime[1])
sqlstr += ` AND t1.create_time<=? `
}
if len(saleDate[0]) > 0 {
params = append(params, saleDate[0])
sqlstr += ` AND t1.sale_date>=? `
}
if len(saleDate[1]) > 0 {
params = append(params, saleDate[1])
sqlstr += ` AND t1.sale_date<=? `
}
sqlstr += ` ORDER BY t1.create_time DESC limit 10000 `
tx := dao.transactionContext.GetDB()
_, err = tx.Query(&result, sqlstr, params...)
... ...
... ... @@ -9,7 +9,7 @@ type ColumnSetting struct {
// 栏目设置id
Id int64
// 栏目设置关联用户公司id
CompanyId int32
CompanyId int
// 栏目设置创建时间
CreatedAt time.Time
// 栏目设置描述
... ... @@ -24,4 +24,6 @@ type ColumnSetting struct {
UserName string
// 栏目数组
Value []domain.Column `pg:",array"`
// 无效栏目数组
InvalidValue []domain.Column `pg:",array"`
}
... ...
... ... @@ -16,6 +16,7 @@ type ColumnSettingRepository struct {
func (repository *ColumnSettingRepository) nextIdentify() (int64, error) {
return 0, nil
}
func (repository *ColumnSettingRepository) Save(columnSetting *domain.ColumnSetting) (*domain.ColumnSetting, error) {
tx := repository.transactionContext.PgTx
if columnSetting.Identify() == nil {
... ... @@ -23,31 +24,46 @@ func (repository *ColumnSettingRepository) Save(columnSetting *domain.ColumnSett
if err != nil {
return columnSetting, err
}
if _, err := tx.QueryOne(
pg.Scan(&columnSetting.Id, &columnSetting.CompanyId, &columnSetting.CreatedAt, &columnSetting.Description, &columnSetting.Key, &columnSetting.Uid, &columnSetting.UpdatedAt, &columnSetting.UserName, pg.Array(&columnSetting.Value)),
"INSERT INTO column_settings (column_setting_id, company_id, created_at, description, key, uid, updated_at, user_name, value) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING column_setting_id, company_id, created_at, description, key, uid, updated_at, user_name, value",
columnSetting.Id, columnSetting.CompanyId, columnSetting.CreatedAt, columnSetting.Description, columnSetting.Key, columnSetting.Uid, columnSetting.UpdatedAt, columnSetting.UserName, pg.Array(columnSetting.Value)); err != nil {
return columnSetting, err
if _, errInsert := tx.QueryOne(
pg.Scan(&columnSetting.Id, &columnSetting.CompanyId, &columnSetting.CreatedAt, &columnSetting.Description, &columnSetting.Key, &columnSetting.Uid, &columnSetting.UpdatedAt, &columnSetting.UserName, pg.Array(&columnSetting.Value), pg.Array(&columnSetting.InvalidValue)),
"INSERT INTO column_settings (column_setting_id, company_id, created_at, description, key, uid, updated_at, user_name, value, invalid_value) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING column_setting_id, company_id, created_at, description, key, uid, updated_at, user_name, value, invalid_value",
columnSetting.Id, columnSetting.CompanyId, columnSetting.CreatedAt, columnSetting.Description, columnSetting.Key, columnSetting.Uid, columnSetting.UpdatedAt, columnSetting.UserName, pg.Array(columnSetting.Value), pg.Array(columnSetting.InvalidValue)); errInsert != nil {
return columnSetting, errInsert
}
} else {
if _, err := tx.QueryOne(
pg.Scan(&columnSetting.Id, &columnSetting.CompanyId, &columnSetting.CreatedAt, &columnSetting.Description, &columnSetting.Key, &columnSetting.Uid, &columnSetting.UpdatedAt, &columnSetting.UserName, pg.Array(&columnSetting.Value)),
"UPDATE column_settings SET column_setting_id=?, company_id=?, created_at=?, description=?, key=?, uid=?, updated_at=?, user_name=?, value=? WHERE id=? RETURNING column_setting_id, company_id, created_at, description, key, uid, updated_at, user_name, value",
columnSetting.Id, columnSetting.CompanyId, columnSetting.CreatedAt, columnSetting.Description, columnSetting.Key, columnSetting.Uid, columnSetting.UpdatedAt, columnSetting.UserName, pg.Array(columnSetting.Value), columnSetting.Identify()); err != nil {
return columnSetting, err
if _, errUpdate := tx.QueryOne(
pg.Scan(&columnSetting.Id, &columnSetting.CompanyId, &columnSetting.CreatedAt, &columnSetting.Description, &columnSetting.Key, &columnSetting.Uid, &columnSetting.UpdatedAt, &columnSetting.UserName, pg.Array(&columnSetting.Value), pg.Array(&columnSetting.InvalidValue)),
"UPDATE column_settings SET column_setting_id=?, company_id=?, created_at=?, description=?, key=?, uid=?, updated_at=?, user_name=?, value=?, invalid_value=? WHERE id=? RETURNING column_setting_id, company_id, created_at, description, key, uid, updated_at, user_name, value, invalid_value",
columnSetting.Id, columnSetting.CompanyId, columnSetting.CreatedAt, columnSetting.Description, columnSetting.Key, columnSetting.Uid, columnSetting.UpdatedAt, columnSetting.UserName, pg.Array(columnSetting.Value), pg.Array(columnSetting.InvalidValue), columnSetting.Identify()); errUpdate != nil {
return columnSetting, errUpdate
}
}
return columnSetting, nil
}
func (repository *ColumnSettingRepository) Remove(columnSetting *domain.ColumnSetting) (*domain.ColumnSetting, error) {
func (repository *ColumnSettingRepository) Remove(columnSetting *domain.ColumnSetting, columnSettings []*domain.ColumnSetting) (*domain.ColumnSetting, []*domain.ColumnSetting, error) {
tx := repository.transactionContext.PgTx
// 单个删除
columnSettingModel := new(models.ColumnSetting)
columnSettingModel.Id = columnSetting.Identify().(int64)
if _, err := tx.Model(columnSettingModel).WherePK().Delete(); err != nil {
return columnSetting, err
return columnSetting, nil, err
}
return columnSetting, nil
// 批量删除
var columnSettingModels []*models.ColumnSetting
for _, setting := range columnSettings {
columnSettingModels = append(columnSettingModels, &models.ColumnSetting{
Id: setting.Identify().(int64),
})
}
if _, err := tx.Model(columnSettingModels).WherePK().Delete(); err != nil {
return nil, columnSettings, err
}
return columnSetting, columnSettings, nil
}
func (repository *ColumnSettingRepository) FindOne(queryOptions map[string]interface{}) (*domain.ColumnSetting, error) {
tx := repository.transactionContext.PgTx
columnSettingModel := new(models.ColumnSetting)
... ... @@ -55,6 +71,12 @@ func (repository *ColumnSettingRepository) FindOne(queryOptions map[string]inter
if columnSettingId, ok := queryOptions["column_settingId"]; ok {
query = query.Where("column_setting.id = ?", columnSettingId)
}
if uid, ok := queryOptions["uid"]; ok {
query = query.Where("column_setting.uid = ?", uid)
}
if companyId, ok := queryOptions["companyId"]; ok {
query = query.Where("column_setting.company_id = ?", companyId)
}
if err := query.First(); err != nil {
if err.Error() == "pg: no rows in result set" {
return nil, fmt.Errorf("没有此资源")
... ... @@ -68,23 +90,33 @@ func (repository *ColumnSettingRepository) FindOne(queryOptions map[string]inter
return repository.transformPgModelToDomainModel(columnSettingModel)
}
}
func (repository *ColumnSettingRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.ColumnSetting, error) {
tx := repository.transactionContext.PgTx
var columnSettingModels []*models.ColumnSetting
columnSettings := make([]*domain.ColumnSetting, 0)
query := tx.Model(&columnSettingModels)
if ids, ok := queryOptions["ids"]; ok {
query = query.Where("column_setting.uid IN (?)", pg.In(ids.(int)))
}
if uid, ok := queryOptions["uid"]; ok {
query = query.Where("column_setting.uid = ?", uid)
}
if companyId, ok := queryOptions["companyId"]; ok {
query = query.Where("column_setting.company_id = ?", companyId)
}
if offset, ok := queryOptions["offset"]; ok {
offset := offset.(int)
if offset > -1 {
query = query.Offset(offset)
queryOffset := offset.(int)
if queryOffset > -1 {
query = query.Offset(queryOffset)
}
} else {
query = query.Offset(0)
}
if limit, ok := queryOptions["limit"]; ok {
limit := limit.(int)
if limit > -1 {
query = query.Limit(limit)
queryLimit := limit.(int)
if queryLimit > -1 {
query = query.Limit(queryLimit)
}
} else {
query = query.Limit(20)
... ... @@ -93,8 +125,8 @@ func (repository *ColumnSettingRepository) Find(queryOptions map[string]interfac
return 0, columnSettings, err
} else {
for _, columnSettingModel := range columnSettingModels {
if columnSetting, err := repository.transformPgModelToDomainModel(columnSettingModel); err != nil {
return 0, columnSettings, err
if columnSetting, errTrans := repository.transformPgModelToDomainModel(columnSettingModel); errTrans != nil {
return 0, columnSettings, errTrans
} else {
columnSettings = append(columnSettings, columnSetting)
}
... ... @@ -102,19 +134,22 @@ func (repository *ColumnSettingRepository) Find(queryOptions map[string]interfac
return int64(count), columnSettings, nil
}
}
func (repository *ColumnSettingRepository) transformPgModelToDomainModel(columnSettingModel *models.ColumnSetting) (*domain.ColumnSetting, error) {
return &domain.ColumnSetting{
Id: columnSettingModel.Id,
CompanyId: columnSettingModel.CompanyId,
CreatedAt: columnSettingModel.CreatedAt,
Description: columnSettingModel.Description,
Key: columnSettingModel.Key,
Uid: columnSettingModel.Uid,
UpdatedAt: columnSettingModel.UpdatedAt,
UserName: columnSettingModel.UserName,
Value: columnSettingModel.Value,
Id: columnSettingModel.Id,
CompanyId: columnSettingModel.CompanyId,
CreatedAt: columnSettingModel.CreatedAt,
Description: columnSettingModel.Description,
Key: columnSettingModel.Key,
Uid: columnSettingModel.Uid,
UpdatedAt: columnSettingModel.UpdatedAt,
UserName: columnSettingModel.UserName,
Value: columnSettingModel.Value, // 有效栏目设置
InvalidValue: columnSettingModel.InvalidValue, // 无效栏目设置
}, nil
}
func NewColumnSettingRepository(transactionContext *pgTransaction.TransactionContext) (*ColumnSettingRepository, error) {
if transactionContext == nil {
return nil, fmt.Errorf("transactionContext参数不能为nil")
... ...
... ... @@ -2,8 +2,8 @@ package controllers
import (
"encoding/json"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
"github.com/astaxie/beego"
"github.com/linmadan/egglib-go/web/beego/utils"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/columnSetting/command"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/columnSetting/query"
... ... @@ -11,7 +11,7 @@ import (
)
type ColumnSettingController struct {
beego.Controller
BaseController
}
func (controller *ColumnSettingController) CreateColumnSetting() {
... ... @@ -29,12 +29,23 @@ func (controller *ColumnSettingController) CreateColumnSetting() {
controller.ServeJSON()
}
/**
* @Author SteveChan
* @Description //TODO 更新栏目设置
* @Date 22:52 2021/1/26
* @Param
* @return
**/
func (controller *ColumnSettingController) UpdateColumnSetting() {
columnSettingService := service.NewColumnSettingService(nil)
updateColumnSettingCommand := &command.UpdateColumnSettingCommand{}
json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), updateColumnSettingCommand)
columnSettingId, _ := controller.GetInt64(":columnSettingId")
updateColumnSettingCommand.ColumnSettingId = columnSettingId
_ = json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), updateColumnSettingCommand)
//columnSettingId, _ := controller.GetInt64(":columnSettingId")
companyId := controller.GetUserCompany()
uid := controller.GetUserId()
//updateColumnSettingCommand.ColumnSettingId = columnSettingId
updateColumnSettingCommand.CompanyId = int(companyId)
updateColumnSettingCommand.Uid = uid
data, err := columnSettingService.UpdateColumnSetting(updateColumnSettingCommand)
var response utils.JsonResponse
if err != nil {
... ... @@ -46,11 +57,22 @@ func (controller *ColumnSettingController) UpdateColumnSetting() {
controller.ServeJSON()
}
/**
* @Author SteveChan
* @Description //TODO 获取栏目设置
* @Date 22:53 2021/1/26
* @Param
* @return
**/
func (controller *ColumnSettingController) GetColumnSetting() {
columnSettingService := service.NewColumnSettingService(nil)
getColumnSettingQuery := &query.GetColumnSettingQuery{}
columnSettingId, _ := controller.GetInt64(":columnSettingId")
getColumnSettingQuery.ColumnSettingId = columnSettingId
//columnSettingId, _ := controller.GetInt64(":columnSettingId")
companyId := controller.GetUserCompany() // 公司id
uid := controller.GetUserId() // 用户id
//getColumnSettingQuery.ColumnSettingId = columnSettingId
getColumnSettingQuery.CompanyId = int(companyId)
getColumnSettingQuery.Uid = uid
data, err := columnSettingService.GetColumnSetting(getColumnSettingQuery)
var response utils.JsonResponse
if err != nil {
... ... @@ -65,7 +87,7 @@ func (controller *ColumnSettingController) GetColumnSetting() {
func (controller *ColumnSettingController) RemoveColumnSetting() {
columnSettingService := service.NewColumnSettingService(nil)
removeColumnSettingCommand := &command.RemoveColumnSettingCommand{}
json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), removeColumnSettingCommand)
_ = json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), removeColumnSettingCommand)
columnSettingId, _ := controller.GetInt64(":columnSettingId")
removeColumnSettingCommand.ColumnSettingId = columnSettingId
data, err := columnSettingService.RemoveColumnSetting(removeColumnSettingCommand)
... ... @@ -79,10 +101,22 @@ func (controller *ColumnSettingController) RemoveColumnSetting() {
controller.ServeJSON()
}
/**
* @Author SteveChan
* @Description //TODO 重置栏目设置
* @Date 22:52 2021/1/26
* @Param
* @return
**/
func (controller *ColumnSettingController) ResetColumn() {
columnSettingService := service.NewColumnSettingService(nil)
resetColumnCommand := &command.ResetColumnCommand{}
json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), resetColumnCommand)
companyId := controller.GetUserCompany()
uid := controller.GetUserId()
//_ = json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), resetColumnCommand)
resetColumnCommand.CompanyId = int(companyId)
resetColumnCommand.Uid = uid
resetColumnCommand.Value = domain.DefaultColumns // 还原默认栏目设置
data, err := columnSettingService.ResetColumn(resetColumnCommand)
var response utils.JsonResponse
if err != nil {
... ...
... ... @@ -893,7 +893,6 @@ func (c *OrderInfoController) ImportOrderFromExcel() {
case 4: // TODO 销售日期格式和有效性校验
{
regexpStr := `(\d{4})/(\d{2})/(\d{2})`
//cellStr := strings.TrimSpace(cell)
ok := regexp.MustCompile(regexpStr).MatchString(cell)
if !ok {
var tmpRow []string
... ...
... ... @@ -43,7 +43,7 @@ func init() {
beego.NSRouter("/actual/close", &controllers.OrderInfoController{}, "POST:OrderDisable"),
beego.NSRouter("/fileImportTemplate", &controllers.OrderInfoController{}, "POST:DownloadTemplate"), // 下载导入模板
beego.NSRouter("/fileImport", &controllers.OrderInfoController{}, "POST:ImportOrderFromExcel"), // 导入订单数据
beego.NSRouter("/actual/listColumn", &controllers.ColumnSettingController{}, "POST:ListColumnSetting"), // 返回栏目设置列表
beego.NSRouter("/actual/listColumn", &controllers.ColumnSettingController{}, "POST:GetColumnSetting"), // 返回栏目设置列表
beego.NSRouter("/actual/updateColumn", &controllers.ColumnSettingController{}, "POST:UpdateColumnSetting"), // 更新栏目设置
beego.NSRouter("/actual/resetColumn", &controllers.ColumnSettingController{}, "Post:ResetColumn"), // 重置栏目设置
),
... ...