123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package logic
- import (
- "context"
- "database/sql"
- "git.i2edu.net/i2/i2-bill-erp/internal/svc"
- "git.i2edu.net/i2/i2-bill-erp/internal/utils"
- "git.i2edu.net/i2/i2-bill-erp/transform"
- "git.i2edu.net/i2/go-zero/core/logx"
- )
- type ErpUserPrivileges struct {
- Mobile sql.NullString `db:"mobile"`
- UserRoleIds sql.NullString `db:"user_role_ids"`
- UserSchoolIds sql.NullString `db:"user_school_ids"`
- UserProvinceIds sql.NullString `db:"user_province_ids"`
- UserOrganIds sql.NullString `db:"user_organ_ids"`
- SysSchoolId sql.NullString `db:"sys_school_id"`
- SysOrganId sql.NullString `db:"sys_organ_id"`
- }
- type ParseTokenLogic struct {
- ctx context.Context
- svcCtx *svc.ServiceContext
- logx.Logger
- }
- func NewParseTokenLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ParseTokenLogic {
- return &ParseTokenLogic{
- ctx: ctx,
- svcCtx: svcCtx,
- Logger: logx.WithContext(ctx),
- }
- }
- func (l *ParseTokenLogic) ParseToken(in *transform.TokenRequest) (*transform.TokenResponse, error) {
- userId := utils.GetGlobalTokenStore().Get(in.Token)
- privileges := ErpUserPrivileges{}
- tr := transform.TokenResponse{}
- if userId != "" {
- tr.UserId = userId
- l.svcCtx.SqlConn.QueryRowPartial(&privileges, `SELECT
- GROUP_CONCAT(DISTINCT sys_user_role.role_id)user_role_ids
- FROM
- sys_user_role
- WHERE
- sys_user_role.del_flag = 0
- AND sys_user_role.user_id = ?
- ORDER BY sys_user_role.role_id`, tr.UserId)
- l.svcCtx.SqlConn.QueryRowPartial(&privileges, `SELECT
- GROUP_CONCAT(DISTINCT base_user_organ_school.os_id) user_school_ids,
- GROUP_CONCAT(DISTINCT base_organ.parent) user_province_ids,
- GROUP_CONCAT(DISTINCT base_organ_school.organ_id) user_organ_ids
- FROM sys_user, base_user_organ_school,base_organ_school,base_organ
- WHERE sys_user.id = base_user_organ_school.user_id
- and base_user_organ_school.del_flag=0
- AND base_organ_school.id = base_user_organ_school.os_id
- AND base_organ_school.organ_id = base_organ.id
- AND sys_user.id = ?
- ORDER BY base_organ.parent,base_organ_school.id`, tr.UserId)
- l.svcCtx.SqlConn.QueryRowPartial(&privileges, `select
- base_organ.id sys_organ_id,
- base_organ_school.id sys_school_id,
- sys_user.mobile
- from
- sys_user,sys_user_school,base_organ_school,base_organ
- where sys_user.id=sys_user_school.user_id
- and sys_user_school.del_flag=0
- #and base_user_organ_school.del_flag=0
- and base_organ_school.id = sys_user_school.os_id
- and base_organ.id = base_organ_school.organ_id
- and sys_user.id = ?
- ORDER BY base_organ.parent,base_organ_school.id`, tr.UserId)
- tr.UserPhone = privileges.Mobile.String
- tr.UserRoleIds = privileges.UserRoleIds.String
- tr.UserSchoolIds = privileges.UserSchoolIds.String
- tr.UserProvinceIds = privileges.UserProvinceIds.String
- tr.UserOrganIds = privileges.UserOrganIds.String
- tr.SysSchoolId = privileges.SysSchoolId.String
- tr.SysOrganId = privileges.SysOrganId.String
- }
- return &tr, nil
- }
|