|
@@ -5,8 +5,7 @@ import (
|
|
|
"database/sql"
|
|
"database/sql"
|
|
|
"fmt"
|
|
"fmt"
|
|
|
dao "lims_adapter/dao/feedback"
|
|
dao "lims_adapter/dao/feedback"
|
|
|
- "lims_adapter/model"
|
|
|
|
|
- feedback "lims_adapter/model/feedback"
|
|
|
|
|
|
|
+ "lims_adapter/model/feedback"
|
|
|
|
|
|
|
|
"dashoo.cn/common_definition/admin/permission_def"
|
|
"dashoo.cn/common_definition/admin/permission_def"
|
|
|
"dashoo.cn/micro_libary/micro_srv"
|
|
"dashoo.cn/micro_libary/micro_srv"
|
|
@@ -53,11 +52,11 @@ func (s FeedbackService) Get(ctx context.Context, req *feedback.FeedbackGetReq)
|
|
|
if f == nil {
|
|
if f == nil {
|
|
|
return nil, myerrors.NewMsgError(nil, "反馈不存在")
|
|
return nil, myerrors.NewMsgError(nil, "反馈不存在")
|
|
|
}
|
|
}
|
|
|
- flow, err := s.DaoFlow.Where("FeebackId = ?", f.Id).All()
|
|
|
|
|
|
|
+ flow, err := s.DaoFlow.Where("FeedbackId = ?", f.Id).All()
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- result, err := s.DaoResult.Where("FeebackId = ?", f.Id).All()
|
|
|
|
|
|
|
+ result, err := s.DaoResult.Where("FeedbackId = ?", f.Id).All()
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
@@ -117,18 +116,18 @@ type organize struct {
|
|
|
FullName string
|
|
FullName string
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (s FeedbackService) Add(ctx context.Context, req *feedback.FeedbackAddReq) error {
|
|
|
|
|
|
|
+func (s FeedbackService) Add(ctx context.Context, req *feedback.FeedbackAddReq) (int, error) {
|
|
|
validErr := gvalid.CheckStruct(ctx, req, nil)
|
|
validErr := gvalid.CheckStruct(ctx, req, nil)
|
|
|
if validErr != nil {
|
|
if validErr != nil {
|
|
|
- return myerrors.NewMsgError(nil, validErr.Current().Error())
|
|
|
|
|
|
|
+ return 0, myerrors.NewMsgError(nil, validErr.Current().Error())
|
|
|
}
|
|
}
|
|
|
dept := &organize{}
|
|
dept := &organize{}
|
|
|
err := s.Dao.DB.Table("base_organize").Where("Id", s.userInfo.DeptId).Struct(dept)
|
|
err := s.Dao.DB.Table("base_organize").Where("Id", s.userInfo.DeptId).Struct(dept)
|
|
|
if err == sql.ErrNoRows {
|
|
if err == sql.ErrNoRows {
|
|
|
- return myerrors.NewMsgError(err, fmt.Sprintf("部门不存在 %s", s.userInfo.DeptId))
|
|
|
|
|
|
|
+ return 0, myerrors.NewMsgError(err, fmt.Sprintf("部门不存在 %s", s.userInfo.DeptId))
|
|
|
}
|
|
}
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- return err
|
|
|
|
|
|
|
+ return 0, err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
id, err := s.Dao.InsertAndGetId(feedback.Feedback{
|
|
id, err := s.Dao.InsertAndGetId(feedback.Feedback{
|
|
@@ -146,11 +145,11 @@ func (s FeedbackService) Add(ctx context.Context, req *feedback.FeedbackAddReq)
|
|
|
UpdatedAt: gtime.New(),
|
|
UpdatedAt: gtime.New(),
|
|
|
})
|
|
})
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- return err
|
|
|
|
|
|
|
+ return 0, err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
_, err = s.DaoFlow.Insert(feedback.FeedbackFlow{
|
|
_, err = s.DaoFlow.Insert(feedback.FeedbackFlow{
|
|
|
- FeebackId: int(id),
|
|
|
|
|
|
|
+ FeedbackId: int(id),
|
|
|
Type: 1,
|
|
Type: 1,
|
|
|
Status: 1,
|
|
Status: 1,
|
|
|
ProcessById: int(s.userInfo.Id),
|
|
ProcessById: int(s.userInfo.Id),
|
|
@@ -159,7 +158,7 @@ func (s FeedbackService) Add(ctx context.Context, req *feedback.FeedbackAddReq)
|
|
|
CreatedAt: gtime.New(),
|
|
CreatedAt: gtime.New(),
|
|
|
UpdatedAt: gtime.New(),
|
|
UpdatedAt: gtime.New(),
|
|
|
})
|
|
})
|
|
|
- return err
|
|
|
|
|
|
|
+ return int(id), err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (s FeedbackService) Trans(ctx context.Context, req *feedback.FeedbackTransReq) error {
|
|
func (s FeedbackService) Trans(ctx context.Context, req *feedback.FeedbackTransReq) error {
|
|
@@ -188,7 +187,7 @@ func (s FeedbackService) Trans(ctx context.Context, req *feedback.FeedbackTransR
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
_, err = s.DaoFlow.Insert(feedback.FeedbackFlow{
|
|
_, err = s.DaoFlow.Insert(feedback.FeedbackFlow{
|
|
|
- FeebackId: req.Id,
|
|
|
|
|
|
|
+ FeedbackId: req.Id,
|
|
|
Type: 2,
|
|
Type: 2,
|
|
|
Status: 1,
|
|
Status: 1,
|
|
|
ProcessById: int(s.userInfo.Id),
|
|
ProcessById: int(s.userInfo.Id),
|
|
@@ -218,7 +217,7 @@ func (s FeedbackService) Process(ctx context.Context, req *feedback.FeedbackProc
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
_, err = s.DaoFlow.Insert(feedback.FeedbackFlow{
|
|
_, err = s.DaoFlow.Insert(feedback.FeedbackFlow{
|
|
|
- FeebackId: req.Id,
|
|
|
|
|
|
|
+ FeedbackId: req.Id,
|
|
|
Type: 3,
|
|
Type: 3,
|
|
|
Status: 1,
|
|
Status: 1,
|
|
|
ProcessById: int(s.userInfo.Id),
|
|
ProcessById: int(s.userInfo.Id),
|
|
@@ -227,6 +226,18 @@ func (s FeedbackService) Process(ctx context.Context, req *feedback.FeedbackProc
|
|
|
CreatedAt: gtime.New(),
|
|
CreatedAt: gtime.New(),
|
|
|
UpdatedAt: gtime.New(),
|
|
UpdatedAt: gtime.New(),
|
|
|
})
|
|
})
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return err
|
|
|
|
|
+ }
|
|
|
|
|
+ _, err = s.DaoResult.Insert(feedback.FeedbackResult{
|
|
|
|
|
+ FeedbackId: req.Id,
|
|
|
|
|
+ ProcessById: int(s.userInfo.Id),
|
|
|
|
|
+ ProcessByName: s.userInfo.RealName,
|
|
|
|
|
+ ProcessType: req.Type,
|
|
|
|
|
+ ProcessNote: req.Note,
|
|
|
|
|
+ CreatedAt: gtime.New(),
|
|
|
|
|
+ UpdatedAt: gtime.New(),
|
|
|
|
|
+ })
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -252,7 +263,7 @@ func (s FeedbackService) Reactivate(ctx context.Context, req *feedback.FeedbackR
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
_, err = s.DaoFlow.Insert(feedback.FeedbackFlow{
|
|
_, err = s.DaoFlow.Insert(feedback.FeedbackFlow{
|
|
|
- FeebackId: req.Id,
|
|
|
|
|
|
|
+ FeedbackId: req.Id,
|
|
|
Type: 4,
|
|
Type: 4,
|
|
|
Status: 1,
|
|
Status: 1,
|
|
|
ProcessById: int(s.userInfo.Id),
|
|
ProcessById: int(s.userInfo.Id),
|
|
@@ -268,7 +279,8 @@ type id struct {
|
|
|
Id int
|
|
Id int
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (s FeedbackService) Processor(ctx context.Context, req *model.EmptyArgs) ([]feedback.FeedbackProcessorRsp, error) {
|
|
|
|
|
|
|
+func (s FeedbackService) Processor(ctx context.Context) ([]feedback.FeedbackProcessorRsp, error) {
|
|
|
|
|
+ rsp := []feedback.FeedbackProcessorRsp{}
|
|
|
menu := &id{}
|
|
menu := &id{}
|
|
|
err := s.Dao.DB.Table("base_menu").
|
|
err := s.Dao.DB.Table("base_menu").
|
|
|
Where("Permission = ?", PermissionFeeedbackProcess).
|
|
Where("Permission = ?", PermissionFeeedbackProcess).
|
|
@@ -283,28 +295,32 @@ func (s FeedbackService) Processor(ctx context.Context, req *model.EmptyArgs) ([
|
|
|
|
|
|
|
|
roles := []id{}
|
|
roles := []id{}
|
|
|
err = s.Dao.DB.Table("base_role_menu").
|
|
err = s.Dao.DB.Table("base_role_menu").
|
|
|
- Where("MenuIds LIKE ?", fmt.Sprintf("%%%d%%", menu.Id)).
|
|
|
|
|
- Fields("Id").Structs(&roles)
|
|
|
|
|
|
|
+ Where("find_in_set(?, `MenuIds`)", menu.Id).
|
|
|
|
|
+ Fields("RoleId as Id").Structs(&roles)
|
|
|
if err == sql.ErrNoRows {
|
|
if err == sql.ErrNoRows {
|
|
|
- return nil, nil
|
|
|
|
|
|
|
+ return rsp, nil
|
|
|
}
|
|
}
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
if len(roles) == 0 {
|
|
if len(roles) == 0 {
|
|
|
- return nil, nil
|
|
|
|
|
|
|
+ return rsp, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- rsp := []feedback.FeedbackProcessorRsp{}
|
|
|
|
|
- dao := s.Dao.DB.Table("base_user_role a").LeftJoin("base_user b", "a.UserId=b.Id")
|
|
|
|
|
- for _, r := range roles {
|
|
|
|
|
- dao.Or("find_in_set(?, `a.RoleIds`)", r.Id)
|
|
|
|
|
|
|
+ dao := s.Dao.DB.Table("base_user a").LeftJoin("base_user_role b", "b.UserId=a.Id")
|
|
|
|
|
+ orsql := ""
|
|
|
|
|
+ for i, r := range roles {
|
|
|
|
|
+ if i != 0 {
|
|
|
|
|
+ orsql += " OR "
|
|
|
|
|
+ }
|
|
|
|
|
+ orsql += fmt.Sprintf("find_in_set(%d, `RoleIds`)", r.Id)
|
|
|
}
|
|
}
|
|
|
- err = dao.Fields("b.Id, b.Realname").Structs(&rsp)
|
|
|
|
|
|
|
+ dao = dao.Where("a.Enabled = 1").Where(fmt.Sprintf("(%s)", orsql))
|
|
|
|
|
+ err = dao.Fields("a.Id, a.Realname").Structs(&rsp)
|
|
|
if err == sql.ErrNoRows {
|
|
if err == sql.ErrNoRows {
|
|
|
- return nil, nil
|
|
|
|
|
|
|
+ return rsp, nil
|
|
|
}
|
|
}
|
|
|
- return rsp, nil
|
|
|
|
|
|
|
+ return rsp, err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func Allow(tenant, uuid, permission string) (bool, error) {
|
|
func Allow(tenant, uuid, permission string) (bool, error) {
|