v2_10
This commit is contained in:
@@ -3,6 +3,8 @@ package biz
|
||||
import (
|
||||
db "management/internal/db/sqlc"
|
||||
commonv1 "management/internal/erpserver/biz/v1/common"
|
||||
customerv1 "management/internal/erpserver/biz/v1/customer"
|
||||
projectv1 "management/internal/erpserver/biz/v1/project"
|
||||
systemv1 "management/internal/erpserver/biz/v1/system"
|
||||
"management/internal/pkg/redis"
|
||||
"management/internal/pkg/session"
|
||||
@@ -14,6 +16,10 @@ type IBiz interface {
|
||||
CommonV1() commonv1.CommonBiz
|
||||
// 获取系统业务接口.
|
||||
SystemV1() systemv1.SystemBiz
|
||||
// 项目管理
|
||||
ProjectV1() projectv1.ProjectBiz
|
||||
// 客户管理
|
||||
CustomerV1() customerv1.CustomerBiz
|
||||
}
|
||||
|
||||
// biz 是 IBiz 的一个具体实现.
|
||||
@@ -44,3 +50,11 @@ func (b *biz) CommonV1() commonv1.CommonBiz {
|
||||
func (b *biz) SystemV1() systemv1.SystemBiz {
|
||||
return systemv1.New(b.store, b.redis, b.session)
|
||||
}
|
||||
|
||||
func (b *biz) ProjectV1() projectv1.ProjectBiz {
|
||||
return projectv1.New(b.store, b.redis)
|
||||
}
|
||||
|
||||
func (b *biz) CustomerV1() customerv1.CustomerBiz {
|
||||
return customerv1.New(b.store, b.redis)
|
||||
}
|
||||
|
||||
45
internal/erpserver/biz/v1/customer/customer.go
Normal file
45
internal/erpserver/biz/v1/customer/customer.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package customer
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
db "management/internal/db/sqlc"
|
||||
"management/internal/pkg/redis"
|
||||
)
|
||||
|
||||
type CustomerBiz interface {
|
||||
Create(ctx context.Context, arg *db.CreateCustomerParams) (*db.Customer, error)
|
||||
Update(ctx context.Context, arg *db.UpdateCustomerParams) (*db.Customer, error)
|
||||
List(ctx context.Context, arg *db.ListCustomerConditionParam) ([]*db.CustomerView, int64, error)
|
||||
Get(ctx context.Context, id int64) (*db.Customer, error)
|
||||
}
|
||||
|
||||
type customerBiz struct {
|
||||
store db.Store
|
||||
redis redis.IRedis
|
||||
}
|
||||
|
||||
var _ CustomerBiz = (*customerBiz)(nil)
|
||||
|
||||
func New(store db.Store, redis redis.IRedis) *customerBiz {
|
||||
return &customerBiz{
|
||||
store: store,
|
||||
redis: redis,
|
||||
}
|
||||
}
|
||||
|
||||
func (b *customerBiz) Create(ctx context.Context, arg *db.CreateCustomerParams) (*db.Customer, error) {
|
||||
return b.store.CreateCustomer(ctx, arg)
|
||||
}
|
||||
|
||||
func (b *customerBiz) Update(ctx context.Context, arg *db.UpdateCustomerParams) (*db.Customer, error) {
|
||||
return b.store.UpdateCustomer(ctx, arg)
|
||||
}
|
||||
|
||||
func (b *customerBiz) List(ctx context.Context, arg *db.ListCustomerConditionParam) ([]*db.CustomerView, int64, error) {
|
||||
return b.store.ListCustomerCondition(ctx, arg)
|
||||
}
|
||||
|
||||
func (b *customerBiz) Get(ctx context.Context, id int64) (*db.Customer, error) {
|
||||
return b.store.GetCustomer(ctx, id)
|
||||
}
|
||||
93
internal/erpserver/biz/v1/project/project.go
Normal file
93
internal/erpserver/biz/v1/project/project.go
Normal file
@@ -0,0 +1,93 @@
|
||||
package project
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
db "management/internal/db/sqlc"
|
||||
"management/internal/pkg/redis"
|
||||
)
|
||||
|
||||
type ProjectBiz interface {
|
||||
Create(ctx context.Context, p *db.CreateProjectParams, pf []*db.CreateProjectFileParams) error
|
||||
Update(ctx context.Context, p *db.UpdateProjectParams, pf []*db.CreateProjectFileParams) error
|
||||
List(ctx context.Context, q *db.ListProjectConditionParam) ([]*db.ProjectView, int64, error)
|
||||
Get(ctx context.Context, id int64) (*db.Project, error)
|
||||
|
||||
ProjectExpansion
|
||||
}
|
||||
|
||||
type ProjectExpansion interface {
|
||||
ListProjectFiles(ctx context.Context, projectID int64) ([]*db.ProjectFile, error)
|
||||
}
|
||||
|
||||
type projectBiz struct {
|
||||
store db.Store
|
||||
redis redis.IRedis
|
||||
}
|
||||
|
||||
var _ ProjectBiz = (*projectBiz)(nil)
|
||||
|
||||
func New(store db.Store, redis redis.IRedis) *projectBiz {
|
||||
return &projectBiz{
|
||||
store: store,
|
||||
redis: redis,
|
||||
}
|
||||
}
|
||||
|
||||
func (b *projectBiz) Create(ctx context.Context, p *db.CreateProjectParams, pf []*db.CreateProjectFileParams) error {
|
||||
return b.store.ExecTx(ctx, func(q *db.Queries) error {
|
||||
_, err := q.CreateProject(ctx, p)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, item := range pf {
|
||||
_, err = q.CreateProjectFile(ctx, item)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func (b *projectBiz) Update(ctx context.Context, p *db.UpdateProjectParams, pf []*db.CreateProjectFileParams) error {
|
||||
return b.store.ExecTx(ctx, func(q *db.Queries) error {
|
||||
_, err := q.UpdateProject(ctx, p)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = q.DeleteProjectFile(ctx, p.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, item := range pf {
|
||||
_, err = q.CreateProjectFile(ctx, item)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func (b *projectBiz) List(ctx context.Context, q *db.ListProjectConditionParam) ([]*db.ProjectView, int64, error) {
|
||||
res, total, err := b.store.ListProjectCondition(ctx, q)
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
return res, total, nil
|
||||
}
|
||||
|
||||
func (b *projectBiz) Get(ctx context.Context, id int64) (*db.Project, error) {
|
||||
return b.store.GetProject(ctx, id)
|
||||
}
|
||||
|
||||
func (b *projectBiz) ListProjectFiles(ctx context.Context, projectID int64) ([]*db.ProjectFile, error) {
|
||||
return b.store.ListProjectFiles(ctx, projectID)
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package system
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
@@ -11,6 +12,7 @@ import (
|
||||
"management/internal/erpserver/model/view"
|
||||
"management/internal/global/keys"
|
||||
"management/internal/pkg/redis"
|
||||
"management/internal/pkg/tpl/html"
|
||||
)
|
||||
|
||||
type CategoryBiz interface {
|
||||
@@ -23,7 +25,9 @@ type CategoryBiz interface {
|
||||
RebuildParentPath(ctx context.Context) error
|
||||
|
||||
Tree(ctx context.Context, id int32) ([]*view.LayuiTree, error)
|
||||
XmSelect(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
|
||||
XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
|
||||
|
||||
ListHtmlByLetter(ctx context.Context, letter string) ([]*html.SelectDict, error)
|
||||
}
|
||||
|
||||
type categoryBiz struct {
|
||||
@@ -130,7 +134,7 @@ func (b *categoryBiz) Tree(ctx context.Context, id int32) ([]*view.LayuiTree, er
|
||||
return b.toTree(id, all), nil
|
||||
}
|
||||
|
||||
func (b *categoryBiz) XmSelect(ctx context.Context, id int32) ([]*view.XmSelectTree, error) {
|
||||
func (b *categoryBiz) XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error) {
|
||||
all, err := b.All(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -139,6 +143,41 @@ func (b *categoryBiz) XmSelect(ctx context.Context, id int32) ([]*view.XmSelectT
|
||||
return b.toXmSelectTree(id, all), nil
|
||||
}
|
||||
|
||||
func (b *categoryBiz) ListHtmlByLetter(ctx context.Context, letter string) ([]*html.SelectDict, error) {
|
||||
all, err := b.All(ctx)
|
||||
if err != nil || len(all) == 0 {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var current *db.Category
|
||||
for _, v := range all {
|
||||
if v.Letter == letter {
|
||||
current = v
|
||||
break
|
||||
}
|
||||
}
|
||||
if current == nil {
|
||||
return nil, errors.New("未找到当前类别")
|
||||
}
|
||||
|
||||
var res []*html.SelectDict
|
||||
res = append(res, &html.SelectDict{
|
||||
Name: "请选择",
|
||||
Value: "0",
|
||||
})
|
||||
for _, v := range all {
|
||||
if v.ParentID == current.ID {
|
||||
item := html.SelectDict{
|
||||
Name: v.Name,
|
||||
Value: strconv.Itoa(int(v.ID)),
|
||||
}
|
||||
res = append(res, &item)
|
||||
}
|
||||
}
|
||||
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (b *categoryBiz) toTree(parentId int32, data []*db.Category) []*view.LayuiTree {
|
||||
var res []*view.LayuiTree
|
||||
for _, v := range data {
|
||||
|
||||
@@ -23,7 +23,7 @@ type DepartmentBiz interface {
|
||||
RebuildParentPath(ctx context.Context) error
|
||||
|
||||
Tree(ctx context.Context, id int32) ([]*view.LayuiTree, error)
|
||||
XmSelect(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
|
||||
XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
|
||||
|
||||
DepartmentExpansion
|
||||
}
|
||||
@@ -136,7 +136,7 @@ func (b *departmentBiz) Tree(ctx context.Context, id int32) ([]*view.LayuiTree,
|
||||
return b.toTree(id, all), nil
|
||||
}
|
||||
|
||||
func (b *departmentBiz) XmSelect(ctx context.Context, id int32) ([]*view.XmSelectTree, error) {
|
||||
func (b *departmentBiz) XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error) {
|
||||
all, err := b.All(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -36,7 +36,7 @@ type MenuExpansion interface {
|
||||
SetMenuViewData(ctx context.Context, roleID int32) ([]*dto.SetMenuDto, error)
|
||||
|
||||
Tree(ctx context.Context, id int32) ([]*view.LayuiTree, error)
|
||||
XmSelect(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
|
||||
XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
|
||||
SetMenu(ctx context.Context, roleID int32, menus []*db.SysMenu) error
|
||||
}
|
||||
|
||||
@@ -268,7 +268,7 @@ func (b *menuBiz) Tree(ctx context.Context, id int32) ([]*view.LayuiTree, error)
|
||||
return b.toTree(id, all), nil
|
||||
}
|
||||
|
||||
func (b *menuBiz) XmSelect(ctx context.Context, id int32) ([]*view.XmSelectTree, error) {
|
||||
func (b *menuBiz) XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error) {
|
||||
all, err := b.AllMenusCache(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -23,7 +23,7 @@ type RoleBiz interface {
|
||||
RebuildParentPath(ctx context.Context) error
|
||||
|
||||
Tree(ctx context.Context, id int32) ([]*view.LayuiTree, error)
|
||||
XmSelect(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
|
||||
XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
|
||||
|
||||
RoleExpansion
|
||||
}
|
||||
@@ -136,7 +136,7 @@ func (b *roleBiz) Tree(ctx context.Context, id int32) ([]*view.LayuiTree, error)
|
||||
return b.toTree(id, all), nil
|
||||
}
|
||||
|
||||
func (b *roleBiz) XmSelect(ctx context.Context, id int32) ([]*view.XmSelectTree, error) {
|
||||
func (b *roleBiz) XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error) {
|
||||
all, err := b.All(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -4,11 +4,13 @@ import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"management/internal/db/model/dto"
|
||||
db "management/internal/db/sqlc"
|
||||
"management/internal/erpserver/model/req"
|
||||
"management/internal/erpserver/model/view"
|
||||
"management/internal/global/know"
|
||||
"management/internal/pkg/crypto"
|
||||
"management/internal/pkg/session"
|
||||
@@ -18,9 +20,12 @@ import (
|
||||
type UserBiz interface {
|
||||
Create(ctx context.Context, req *db.CreateSysUserParams) (*db.SysUser, error)
|
||||
Update(ctx context.Context, req *db.UpdateSysUserParams) (*db.SysUser, error)
|
||||
All(ctx context.Context) ([]*db.SysUser, error)
|
||||
List(ctx context.Context, q dto.SearchDto) ([]*db.ListSysUserConditionRow, int64, error)
|
||||
Get(ctx context.Context, id int32) (*db.SysUser, error)
|
||||
|
||||
XmSelect(ctx context.Context) ([]*view.XmSelect, error)
|
||||
|
||||
UserExpansion
|
||||
}
|
||||
|
||||
@@ -53,6 +58,10 @@ func (b *userBiz) Update(ctx context.Context, req *db.UpdateSysUserParams) (*db.
|
||||
return b.store.UpdateSysUser(ctx, req)
|
||||
}
|
||||
|
||||
func (b *userBiz) All(ctx context.Context) ([]*db.SysUser, error) {
|
||||
return b.store.ListSysUser(ctx)
|
||||
}
|
||||
|
||||
func (b *userBiz) List(ctx context.Context, q dto.SearchDto) ([]*db.ListSysUserConditionRow, int64, error) {
|
||||
count, err := b.store.CountSysUserCondition(ctx, &db.CountSysUserConditionParams{
|
||||
IsStatus: q.SearchStatus != 9999,
|
||||
@@ -87,6 +96,22 @@ func (b *userBiz) Get(ctx context.Context, id int32) (*db.SysUser, error) {
|
||||
return b.store.GetSysUser(ctx, id)
|
||||
}
|
||||
|
||||
func (b *userBiz) XmSelect(ctx context.Context) ([]*view.XmSelect, error) {
|
||||
all, err := b.store.ListSysUser(ctx)
|
||||
if err != nil || len(all) == 0 {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var res []*view.XmSelect
|
||||
for _, user := range all {
|
||||
res = append(res, &view.XmSelect{
|
||||
Name: user.Username,
|
||||
Value: strconv.Itoa(int(user.ID)),
|
||||
})
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (b *userBiz) Login(ctx context.Context, req *req.Login) error {
|
||||
log := &db.CreateSysUserLoginLogParams{
|
||||
CreatedAt: time.Now(),
|
||||
|
||||
Reference in New Issue
Block a user