resempowerlogic.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package logic
  2. import (
  3. "context"
  4. "strings"
  5. . "app.yhyue.com/moapp/jybase/common"
  6. "bp.jydev.jianyu360.cn/BaseService/biService/api/internal/svc"
  7. "bp.jydev.jianyu360.cn/BaseService/biService/api/internal/types"
  8. "bp.jydev.jianyu360.cn/BaseService/resourceCenter/rpc/pb"
  9. pcpd "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
  10. "github.com/zeromicro/go-zero/core/logx"
  11. )
  12. type ResEmpowerLogic struct {
  13. logx.Logger
  14. ctx context.Context
  15. svcCtx *svc.ServiceContext
  16. }
  17. func NewResEmpowerLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ResEmpowerLogic {
  18. return &ResEmpowerLogic{
  19. Logger: logx.WithContext(ctx),
  20. ctx: ctx,
  21. svcCtx: svcCtx,
  22. }
  23. }
  24. func (l *ResEmpowerLogic) ResEmpower(req *types.ResEmpowerReq) (resp *types.BiResp, err error) {
  25. entUserIds := []int64{}
  26. for _, v := range strings.Split(req.EntUserId, ",") {
  27. entUserIds = append(entUserIds, Int64All(v))
  28. }
  29. var r *pb.Resp
  30. if req.ReqType == 1 {
  31. r, err = l.svcCtx.ResourceCenterRpc.Empower(context.Background(), &pb.EmpowerReq{
  32. Appid: "10000",
  33. FunctionCode: req.FunctionCode,
  34. EntId: req.EntId,
  35. EntUserId: entUserIds,
  36. })
  37. } else if req.ReqType == 2 {
  38. r, err = l.svcCtx.ResourceCenterRpc.CrReEmpower(context.Background(), &pb.CrReEmpowerReq{
  39. Appid: "10000",
  40. FunctionModule: []string{"bi_电销菜单管理"},
  41. FunctionCode: strings.Split(req.FunctionCode, ","),
  42. EntId: req.EntId,
  43. EntUserId: entUserIds,
  44. })
  45. } else if req.ReqType == -1 {
  46. r, err = l.svcCtx.ResourceCenterRpc.CancelAllEmpower(context.Background(), &pb.AllEmpowerReq{
  47. Appid: "10000",
  48. FunctionModule: []string{"bi_电销菜单管理"},
  49. EntId: req.EntId,
  50. EntUserId: entUserIds,
  51. })
  52. }
  53. l.svcCtx.UserCenterRpc.WorkDesktopClearUserInfo(context.Background(), &pcpd.WorkDesktopClearUserInfoReq{
  54. PositionId: req.PositionId,
  55. AppId: "10000",
  56. })
  57. var status int64
  58. if err != nil {
  59. l.Error(err)
  60. } else {
  61. status = r.Status
  62. }
  63. resp = &types.BiResp{
  64. Error_code: 0,
  65. Data: map[string]interface{}{
  66. "status": status,
  67. },
  68. }
  69. return
  70. }