server_commit
This commit is contained in:
@@ -79,7 +79,7 @@ public class SysWechatController {
|
||||
@Ok("re")
|
||||
public String oauth(@Param("redirectUrl") String redirectUrl) {
|
||||
// String redirect = Globals.AppDomain + "platform/wechat/getCode";
|
||||
String redirect = "http://zhgh.hrbnu.edu.cn/platform/wechat/getCode";
|
||||
String redirect = "https://zhgh.hrbnu.edu.cn/platform/wechat/getCode";
|
||||
if (StrUtil.isNotBlank(redirectUrl)) {
|
||||
redirect += "?redirect=" + redirectUrl;
|
||||
}
|
||||
@@ -129,8 +129,10 @@ public class SysWechatController {
|
||||
log.error(">>> openid 加密失败:{}", openid);
|
||||
}
|
||||
try {
|
||||
return ">>:" + Globals.AppDomain + "mobile/login?state=" + URLEncoder.encode(encrypt, "UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
// return ">>:" + Globals.AppDomain + "mobile/login?state=" + URLEncoder.encode(encrypt, "UTF-8");
|
||||
// return ">>:" + "http://zhgh.hrbnu.edu.cn/mobile/login?state=" + URLEncoder.encode(encrypt, "UTF-8");
|
||||
return ">>:" + "https://zhgh.hrbnu.edu.cn/mobile/login?state=" + openid;
|
||||
} catch (Exception e) {
|
||||
log.error(">>> 请求转发失败:{}", openid);
|
||||
}
|
||||
}
|
||||
@@ -142,16 +144,16 @@ public class SysWechatController {
|
||||
if (StrUtil.isNotBlank(redirect)) {
|
||||
return ">>:" + redirect;
|
||||
}
|
||||
return ">>:" + Globals.AppDomain + "/mobile/index";
|
||||
return ">>:" + "https://zhgh.hrbnu.edu.cn/mobile/index";
|
||||
} catch (LockedAccountException e) {
|
||||
request.setAttribute("errMsg", "帐号被锁定,请5分钟后再试");
|
||||
return ">>:" + Globals.AppDomain + "/platform/home/LockedAccountError";
|
||||
return ">>:" + "https://zhgh.hrbnu.edu.cn/platform/home/LockedAccountError";
|
||||
} catch (UnknownAccountException e) {
|
||||
request.setAttribute("errMsg", "系统中没有此用户");
|
||||
return ">>:" + Globals.AppDomain + "/error/UnknownAccountError.html";
|
||||
return ">>:" + "https://zhgh.hrbnu.edu.cn/error/UnknownAccountError.html";
|
||||
} catch (Exception e) {
|
||||
request.setAttribute("errMsg", "用户名或密码错误");
|
||||
return ">>:" + Globals.AppDomain + "/error/500.html";
|
||||
return ">>:" + "https://zhgh.hrbnu.edu.cn/error/500.html";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,8 +166,8 @@ public class SysWechatController {
|
||||
System.out.println(state);
|
||||
int errCount = NumberUtils.toInt(Strings.sNull(SecurityUtils.getSubject().getSession(true).getAttribute("platformErrCount")));
|
||||
try {
|
||||
String decrypt = weChatUtils.decrypt(state);
|
||||
loginUtil.doLogin(token, request, session, LoginUtil.LoginOrigin.WEI_XIN, decrypt);
|
||||
// String decrypt = weChatUtils.decrypt(state);
|
||||
loginUtil.doLogin(token, request, session, LoginUtil.LoginOrigin.WEI_XIN, state);
|
||||
return Result.success("login.success");
|
||||
} catch (CaptchaIncorrectException e) {
|
||||
return Result.error(1, "login.error.captcha");
|
||||
|
||||
+14
-5
@@ -86,7 +86,8 @@ public class HealthCheckupListController {
|
||||
@Param(value = "unitId", required = false) String unitId,
|
||||
@Param(value = "isChoose", required = false) Integer isChoose,
|
||||
@Param(value = "threeUnitId", required = false) String threeUnitId,
|
||||
@Param(value = "unionGroupId", required = false) String unionGroupId) {
|
||||
@Param(value = "unionGroupId", required = false) String unionGroupId,
|
||||
@Param(value = "isHomeGo", required = false) String isHomeGo) {
|
||||
List<HealthCheckupUnionConfirm> confirms = dao.query(HealthCheckupUnionConfirm.class, Cnd.where("projectId", "=", projectId));
|
||||
|
||||
HealthCheckupProject project = healthCheckupProjectService.findOne(projectId);
|
||||
@@ -113,15 +114,22 @@ public class HealthCheckupListController {
|
||||
AND hcus.projectId = @projectId
|
||||
$condition
|
||||
""").setParam("projectId", projectId);
|
||||
sql.setCondition(cnd);
|
||||
cnd.andEX("hcu.projectId", "=", projectId);
|
||||
cnd.andEX("hcu.unionId", "=", unionId);
|
||||
cnd.andEX("hcu.unitId", "=", unitId);
|
||||
cnd.andEX("hcu.unionGroupId", "=", unionGroupId);
|
||||
cnd.andEX("hcu.threeUnitId", "=", threeUnitId);
|
||||
|
||||
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
||||
cnd.andEX("hcu.unionId", "=", Vi.getUnionId());
|
||||
if (StrUtil.isNotBlank(isHomeGo)) {
|
||||
cnd.and("hcu.userId", "=", ShiroUtil.getUserId());
|
||||
} else {
|
||||
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
||||
if (!ShiroUtil.hasAnyRoles("H04,gh12")) {
|
||||
cnd.and("hcu.userId", "=", ShiroUtil.getUserId());
|
||||
} else {
|
||||
cnd.and("hcu.unionId", "=", Vi.getUnionId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (isChoose) {
|
||||
@@ -138,6 +146,7 @@ public class HealthCheckupListController {
|
||||
} else {
|
||||
cnd.asc("hcu.sort").desc("hcus.selectTime");
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = healthCheckupProjectService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
List<NutMap> paginationList = pagination.getList();
|
||||
|
||||
@@ -372,7 +381,7 @@ public class HealthCheckupListController {
|
||||
cnd.and(seg);
|
||||
}
|
||||
cnd.groupBy("hcu.userId");
|
||||
cnd.desc("hcus.selectTime").asc("hcu.unitId");
|
||||
cnd.asc("hcu.sort").desc("hcus.selectTime").asc("hcu.unitId");
|
||||
|
||||
List<NutMap> resultList = healthCheckupProjectService.listMap(sql);
|
||||
|
||||
|
||||
+1
@@ -37,6 +37,7 @@ public class HealthCheckupSingleServiceImpl extends ViServiceImpl<HealthCheckupP
|
||||
uc.unionId AS id,
|
||||
uc.unionName AS unionname,
|
||||
uc.unionCode AS unioncode,
|
||||
uc.isAudit,
|
||||
SUM(IF(u.id is not null,1,0)) AS sumCount
|
||||
FROM
|
||||
health_checkup_union_confirm uc
|
||||
|
||||
@@ -180,7 +180,11 @@ public class mobileLoginController {
|
||||
@Ok("re")
|
||||
public String clearWxOpenId() {
|
||||
try {
|
||||
sysUserService.update(Chain.make("openId", null), Cnd.where("id", "=", ShiroUtil.getPrincipalProperty("id")));
|
||||
Sys_user sourceUser = sysUserService.dao().fetch(Sys_user.class, Cnd.where("id", "=", ShiroUtil.getUserId()));
|
||||
sysUserService.update(Chain.make("openId", null)
|
||||
.add("password",PwdUtil.doSm4CbcEncrypt(sourceUser.getLoginname()))
|
||||
.add("weAppLoginCount", 0),
|
||||
Cnd.where("id", "=", ShiroUtil.getUserId()));
|
||||
Subject subject = SecurityUtils.getSubject();
|
||||
Sys_user user = (Sys_user) subject.getPrincipal();
|
||||
subject.logout();
|
||||
|
||||
@@ -673,8 +673,8 @@ public class WelfareSingleServiceImpl extends ViServiceImpl<WelfareProject> impl
|
||||
SELECT
|
||||
u.loginname,
|
||||
u.username,
|
||||
IF(staffUnion.id IS NOT NULL, staffUnion.id, vwl.welfareUnitId) AS unionid,
|
||||
IF(staffUnion.id IS NOT NULL, staffUnion.unionname, gh.unionname) AS unionname,
|
||||
vwl.welfareUnitId AS unionid,
|
||||
gh.unionname AS unionname,
|
||||
vwl.welfareSecondLevelUnitId as unitid,
|
||||
dw.`name` as unitname,
|
||||
wpus.userSign,
|
||||
@@ -682,8 +682,6 @@ public class WelfareSingleServiceImpl extends ViServiceImpl<WelfareProject> impl
|
||||
wpus.selectNum
|
||||
FROM
|
||||
welfare_list vwl
|
||||
LEFT JOIN special_staff staff ON staff.userId = vwl.userId
|
||||
LEFT JOIN sys_union staffUnion ON staff.unionRelationUnionId = staffUnion.id
|
||||
LEFT JOIN sys_user u ON u.id = vwl.userId
|
||||
LEFT JOIN sys_union gh ON gh.id = vwl.welfareUnitId
|
||||
LEFT JOIN sys_unit dw ON dw.id = vwl.welfareSecondLevelUnitId
|
||||
@@ -691,7 +689,7 @@ public class WelfareSingleServiceImpl extends ViServiceImpl<WelfareProject> impl
|
||||
AND wpus.welfareId = @projectId
|
||||
WHERE
|
||||
projectId = @projectId
|
||||
AND (vwl.welfareUnitId = @unionId OR staffUnion.id = @unionId)
|
||||
AND vwl.welfareUnitId = @unionId
|
||||
order by vwl.welfareUnitId,vwl.welfareSecondLevelUnitId
|
||||
""");
|
||||
|
||||
|
||||
@@ -181,26 +181,26 @@ layout("/mobile/platform.html"){
|
||||
v-model="formData.username"
|
||||
:rules="[{ required: true }]"
|
||||
></van-field>
|
||||
<van-field
|
||||
required
|
||||
readonly
|
||||
label="性别"
|
||||
name="sex"
|
||||
placeholder="输入身份证后自动匹配"
|
||||
:rules="[{ required: true }]"
|
||||
v-model="formData.sex"
|
||||
></van-field>
|
||||
<van-field
|
||||
label="年龄"
|
||||
name="age"
|
||||
required
|
||||
readonly
|
||||
placeholder="输入身份证后自动计算"
|
||||
type="digit"
|
||||
:rules="[{ required: true }]"
|
||||
v-model="formData.age"
|
||||
></van-field>
|
||||
<span style="font-size: 13px; margin-left: 1.4vh; color: #bc2a25">输入身份证后自动匹配性别和年龄</span>
|
||||
<!-- <van-field-->
|
||||
<!-- required-->
|
||||
<!-- readonly-->
|
||||
<!-- label="性别"-->
|
||||
<!-- name="sex"-->
|
||||
<!-- placeholder="输入身份证后自动匹配"-->
|
||||
<!-- :rules="[{ required: true }]"-->
|
||||
<!-- v-model="formData.sex"-->
|
||||
<!-- ></van-field>-->
|
||||
<!-- <van-field-->
|
||||
<!-- label="年龄"-->
|
||||
<!-- name="age"-->
|
||||
<!-- required-->
|
||||
<!-- readonly-->
|
||||
<!-- placeholder="输入身份证后自动计算"-->
|
||||
<!-- type="digit"-->
|
||||
<!-- :rules="[{ required: true }]"-->
|
||||
<!-- v-model="formData.age"-->
|
||||
<!-- ></van-field>-->
|
||||
<!-- <span style="font-size: 13px; margin-left: 1.4vh; color: #bc2a25">输入身份证后自动匹配性别和年龄</span>-->
|
||||
<van-field
|
||||
label="联系方式"
|
||||
name="mobile"
|
||||
|
||||
@@ -691,11 +691,11 @@ layout("/mobile/platform.html"){
|
||||
},
|
||||
// 获取微信端的登录次数
|
||||
async getWeAppLoginCount() {
|
||||
const resp = await $.post("/mobile/login/checkIsFirstLogin")
|
||||
this.formData.isFirstLogin = resp.code !== 0
|
||||
if (this.formData.isFirstLogin) {
|
||||
this.updatePwdShow = true
|
||||
}
|
||||
// const resp = await $.post("/mobile/login/checkIsFirstLogin")
|
||||
// this.formData.isFirstLogin = resp.code !== 0
|
||||
// if (this.formData.isFirstLogin) {
|
||||
// this.updatePwdShow = true
|
||||
// }
|
||||
}
|
||||
},
|
||||
beforeMount() {
|
||||
|
||||
@@ -30,76 +30,80 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">职工信息:</div>
|
||||
<div class="search-item-option">
|
||||
<el-input
|
||||
@keyup.enter.native="doSearch"
|
||||
clearable
|
||||
placeholder="请输入内容"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.searchKeyword"
|
||||
>
|
||||
<el-select slot="prepend" style="width: 80px" v-model="pageForm.searchName">
|
||||
<el-option label="姓名" value="hcu.username"></el-option>
|
||||
<el-option label="工号" value="hcu.loginname"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select
|
||||
@change="flushUnits();doSearch()"
|
||||
@clear="flushUnits"
|
||||
clearable
|
||||
filterable="true"
|
||||
placeholder="请选择所属工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId"
|
||||
>
|
||||
<el-option :label="item.unionname" :value="item.id" v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select clearable filterable placeholder="所属单位" style="width: 100%" v-model="pageForm.unitId">
|
||||
<el-option :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template v-if="isThreeUnit">
|
||||
<template v-if="!pageForm.isHomeGo">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
<div class="search-item-label">职工信息:</div>
|
||||
<div class="search-item-option">
|
||||
<el-input
|
||||
@keyup.enter.native="doSearch"
|
||||
clearable
|
||||
placeholder="请输入内容"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.searchKeyword"
|
||||
>
|
||||
<el-select slot="prepend" style="width: 80px" v-model="pageForm.searchName">
|
||||
<el-option label="姓名" value="hcu.username"></el-option>
|
||||
<el-option label="工号" value="hcu.loginname"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select
|
||||
@change="getThreeUnits"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionGroupId"
|
||||
@change="flushUnits();doSearch()"
|
||||
@clear="flushUnits"
|
||||
clearable
|
||||
filterable="true"
|
||||
placeholder="请选择所属工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId"
|
||||
>
|
||||
<el-option :key="item.id" :label="item.groupName" :value="item.id" v-for="item in unionGroups"></el-option>
|
||||
<el-option :label="item.unionname" :value="item.id" v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%" v-model="pageForm.threeUnitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in threeUnits"></el-option>
|
||||
<el-select clearable filterable placeholder="所属单位" style="width: 100%" v-model="pageForm.unitId">
|
||||
<el-option :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template v-if="isThreeUnit">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select
|
||||
@change="getThreeUnits"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionGroupId"
|
||||
>
|
||||
<el-option :key="item.id" :label="item.groupName" :value="item.id" v-for="item in unionGroups"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%" v-model="pageForm.threeUnitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in threeUnits"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<div class="search-query">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索</el-button>
|
||||
</div>
|
||||
@@ -109,16 +113,18 @@ layout("/layouts/platform.html"){
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="体检项目">
|
||||
<template #func>
|
||||
<el-radio-group @change="doSearch" class="mr10" size="small" v-model="pageForm.isChoose">
|
||||
<el-radio-button :label="0">全部</el-radio-button>
|
||||
<el-radio-button :label="1">已选择</el-radio-button>
|
||||
<el-radio-button :label="2">未选择</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-button type="primary" size="small" @click="openImport">导入名单</el-button>
|
||||
<el-button type="primary" size="small" @click="doExport">导出</el-button>
|
||||
<el-button :disabled="!pageForm.projectId" type="primary" size="small" @click="doAudit(true)">确认名单</el-button>
|
||||
<!-- 取消确认 -->
|
||||
<el-button :disabled="!pageForm.projectId" type="danger" size="small" @click="doAudit(false)">取消确认</el-button>
|
||||
<template v-if="!pageForm.isHomeGo && ${@shiro.hasRole('sysadmin')||@shiro.hasRole('H04')||@shiro.hasRole('gh12')}">
|
||||
<el-radio-group @change="doSearch" class="mr10" size="small" v-model="pageForm.isChoose">
|
||||
<el-radio-button :label="0">全部</el-radio-button>
|
||||
<el-radio-button :label="1">已选择</el-radio-button>
|
||||
<el-radio-button :label="2">未选择</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-button type="primary" size="small" @click="openImport" v-if="${@shiro.hasRole('sysadmin')}">导入名单</el-button>
|
||||
<el-button type="primary" size="small" @click="doExport">导出</el-button>
|
||||
<el-button :disabled="!pageForm.projectId" type="primary" size="small" @click="doAudit(true)">确认名单</el-button>
|
||||
<!-- 取消确认 -->
|
||||
<el-button :disabled="!pageForm.projectId" type="danger" size="small" @click="doAudit(false)">取消确认</el-button>
|
||||
</template>
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
@@ -212,7 +218,7 @@ layout("/layouts/platform.html"){
|
||||
show-word-limit
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="套餐" prop="subjectId">
|
||||
<el-form-item label="医院" prop="subjectId">
|
||||
<el-select style="width: 100%" v-model="editHealthCheckupData.subjectId">
|
||||
<el-option :key="item.id" :label="item.optionName" :value="item.id" v-for="item in projectSubjectOptions"></el-option>
|
||||
</el-select>
|
||||
@@ -302,7 +308,8 @@ layout("/layouts/platform.html"){
|
||||
searchKeyword: "",
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
isChoose: 0
|
||||
isChoose: 0,
|
||||
isHomeGo: ""
|
||||
},
|
||||
threeUnits: [],
|
||||
unionGroups: [],
|
||||
@@ -621,7 +628,9 @@ layout("/layouts/platform.html"){
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')||@shiro.hasRole('H03')}" === "true") {
|
||||
this.units = await getUnits(this.pageForm.unionId)
|
||||
} else {
|
||||
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
const unionId = "${@shiro.getPrincipalProperty('unit').getUnionid()}"
|
||||
this.units = await getUnits(unionId)
|
||||
this.pageForm.unionId = unionId
|
||||
}
|
||||
this.unionGroups = await unionGroupsByUnionId(this.pageForm.unionId)
|
||||
if ("${@shiro.hasRole('ghxzzz')}" === "true") {
|
||||
@@ -724,6 +733,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
}
|
||||
this.pageForm.isHomeGo = GetQueryString("isHomeGo")
|
||||
this.unions = await getUnions()
|
||||
this.flushUnits()
|
||||
await this.yearChange()
|
||||
|
||||
@@ -60,7 +60,7 @@ const activity = {
|
||||
} else if (item.url) {
|
||||
this.$refs.openQRCode.openCode(item.url, "该活动只支持手机端报名,请使用手机扫描二维码报名!")
|
||||
} else {
|
||||
this.$message.warning("该活动不支持")
|
||||
this.$message.warning("该活动不支持,请在手机上选择!")
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
>
|
||||
<el-form-item prop="username">
|
||||
<el-input
|
||||
placeholder="账号或手机号码"
|
||||
placeholder="请输入工号"
|
||||
prefix-icon="el-icon-user"
|
||||
type="text"
|
||||
v-model="loginForm.username"
|
||||
@@ -187,7 +187,7 @@
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
@keyup.enter.native="doLogin"
|
||||
placeholder="密码"
|
||||
placeholder="请输入密码"
|
||||
prefix-icon="el-icon-lock"
|
||||
type="password"
|
||||
v-model="loginForm.password"
|
||||
|
||||
Reference in New Issue
Block a user