From a5f0802170d157db4f2a828e14eefee3e70a5c39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Sat, 15 Feb 2025 14:20:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/controller/TokenController.java | 12 ++- .../yanzhu/auth/service/SysLoginService.java | 1 + .../manage/mapper/ProProjectInfoMapper.java | 15 +++ .../mapper/manage/ProProjectInfoMapper.xml | 38 ++++++++ .../mapper/manage/WxMenuConfigMapper.xml | 1 + .../impl/ProProjectInfoServiceImpl.java | 71 ++++++++++++-- .../service/impl/SysUserServiceImpl.java | 1 - .../pages/components/jyq-result/index.js | 3 +- .../pages/components/jyq-result/index.wxml | 6 +- .../pages/components/jyq-result/index.wxss | 4 +- .../miniprogram/pages/project_info/index.wxml | 1 - .../miniprogram/pages/project_qr/index.js | 93 ++++++++++++++++++- .../miniprogram/pages/project_qr/index.wxml | 26 ++++-- .../proProjectInfoSubdeptsUsers/index.vue | 3 +- 14 files changed, 246 insertions(+), 29 deletions(-) diff --git a/yanzhu-auth/src/main/java/com/yanzhu/auth/controller/TokenController.java b/yanzhu-auth/src/main/java/com/yanzhu/auth/controller/TokenController.java index 1065c442..d68a4b32 100644 --- a/yanzhu-auth/src/main/java/com/yanzhu/auth/controller/TokenController.java +++ b/yanzhu-auth/src/main/java/com/yanzhu/auth/controller/TokenController.java @@ -2,6 +2,8 @@ package com.yanzhu.auth.controller; import com.yanzhu.auth.form.LoginBody; import com.yanzhu.auth.form.RegisterBody; +import com.yanzhu.common.core.exception.ServiceException; +import com.yanzhu.common.redis.service.RedisService; import com.yanzhu.system.api.domain.vo.WxMaLoginBody; import com.yanzhu.auth.form.WxMaOpenIdBody; import com.yanzhu.auth.service.SysLoginService; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.Map; import java.util.Objects; +import java.util.concurrent.TimeUnit; /** * token 控制 @@ -33,6 +36,9 @@ import java.util.Objects; @RestController public class TokenController { + @Autowired + private RedisService redisService; + @Autowired private TokenService tokenService; @@ -93,8 +99,12 @@ public class TokenController @PostMapping("wxLogin") public R wxLogin(@RequestBody LoginBody form) { + String openId = Convert.toStr(redisService.getCacheObject("SysUserPhoneNumber::"+form.getUsername()),null); + if(Objects.isNull(openId)){ + throw new ServiceException("登录信息异常!!!"); + } // 用户登录 - LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); + LoginUser userInfo = sysLoginService.wxLogin(form.getUsername()); // 获取登录token return R.ok(tokenService.createMobileToken(userInfo)); } diff --git a/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java b/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java index 7b89fd46..427b0c2f 100644 --- a/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java +++ b/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java @@ -146,6 +146,7 @@ public class SysLoginService public String getMaPhoneNumber(WxMaLoginBody loginBody) { Map phoneResult = remoteUserService.getMaPhoneNumber(loginBody,SecurityConstants.INNER).getData(); + redisService.setCacheObject("SysUserPhoneNumber::"+phoneResult.get("phoneNumber"),loginBody.getOpenId(),12L, TimeUnit.HOURS); return Convert.toStr(phoneResult.get("phoneNumber")); } diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoMapper.java index cf586b6e..5f3ed6c2 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoMapper.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoMapper.java @@ -4,6 +4,8 @@ import java.util.List; import com.yanzhu.manage.domain.ProDept; import com.yanzhu.manage.domain.ProProjectInfo; +import com.yanzhu.system.api.domain.SysRole; +import com.yanzhu.system.api.domain.SysRoleDept; /** * 项目信息Mapper接口 @@ -76,4 +78,17 @@ public interface ProProjectInfoMapper public int updateDept(ProDept proDept); List selectMyProjectList(ProProjectInfo proProjectInfo); + + /** + * 新增项目角色 + * @param sysRole + * @return + */ + public int insertProRole(SysRole sysRole); + + /** + * + * @param sysRoleDept + */ + public void insertProRoleDept(SysRoleDept sysRoleDept); } diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml index 9f665d9b..cac05038 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml @@ -349,6 +349,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where dept_id = #{deptId} + + insert into sys_role( + role_id, + role_name, + role_key, + role_sort, + data_scope, + menu_check_strictly, + dept_check_strictly, + status, + remark, + create_by, + create_time + )values( + #{roleId}, + #{roleName}, + #{roleKey}, + #{roleSort}, + #{dataScope}, + #{menuCheckStrictly}, + #{deptCheckStrictly}, + #{status}, + #{remark}, + #{createBy}, + sysdate() + ) + + + + insert into sys_role_dept( + role_id, + dept_id + )values( + #{roleId}, + #{deptId} + ) + + diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java index 9c6720c3..f334af4a 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java @@ -5,23 +5,22 @@ import com.yanzhu.common.core.constant.CacheConstants; import com.yanzhu.common.core.constant.SecurityConstants; import com.yanzhu.common.core.context.SecurityContextHolder; import com.yanzhu.common.core.domain.R; +import com.yanzhu.common.core.enums.ShiFouEnums; +import com.yanzhu.common.core.enums.UserTypeEnums; import com.yanzhu.common.core.exception.ServiceException; import com.yanzhu.common.core.utils.DateUtils; import com.yanzhu.common.core.utils.StringUtils; import com.yanzhu.common.redis.service.RedisService; import com.yanzhu.common.security.utils.SecurityUtils; import com.yanzhu.manage.config.ProfileConfig; -import com.yanzhu.manage.domain.ProDept; -import com.yanzhu.manage.domain.ProProjectInfo; -import com.yanzhu.manage.domain.ProProjectInfoDepts; -import com.yanzhu.manage.domain.ProProjectInfoSetting; -import com.yanzhu.manage.mapper.ProProjectInfoDeptsMapper; -import com.yanzhu.manage.mapper.ProProjectInfoMapper; -import com.yanzhu.manage.mapper.ProProjectInfoSettingMapper; +import com.yanzhu.manage.domain.*; +import com.yanzhu.manage.mapper.*; import com.yanzhu.manage.service.IProProjectInfoService; import com.yanzhu.manage.utils.pdf.FileUtil; import com.yanzhu.system.api.RemoteDeptService; import com.yanzhu.system.api.domain.SysDept; +import com.yanzhu.system.api.domain.SysRole; +import com.yanzhu.system.api.domain.SysRoleDept; import com.yanzhu.system.api.domain.SysUser; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; @@ -33,6 +32,7 @@ import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import java.io.File; +import java.util.ArrayList; import java.util.List; /** @@ -65,6 +65,12 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService @Autowired private RemoteDeptService remoteDeptService; + @Autowired + private WxMenuConfigMapper wxMenuConfigMapper; + + @Autowired + private WxMenuConfigRoleMapper wxMenuConfigRoleMapper; + private static final Logger log = LoggerFactory.getLogger(ProProjectInfoServiceImpl.class); /** @@ -168,6 +174,28 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService }catch (Exception e){ log.error(e.getMessage()); } + + //初始化小程序菜单信息 + WxMenuConfig wxMenuConfigQuery = new WxMenuConfig(); + wxMenuConfigQuery.setActiveTags("sys"); + List wxMenuConfigList = wxMenuConfigMapper.selectWxMenuConfigList(wxMenuConfigQuery); + + //初始化项目角色信息... + this.insertProRole(UserTypeEnums.FBWTDL.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.FBWTDL.getInfo(),proProjectInfo.getId(),wxMenuConfigList); + this.insertProRole(UserTypeEnums.FBXMJL.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.FBXMJL.getInfo(),proProjectInfo.getId(),wxMenuConfigList); + this.insertProRole(UserTypeEnums.FBBZZZ.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.FBBZZZ.getInfo(),proProjectInfo.getId(),wxMenuConfigList); + this.insertProRole(UserTypeEnums.FBLWRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.FBLWRY.getInfo(),proProjectInfo.getId(),wxMenuConfigList); + this.insertProRole(UserTypeEnums.FBCLRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.FBCLRY.getInfo(),proProjectInfo.getId(),wxMenuConfigList); + this.insertProRole(UserTypeEnums.FBAQRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.FBAQRY.getInfo(),proProjectInfo.getId(),wxMenuConfigList); + this.insertProRole(UserTypeEnums.JSDWRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.JSDWRY.getInfo(),proProjectInfo.getId(),wxMenuConfigList); + this.insertProRole(UserTypeEnums.JLDWRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.JLDWRY.getInfo(),proProjectInfo.getId(),null); + this.insertProRole(UserTypeEnums.SGDWRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.SGDWRY.getInfo(),proProjectInfo.getId(),null); + this.insertProRole(UserTypeEnums.CLFBRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.CLFBRY.getInfo(),proProjectInfo.getId(),null); + this.insertProRole(UserTypeEnums.HQFBRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.HQFBRY.getInfo(),proProjectInfo.getId(),null); + this.insertProRole(UserTypeEnums.TSSBRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.TSSBRY.getInfo(),proProjectInfo.getId(),null); + this.insertProRole(UserTypeEnums.KTDWRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.KTDWRY.getInfo(),proProjectInfo.getId(),null); + this.insertProRole(UserTypeEnums.SJDWRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.SJDWRY.getInfo(),proProjectInfo.getId(),null); + this.insertProRole(UserTypeEnums.OTHERS.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.OTHERS.getInfo(),proProjectInfo.getId(),null); loadingProjectsCache(); return res; }else{ @@ -175,6 +203,35 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService } } + /** + * + * @param roleName + * @param roleKey + * @param deptId + */ + private void insertProRole(String roleKey,String roleName,Long deptId,List wxMenuConfigList){ + SysRole sysRole = new SysRole(); + sysRole.setRoleName(roleName); + sysRole.setRoleKey(roleKey); + sysRole.setRoleSort(100); + sysRole.setStatus(ShiFouEnums.FOU.getCodeStr()); + sysRole.setCreateBy("SYSTEM"); + sysRole.setCreateTime(DateUtils.getNowDate()); + proProjectInfoMapper.insertProRole(sysRole); + SysRoleDept sysRoleDept = new SysRoleDept(); + sysRoleDept.setRoleId(sysRole.getRoleId()); + sysRoleDept.setDeptId(deptId); + proProjectInfoMapper.insertProRoleDept(sysRoleDept); + if(StringUtils.isNotEmpty(wxMenuConfigList)){ + for(WxMenuConfig wxMenuConfig:wxMenuConfigList){ + WxMenuConfigRole wxMenuConfigRole = new WxMenuConfigRole(); + wxMenuConfigRole.setSmcid(wxMenuConfig.getId()); + wxMenuConfigRole.setRoleId(sysRole.getRoleId()); + wxMenuConfigRoleMapper.insertWxMenuConfigRole(wxMenuConfigRole); + } + } + } + /** * 修改项目信息 * diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java index c53e2093..7bba98a3 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java @@ -643,7 +643,6 @@ public class SysUserServiceImpl implements ISysUserService sysRole.setCreateBy("SYSTEM"); sysRole.setCreateTime(DateUtils.getNowDate()); int r1 = roleMapper.insertRole(sysRole); - System.out.println("insertDeptSysRole.insertRole==>"+r1); List sysRoleDeptList = new ArrayList<>(); SysRoleDept sysRoleDept = new SysRoleDept(); sysRoleDept.setRoleId(sysRole.getRoleId()); diff --git a/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.js b/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.js index bcfb3afe..0ba64da0 100644 --- a/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.js +++ b/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.js @@ -10,10 +10,11 @@ Component({ }, title: { type: String, - value: '默认标题', + value: '', }, description: { type: String, + value: '', }, actionText: { type: String, diff --git a/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.wxml b/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.wxml index e72506d6..7f20720b 100644 --- a/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.wxml +++ b/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.wxml @@ -1,8 +1,8 @@ - - {{title}} - {{description}} + + {{title}} + {{description}} \ No newline at end of file diff --git a/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.wxss b/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.wxss index 0ea37cda..f6735a6e 100644 --- a/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.wxss +++ b/yanzhu-ui-app/miniprogram/pages/components/jyq-result/index.wxss @@ -34,8 +34,8 @@ } .desc-action-btn { - background-color: #999999; - color: white; + background-color: #eeeeee; + color: #000000; padding: 10rpx 20rpx; border-radius: 8rpx; margin-top: 20rpx; diff --git a/yanzhu-ui-app/miniprogram/pages/project_info/index.wxml b/yanzhu-ui-app/miniprogram/pages/project_info/index.wxml index 70205925..12a76a9a 100644 --- a/yanzhu-ui-app/miniprogram/pages/project_info/index.wxml +++ b/yanzhu-ui-app/miniprogram/pages/project_info/index.wxml @@ -77,7 +77,6 @@ - diff --git a/yanzhu-ui-app/miniprogram/pages/project_qr/index.js b/yanzhu-ui-app/miniprogram/pages/project_qr/index.js index 173a2e12..645d7ef8 100644 --- a/yanzhu-ui-app/miniprogram/pages/project_qr/index.js +++ b/yanzhu-ui-app/miniprogram/pages/project_qr/index.js @@ -1,17 +1,22 @@ import config from '../../config' import { + setToken, + setUserInfo, getOpenId, setOpenId, getSessionKey, setSessionKey, } from '../../utils/auth' import { + wxLogin, getMaOpenId, getMaPhoneNumber, + findUserInfoByCache, } from '../../api/login' import { findProjectInfo, registerSubDepts, + findMyProjectList, registerSubDeptsUsers, findProSubDeptsUser, findProSubDeptsInfo, @@ -378,6 +383,7 @@ if (this.data.userPost == "1") { if (userRes.data.userInfos) { let userInfosJSON = JSON.parse(userRes.data.userInfos); userRes.data.nativePlace = userInfosJSON.nativePlace; + userRes.data.nation = userInfosJSON.nation; userRes.data.address = userInfosJSON.address; userRes.data.emergencyContact = userInfosJSON.emergencyContact; userRes.data.contactPhone = userInfosJSON.contactPhone; @@ -1268,7 +1274,7 @@ if (this.data.userPost == "1") { }, /** - * 个人籍贯民族 + * 个人籍贯 * @param {*} e */ inputOriginNative(e) { @@ -1276,6 +1282,17 @@ if (this.data.userPost == "1") { "form.nativePlace": e.detail.value }) }, + + /** + * 个人民族 + * @param {*} e + */ + inputOriginNation(e){ + this.setData({ + "form.nation": e.detail.value + }) + }, + /** * 个人籍贯地址 * @param {*} e @@ -1560,7 +1577,7 @@ if (this.data.userPost == "1") { } wx.showLoading({mask: true,title: '正在处理'}); registerSubDepts(_form).then(res => { - wx.hideLoading({success: (res) => {}}); + wx.hideLoading({success: (r) => {}}); if (res.code == 200) { this.setData({ "form.id": res.data.id, @@ -1626,17 +1643,20 @@ if (this.data.userPost == "1") { return false; } } - if (!form.userPhone) { app.toast("请填写联系电话!"); return false; } if (!form.nativePlace) { - app.toast("请填写籍贯民族!"); + app.toast("请填写籍贯!"); + return false; + } + if (!form.nation) { + app.toast("请填写民族!"); return false; } if (!form.address) { - app.toast("请填写籍贯地址!"); + app.toast("请填写地址!"); return false; } if (!form.emergencyContact) { @@ -1646,6 +1666,12 @@ if (this.data.userPost == "1") { if (!form.contactPhone) { app.toast("请填写紧急联系人电话!"); return false; + }else{ + const phonePattern = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/; + if(phonePattern.test(form.contactPhone)){ + app.toast("紧急联系人电话不正确!"); + return false; + } } if (!form.degreeGrade) { app.toast("请选择文化程度!"); @@ -1742,6 +1768,7 @@ if (this.data.userPost == "1") { //验证图片上传完毕 if (uploads.length == uploadFiles.length) { let userInfos = {}; + userInfos.nation = _form.nation; userInfos.nativePlace = _form.nativePlace; userInfos.address = _form.address; userInfos.emergencyContact = _form.emergencyContact; @@ -1958,6 +1985,62 @@ if (this.data.userPost == "1") { }) }, + /** + * 立即登录 + */ + wxSignLogin(){ + wxLogin({'username':this.data.userPhoneNumber}).then(res =>{ + setToken(res.data.access_token); + this.getUserInfoByCache(); + }) + }, + + /** + * 查询 + * 用户详细信息 + * @param {*} e + */ + getUserInfoByCache: function () { + findUserInfoByCache().then(res=>{ + if(res.code==200){ + setUserInfo(res.user); + app.globalData.userData = res.user; + this.getMyProjectList(); + } + }); + }, + + /** + * 查询 + * 用户项目信息 + * 根据项目配置进入不同页面... + */ + getMyProjectList: function () { + findMyProjectList().then(res=>{ + if(res.code==200){ + app.globalData.projectInfoList = res.rows; + if(res.rows.length>0){ + if(res.rows.length==1){ + app.globalData.useProjectId = res.rows[0].id; + app.globalData.useProjectName = res.rows[0].projectName; + //单项目直接进入项目页面 + wx.redirectTo({ + url: '../project_info/index', + }) + }else{ + //多项目进入项目切换页面 + wx.redirectTo({ + url: '../project_list/index', + }) + } + }else{ + app.toast("未查询到当前用户项目,信息审核中或人员已离场"); + return false; + } + } + }); + }, + /** * 生命周期函数--监听页面卸载 */ diff --git a/yanzhu-ui-app/miniprogram/pages/project_qr/index.wxml b/yanzhu-ui-app/miniprogram/pages/project_qr/index.wxml index bdffb60b..1c1b6749 100644 --- a/yanzhu-ui-app/miniprogram/pages/project_qr/index.wxml +++ b/yanzhu-ui-app/miniprogram/pages/project_qr/index.wxml @@ -248,13 +248,19 @@ - 籍贯民族 + 民族 - + - 籍贯地址 + 籍贯 + + + + + + 地址