| @@ -4,19 +4,16 @@ package com.iformall.controller; | |||||
| import cn.binarywang.wx.miniapp.api.WxMaService; | import cn.binarywang.wx.miniapp.api.WxMaService; | ||||
| import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; | import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; | ||||
| import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; | import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; | ||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.annotation.AuthIgnore; | import com.iformall.annotation.AuthIgnore; | ||||
| import com.iformall.common.ErrorCode; | import com.iformall.common.ErrorCode; | ||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | 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.exception.MallinkException; | ||||
| import com.iformall.service.MallRolePermissionService; | |||||
| import com.iformall.service.MallUserInfoService; | import com.iformall.service.MallUserInfoService; | ||||
| import com.iformall.service.MallUserRoleService; | |||||
| import com.iformall.service.WxAppinfoService; | import com.iformall.service.WxAppinfoService; | ||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
| @@ -49,6 +46,12 @@ public class WxInfoController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| MallUserInfoService mallUserInfoService; | MallUserInfoService mallUserInfoService; | ||||
| @Autowired | |||||
| MallUserRoleService mallUserRoleService; | |||||
| @Autowired | |||||
| MallRolePermissionService mallRolePermissionService; | |||||
| @ApiOperation("获取OPENID") | @ApiOperation("获取OPENID") | ||||
| @PostMapping("getOpenId") | @PostMapping("getOpenId") | ||||
| public ResultData getOpenId(@RequestBody Map<String,String> param) { | public ResultData getOpenId(@RequestBody Map<String,String> param) { | ||||
| @@ -90,9 +93,10 @@ public class WxInfoController extends BaseController { | |||||
| return new ResultData(ErrorCode.USER_NO_PERMISSION, retMap); | 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("phone", user.getPhone()); | ||||
| retMap.put("msg", "领导来了,欢迎"); | 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<MallUserRole> 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<MallRolePermission> listAsPage = mallRolePermissionService.listAsPage(p, 1, 100); | |||||
| for (MallRolePermission rp : listAsPage.getList()) { | |||||
| if (rp.getPermissionId().equals(8)) { /// 移动端数据塔台 | |||||
| isInMobile = true; | |||||
| } | |||||
| } | |||||
| } | |||||
| return isInMobile; | |||||
| } | |||||
| private Map<String,String> getOpenIdInfo(String appId, String code) { | private Map<String,String> getOpenIdInfo(String appId, String code) { | ||||
| WxAppinfo wxAppinfo = getAppInfo(appId); | WxAppinfo wxAppinfo = getAppInfo(appId); | ||||
| WxMaService wxMaService = getWeappServiceByAppInfo(wxAppinfo); | WxMaService wxMaService = getWeappServiceByAppInfo(wxAppinfo); | ||||
| @@ -200,7 +225,7 @@ public class WxInfoController extends BaseController { | |||||
| if(user == null) { | if(user == null) { | ||||
| return new ResultData(ErrorCode.USER_NO_PERMISSION, resultMap); | 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("phone", user.getPhone()); | ||||
| resultMap.put("admin", "1"); | resultMap.put("admin", "1"); | ||||