Commit dd35a6f1 by 墨竹

fix:权限迁移

parent ca73da82
......@@ -41,4 +41,12 @@ public interface HaobanRoleApiService {
*/
ServiceResponse<HaobanRoleDTO> getMenuByWxEnterpriseIdAndClerkType(String wxEnterpriseId, Integer clerkType,Integer systemFlag);
/**
* 添加haoban角色初始化
*
* @param wxEnterpriseId wx企业标识
* @return {@link ServiceResponse}
*/
ServiceResponse addHaobanRoleInit(String wxEnterpriseId);
}
......@@ -3,14 +3,10 @@ package com.gic.haoban.manage.web.controller.test;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.qdto.role.HaobanRoleMenuQDTO;
import com.gic.haoban.manage.api.dto.qdto.role.HaobanRoleQDTO;
import com.gic.haoban.manage.api.enums.QuartzEnum;
import com.gic.haoban.manage.api.enums.SyncTaskTypeEnum;
import com.gic.haoban.manage.api.enums.role.RoleClerkTypeEnum;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService;
import com.gic.haoban.manage.api.service.role.HaobanMenuApiService;
......@@ -247,53 +243,6 @@ public class TestController extends WebBaseController {
}
@RequestMapping("/addHaobanRole")
public HaobanResponse addHaobanRole(String wxEnterpriseId, Integer systemFlag) {
if (systemFlag == null) {
systemFlag = 0;
}
WebLoginDTO webLoginDTO = new WebLoginDTO();
webLoginDTO.setWxEnterpriseId(wxEnterpriseId);
webLoginDTO.setClerkId("-1");
webLoginDTO.setClerkName("系统");
HaobanRoleQDTO haobanRoleQDTO = new HaobanRoleQDTO();
haobanRoleQDTO.setRoleName("系统模板");
HaobanRoleMenuQDTO clerkMenus = new HaobanRoleMenuQDTO();
clerkMenus.setClerkType(RoleClerkTypeEnum.CLERK.getCode());
if (systemFlag == 1) {
clerkMenus.setMenuCodes(haobanMenuApiService.getAllMenuList().getResult());
} else {
clerkMenus.setMenuCodes(haobanMenuApiService.getHaobanMenuList(wxEnterpriseId, RoleClerkTypeEnum.CLERK.getCode()).getResult());
}
HaobanRoleMenuQDTO manegeClerkMenus = new HaobanRoleMenuQDTO();
manegeClerkMenus.setClerkType(RoleClerkTypeEnum.SHOP.getCode());
if (systemFlag == 1) {
manegeClerkMenus.setMenuCodes(haobanMenuApiService.getAllMenuList().getResult());
} else {
manegeClerkMenus.setMenuCodes(haobanMenuApiService.getHaobanMenuList(wxEnterpriseId, RoleClerkTypeEnum.CLERK.getCode()).getResult());
}
HaobanRoleMenuQDTO managerMenus = new HaobanRoleMenuQDTO();
managerMenus.setClerkType(RoleClerkTypeEnum.MANAGE.getCode());
if (systemFlag == 1) {
managerMenus.setMenuCodes(haobanMenuApiService.getAllMenuList().getResult());
} else {
managerMenus.setMenuCodes(haobanMenuApiService.getHaobanMenuList(wxEnterpriseId, RoleClerkTypeEnum.CLERK.getCode()).getResult());
}
haobanRoleQDTO.setClerkMenus(clerkMenus);
haobanRoleQDTO.setManegeClerkMenus(manegeClerkMenus);
haobanRoleQDTO.setManagerMenus(managerMenus);
haobanRoleQDTO.setWxEnterpriseId(wxEnterpriseId);
haobanRoleApiService.add(haobanRoleQDTO, webLoginDTO);
return resultResponse(HaoBanErrCode.ERR_1);
}
@RequestMapping("/addHaobanRoleByWxEnterpriseId")
public HaobanResponse addHaobanRoleByWxEnterpriseId(String wxEnterpriseId) {
wxEnterpriseApiService.addHaobanRole(wxEnterpriseId);
......
......@@ -3,6 +3,7 @@ package com.gic.haoban.manage.service.service.out.impl.role;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.app.customer.service.api.service.ManageSettingApiService;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.manage.api.dto.qdto.role.HaobanRoleMenuQDTO;
import com.gic.haoban.manage.api.dto.qdto.role.HaobanRoleQDTO;
......@@ -33,6 +34,8 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
private HaobanRoleService haobanRoleService;
@Autowired
private HaobanRoleMenuService haobanRoleMenuService;
@Autowired
private ManageSettingApiService manageSettingApiService;
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -174,4 +177,61 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
}
return ServiceResponse.success(EntityUtil.changeEntityNew(HaobanRoleDTO.class,haobanRoleBO));
}
@Override
public ServiceResponse addHaobanRoleInit(String wxEnterpriseId) {
//全品牌搜索
//List<String> searchFlagList = manageSettingApiService.getEnterpriseIdByFlag(1, null);
//List<String> handoverFlagList = manageSettingApiService.getEnterpriseIdByFlag(null, 1);
List<HaobanRoleBO> haobanRoleBOList = haobanRoleService.getListByWxEnterpriseId("-1",null);
HaobanRoleQDTO haobanRoleQDTO = new HaobanRoleQDTO();
HaobanRoleQDTO haobanRoleSystemQDTO = new HaobanRoleQDTO();
for (HaobanRoleBO haobanRoleBO : haobanRoleBOList) {
Long roleId = haobanRoleBO.getRoleId();
Integer clerkType = haobanRoleBO.getClerkType();
String roleName = haobanRoleBO.getRoleName();
int count = haobanRoleService.getCountByWxEnterpriseId(wxEnterpriseId,null);
//清除历史权限
if (count > 0) {
haobanRoleService.deleteByWxEnterpriseId(wxEnterpriseId,null);
haobanRoleMenuService.deleteByWxEnterpriseId(wxEnterpriseId);
}
haobanRoleQDTO.setRoleName(roleName);
haobanRoleSystemQDTO.setRoleName(roleName);
List<String> menuCodes = haobanRoleMenuService.getByWxEnterpriseIdAndRoleId("-1", roleId);
if (RoleClerkTypeEnum.CLERK.getCode().equals(clerkType)) {
HaobanRoleMenuQDTO clerkMenus = new HaobanRoleMenuQDTO();
clerkMenus.setClerkType(clerkType);
clerkMenus.setMenuCodes(menuCodes);
haobanRoleQDTO.setClerkMenus(clerkMenus);
haobanRoleSystemQDTO.setClerkMenus(clerkMenus);
} else if (RoleClerkTypeEnum.SHOP.getCode().equals(clerkType)) {
HaobanRoleMenuQDTO manegeClerkMenus = new HaobanRoleMenuQDTO();
manegeClerkMenus.setClerkType(clerkType);
manegeClerkMenus.setMenuCodes(menuCodes);
haobanRoleQDTO.setManegeClerkMenus(manegeClerkMenus);
haobanRoleSystemQDTO.setManegeClerkMenus(manegeClerkMenus);
}else if (RoleClerkTypeEnum.MANAGE.getCode().equals(clerkType)) {
HaobanRoleMenuQDTO managerMenus = new HaobanRoleMenuQDTO();
managerMenus.setClerkType(clerkType);
managerMenus.setMenuCodes(menuCodes);
haobanRoleQDTO.setManagerMenus(managerMenus);
haobanRoleSystemQDTO.setManagerMenus(managerMenus);
}
}
WebLoginDTO login = new WebLoginDTO();
login.setWxEnterpriseId(wxEnterpriseId);
login.setClerkId("-1");
login.setClerkName("系统");
//商户权限
add(haobanRoleQDTO, login);
//运维系统权限
add(haobanRoleSystemQDTO, login);
return ServiceResponse.success();
}
}
......@@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.dto.ClerkListDTO;
import com.gic.clerk.api.service.ClerkNewService;
......@@ -21,14 +22,18 @@ import com.gic.haoban.app.customer.service.api.service.CustomerApiService;
import com.gic.haoban.app.customer.service.api.service.DistributeApiService;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.PageResult2;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.anno.HttpLimit;
import com.gic.haoban.common.anno.IgnoreLogin;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.common.utils.GooglePhoneNumberUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.dto.role.HaobanRoleDTO;
import com.gic.haoban.manage.api.enums.*;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.api.service.role.HaobanRoleApiService;
import com.gic.haoban.manage.api.util.notify.NoticeMessageUtil;
import com.gic.haoban.manage.web.config.Config;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
......@@ -92,6 +97,8 @@ public class ClerkController extends WebBaseController {
private Config config;
@Autowired
private StoreWidgetService storeWidgetService;
@Autowired
private HaobanRoleApiService haobanRoleApiService;
//选择成员列表
@RequestMapping("/staff-list")
......@@ -1067,11 +1074,7 @@ public class ClerkController extends WebBaseController {
* @return
*/
@RequestMapping("/clerk-detail")
public HaobanResponse clerkDetail(String clerkId, String wxEnterpriseId) {
// StaffClerkRelationDTO staffRelation = staffClerkRelationApiService.getByClerkId(clerkId);
// if(staffRelation == null){
// return resultResponse(HaoBanErrCode.ERR_10006);
// }
public HaobanResponse clerkDetail(String clerkId) {
if (StringUtils.isBlank(clerkId)) {
return resultResponse(HaoBanErrCode.ERR_5);
}
......@@ -1079,7 +1082,6 @@ public class ClerkController extends WebBaseController {
if (clerk == null) {
return resultResponse(HaoBanErrCode.ERR_10006);
}
return resultResponse(HaoBanErrCode.ERR_1, EntityUtil.changeEntityByJSON(ClerkDetailVo.class, clerk));
}
......@@ -1249,4 +1251,16 @@ public class ClerkController extends WebBaseController {
staffApiService.updateOpenIdByStaffId(staffId, openid);
return RestResponse.successResult(openid);
}
/**
* 根据角色查询菜单
* @return
*/
@RequestMapping(value = "/queryMenuCodesByClerkType",method = RequestMethod.GET)
private RestResponse<HaobanRoleDTO> queryMenuByClerkType(Integer clerkType) {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
ServiceResponse<HaobanRoleDTO> serviceResponse = haobanRoleApiService.getMenuByWxEnterpriseIdAndClerkType(login.getWxEnterpriseId(), clerkType,1);
return RestResponse.successResult(serviceResponse.getResult());
}
}
package com.gic.haoban.manage.web.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.dubbo.common.utils.CollectionUtils;
import com.alibaba.fastjson.JSON;
import com.gic.clerk.api.dto.ClerkDTO;
......@@ -33,33 +20,25 @@ import com.gic.haoban.common.anno.IgnoreLogin;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.data.api.dto.HaobanDataDTO;
import com.gic.haoban.data.api.service.HaobanDataApiService;
import com.gic.haoban.manage.api.dto.AuditDTO;
import com.gic.haoban.manage.api.dto.AuditSettingDTO;
import com.gic.haoban.manage.api.dto.ClerkMainStoreRelatedDTO;
import com.gic.haoban.manage.api.dto.EnterpriseDetailDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseRelationDetailDTO;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.StoreFieldEnum;
import com.gic.haoban.manage.api.service.AuditApiService;
import com.gic.haoban.manage.api.service.AuditSettingApiService;
import com.gic.haoban.manage.api.service.ClerkMainStoreRelatedApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.api.service.StaffDepartmentRelatedApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.vo.StaffStoreVO;
import com.gic.haoban.manage.web.vo.StoreDetailVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@RestController
public class StoreController extends WebBaseController {
private static org.apache.logging.log4j.Logger logger= LogManager.getLogger(StoreController.class);
private static org.apache.logging.log4j.Logger logger = LogManager.getLogger(StoreController.class);
@Autowired
private ClerkService clerkService;
......@@ -86,17 +65,9 @@ public class StoreController extends WebBaseController {
@Autowired
private WxEnterpriseApiService wxEnterpriseApiService;
/**
* 会员小程序-门店列表
*
* @param staffId
* @param wxEnterpriseId
* @param version
* @return
*/
@IgnoreLogin
@RequestMapping("/store-list")
public HaobanResponse storeList(String staffId, String wxEnterpriseId, String hbversion , String gicEnterpriseId) {
public HaobanResponse storeList(String staffId, String wxEnterpriseId, String gicEnterpriseId) {
if (StringUtils.isAnyBlank(staffId, wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2);
}
......@@ -106,33 +77,33 @@ public class StoreController extends WebBaseController {
logger.info("没有关联任何商户:{}", wxEnterpriseId);
return resultResponse(HaoBanErrCode.ERR_1);
}
List<String> enterpriseIdList = enterpriseList.stream().filter(dto->{
String enterpriseId = dto.getEnterpriseId() ;
List<String> enterpriseIdList = enterpriseList.stream().filter(dto -> {
String enterpriseId = dto.getEnterpriseId();
return !this.wxEnterpriseApiService.haobanIsStop(enterpriseId);
}).map(EnterpriseDetailDTO::getEnterpriseId).collect(Collectors.toList());
if (CollectionUtils.isEmpty(enterpriseIdList)) {
logger.info("没有关联任何商户或商户都已停用:{}", wxEnterpriseId);
return resultResponse(HaoBanErrCode.ERR_1);
}
Map<String, EnterpriseDetailDTO> enterpriseTypeMap = enterpriseList.stream().collect(Collectors.toMap(dto -> dto.getEnterpriseId(), dto -> dto));
List<StaffClerkRelationDTO> bindRelationList = staffClerkRelationApiService.listBindCodeByStaffId(enterpriseIdList, staffId);
if (CollectionUtils.isEmpty(bindRelationList)) {
logger.info("没有关联任何商户导购:{}", wxEnterpriseId);
return resultResponse(HaoBanErrCode.ERR_1);
}
logger.info("成员绑定导购数据={}",JSON.toJSONString(bindRelationList));
logger.info("成员绑定导购数据={}", JSON.toJSONString(bindRelationList));
for (StaffClerkRelationDTO staffClerkRelationDTO : bindRelationList) {
String storeId = staffClerkRelationDTO.getStoreId() ;
String storeId = staffClerkRelationDTO.getStoreId();
StoreDTO store = storeService.getStore(storeId);
if (store == null) {
continue;
}
String enterpriseId = store.getEnterpriseId();
if(StringUtils.isNotBlank(gicEnterpriseId) && !gicEnterpriseId.equals(enterpriseId)) {
logger.info("非当前商户,直接跳过={},{}",gicEnterpriseId,enterpriseId);
continue ;
if (StringUtils.isNotBlank(gicEnterpriseId) && !gicEnterpriseId.equals(enterpriseId)) {
logger.info("非当前商户,直接跳过={},{}", gicEnterpriseId, enterpriseId);
continue;
}
ClerkDTO clerk = clerkService.getClerkByClerkCode(enterpriseId, staffClerkRelationDTO.getClerkCode());
if (clerk == null) {
......@@ -173,18 +144,19 @@ public class StoreController extends WebBaseController {
vo.setBindFlag(1);
vo.setEnterpriseName(enterpriseDTO.getBrandName());
vo.setCorpName(wxEnterpriseDTO.getCorpName());
vo.setEnableHaoban(clerk.getEnableHaoban());
list.add(vo);
}
if(org.apache.commons.collections.CollectionUtils.isEmpty(list)) {
if (org.apache.commons.collections.CollectionUtils.isEmpty(list)) {
return resultResponse(HaoBanErrCode.ERR_1, list);
}
List<String> storeIdList = list.stream().map(dto->dto.getStoreId()).collect(Collectors.toList()) ;
List<String> storeIdList = list.stream().map(dto -> dto.getStoreId()).collect(Collectors.toList());
// 处理主门店
ClerkMainStoreRelatedDTO mainDTO = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId,storeIdList);
ClerkMainStoreRelatedDTO mainDTO = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId, storeIdList);
String mainStoreId = mainDTO == null ? "" : mainDTO.getStoreId();
if(null != mainStoreId) {
list.forEach(item->{
if(item.getStoreId().equals(mainStoreId)) {
if (null != mainStoreId) {
list.forEach(item -> {
if (item.getStoreId().equals(mainStoreId)) {
item.setMainStoreFlag(1);
}
});
......
......@@ -27,6 +27,7 @@ public class StaffStoreVO implements Serializable {
private Integer memberOpenCardFlag;
private String enterpriseName;
private String corpName;
private Boolean enableHaoban;
public Integer getMemberOpenCardFlag() {
return memberOpenCardFlag;
......@@ -153,4 +154,12 @@ public class StaffStoreVO implements Serializable {
public void setCorpName(String corpName) {
this.corpName = corpName;
}
public Boolean getEnableHaoban() {
return enableHaoban;
}
public void setEnableHaoban(Boolean enableHaoban) {
this.enableHaoban = enableHaoban;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment