Преглед изворни кода

feat: 求职人员更新绑定

zhangying пре 9 месеци
родитељ
комит
81c2e4c7c7

+ 14 - 0
h5app/src/api/jobUserInfo/index.ts

@@ -114,3 +114,17 @@ export function getHuntPostList(data: any) {
         },
     );
 }
+
+export function editOpenID(data: any) {
+    return request(
+        {
+            url: "jobUserService/jobUser/editOpenId",
+            method: 'post',
+            data: data
+        },
+        {
+            isNew: true,
+            errorMsg: '提交失败!'
+        },
+    );
+}

+ 5 - 0
h5app/src/router/index.ts

@@ -303,6 +303,11 @@ const routes: Array<RouteRecordRaw> = [
         name: 'apkDownLoad',
         component: () => import('@/views/pages/components/apkDownLoad.vue'),
     },
+    {
+        path: '/editOpenID',
+        name: "editOpenID",
+        component: () => import('@/views/pages/components/openIDEdit.vue'),
+    },
     {
         path: '/resetpassword',
         component: ResetPassword

+ 141 - 0
h5app/src/views/pages/components/openIDEdit.vue

@@ -0,0 +1,141 @@
+<template>
+  <ion-page>
+    <ion-content>
+      <ion-content v-if="isShowForm">
+        <form autocomplete="off">
+          <div class="bw-vue-form">
+            <div class="form-title">重新绑定</div>
+            <div class="form-input">
+              <ion-label>姓名</ion-label>
+              <ion-input v-model="dataModel.name" placeholder="请输入姓名"></ion-input>
+            </div>
+            <div class="form-input">
+              <ion-label>身份证号</ion-label>
+              <ion-input v-model="dataModel.identityNumber" placeholder="请输入身份证号"></ion-input>
+            </div>
+            <div class="form-input">
+              <ion-label>OpenID</ion-label>
+              <ion-input readonly v-model="openId"></ion-input>
+            </div>
+          </div>
+        </form>
+        <ion-button style="width: 100%;" @click="subClick">重新绑定</ion-button>
+      </ion-content>
+      <ion-content v-if="!isShowForm" class="qr_content">
+        <div class="user_qrcode"
+             style="height: 100vh;width: 100vw; display: flex; align-items: center; justify-content: center">
+          <div class="qr_item" style="display: flex; justify-content: center;flex-wrap: wrap">
+            <img src="@/assets/icon/wxQrcode.jpg" :style="imgStyle">
+            <br/>
+            <p style="width: 100%; text-align: center">关注公众号</p>
+          </div>
+        </div>
+      </ion-content>
+    </ion-content>
+    <ion-alert
+        :is-open="alertingInfo"
+        :header="infoAlterData.title"
+        :message="infoAlterData.message"
+        :buttons="infoAlertButtons"
+        @didDismiss="setInfoAlertOpen(false)"
+    ></ion-alert>
+    <ion-loading
+        :is-open="loadingFirm"
+        message="更新中..."
+        @didDismiss="setInfoLoadingOpen(false)">
+    </ion-loading>
+  </ion-page>
+</template>
+
+<script setup lang="ts">
+import {onMounted, reactive, ref} from "vue";
+import {getUrlParams} from "@/utils/urlUtils";
+import {onIonViewDidEnter} from "@ionic/vue";
+import {editOpenID} from "@/api/jobUserInfo";
+
+const openId = ref("");
+const urlParams = getUrlParams();
+
+// 信息弹窗内容
+const infoAlterData = reactive({
+  title: "",
+  message: ""
+});
+const alertingInfo = ref(false);
+const loadingFirm = ref(false);
+const infoAlertButtons = [
+  {
+    text: '确定',
+    role: 'confirm',
+    handler: () => {
+      setInfoAlertOpen(false);
+    },
+  },
+];
+const dataModel = reactive({
+  name: "",
+  identityNumber: "",
+  openID: ""
+})
+// 是否显示表单
+const isShowForm = ref(true);
+const imgStyle = ref({
+  width: '0px',
+  height: '0px',
+});
+
+// 按页面大小调整二维码图标大小
+const updateBrowserWidth = () => {
+  const browserWidth = window.innerWidth;
+  imgStyle.value.width = (browserWidth - 30) / 1.5 + 'px';
+  imgStyle.value.height = (browserWidth - 30) / 1.5 + 'px';
+}
+
+// 修改提交
+function subClick() {
+  if (!dataModel.name || !dataModel.identityNumber) {
+    return;
+  }
+  setInfoLoadingOpen(true);
+  editOpenID({...dataModel, openId: openId.value}).then((result: any) => {
+    infoAlterData.title = '提示';
+    if (result > 0) {
+      infoAlterData.message = '更新成功!';
+      isShowForm.value = false;
+      setInfoAlertOpen(true);
+    } else {
+      infoAlterData.message = '更新失败,请检查姓名与身份证是否正确!';
+      setInfoAlertOpen(true);
+    }
+  }).finally(() => {
+    setInfoLoadingOpen(false);
+  })
+}
+
+// 信息弹窗确定事件
+function setInfoAlertOpen(value: boolean) {
+  alertingInfo.value = value;
+}
+
+function setInfoLoadingOpen(value: boolean) {
+  loadingFirm.value = value;
+}
+
+// 设置初始浏览器宽度
+updateBrowserWidth();
+// 监听窗口大小变化
+window.addEventListener('resize', updateBrowserWidth);
+
+onIonViewDidEnter(() => {
+  openId.value = urlParams["openId"];
+});
+
+onMounted(() => {
+  const urlParams = getUrlParams();
+  openId.value = urlParams["openId"];
+})
+</script>
+
+<style scoped>
+
+</style>

+ 1 - 0
src/main/java/com/hz/employmentsite/config/WebConfiguration.java

@@ -107,6 +107,7 @@ public class WebConfiguration implements WebMvcConfigurer {
         excludePath.add("/api/jobUserService/experience/save");
         excludePath.add("/api/jobUserService/jobHunt/save");
         excludePath.add("/api/jobUserService/jobUser/baseInfoSave");
+        excludePath.add("/api/jobUserService/jobUser/editOpenId"); // 更新求职人员的openID
 
 
         excludePath.add("/api/wx/**");

+ 5 - 0
src/main/java/com/hz/employmentsite/controller/jobUserManager/JobUserController.java

@@ -232,5 +232,10 @@ public class JobUserController {
         return RespGenerstor.success(result);
     }
 
+    @PostMapping("/editOpenId")
+    public BaseResponse editOpenID(@RequestBody JobUserVo data){
+        int result = jobuserService.editOpenID(data);
+        return RespGenerstor.success(result);
+    }
 
 }

+ 17 - 0
src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobUserServiceImpl.java

@@ -919,4 +919,21 @@ public class JobUserServiceImpl implements JobUserService {
         }
         return result;
     }
+
+    @Override
+    public int editOpenID(JobUserVo data) {
+        PcJobuserExample example = new PcJobuserExample();
+        example.or().andNameEqualTo(data.getName()).andIdentityNumberEqualTo(desUtils.encoderText(data.getIdentityNumber()));
+        List<PcJobuser> pcJobusers = pcJobuserMapper.selectByExample(example);
+        if (!pcJobusers.isEmpty()){
+            PcJobuser pcJobuser = pcJobusers.get(0);
+            // 已经OpenID则不修改
+            if (!stringUtils.IsNullOrEmpty(pcJobuser.getOpenId())){
+                return 1;
+            }
+            pcJobuser.setOpenId(data.openId);
+            return pcJobuserMapper.updateByPrimaryKey(pcJobuser);
+        }
+        return 0;
+    }
 }

+ 2 - 0
src/main/java/com/hz/employmentsite/services/service/jobUserManager/JobUserService.java

@@ -44,4 +44,6 @@ public interface JobUserService {
     PageInfo<JobUserMapVo> getDataMapList(int pageIndex, int pageSize, Integer keyTypeValue,
                                           String regionCode, String labelID, Integer minAge,
                                           Integer maxAge, String jobUserName);
+
+    int editOpenID(JobUserVo data);
 }