Commit 6605556c by 墨竹

feat:初始化权限

parent dd35a6f1
package com.gic.haoban.manage.api.service;
import java.util.List;
import com.alibaba.fastjson.JSONArray;
import com.gic.haoban.manage.api.dto.ApplicationSettingDTO;
import java.util.List;
/**
* Created by tgs on 2020/2/9.
*/
......@@ -15,4 +15,6 @@ public interface ApplicationSettingApiService {
ApplicationSettingDTO findSettingByWxEnterpriseIdAndApplicationId(String wxEnterpriseId,String applicationId);
List<ApplicationSettingDTO> listOpenByWxEnterpriseIdAndApplicationIds(String wxEnterpriseId,List<String> applicationIds);
List<String> findMenuCodes(String wxEnterpriseId);
}
package com.gic.haoban.manage.service.dao.mapper;
import java.util.List;
import com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting;
import java.util.List;
public interface ApplicationSettingMapper {
int deleteByPrimaryKey(String settingId);
......@@ -24,4 +23,6 @@ public interface ApplicationSettingMapper {
TabHaobanApplicationSetting findSetting(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("applicationId")String applicationId);
List<TabHaobanApplicationSetting> listOpenByWxEnterpriseIdAndApplicationIds(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("applicationIds")List<String> applicationIds);
List<String> findMenuCodes(String wxEnterpriseId);
}
\ No newline at end of file
......@@ -75,5 +75,21 @@ public interface TabHaobanMenuMapper {
List<String> getHaobanMenuListByClerkType(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("clerkType") Integer clerkType,
@Param("systemFlag") Integer systemFlag);
/**
* 获取父菜单
*
* @param menuCodes 菜单代码
* @return {@link List}<{@link String}>
*/
List<String> getHaobanMenuByPid(@Param("menuCodes") List<String> menuCodes);
/**
* 获取子菜单
*
* @param menuCodes 菜单代码
* @return {@link List}<{@link String}>
*/
List<String> getHaobanChildMenuByPid(@Param("menuCodes") List<String> menuCodes);
}
package com.gic.haoban.manage.service.service.out.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.EntityUtil;
......@@ -73,4 +71,9 @@ public class ApplicationSettingApiServiceImpl implements ApplicationSettingApiSe
List<ApplicationSettingDTO> result = EntityUtil.changeEntityListByJSON(ApplicationSettingDTO.class, list);
return result;
}
@Override
public List<String> findMenuCodes(String wxEnterpriseId) {
return applicationSettingMapper.findMenuCodes(wxEnterpriseId);
}
}
......@@ -9,10 +9,14 @@ 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.dto.role.HaobanRoleDTO;
import com.gic.haoban.manage.api.enums.role.RoleClerkTypeEnum;
import com.gic.haoban.manage.api.service.ApplicationSettingApiService;
import com.gic.haoban.manage.api.service.role.HaobanRoleApiService;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated;
import com.gic.haoban.manage.service.entity.role.TabHaobanRole;
import com.gic.haoban.manage.service.entity.role.TabHaobanRoleMenu;
import com.gic.haoban.manage.service.pojo.bo.role.HaobanRoleBO;
import com.gic.haoban.manage.service.service.WxEnterpriseRelatedService;
import com.gic.haoban.manage.service.service.role.HaobanMenuService;
import com.gic.haoban.manage.service.service.role.HaobanRoleMenuService;
import com.gic.haoban.manage.service.service.role.HaobanRoleService;
import org.apache.logging.log4j.LogManager;
......@@ -36,6 +40,12 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
private HaobanRoleMenuService haobanRoleMenuService;
@Autowired
private ManageSettingApiService manageSettingApiService;
@Autowired
private WxEnterpriseRelatedService wxEnterpriseRelatedService;
@Autowired
private ApplicationSettingApiService applicationSettingApiService;
@Autowired
private HaobanMenuService haobanMenuService;
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -180,15 +190,41 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
@Override
public ServiceResponse addHaobanRoleInit(String wxEnterpriseId) {
List<TabHaobanWxEnterpriseRelated> enterpriseRelateds = wxEnterpriseRelatedService.getByWxEnterpriseId(wxEnterpriseId);
//全品牌搜索
//List<String> searchFlagList = manageSettingApiService.getEnterpriseIdByFlag(1, null);
//List<String> handoverFlagList = manageSettingApiService.getEnterpriseIdByFlag(null, 1);
boolean searchFlag = false;
//离职继承
boolean handoverFlag = false;
for (TabHaobanWxEnterpriseRelated enterpriseRelated : enterpriseRelateds) {
boolean searchFlagEnterpriseId = manageSettingApiService.getEnterpriseIdByFlag(enterpriseRelated.getEnterpriseId(), 1, null);
if (searchFlagEnterpriseId) {
searchFlag = true;
break;
}
}
List<HaobanRoleBO> haobanRoleBOList = haobanRoleService.getListByWxEnterpriseId("-1",null);
for (TabHaobanWxEnterpriseRelated enterpriseRelated : enterpriseRelateds) {
boolean handoverFlagEnterpriseId = manageSettingApiService.getEnterpriseIdByFlag(enterpriseRelated.getEnterpriseId(), null, 1);
if (handoverFlagEnterpriseId) {
handoverFlag = true;
break;
}
}
List<HaobanRoleBO> haobanRoleBOList = haobanRoleService.getListByWxEnterpriseId("-1",null);
List<String> menuCodes = new ArrayList<>();
if (searchFlag) {
menuCodes.add("customerList_allSearch");
}
if (handoverFlag) {
menuCodes.add("customerList_inheritCustomer");
}
//导购和店长初始化权限以好办web为准
List<String> menuCodesOld = applicationSettingApiService.findMenuCodes(wxEnterpriseId);
List<String> clerkMenuCodes = haobanMenuService.getHaobanMenuByPid(menuCodesOld);
menuCodes.addAll(clerkMenuCodes);
HaobanRoleQDTO haobanRoleQDTO = new HaobanRoleQDTO();
HaobanRoleQDTO haobanRoleSystemQDTO = new HaobanRoleQDTO();
for (HaobanRoleBO haobanRoleBO : haobanRoleBOList) {
Long roleId = haobanRoleBO.getRoleId();
Integer clerkType = haobanRoleBO.getClerkType();
......@@ -202,8 +238,6 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
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);
......@@ -217,6 +251,9 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
haobanRoleQDTO.setManegeClerkMenus(manegeClerkMenus);
haobanRoleSystemQDTO.setManegeClerkMenus(manegeClerkMenus);
}else if (RoleClerkTypeEnum.MANAGE.getCode().equals(clerkType)) {
List<String> menuManageCodes = haobanRoleMenuService.getByWxEnterpriseIdAndRoleId("-1", roleId);
menuCodes.addAll(menuManageCodes);
HaobanRoleMenuQDTO managerMenus = new HaobanRoleMenuQDTO();
managerMenus.setClerkType(clerkType);
managerMenus.setMenuCodes(menuCodes);
......
......@@ -6,8 +6,6 @@ import com.gic.haoban.manage.service.pojo.bo.role.HaobanMenuBO;
import java.util.List;
/**
*
*
* @author mozhu
* @since 2022-09-06 16:35:11
*/
......@@ -48,6 +46,7 @@ public interface HaobanMenuService {
/**
* 菜单树
*
* @return
*/
List<HaobanMenuBO> getMenuTreeList();
......@@ -71,4 +70,13 @@ public interface HaobanMenuService {
*/
List<String> getHaobanMenuList(String wxEnterpriseId, Integer clerkType);
/**
* 获取子菜单(包含自己)
*
* @param menuCode 菜单代码
* @return {@link List}<{@link String}>
*/
List<String> getHaobanMenuByPid(List<String> menuCode);
}
......@@ -15,8 +15,6 @@ import java.util.Date;
import java.util.List;
/**
*
*
* @author mozhu
* @since 2022-09-06 16:35:11
*/
......@@ -77,8 +75,8 @@ public class HaobanMenuServiceImpl implements HaobanMenuService {
@Override
public List<HaobanMenuBO> getHaobanMenuTreeList(String wxEnterpriseId, Integer clerkType) {
List<TabHaobanMenu> pidMenuList = tabHaobanMenuMapper.getHaobanPidMenuList(wxEnterpriseId, clerkType,0);
List<TabHaobanMenu> notPidMenuList = tabHaobanMenuMapper.getHaobanNotPidMenuList(wxEnterpriseId, clerkType,0);
List<TabHaobanMenu> pidMenuList = tabHaobanMenuMapper.getHaobanPidMenuList(wxEnterpriseId, clerkType, 0);
List<TabHaobanMenu> notPidMenuList = tabHaobanMenuMapper.getHaobanNotPidMenuList(wxEnterpriseId, clerkType, 0);
List<HaobanMenuBO> pidMenuBOList = EntityUtil.changeEntityListNew(HaobanMenuBO.class, pidMenuList);
List<HaobanMenuBO> notPidMenuBOList = EntityUtil.changeEntityListNew(HaobanMenuBO.class, notPidMenuList);
if (CollectionUtils.isEmpty(pidMenuBOList)) {
......@@ -95,7 +93,17 @@ public class HaobanMenuServiceImpl implements HaobanMenuService {
@Override
public List<String> getHaobanMenuList(String wxEnterpriseId, Integer clerkType) {
return tabHaobanMenuMapper.getHaobanMenuListByClerkType(wxEnterpriseId, clerkType,0);
return tabHaobanMenuMapper.getHaobanMenuListByClerkType(wxEnterpriseId, clerkType, 0);
}
@Override
public List<String> getHaobanMenuByPid(List<String> menuCodes) {
List<String> list = new ArrayList<>();
List<String> pidCodes = tabHaobanMenuMapper.getHaobanMenuByPid(menuCodes);
List<String> childCodes = tabHaobanMenuMapper.getHaobanChildMenuByPid(menuCodes);
list.addAll(pidCodes);
list.addAll(childCodes);
return list;
}
public List<HaobanMenuBO> iterateMenus(List<HaobanMenuBO> menuBOList, String pCode) {
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.ApplicationSettingMapper" >
<resultMap id="BaseResultMap" type="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting" >
<id column="setting_id" property="settingId" jdbcType="VARCHAR" />
<result column="application_id" property="applicationId" jdbcType="VARCHAR" />
<result column="wx_enterprise_id" property="wxEnterpriseId" jdbcType="VARCHAR" />
<result column="status_flag" property="statusFlag" jdbcType="INTEGER" />
<result column="open_flag" property="openFlag" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.ApplicationSettingMapper">
<resultMap id="BaseResultMap" type="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting">
<id column="setting_id" property="settingId" jdbcType="VARCHAR"/>
<result column="application_id" property="applicationId" jdbcType="VARCHAR"/>
<result column="wx_enterprise_id" property="wxEnterpriseId" jdbcType="VARCHAR"/>
<result column="status_flag" property="statusFlag" jdbcType="INTEGER"/>
<result column="open_flag" property="openFlag" jdbcType="INTEGER"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List" >
<sql id="Base_Column_List">
setting_id, application_id, wx_enterprise_id, status_flag, open_flag, create_time,
update_time
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List" />
<include refid="Base_Column_List"/>
from tab_haoban_application_setting
where setting_id = #{settingId,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from tab_haoban_application_setting
where setting_id = #{settingId,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting" >
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting">
insert into tab_haoban_application_setting (setting_id, application_id, wx_enterprise_id,
status_flag, open_flag, create_time,
update_time)
......@@ -32,80 +32,81 @@
#{statusFlag,jdbcType=INTEGER}, #{openFlag,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting" >
<insert id="insertSelective" parameterType="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting">
insert into tab_haoban_application_setting
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="settingId != null" >
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="settingId != null">
setting_id,
</if>
<if test="applicationId != null" >
<if test="applicationId != null">
application_id,
</if>
<if test="wxEnterpriseId != null" >
<if test="wxEnterpriseId != null">
wx_enterprise_id,
</if>
<if test="statusFlag != null" >
<if test="statusFlag != null">
status_flag,
</if>
<if test="openFlag != null" >
<if test="openFlag != null">
open_flag,
</if>
<if test="createTime != null" >
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null" >
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="settingId != null" >
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="settingId != null">
#{settingId,jdbcType=VARCHAR},
</if>
<if test="applicationId != null" >
<if test="applicationId != null">
#{applicationId,jdbcType=VARCHAR},
</if>
<if test="wxEnterpriseId != null" >
<if test="wxEnterpriseId != null">
#{wxEnterpriseId,jdbcType=VARCHAR},
</if>
<if test="statusFlag != null" >
<if test="statusFlag != null">
#{statusFlag,jdbcType=INTEGER},
</if>
<if test="openFlag != null" >
<if test="openFlag != null">
#{openFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null" >
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting" >
<update id="updateByPrimaryKeySelective"
parameterType="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting">
update tab_haoban_application_setting
<set >
<if test="applicationId != null" >
<set>
<if test="applicationId != null">
application_id = #{applicationId,jdbcType=VARCHAR},
</if>
<if test="wxEnterpriseId != null" >
<if test="wxEnterpriseId != null">
wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR},
</if>
<if test="statusFlag != null" >
<if test="statusFlag != null">
status_flag = #{statusFlag,jdbcType=INTEGER},
</if>
<if test="openFlag != null" >
<if test="openFlag != null">
open_flag = #{openFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null" >
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where setting_id = #{settingId,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting" >
<update id="updateByPrimaryKey" parameterType="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting">
update tab_haoban_application_setting
set application_id = #{applicationId,jdbcType=VARCHAR},
wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR},
......@@ -115,10 +116,10 @@
update_time = #{updateTime,jdbcType=TIMESTAMP}
where setting_id = #{settingId,jdbcType=VARCHAR}
</update>
<update id="saveSetting" parameterType="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting" >
<update id="saveSetting" parameterType="com.gic.haoban.manage.service.entity.TabHaobanApplicationSetting">
update tab_haoban_application_setting
set update_time = NOW(),
<if test="openFlag != null" >
<if test="openFlag != null">
open_flag = #{openFlag,jdbcType=INTEGER}
</if>
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
......@@ -126,17 +127,17 @@
and status_flag = 1
</update>
<select id="findSetting" resultMap="BaseResultMap" parameterType="java.lang.String" >
<select id="findSetting" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List" />
<include refid="Base_Column_List"/>
from tab_haoban_application_setting
where application_id = #{applicationId,jdbcType=VARCHAR}
and wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
</select>
<select id="listOpenByWxEnterpriseIdAndApplicationIds" resultMap="BaseResultMap" parameterType="java.lang.String" >
<select id="listOpenByWxEnterpriseIdAndApplicationIds" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List" />
<include refid="Base_Column_List"/>
from tab_haoban_application_setting
where
wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
......@@ -149,6 +150,15 @@
</if>
</select>
<select id="findMenuCodes" resultType="java.lang.String">
select
b.menu_code
from tab_haoban_application_setting a
left join tab_haoban_application b on a.application_id = b.application_id
where a.wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
AND a.status_flag = 1
AND a.open_flag = 1 and b.status_flag = 1 and b.menu_code is not null;
</select>
</mapper>
\ No newline at end of file
......@@ -118,7 +118,7 @@
b.clerk_type = #{clerkType}
and b.wx_enterprise_id = #{wxEnterpriseId}
and c.status_flag = 1
and c.parent_code = 'workbench'
and c.parent_code in ('workbench')
<if test="systemFlag != null">
and b.system_flag = #{systemFlag}
</if>
......@@ -135,7 +135,7 @@
b.clerk_type = #{clerkType}
and b.wx_enterprise_id = #{wxEnterpriseId}
and c.status_flag = 1
and c.parent_code != 'workbench'
and c.parent_code not in ('workbench')
<if test="systemFlag != null">
and b.system_flag = #{systemFlag}
</if>
......@@ -159,5 +159,25 @@
order by c.menu_sort
</select>
<select id="getHaobanMenuByPid" resultType="java.lang.String">
select
menu_code
from tab_haoban_menu
where status_flag = 1 and menu_code in
<foreach collection="menuCodes" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</select>
<select id="getHaobanChildMenuByPid" resultType="java.lang.String">
select
menu_code
from tab_haoban_menu
where status_flag = 1 and parent_code in
<foreach collection="menuCodes" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</select>
</mapper>
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