Просмотр исходного кода

[移动端数据塔台权限检查][新增]

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
153acf96e3
1 измененных файлов: 35 добавлений и 10 удалений
  1. +35
    -10
      mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java

+ 35
- 10
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<String,String> 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<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) {
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");



Загрузка…
Отмена
Сохранить