提交代码

main
姜玉琦 2024-03-04 23:46:34 +08:00
parent fa2ee8c7fd
commit 0f35fb536e
19 changed files with 754 additions and 10 deletions

View File

@ -1,4 +1,4 @@
package com.yanzhu.base.controller;
package com.yanzhu.web;
import java.util.List;
import java.util.concurrent.TimeUnit;

View File

@ -1,4 +1,4 @@
package com.yanzhu.project.controller;
package com.yanzhu.web;
import com.yanzhu.common.core.controller.BaseController;
import com.yanzhu.common.core.domain.AjaxResult;

View File

@ -1,4 +1,4 @@
package com.yanzhu.project.controller;
package com.yanzhu.web;
import java.util.List;
import javax.servlet.http.HttpServletResponse;

View File

@ -1,4 +1,4 @@
package com.yanzhu.project.controller;
package com.yanzhu.web;
import java.util.List;
import javax.servlet.http.HttpServletResponse;

View File

@ -1,4 +1,4 @@
package com.yanzhu.project.controller;
package com.yanzhu.web;
import com.yanzhu.common.core.controller.BaseController;
import com.yanzhu.common.core.domain.AjaxResult;

View File

@ -9,11 +9,14 @@ import com.yanzhu.common.core.redis.RedisCache;
import com.yanzhu.common.enums.LimitType;
import com.yanzhu.framework.web.service.SysLoginService;
import com.yanzhu.framework.web.service.TokenService;
import com.yanzhu.system.domain.vo.UpdatePwdVo;
import com.yanzhu.system.service.ISysUserService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Map;
/**
* @version : V1.0
@ -23,6 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
* @Date: 2020/7/7 18:03
*/
@RestController
@RequestMapping("/wxApi")
public class WxLoginController extends BaseController {
@Autowired
@ -34,6 +38,9 @@ public class WxLoginController extends BaseController {
@Autowired
private TokenService tokenService;
@Autowired
private ISysUserService sysUserService;
/**
*
*
@ -52,4 +59,18 @@ public class WxLoginController extends BaseController {
return ajax;
}
/**
*
*
* @return
*/
@ApiOperation(value = "修改密码")
@RateLimiter(count = 10, limitType = LimitType.IP)
@PostMapping("/updatePwd")
public AjaxResult updatePwd(@RequestBody @Valid UpdatePwdVo updatePwdVo)
{
sysUserService.updatePwd(updatePwdVo);
return success();
}
}

View File

@ -11,8 +11,11 @@ import com.yanzhu.common.core.domain.entity.SysUser;
import com.yanzhu.common.core.page.TableDataInfo;
import com.yanzhu.common.core.redis.RedisCache;
import com.yanzhu.common.utils.DictUtils;
import com.yanzhu.common.utils.SecurityUtils;
import com.yanzhu.common.utils.StringUtils;
import com.yanzhu.project.service.IProProjectApplyService;
import com.yanzhu.sur.domain.SurMenuConfig;
import com.yanzhu.sur.service.ISurMenuConfigService;
import com.yanzhu.system.service.ISysDeptService;
import com.yanzhu.system.service.ISysPostService;
import com.yanzhu.system.service.ISysRoleService;
@ -47,6 +50,9 @@ public class WxPublicsController extends BaseController
@Autowired
private ISysDeptService deptService;
@Autowired
private ISurMenuConfigService surMenuConfigService;
@Autowired
private IBaseAssetsTypeService baseAssetsTypeService;
@ -117,4 +123,24 @@ public class WxPublicsController extends BaseController
return success(DictUtils.getDictCache(key));
}
/**
*
*/
@GetMapping("/v1/selectRoleMenuList")
public AjaxResult selectRoleMenuList(SurMenuConfig surMenuConfig)
{
SysUser sysUser = super.getLoginUser().getUser();
if(!SysUser.isAdmin(sysUser.getUserId())){
surMenuConfig.setUsername(sysUser.getPhonenumber());
}
String key = "YANZHU.SUR.V1.selectRoleMenuList." + sysUser.getUserId() ;
Object object = redisCache.getCacheObject(key);
if (object != null) {
return success(object);
}
List<SurMenuConfig> list = surMenuConfigService.selectRoleMenuList(surMenuConfig);
redisCache.setCacheObject(key, list, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
return success(list);
}
}

View File

@ -0,0 +1,157 @@
package com.yanzhu.sur.domain;
import com.yanzhu.common.annotation.Excel;
import com.yanzhu.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
/**
* sur_menu_config
*
* @author JiangYuQi
* @date 2023-08-24
*/
public class SurMenuConfig extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 菜单名称 */
@Excel(name = "菜单名称")
private String menuName;
/** 菜单标识 */
@Excel(name = "菜单标识")
private String menuIdenti;
/** 菜单图片 */
@Excel(name = "菜单图片")
private String menuImg;
/** 菜单地址 */
@Excel(name = "菜单地址")
private String menuUrl;
/** 删除状态0 未删除 1 已删除) */
private Long delFlag;
/** 菜单排序 */
@Excel(name = "菜单排序")
private Integer menuSort;
/** 菜单分类 */
@Excel(name = "菜单分类")
private String menuType;
private String username;
/** 菜单配置角色信息 */
private List<SurMenuConfigRole> surMenuConfigRoleList;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setMenuName(String menuName)
{
this.menuName = menuName;
}
public String getMenuName()
{
return menuName;
}
public void setMenuIdenti(String menuIdenti)
{
this.menuIdenti = menuIdenti;
}
public String getMenuIdenti()
{
return menuIdenti;
}
public void setMenuImg(String menuImg)
{
this.menuImg = menuImg;
}
public String getMenuImg()
{
return menuImg;
}
public void setMenuUrl(String menuUrl)
{
this.menuUrl = menuUrl;
}
public String getMenuUrl()
{
return menuUrl;
}
public void setDelFlag(Long delFlag)
{
this.delFlag = delFlag;
}
public Long getDelFlag()
{
return delFlag;
}
public List<SurMenuConfigRole> getSurMenuConfigRoleList()
{
return surMenuConfigRoleList;
}
public void setSurMenuConfigRoleList(List<SurMenuConfigRole> surMenuConfigRoleList)
{
this.surMenuConfigRoleList = surMenuConfigRoleList;
}
public Integer getMenuSort() {
return menuSort;
}
public void setMenuSort(Integer menuSort) {
this.menuSort = menuSort;
}
public String getMenuType() {
return menuType;
}
public void setMenuType(String menuType) {
this.menuType = menuType;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("menuName", getMenuName())
.append("menuIdenti", getMenuIdenti())
.append("menuImg", getMenuImg())
.append("menuUrl", getMenuUrl())
.append("delFlag", getDelFlag())
.append("createTime", getCreateTime())
.append("surMenuConfigRoleList", getSurMenuConfigRoleList())
.toString();
}
}

View File

@ -0,0 +1,64 @@
package com.yanzhu.sur.domain;
import com.yanzhu.common.annotation.Excel;
import com.yanzhu.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* sur_menu_config_role
*
* @author JiangYuQi
* @date 2023-08-24
*/
public class SurMenuConfigRole extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 菜单关系主键 */
@Excel(name = "菜单关系主键")
private Long smcid;
/** 角色主键 */
@Excel(name = "角色主键")
private Long roleId;
/** 角色名称 */
@Excel(name = "角色名称")
private String roleName;
public void setSmcid(Long smcid)
{
this.smcid = smcid;
}
public Long getSmcid()
{
return smcid;
}
public void setRoleId(Long roleId)
{
this.roleId = roleId;
}
public Long getRoleId()
{
return roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("smcid", getSmcid())
.append("roleId", getRoleId())
.toString();
}
}

View File

@ -0,0 +1,95 @@
package com.yanzhu.sur.mapper;
import com.yanzhu.sur.domain.SurMenuConfig;
import com.yanzhu.sur.domain.SurMenuConfigRole;
import java.util.List;
/**
* Mapper
*
* @author JiangYuQi
* @date 2023-08-24
*/
public interface SurMenuConfigMapper
{
/**
*
*
* @param id
* @return
*/
public SurMenuConfig selectSurMenuConfigById(Long id);
/**
*
*
* @param surMenuConfig
* @return
*/
public List<SurMenuConfig> selectSurMenuConfigList(SurMenuConfig surMenuConfig);
/**
*
*
* @param surMenuConfig
* @return
*/
public int insertSurMenuConfig(SurMenuConfig surMenuConfig);
/**
*
*
* @param surMenuConfig
* @return
*/
public int updateSurMenuConfig(SurMenuConfig surMenuConfig);
/**
*
*
* @param id
* @return
*/
public int deleteSurMenuConfigById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteSurMenuConfigByIds(Long[] ids);
/**
*
*
* @param ids
* @return
*/
public int deleteSurMenuConfigRoleBySmcids(Long[] ids);
/**
*
*
* @param surMenuConfigRoleList
* @return
*/
public int batchSurMenuConfigRole(List<SurMenuConfigRole> surMenuConfigRoleList);
/**
*
*
* @param id ID
* @return
*/
public int deleteSurMenuConfigRoleBySmcid(Long id);
/**
*
* @param surMenuConfig
* @return
*/
public List<SurMenuConfig> selectRoleMenuList(SurMenuConfig surMenuConfig);
}

View File

@ -0,0 +1,70 @@
package com.yanzhu.sur.service;
import com.yanzhu.sur.domain.SurMenuConfig;
import java.util.List;
import java.util.Map;
/**
* Service
*
* @author JiangYuQi
* @date 2023-08-24
*/
public interface ISurMenuConfigService
{
/**
*
*
* @param id
* @return
*/
public SurMenuConfig selectSurMenuConfigById(Long id);
/**
*
*
* @param surMenuConfig
* @return
*/
public List<SurMenuConfig> selectSurMenuConfigList(SurMenuConfig surMenuConfig);
/**
*
*
* @param surMenuConfig
* @return
*/
public int insertSurMenuConfig(SurMenuConfig surMenuConfig);
/**
*
*
* @param surMenuConfig
* @return
*/
public int updateSurMenuConfig(SurMenuConfig surMenuConfig);
/**
*
*
* @param ids
* @return
*/
public int deleteSurMenuConfigByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteSurMenuConfigById(Long id);
/**
*
* @param surMenuConfig
* @return
*/
public List<SurMenuConfig> selectRoleMenuList(SurMenuConfig surMenuConfig);
}

View File

@ -0,0 +1,144 @@
package com.yanzhu.sur.service.impl;
import com.yanzhu.common.utils.DateUtils;
import com.yanzhu.common.utils.SecurityUtils;
import com.yanzhu.common.utils.StringUtils;
import com.yanzhu.sur.domain.SurMenuConfig;
import com.yanzhu.sur.domain.SurMenuConfigRole;
import com.yanzhu.sur.mapper.SurMenuConfigMapper;
import com.yanzhu.sur.service.ISurMenuConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* Service
*
* @author JiangYuQi
* @date 2023-08-24
*/
@Service
public class SurMenuConfigServiceImpl implements ISurMenuConfigService
{
@Autowired
private SurMenuConfigMapper surMenuConfigMapper;
/**
*
*
* @param id
* @return
*/
@Override
public SurMenuConfig selectSurMenuConfigById(Long id)
{
return surMenuConfigMapper.selectSurMenuConfigById(id);
}
/**
*
*
* @param surMenuConfig
* @return
*/
@Override
public List<SurMenuConfig> selectSurMenuConfigList(SurMenuConfig surMenuConfig)
{
return surMenuConfigMapper.selectSurMenuConfigList(surMenuConfig);
}
/**
*
*
* @param surMenuConfig
* @return
*/
@Transactional
@Override
public int insertSurMenuConfig(SurMenuConfig surMenuConfig)
{
surMenuConfig.setCreateTime(DateUtils.getNowDate());
int rows = surMenuConfigMapper.insertSurMenuConfig(surMenuConfig);
insertSurMenuConfigRole(surMenuConfig);
return rows;
}
/**
*
*
* @param surMenuConfig
* @return
*/
@Transactional
@Override
public int updateSurMenuConfig(SurMenuConfig surMenuConfig)
{
surMenuConfigMapper.deleteSurMenuConfigRoleBySmcid(surMenuConfig.getId());
insertSurMenuConfigRole(surMenuConfig);
return surMenuConfigMapper.updateSurMenuConfig(surMenuConfig);
}
/**
*
*
* @param ids
* @return
*/
@Transactional
@Override
public int deleteSurMenuConfigByIds(Long[] ids)
{
surMenuConfigMapper.deleteSurMenuConfigRoleBySmcids(ids);
return surMenuConfigMapper.deleteSurMenuConfigByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Transactional
@Override
public int deleteSurMenuConfigById(Long id)
{
surMenuConfigMapper.deleteSurMenuConfigRoleBySmcid(id);
return surMenuConfigMapper.deleteSurMenuConfigById(id);
}
/**
*
*
* @param surMenuConfig
*/
public void insertSurMenuConfigRole(SurMenuConfig surMenuConfig)
{
List<SurMenuConfigRole> surMenuConfigRoleList = surMenuConfig.getSurMenuConfigRoleList();
Long id = surMenuConfig.getId();
if (StringUtils.isNotNull(surMenuConfigRoleList))
{
List<SurMenuConfigRole> list = new ArrayList<SurMenuConfigRole>();
for (SurMenuConfigRole surMenuConfigRole : surMenuConfigRoleList)
{
surMenuConfigRole.setSmcid(id);
list.add(surMenuConfigRole);
}
if (list.size() > 0)
{
surMenuConfigMapper.batchSurMenuConfigRole(list);
}
}
}
/**
*
* @param surMenuConfig
* @return
*/
public List<SurMenuConfig> selectRoleMenuList(SurMenuConfig surMenuConfig) {
return surMenuConfigMapper.selectRoleMenuList(surMenuConfig);
}
}

View File

@ -0,0 +1,141 @@
<?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.yanzhu.sur.mapper.SurMenuConfigMapper">
<resultMap type="SurMenuConfig" id="SurMenuConfigResult">
<result property="id" column="id" />
<result property="menuName" column="menu_name" />
<result property="menuIdenti" column="menu_identi" />
<result property="menuImg" column="menu_img" />
<result property="menuUrl" column="menu_url" />
<result property="delFlag" column="del_flag" />
<result property="createTime" column="create_time" />
<result property="menuSort" column="menu_sort" />
<result property="menuType" column="menu_type" />
</resultMap>
<resultMap id="SurMenuConfigSurMenuConfigRoleResult" type="SurMenuConfig" extends="SurMenuConfigResult">
<collection property="surMenuConfigRoleList" notNullColumn="sub_smcid" javaType="java.util.List" resultMap="SurMenuConfigRoleResult" />
</resultMap>
<resultMap type="SurMenuConfigRole" id="SurMenuConfigRoleResult">
<result property="smcid" column="sub_smcid" />
<result property="roleId" column="sub_role_id" />
</resultMap>
<sql id="selectSurMenuConfigVo">
select id, menu_name, menu_identi, menu_img, menu_url, del_flag, create_time, menu_type, menu_sort from sur_menu_config
</sql>
<select id="selectSurMenuConfigList" parameterType="SurMenuConfig" resultMap="SurMenuConfigResult">
<include refid="selectSurMenuConfigVo"/>
<where>
<if test="menuName != null and menuName != ''"> and menu_name like concat('%', #{menuName}, '%')</if>
<if test="menuIdenti != null and menuIdenti != ''"> and menu_identi = #{menuIdenti}</if>
<if test="menuImg != null and menuImg != ''"> and menu_img = #{menuImg}</if>
<if test="menuUrl != null and menuUrl != ''"> and menu_url = #{menuUrl}</if>
<if test="delFlag != null "> and del_flag = #{delFlag}</if>
<if test="menuType != null "> and menu_type = #{menuType}</if>
</where>
</select>
<select id="selectSurMenuConfigById" parameterType="Long" resultMap="SurMenuConfigSurMenuConfigRoleResult">
select a.id, a.menu_name, a.menu_identi, a.menu_img, a.menu_url, a.del_flag, a.create_time,menu_type,menu_sort,
b.smcid as sub_smcid, b.role_id as sub_role_id
from sur_menu_config a
left join sur_menu_config_role b on b.smcid = a.id
where a.id = #{id}
</select>
<insert id="insertSurMenuConfig" parameterType="SurMenuConfig" useGeneratedKeys="true" keyProperty="id">
insert into sur_menu_config
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="menuName != null">menu_name,</if>
<if test="menuIdenti != null">menu_identi,</if>
<if test="menuImg != null">menu_img,</if>
<if test="menuUrl != null">menu_url,</if>
<if test="delFlag != null">del_flag,</if>
<if test="createTime != null">create_time,</if>
<if test="menuSort != null">menu_sort,</if>
<if test="menuType != null">menu_type,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="menuName != null">#{menuName},</if>
<if test="menuIdenti != null">#{menuIdenti},</if>
<if test="menuImg != null">#{menuImg},</if>
<if test="menuUrl != null">#{menuUrl},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="createTime != null">#{createTime},</if>
<if test="menuSort != null">#{menuSort},</if>
<if test="menuType != null">#{menuType},</if>
</trim>
</insert>
<update id="updateSurMenuConfig" parameterType="SurMenuConfig">
update sur_menu_config
<trim prefix="SET" suffixOverrides=",">
<if test="menuName != null">menu_name = #{menuName},</if>
<if test="menuIdenti != null">menu_identi = #{menuIdenti},</if>
<if test="menuImg != null">menu_img = #{menuImg},</if>
<if test="menuUrl != null">menu_url = #{menuUrl},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="menuSort != null">menu_sort = #{menuSort},</if>
<if test="menuType != null">menu_type = #{menuType},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSurMenuConfigById" parameterType="Long">
delete from sur_menu_config where id = #{id}
</delete>
<delete id="deleteSurMenuConfigByIds" parameterType="String">
delete from sur_menu_config where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="deleteSurMenuConfigRoleBySmcids" parameterType="String">
delete from sur_menu_config_role where smcid in
<foreach item="smcid" collection="array" open="(" separator="," close=")">
#{smcid}
</foreach>
</delete>
<delete id="deleteSurMenuConfigRoleBySmcid" parameterType="Long">
delete from sur_menu_config_role where smcid = #{smcid}
</delete>
<insert id="batchSurMenuConfigRole">
insert into sur_menu_config_role( smcid, role_id) values
<foreach item="item" index="index" collection="list" separator=",">
( #{item.smcid}, #{item.roleId})
</foreach>
</insert>
<!--查询角色相关菜单-->
<select id="selectRoleMenuList" parameterType="SurMenuConfig" resultMap="SurMenuConfigResult">
SELECT
DISTINCT smc.id,
smc.menu_name,
smc.menu_identi,
smc.menu_img,
smc.menu_url,
smc.menu_sort
FROM
sur_menu_config smc
LEFT JOIN sur_menu_config_role smcr ON smcr.smcid = smc.id
LEFT JOIN sys_role sr ON sr.role_id = smcr.role_id
LEFT JOIN sys_user_role ur ON sr.role_id = ur.role_id
LEFT JOIN sys_user su ON ur.user_id = su.user_id
WHERE smc.del_flag = 0
<if test="username != null and username != ''"> and su.phonenumber = #{username}</if>
<if test="menuType != null and menuType != ''"> and smc.menu_type=#{type}</if>
<if test="menuType == null or menuType == ''"> and (smc.menu_type = '' or smc.menu_type is null) </if>
order by smc.menu_sort asc
</select>
</mapper>

View File

@ -0,0 +1,26 @@
package com.yanzhu.system.domain.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
*
*
* @author yanZhu
*/
@Data
public class UpdatePwdVo {
/** 旧密码 */
@NotBlank(message = "旧密码不能为空")
private String oldPsw;
/** 新密码 */
@NotBlank(message = "新密码不能为空")
private String newPsw;
/** 确认密码 */
@NotBlank(message = "确认密码不能为空")
private String cfmPsw;
}

View File

@ -5,7 +5,7 @@ VUE_APP_TITLE = 研筑临时项目管理系统
ENV = 'development'
# 研筑临时项目管理系统/开发环境
VUE_APP_BASE_API = '/prjapi'
VUE_APP_BASE_API = '/yanZhuProject'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true

View File

@ -5,4 +5,4 @@ VUE_APP_TITLE = 研筑临时项目管理系统
ENV = 'production'
# 研筑临时项目管理系统/生产环境
VUE_APP_BASE_API = '/prjapi'
VUE_APP_BASE_API = '/yanZhuProject'