Quellcode durchsuchen

Merge branch 'master' of http://39.98.153.250:9080/bowintek/EmploymentSite

pengjing vor 11 Monaten
Ursprung
Commit
961381664e

+ 4 - 1
src/main/java/com/hz/employmentsite/mapper/PcSiteUserMapper.java

@@ -2,9 +2,10 @@ package com.hz.employmentsite.mapper;
 
 import com.hz.employmentsite.model.PcSiteUser;
 import com.hz.employmentsite.model.PcSiteUserExample;
-import java.util.List;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface PcSiteUserMapper {
     long countByExample(PcSiteUserExample example);
 
@@ -20,6 +21,8 @@ public interface PcSiteUserMapper {
 
     PcSiteUser selectByPrimaryKey(String siteUserID);
 
+    List<String> selectByMobile(@Param("mobile") String mobile);
+
     int updateByExampleSelective(@Param("row") PcSiteUser row, @Param("example") PcSiteUserExample example);
 
     int updateByExample(@Param("row") PcSiteUser row, @Param("example") PcSiteUserExample example);

+ 18 - 3
src/main/java/com/hz/employmentsite/services/impl/baseSettings/SiteUserImpl.java

@@ -2,6 +2,7 @@ package com.hz.employmentsite.services.impl.baseSettings;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.filter.exception.BaseException;
 import com.hz.employmentsite.mapper.PcSiteUserMapper;
 import com.hz.employmentsite.mapper.SysRoleMapper;
 import com.hz.employmentsite.mapper.SysUserMapper;
@@ -90,14 +91,23 @@ public class SiteUserImpl implements SiteUserService {
     @Override
     public Integer save(SiteUserVo data, String userId) {
         int result = 0;
+
+        // 手机号查重
+        List<String> byMobileSiteId = pcSiteUserMapper.selectByMobile(data.mobile);
+
         SiteUserVo record = get(data.siteUserID);
-        PcSiteUser dbData = record ==null ? null : pcSiteUserMapper.selectByPrimaryKey(record.siteUserID);
+        PcSiteUser dbData = record == null ? null : pcSiteUserMapper.selectByPrimaryKey(record.siteUserID);
         Boolean isExist = dbData != null;
-        SysUser curSysUserData = data.userID != null ? sysUserMapper.selectByPrimaryKey(data.userID):null;
+        SysUser curSysUserData = data.userID != null ? sysUserMapper.selectByPrimaryKey(data.userID) : null;
         Boolean isLinkUser = curSysUserData != null;
         SysRoleExample roleExp = null;
         /*注意:这里的data.roleID为用户类型ID*/
         if (!isExist) {
+            // 添加时有重复手机号立即报错
+            if (!byMobileSiteId.isEmpty()) {
+                throw new BaseException("500", "该手机号已绑定其他驿站人员");
+            }
+
             //添加
             //处理用户表
             curSysUserData = new SysUser();
@@ -125,9 +135,14 @@ public class SiteUserImpl implements SiteUserService {
             dbData.setCreateTime(new Date());
             result += pcSiteUserMapper.insert(dbData);
         } else {
+            // 修改时,ID列表中没有参数中的ID才报错
+            if (!byMobileSiteId.isEmpty() && !byMobileSiteId.contains(data.siteID)) {
+                throw new BaseException("500", "该手机号已绑定其他驿站人员");
+            }
+
             //修改
             //处理用户表
-            if(isLinkUser){
+            if (isLinkUser) {
                 curSysUserData.setName(data.siteUserName);
                 curSysUserData.setUserTypeID(data.roleID);
                 curSysUserData.setLoginID(StrToPinYin(data.siteUserName));

+ 17 - 11
src/main/resources/mapping/PcSiteUserMapper.xml

@@ -322,17 +322,23 @@
   <update id="updateByPrimaryKey" parameterType="com.hz.employmentsite.model.PcSiteUser">
     update pc_site_user
     set SiteUserName = #{siteUserName,jdbcType=VARCHAR},
-      UserID = #{userID,jdbcType=VARCHAR},
-      SiteID = #{siteID,jdbcType=VARCHAR},
-      Gender = #{gender,jdbcType=INTEGER},
-      Mobile = #{mobile,jdbcType=VARCHAR},
-      RoleID = #{roleID,jdbcType=INTEGER},
-      CreateUserID = #{createUserID,jdbcType=VARCHAR},
-      CreateTime = #{createTime,jdbcType=TIMESTAMP},
-      UpdateBy = #{updateBy,jdbcType=VARCHAR},
-      UpdateTime = #{updateTime,jdbcType=TIMESTAMP},
-      UserNo = #{userNo,jdbcType=VARCHAR},
-      IDCard = #{IDCard,jdbcType=VARCHAR}
+        UserID       = #{userID,jdbcType=VARCHAR},
+        SiteID       = #{siteID,jdbcType=VARCHAR},
+        Gender       = #{gender,jdbcType=INTEGER},
+        Mobile       = #{mobile,jdbcType=VARCHAR},
+        RoleID       = #{roleID,jdbcType=INTEGER},
+        CreateUserID = #{createUserID,jdbcType=VARCHAR},
+        CreateTime   = #{createTime,jdbcType=TIMESTAMP},
+        UpdateBy     = #{updateBy,jdbcType=VARCHAR},
+        UpdateTime   = #{updateTime,jdbcType=TIMESTAMP},
+        UserNo       = #{userNo,jdbcType=VARCHAR},
+        IDCard       = #{IDCard,jdbcType=VARCHAR}
     where SiteUserID = #{siteUserID,jdbcType=VARCHAR}
   </update>
+
+  <select id="selectByMobile" resultType="String">
+    select SiteID
+    from pc_site_user
+    where mobile = #{mobile,jdbcType=VARCHAR}
+  </select>
 </mapper>

+ 14 - 26
vue/src/layout/header/index.vue

@@ -1,14 +1,13 @@
 <template>
   <Layout.Header :style="headerStyle" class="layout-header">
     <Space :size="30">
-<img style="height: 52px;" src="~@/assets/images/logo-login.png" alt=""/>
+      <img style="height: 52px;" src="~@/assets/images/logo-login.png" alt=""/>
       <span style="font-size: 30px;margin-left:-10px;">惠州就业驿站管理系统</span>
     </Space>
     <Space :size="20">
       <!--      <Search />-->
       <Tooltip title="修改密码" placement="bottom" v-if="isDev">
-        <LockOutlined @click="updatePassword()"/>
-        <UpdatePassword ref="updatePasswordRef"></UpdatePassword>
+        <LockOutlined @click.prevent="onUpdatePassword"/>
       </Tooltip>
       <FullScreen/>
       <Tooltip title="退出系统" placement="bottom" v-if="isDev">
@@ -38,36 +37,23 @@
       </Dropdown> -->
       <!--      <ProjectSetting />-->
     </Space>
+    <UpdatePasswordCom ref="updatePasswordRef"></UpdatePasswordCom>
   </Layout.Header>
 </template>
 
 <script lang="tsx" setup>
-import {computed, nextTick, type CSSProperties, ref, onMounted} from 'vue';
-import {useRouter, useRoute} from 'vue-router';
-import {
-  QuestionCircleOutlined,
-  PoweroffOutlined,
-  LockOutlined,
-  ExportOutlined,
-} from '@ant-design/icons-vue';
-import {
-  message,
-  Modal,
-  Dropdown,
-  Menu,
-  Space,
-  Avatar,
-  Tooltip,
-  type MenuTheme,
-} from 'ant-design-vue';
-import {Search, FullScreen, ProjectSetting} from './components/';
+import {computed, type CSSProperties, nextTick, onMounted, ref} from 'vue';
+import {useRoute, useRouter} from 'vue-router';
+import {LockOutlined, PoweroffOutlined, QuestionCircleOutlined,} from '@ant-design/icons-vue';
+import {type MenuTheme, message, Modal, Space, Tooltip,} from 'ant-design-vue';
+import {FullScreen} from './components/';
 import {useUserStore} from '@/store/modules/user';
 import {useKeepAliveStore} from '@/store/modules/keepAlive';
 /*import {useLockscreenStore} from '@/store/modules/lockscreen';*/
 import {LOGIN_NAME} from '@/router/constant';
 import {useThemeStore} from '@/store/modules/projectConfig';
-import UpdatePassword from'@/views/system/users/updatePassword.vue';
 import {getConfig} from "@/utils/config";
+import UpdatePasswordCom from "@/views/system/users/updatePassword.vue";
 
 defineProps({
   collapsed: {
@@ -85,7 +71,6 @@ const keepAliveStore = useKeepAliveStore();
 
 const router = useRouter();
 const route = useRoute();
-const userInfo = computed(() => userStore.userInfo);
 const headerStyle = computed<CSSProperties>(() => {
   const {navTheme, layout} = themeStore;
   const isDark = navTheme === 'dark' && layout === 'topmenu';
@@ -124,8 +109,11 @@ const doLogout = () => {
   });
 };
 
-const updatePassword = () => {
-  updatePasswordRef.value.show(userInfo.value.userId,userInfo.value.userName,userInfo.value.loginId);
+function onUpdatePassword() {
+  const userInfo = JSON.parse(JSON.stringify(userStore.getUserInfo));
+  console.log(userInfo)
+  updatePasswordRef.value.show(userInfo.userID, userInfo.name, userInfo.loginID);
+  // updatePasswordRef.value.show(userStore.getUserInfo, data.userName, 111);
 };
 
 onMounted(() => {

+ 2 - 2
vue/src/views/companyService/post/edit.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="card-edit">
     <a-form :model="dataModel" autocomplete="off" @finish="onFinish">
-      <h1>关联企业信息</h1>
+      <h1>岗位基础信息</h1>
       <a-row justify="start" :gutter="24" >
         <a-col flex="800px">
           <a-form-item label="企业名称" :label-col="{ span: 3}"
@@ -15,7 +15,7 @@
           </a-form-item>
         </a-col>
       </a-row>
-      <h1>岗位基础信息</h1>
+
       <a-row justify="start">
         <a-col flex="520px">
           <a-form-item label="岗位名称" :label-col="{ span: 5 }"

+ 1 - 0
vue/src/views/system/users/updatePassword.vue

@@ -94,6 +94,7 @@ export default defineComponent({
     const {validate, validateInfos} = useForm(dataModel, rulesRef);
 
     const show = (userID: any, userName: any, loginID: any) => {
+      console.log(userID, userName, loginID)
       visible.value = true;
       dataModel.value.userID = userID;
       dataModel.value.userName = userName;