diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java index 609e05cb7..c621dffe9 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java @@ -4,19 +4,16 @@ package com.iformall.controller; import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; +import com.github.pagehelper.PageInfo; import com.iformall.annotation.AuthIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; -import com.iformall.domain.po.MallUserInfo; -import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxCUser; -import com.iformall.domain.po.WxMerchantBUser; -import com.iformall.enums.EnumAssignTagsTrigger; -import com.iformall.enums.EnumScoreType; -import com.iformall.enums.EnumUserAdmin; +import com.iformall.domain.po.*; import com.iformall.exception.MallinkException; +import com.iformall.service.MallRolePermissionService; import com.iformall.service.MallUserInfoService; +import com.iformall.service.MallUserRoleService; import com.iformall.service.WxAppinfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -49,6 +46,12 @@ public class WxInfoController extends BaseController { @Autowired MallUserInfoService mallUserInfoService; + @Autowired + MallUserRoleService mallUserRoleService; + + @Autowired + MallRolePermissionService mallRolePermissionService; + @ApiOperation("获取OPENID") @PostMapping("getOpenId") public ResultData getOpenId(@RequestBody Map param) { @@ -90,9 +93,10 @@ public class WxInfoController extends BaseController { return new ResultData(ErrorCode.USER_NO_PERMISSION, retMap); } - if(!user.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode())) { - return new ResultData(ErrorCode.USER_NOT_ADMIN, retMap); + if(!isInMobileAdmin(user)) { + return new ResultData(ErrorCode.USER_NO_PERMISSION, retMap); } + retMap.put("phone", user.getPhone()); retMap.put("msg", "领导来了,欢迎"); @@ -102,6 +106,27 @@ public class WxInfoController extends BaseController { } } + private boolean isInMobileAdmin(MallUserInfo user) { + // 检查用户是否有 移动端数据塔台 权限 + boolean isInMobile = false; + MallUserRole ur = new MallUserRole(); + ur.setUid(user.getId()); + PageInfo page = mallUserRoleService.listAsPage(ur, 1, 1); + if (page.getSize() > 0) { + Long roleId = page.getList().get(0).getRoleId(); + MallRolePermission p = new MallRolePermission(); + p.setRoleId(roleId); + p.setTenantId(user.getTenantId()); + PageInfo listAsPage = mallRolePermissionService.listAsPage(p, 1, 100); + for (MallRolePermission rp : listAsPage.getList()) { + if (rp.getPermissionId().equals(8)) { /// 移动端数据塔台 + isInMobile = true; + } + } + } + return isInMobile; + } + private Map getOpenIdInfo(String appId, String code) { WxAppinfo wxAppinfo = getAppInfo(appId); WxMaService wxMaService = getWeappServiceByAppInfo(wxAppinfo); @@ -200,7 +225,7 @@ public class WxInfoController extends BaseController { if(user == null) { return new ResultData(ErrorCode.USER_NO_PERMISSION, resultMap); } - if (user.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode())) { + if (isInMobileAdmin(user)) { resultMap.put("phone", user.getPhone()); resultMap.put("admin", "1");