commit
This commit is contained in:
+143
-53
@@ -2,20 +2,38 @@ package com.budwk.app.zhgh.staffmanage.member.controller.info;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.services.SysRoleService;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.dayofficework.meeting.model.MeetingInfo;
|
||||
import com.budwk.app.zhgh.dayofficework.meeting.model.MeetingTimePeriodUser;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberInfoPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberInfoService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
@@ -29,62 +47,134 @@ import org.nutz.mvc.annotation.Ok;
|
||||
@At("/platform/member/info/dataManage")
|
||||
public class MemberDataManageController {
|
||||
|
||||
@At("")
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/info/datamanage/index.html")
|
||||
public void index() {}
|
||||
@Inject
|
||||
private MemberInfoService memberInfoService;
|
||||
@Inject
|
||||
private Dao dao;
|
||||
@Inject
|
||||
private SysRoleService roleService;
|
||||
|
||||
@At("")
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/info/datamanage/index.html")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("数据管理工具")
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
public Result pageData(MemberInfoPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
id,
|
||||
loginname,
|
||||
username,
|
||||
sex,
|
||||
userState,
|
||||
personType,
|
||||
preparedBy,
|
||||
unionName,
|
||||
unitName,
|
||||
mobile
|
||||
from
|
||||
`user`
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("username", pageForm.getSearchKeyword());
|
||||
seg.orLike("loginname", pageForm.getSearchKeyword());
|
||||
cnd.and(seg);
|
||||
}
|
||||
@At
|
||||
@ApiOperation("数据管理工具")
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
public Result pageData(MemberInfoPageForm pageForm) {
|
||||
Sql sql = generateSql(pageForm, Cnd.NEW());
|
||||
Pagination pagination = memberInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
// 权限判断
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("unionId", "=", SecurityUtil.getUnionId());
|
||||
seg.or("unionId", "is", null);
|
||||
seg.or("unionId", "=", "");
|
||||
cnd.and(seg);
|
||||
} else {
|
||||
cnd.andEX("unionId", "=", pageForm.getUnionId());
|
||||
cnd.andEX("unitId", "=", pageForm.getUnitId());
|
||||
}
|
||||
@At
|
||||
@ApiOperation("根据身份证号设置出生日期")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
@SLog(tag = "会员管理-数据管理工具", msg = "根据身份证号设置出生日期")
|
||||
public Object setBirthdayByIdCard() {
|
||||
Sql sql = Sqls.create("""
|
||||
UPDATE sys_user
|
||||
SET birthday = STR_TO_DATE(SUBSTRING(idcard, 7, 8), '%Y%m%d')
|
||||
WHERE (birthday IS NULL OR birthday = '') AND length(idcard)=18
|
||||
""");
|
||||
memberInfoService.execute(sql);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
cnd.andEX("userState", "in", pageForm.getUserStates());
|
||||
cnd.andEX("preparedBy", "in", pageForm.getPreparedBys());
|
||||
cnd.andEX("personType", "in", pageForm.getPersonTypes());
|
||||
@At
|
||||
@ApiOperation("批量设置会员")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
@SLog(tag = "会员管理-数据管理工具", msg = "批量设置会员")
|
||||
public Object setMemberByCnd(MemberInfoPageForm pageForm, boolean append) {
|
||||
|
||||
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
} else {
|
||||
cnd.asc("unitcode").asc("loginname");
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return Result.success();
|
||||
}
|
||||
Sys_role sysRole = roleService.getByCode(RoleConstant.MEMBER.name());
|
||||
// 如果是先清空再追加
|
||||
if(!append) {
|
||||
dao.update(Sys_user.class, Chain.make("member", false), Cnd.NEW());
|
||||
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getRoleId, "=", sysRole.getId()));
|
||||
}
|
||||
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and(Cnd.exps("member", "=", false).or("member", "is", null));
|
||||
Sql sql = generateSql(pageForm, cnd);
|
||||
List<NutMap> listMap = memberInfoService.listMap(sql);
|
||||
List<String> list = listMap.stream().map(o -> o.getString("id")).toList();
|
||||
|
||||
List<Sys_user_role> userRoles = list.stream().map(o -> {
|
||||
Sys_user_role userRole = new Sys_user_role();
|
||||
userRole.setRoleId(sysRole.getId());
|
||||
userRole.setUserId(o);
|
||||
return userRole;
|
||||
}).toList();
|
||||
|
||||
dao.update(Sys_user.class, Chain.make("member", true), Cnd.where("id", "in", list));
|
||||
dao.insert(userRoles);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("批量设置福利会员")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
@SLog(tag = "会员管理-数据管理工具", msg = "批量设置福利会员")
|
||||
public Object setWelfareMemberByCnd(MemberInfoPageForm pageForm, boolean append) {
|
||||
|
||||
// 如果是先清空再追加
|
||||
if(!append) {
|
||||
dao.update(Sys_user.class, Chain.make("welfareMember", false), Cnd.NEW());
|
||||
}
|
||||
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and(Cnd.exps("welfareMember", "=", false).or("welfareMember", "is", null));
|
||||
Sql sql = generateSql(pageForm, cnd);
|
||||
List<NutMap> listMap = memberInfoService.listMap(sql);
|
||||
List<String> list = listMap.stream().map(o -> o.getString("id")).toList();
|
||||
|
||||
dao.update(Sys_user.class, Chain.make("welfareMember", true), Cnd.where("id", "in", list));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
private Sql generateSql(MemberInfoPageForm pageForm, Cnd cnd) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
id,
|
||||
loginname as loginName,
|
||||
username as userName,
|
||||
sex,
|
||||
userState,
|
||||
personType,
|
||||
preparedBy,
|
||||
unionName,
|
||||
unitName,
|
||||
mobile
|
||||
from
|
||||
`vw_user`
|
||||
$condition
|
||||
""");
|
||||
pageForm.buildSearch(cnd, "");
|
||||
if (StrUtil.isNotBlank(pageForm.getStartLoginNames())) {
|
||||
String[] loginNames = pageForm.getStartLoginNames().split(",");
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
for (String loginName : loginNames) {
|
||||
seg.orLikeL("loginname", loginName);
|
||||
}
|
||||
cnd.and(seg);
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getEndLoginNames())) {
|
||||
String[] loginNames = pageForm.getEndLoginNames().split(",");
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
for (String loginName : loginNames) {
|
||||
seg.orLikeR("loginname", loginName);
|
||||
}
|
||||
cnd.and(seg);
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user