diff --git a/admin/src/config/index.ts b/admin/src/config/index.ts index 1e5e9bdf..6c4c7383 100644 --- a/admin/src/config/index.ts +++ b/admin/src/config/index.ts @@ -2,7 +2,7 @@ const config = { terminal: 1, //终端 title: '后台管理系统', //网站默认标题 version: '1.9.1', //版本号 - baseUrl: `${import.meta.env.VITE_APP_BASE_URL || 'http://192.168.123.111:8082'}/`, //请求接口域名 localhost + baseUrl: `${import.meta.env.VITE_APP_BASE_URL || 'http://localhost:8082'}/`, //请求接口域名 localhost urlPrefix: 'adminapi', //请求默认前缀 timeout: 10 * 1000 //请求超时时长 } diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/IndexServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/IndexServiceImpl.java index 1e007ce9..ad10ea10 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/IndexServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/IndexServiceImpl.java @@ -48,7 +48,7 @@ public class IndexServiceImpl implements IIndexService { console.put("version", version); // 招生统计数据 - Map enrollmentStats = enrollmentStaticService.buildEnrollmentStats(); + Map enrollmentStats = enrollmentStaticService.buildEnrollmentStats(null); console.put("today", enrollmentStats); // 招生趋势数据(带筛选条件) diff --git a/server/like-common/src/main/java/com/mdd/common/entity/admin/AdminJobs.java b/server/like-common/src/main/java/com/mdd/common/entity/admin/AdminJobs.java index 613f843f..21e3a420 100644 --- a/server/like-common/src/main/java/com/mdd/common/entity/admin/AdminJobs.java +++ b/server/like-common/src/main/java/com/mdd/common/entity/admin/AdminJobs.java @@ -10,7 +10,7 @@ import java.io.Serializable; @Data @ApiModel("岗位关联表实体") -@TableName("la-admin_jobs") +@TableName("la_admin_jobs") public class AdminJobs implements Serializable { private static final long serialVersionUID = 1L; diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/TeacherServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/TeacherServiceImpl.java index fe1eb659..aa0c4db0 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/TeacherServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/TeacherServiceImpl.java @@ -88,7 +88,9 @@ public class TeacherServiceImpl extends ServiceImpl impl @Override public AjaxResult getTeacherInfo(TeacherSearchValidate searchValidate) { - if (searchValidate.getTeacherId() == null && StringUtils.isBlank(searchValidate.getInvitationCode())) { + if (searchValidate.getTeacherId() == null + && StringUtils.isBlank(searchValidate.getInvitationCode()) + && StringUtils.isBlank(searchValidate.getTeacherCode())) { return AjaxResult.failed("教师参数缺失!"); } @@ -99,6 +101,9 @@ public class TeacherServiceImpl extends ServiceImpl impl if (StringUtils.isNotBlank(searchValidate.getInvitationCode())) { queryWrapper.eq("invitation_code", searchValidate.getInvitationCode()); } + if (StringUtils.isNotBlank(searchValidate.getTeacherCode())) { + queryWrapper.eq("teacher_code", searchValidate.getTeacherCode()); + } Teacher teacher = teacherMapper.selectOne(queryWrapper.last("limit 1")); if (teacher == null) { diff --git a/uniapp/src/config/index.ts b/uniapp/src/config/index.ts index e006df85..2dc7f2cc 100644 --- a/uniapp/src/config/index.ts +++ b/uniapp/src/config/index.ts @@ -6,7 +6,7 @@ const envBaseUrl = import.meta.env.VITE_APP_BASE_URL || '' //#ifdef MP-WEIXIN // 微信小程序:如果环境变量为空,使用默认开发地址 -let baseUrl = envBaseUrl ? `${envBaseUrl}/` : 'http://192.168.123.123:8084/' +let baseUrl = envBaseUrl ? `${envBaseUrl}/` : 'http://8.153.111.6:8084/' //#endif //#ifndef MP-WEIXIN diff --git a/uniapp/src/pages/index/index.vue b/uniapp/src/pages/index/index.vue index b25bf66e..ff8c7704 100644 --- a/uniapp/src/pages/index/index.vue +++ b/uniapp/src/pages/index/index.vue @@ -133,6 +133,7 @@ import { useUserStore } from '@/stores/user' import { storeToRefs } from 'pinia' import { getAliyunImageUrl } from '@/utils/imageUtils' import { ensureStorageConfig } from '@/utils/configUtils' +import cache from '@/utils/cache' // #ifdef MP import MpPrivacyPopup from './component/mp-privacy-popup.vue' @@ -185,19 +186,15 @@ const getStats = async () => { } try { - // 先获取教师信息,获取 teacherId let teacherId: number | undefined = undefined - // 尝试从 userInfo 中获取 if (userInfo.value?.teacherId) { teacherId = userInfo.value.teacherId - } else { - // 如果 userInfo 中没有,调用 getTeacherInfo 获取 + } else if (userInfo.value?.account) { try { - const teacherRes = await getTeacherInfo({ id: userInfo.value.id }) + const teacherRes = await getTeacherInfo({ teacher_code: userInfo.value.account }) if (teacherRes && teacherRes.code === 1 && teacherRes.data) { - teacherId = teacherRes.data.teacherId - // 更新 userInfo + teacherId = teacherRes.data.teacher_id userInfo.value.teacherId = teacherId } } catch (error) { @@ -208,7 +205,6 @@ const getStats = async () => { if (teacherId) { console.log('首页获取招生统计,teacherId:', teacherId) const res = await getEnrollmentStatistical(teacherId) - // 接口直接返回数据对象,没有 code 包装 if (res && res.total_enroll_count !== undefined) { stats.value = { total: res.total_enroll_count, @@ -279,23 +275,32 @@ onLoad((options: any) => { if (options.scene) { const invitationCode = decodeURIComponent(options.scene) - if (isLogin.value) { - uni.navigateTo({ - url: `/pages/pre_registration/pre_registration?invitationCode=${invitationCode}` - }) - } else { - uni.navigateTo({ - url: `/pages/login/login?invitationCode=${invitationCode}` - }) - } + cache.set('INVITATION_CODE', invitationCode) } }) onShow(async () => { - // 等待登录状态确定 await new Promise(resolve => setTimeout(resolve, 100)) - - // 如果没有登录,跳过 + + const invitationCode = cache.get('INVITATION_CODE') + if (invitationCode) { + console.log('首页 onShow 检测到邀请码:', invitationCode) + cache.remove('INVITATION_CODE') + if (isLogin.value) { + // 已登录,直接跳转到预报名页面,带上邀请码参数 + uni.navigateTo({ + url: `/pages/pre_registration/pre_registration?invitationCode=${invitationCode}` + }) + } else { + // 未登录,保留在缓存中,跳转到登录页面 + cache.set('INVITATION_CODE', invitationCode) + uni.navigateTo({ + url: '/pages/login/login' + }) + } + return + } + if (!isLogin.value) { return } diff --git a/uniapp/src/pages/login/login.vue b/uniapp/src/pages/login/login.vue index db287565..50b76c30 100644 --- a/uniapp/src/pages/login/login.vue +++ b/uniapp/src/pages/login/login.vue @@ -391,8 +391,10 @@ const loginHandle = async (data: any) => { uni.hideLoading() const invitationCode = cache.get('INVITATION_CODE') if (invitationCode) { - cache.remove('INVITATION_CODE') - router.reLaunch(`/pages/pre_registration/pre_registration?invitationCode=${invitationCode}`) + console.log('登录后检测到邀请码,跳转到预报名页面:', invitationCode) + uni.reLaunch({ + url: `/pages/pre_registration/pre_registration?invitationCode=${invitationCode}` + }) cache.remove(BACK_URL) return } diff --git a/uniapp/src/pages/pre_registration/pre_registration.vue b/uniapp/src/pages/pre_registration/pre_registration.vue index 8920cadf..8200e3ad 100644 --- a/uniapp/src/pages/pre_registration/pre_registration.vue +++ b/uniapp/src/pages/pre_registration/pre_registration.vue @@ -193,6 +193,7 @@ import { reactive, ref, onMounted, watch, toRaw } from 'vue' import { onLoad } from '@dcloudio/uni-app' import { useRouter } from 'uniapp-router-next' import { getMajorList, addStudent, getTeacherInfo } from '@/api/app' +import cache from '@/utils/cache' const router = useRouter() @@ -237,11 +238,19 @@ const getTeacherData = async (teacherId: string) => { console.log('teacherId:', teacherId) try { console.log('开始调用 getTeacherInfo...') - const res = await getTeacherInfo({ teacherId: Number(teacherId) }) - console.log('getTeacherInfo 返回:', res) + const res = await getTeacherInfo({ teacher_id: Number(teacherId) }) + console.log('getTeacherInfo 完整返回:', JSON.stringify(res)) + console.log('getTeacherInfo res.code:', res.code) + console.log('getTeacherInfo res.data:', res.data) if (res.code === 1 && res.data) { + console.log('res.data.teacher_name:', res.data.teacher_name) + console.log('res.data.teacher_id:', res.data.teacher_id) formData.teacher = res.data.teacher_name formData.recruitmentTeacherId = res.data.teacher_id + console.log('赋值后 formData.teacher:', formData.teacher) + console.log('赋值后 formData.recruitmentTeacherId:', formData.recruitmentTeacherId) + } else { + console.log('res.code !== 1 或 res.data 为空') } } catch (error) { console.error('获取老师信息失败:', error) @@ -252,11 +261,20 @@ const getTeacherDataByInvitationCode = async (invitationCode: string) => { console.log('=== getTeacherDataByInvitationCode 被调用 ===') console.log('invitationCode:', invitationCode) try { - const res = await getTeacherInfo({ invitationCode: invitationCode }) - console.log('getTeacherInfo 返回:', res) + console.log('开始调用 getTeacherInfo...') + const res = await getTeacherInfo({ invitation_code: invitationCode }) + console.log('getTeacherInfo 完整返回:', JSON.stringify(res)) + console.log('getTeacherInfo res.code:', res.code) + console.log('getTeacherInfo res.data:', res.data) if (res.code === 1 && res.data) { + console.log('res.data.teacher_name:', res.data.teacher_name) + console.log('res.data.teacher_id:', res.data.teacher_id) formData.teacher = res.data.teacher_name formData.recruitmentTeacherId = res.data.teacher_id + console.log('赋值后 formData.teacher:', formData.teacher) + console.log('赋值后 formData.recruitmentTeacherId:', formData.recruitmentTeacherId) + } else { + console.log('res.code !== 1 或 res.data 为空') } } catch (error) { console.error('获取老师信息失败:', error) @@ -460,13 +478,28 @@ onMounted(() => { }) onLoad((options: any) => { - console.log('=== 预报名页面 onLoad ===') + console.log('=== 预报名页面 onLoad 被触发 ===') console.log('options:', options) if (options.teacherId) { getTeacherData(options.teacherId) + } else if (options.id) { + // 二维码扫码跳转可能使用 id 参数 + getTeacherData(options.id) } else if (options.invitationCode) { getTeacherDataByInvitationCode(options.invitationCode) + } else if (options.scene) { + const invitationCode = decodeURIComponent(options.scene) + getTeacherDataByInvitationCode(invitationCode) + } else { + const cachedCode = cache.get('INVITATION_CODE') + if (cachedCode) { + console.log('从缓存中获取到 INVITATION_CODE:', cachedCode) + cache.remove('INVITATION_CODE') + getTeacherDataByInvitationCode(cachedCode) + } else { + console.log('没有获取到任何参数或缓存') + } } }) diff --git a/uniapp/src/pages/user/user.vue b/uniapp/src/pages/user/user.vue index f0433373..134124d6 100644 --- a/uniapp/src/pages/user/user.vue +++ b/uniapp/src/pages/user/user.vue @@ -465,29 +465,27 @@ onShow(async () => { if (isLogin.value && userInfo.value) { console.log('条件满足,开始获取教师信息') - console.log('userInfo.value.id:', userInfo.value.id) + console.log('userInfo.value.account:', userInfo.value.account) // 获取教师信息 let teacherIdForQrcode: number | undefined = undefined try { - console.log('准备调用 getTeacherInfo, 参数:', { id: userInfo.value.id }) - const teacherRes = await getTeacherInfo({ id: userInfo.value.id }) + console.log('准备调用 getTeacherInfo, 参数:', { teacher_code: userInfo.value.account }) + const teacherRes = await getTeacherInfo({ teacher_code: userInfo.value.account }) console.log('getTeacherInfo 返回:', teacherRes) console.log('teacherRes 类型:', typeof teacherRes) console.log('teacherRes.code:', teacherRes?.code) console.log('teacherRes.data:', teacherRes?.data) - // 后端返回格式: { code: 1, msg: '成功', data: { teacherId, teacherName, ... } } if (teacherRes && teacherRes.code === 1 && teacherRes.data) { const teacherData = teacherRes.data console.log('teacherData:', teacherData) - console.log('teacherData.teacherId:', teacherData.teacherId) - // 将教师信息合并到 userInfo - userInfo.value.teacherId = teacherData.teacherId - teacherIdForQrcode = teacherData.teacherId - currentTeacherId.value = teacherData.teacherId - console.log('设置 teacherId:', teacherData.teacherId) - console.log('教师姓名:', teacherData.teacherName) - console.log('学院:', teacherData.collegeName) - console.log('二维码URL:', teacherData.qrcodeUrl) + console.log('teacherData.teacher_id:', teacherData.teacher_id) + userInfo.value.teacherId = teacherData.teacher_id + teacherIdForQrcode = teacherData.teacher_id + currentTeacherId.value = teacherData.teacher_id + console.log('设置 teacherId:', teacherData.teacher_id) + console.log('教师姓名:', teacherData.teacher_name) + console.log('学院:', teacherData.college_name) + console.log('二维码URL:', teacherData.qrcode_url) } else { console.log('获取教师信息失败或返回格式异常:', teacherRes) } diff --git a/uniapp/src/utils/request/index.ts b/uniapp/src/utils/request/index.ts index 33b1be05..0cc42870 100644 --- a/uniapp/src/utils/request/index.ts +++ b/uniapp/src/utils/request/index.ts @@ -18,6 +18,9 @@ const requestHooks: RequestHooks = { const { urlPrefix, baseUrl, withToken, isAuth } = config options.header = options.header ?? {} + // 设置默认 Content-Type + options.header['Content-Type'] = options.header['Content-Type'] || 'application/json' + console.log('【Request拦截器】原始请求URL:', options.url) console.log('【Request拦截器】urlPrefix:', urlPrefix) console.log('【Request拦截器】baseUrl:', baseUrl)