diff --git a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/controller/SocialLoginController.java b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/controller/SocialLoginController.java index a911440..eae6e23 100644 --- a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/controller/SocialLoginController.java +++ b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/controller/SocialLoginController.java @@ -3,14 +3,12 @@ package com.yida.data.auth.controller; import com.yida.data.auth.entity.BindUser; import com.yida.data.auth.service.SocialLoginService; import com.yida.data.common.core.common.ModuleName; -import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.FebsResponse; import com.yida.data.common.core.entity.constant.StringConstant; import com.yida.data.common.core.entity.system.UserConnection; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.log.annotation.OperationLog; -import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -31,7 +29,6 @@ import javax.validation.Valid; import javax.validation.constraints.NotBlank; import java.io.IOException; import java.util.List; -import java.util.Map; /** * @author MrBird @@ -206,20 +203,4 @@ public class SocialLoginController { @ApiParam("0-教师,1-家长") Integer type) { return new FebsResponse().data(socialLoginService.h5Login(schoolId, mobile, type)); } - - @ResponseBody - @ApiOperation("检查openId状态") - @GetMapping("smart/checkOpenId") - public ResultBean> checkOpenId(@RequestParam @ApiParam(value = "微信公众号授权code", required = true) String code, - @RequestParam @ApiParam(value = "学校id(链接上附带)", required = true) Long deptId) { - return ResultBean.buildSuccess(socialLoginService.checkOpenId(code, deptId)); - } - - @ResponseBody - @ApiOperation("智慧迎新学生端登录接口") - @GetMapping("wxPublic/welcome/login") - public FebsResponse wxPublicLogin(@RequestParam @ApiParam(value = "微信openId", required = true) String openId, - @RequestParam @ApiParam(value = "学校id(链接上附带)", required = true) Long deptId) { - return new FebsResponse().data(socialLoginService.wxPublicLogin(openId, deptId)); - } } diff --git a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/manager/UserManager.java b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/manager/UserManager.java index 56e4cd8..8442134 100644 --- a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/manager/UserManager.java +++ b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/manager/UserManager.java @@ -1,7 +1,6 @@ package com.yida.data.auth.manager; import cc.mrbird.febs.common.redis.service.RedisService; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.auth.mapper.EduUserLogoMapper; @@ -18,7 +17,6 @@ import com.yida.data.common.core.entity.system.EduUserLogo; import com.yida.data.common.core.entity.system.Menu; import com.yida.data.common.core.entity.system.Role; import com.yida.data.common.core.entity.system.SystemUser; -import com.yida.data.common.core.entity.system.SystemUserMenu; import com.yida.data.common.core.entity.system.UserRole; import com.yida.data.common.service.CommonService; import com.yida.data.user.feign.RemoteTeacherService; @@ -81,24 +79,11 @@ public class UserManager { * @param username 用户名 * @return 权限 */ - public List findUserPermissions(String username) { - // 获取角色权限 - List menus = menuMapper.findUserPermissions(username); - // 获取用户权限 - List userPermissions = userMenuMapper.findUserPermissions(username); - // 过滤 - if (CollUtil.isNotEmpty(userPermissions)) { - menus.addAll( - userPermissions.stream().filter(x -> x.getType() == 0).map(SystemUserMenu::getPerms).filter(StrUtil::isNotBlank) - .collect(Collectors.toList())); - List excludePerms = userPermissions.stream().filter(x -> x.getType() == 1).map(SystemUserMenu::getPerms) - .filter(StrUtil::isNotBlank).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(excludePerms)) { - menus = menus.stream().filter(x -> !excludePerms.contains(x)).collect(Collectors.toList()); - } - } - // 只返回串 - return menus; + public String findUserPermissions(String username) { +// List userPermissions = menuMapper.findUserPermissions(username); + // 从用户对应权限表查询权限数据 + List userPermissions = userMenuMapper.findUserPermissions(username); + return userPermissions.stream().map(Menu::getPerms).collect(Collectors.joining(StringConstant.COMMA)); } /** @@ -169,6 +154,6 @@ public class UserManager { public String findMainRole(Long mainDeptId) { // 查询主角色code List rolePerms = userMapper.findMainRole(mainDeptId); - return rolePerms.stream().filter(StringUtils::isNotBlank).distinct().collect(Collectors.joining(StringConstant.COMMA)); + return rolePerms.stream().filter(StringUtils::isNotBlank).collect(Collectors.joining()); } } diff --git a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/mapper/MenuMapper.java b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/mapper/MenuMapper.java index c7ccbbb..c777d3e 100644 --- a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/mapper/MenuMapper.java +++ b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/mapper/MenuMapper.java @@ -16,5 +16,5 @@ public interface MenuMapper extends BaseMapper { * @param username 用户名 * @return 权限集合 */ - List findUserPermissions(String username); + List findUserPermissions(String username); } \ No newline at end of file diff --git a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/mapper/UserMenuMapper.java b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/mapper/UserMenuMapper.java index 871ba29..29ef945 100644 --- a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/mapper/UserMenuMapper.java +++ b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/mapper/UserMenuMapper.java @@ -22,5 +22,5 @@ public interface UserMenuMapper extends BaseMapper { * @author ZYJ * @date 2021/11/8 15:54 */ - List findUserPermissions(String username); + List findUserPermissions(String username); } diff --git a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/SocialLoginService.java b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/SocialLoginService.java index 97bee61..a4377ce 100644 --- a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/SocialLoginService.java +++ b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/SocialLoginService.java @@ -105,26 +105,4 @@ public interface SocialLoginService { Map wxpublicLogin(String code, String appId, Integer type, Long schoolId, String mobile); Map h5Login(Long schoolId, String mobile, Integer type); - - /** - * 检查openId状态 - * - * @param code 微信公众号授权code - * @param deptId 学校id - * @return java.util.Map - * @author ZYJ - * @date 2023/6/2 10:31 - */ - Map checkOpenId(String code, Long deptId); - - /** - * 迎新功能微信公众号登录 - * - * @param openId 微信openId - * @param deptId 学校id - * @return java.util.Map - * @author ZYJ - * @date 2023/5/18 11:09 - */ - Map wxPublicLogin(String openId, Long deptId); } diff --git a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/impl/FebsUserDetailServiceImpl.java b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/impl/FebsUserDetailServiceImpl.java index 1f167fd..b13476c 100644 --- a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/impl/FebsUserDetailServiceImpl.java +++ b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/impl/FebsUserDetailServiceImpl.java @@ -1,6 +1,5 @@ package com.yida.data.auth.service.impl; -import cn.hutool.core.collection.CollUtil; import com.yida.data.auth.manager.UserManager; import cc.mrbird.febs.common.redis.service.RedisService; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; @@ -45,7 +44,7 @@ public class FebsUserDetailServiceImpl implements UserDetailsService { HttpServletRequest httpServletRequest = FebsUtil.getHttpServletRequest(); SystemUser systemUser = userManager.findByName(username); if (systemUser != null) { - List permissions = userManager.findUserPermissions(systemUser.getUsername()); + String permissions = userManager.findUserPermissions(systemUser.getUsername()); boolean notLocked = false; if (StringUtils.equals(SystemUser.STATUS_VALID, systemUser.getStatus())) { notLocked = true; @@ -60,31 +59,31 @@ public class FebsUserDetailServiceImpl implements UserDetailsService { // 设置角色权限 if (StringUtils.isNotBlank(systemUser.getRolePerms())) { List collect = Arrays.stream(systemUser.getRolePerms().split(StringConstant.COMMA)) - .map(s -> FebsConstant.SECURITY_ROLE_PREFIX + s) - .distinct() - .collect(Collectors.toList()); + .map(s -> FebsConstant.SECURITY_ROLE_PREFIX + s) + .collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(collect)) { - grantedAuthorities = AuthorityUtils - .commaSeparatedStringToAuthorityList(String.join(StringConstant.COMMA, collect)); + grantedAuthorities = AuthorityUtils.commaSeparatedStringToAuthorityList(String.join(StringConstant.COMMA, collect)); } } // 设置菜单权限 - if (CollUtil.isNotEmpty(permissions)) { - grantedAuthorities.addAll(AuthorityUtils.createAuthorityList(permissions.toArray(new String[0]))); + if (StringUtils.isNotBlank(permissions)) { + if (CollectionUtils.isNotEmpty(grantedAuthorities)) { + grantedAuthorities.addAll(AuthorityUtils.commaSeparatedStringToAuthorityList(permissions)); + } else { + grantedAuthorities = AuthorityUtils.commaSeparatedStringToAuthorityList(permissions); + } } // 查询主角色信息 if (Objects.nonNull(systemUser.getMainDeptId())) { String role = this.userManager.findMainRole(systemUser.getMainDeptId()); systemUser.setMainRolePerms(role); } - - //查询登录所属部门:学校对应的 log.info("登陆用户信息sysUser: {}", systemUser); log.info("登陆权限数据permission: {}", grantedAuthorities); log.info("登陆主角色数据mainRole: {}", systemUser.getMainRolePerms()); FebsAuthUser authUser = new FebsAuthUser(systemUser.getUsername(), password, true, true, true, notLocked, - grantedAuthorities); + grantedAuthorities); BeanUtils.copyProperties(systemUser, authUser); return authUser; diff --git a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/impl/SocialLoginServiceImpl.java b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/impl/SocialLoginServiceImpl.java index 1554122..efb60dc 100644 --- a/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/impl/SocialLoginServiceImpl.java +++ b/edu-auth/edu-auth-biz/src/main/java/com/yida/data/auth/service/impl/SocialLoginServiceImpl.java @@ -13,8 +13,6 @@ import com.yida.data.auth.service.SocialLoginService; import com.yida.data.auth.service.UserConnectionService; import com.yida.data.common.core.entity.FebsResponse; import com.yida.data.common.core.entity.constant.*; -import com.yida.data.common.core.entity.smart.EduSmartWelcomeGuideRosterRelation; -import com.yida.data.common.core.entity.smart.EduSmartWelcomeGuideStep; import com.yida.data.common.core.entity.system.*; import com.yida.data.common.core.entity.user.EduStaff; import com.yida.data.common.core.enums.RoleName; @@ -24,12 +22,11 @@ import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.common.core.utils.WxPublicUtil; import com.yida.data.common.core.utils.WxUtil; import com.yida.data.common.service.CommonService; -import com.yida.data.school.feign.smart.RemoteSmartWelcomeService; +import com.yida.data.school.feign.transaction.RemoteStudentApplyService; import com.yida.data.system.feign.RemoteDeptService; import com.yida.data.system.feign.RemoteRoleService; import com.yida.data.system.feign.RemoteUserService; import com.yida.data.user.feign.RemoteStaffService; -import com.yida.data.user.feign.RemoteStudentApplyService; import com.yida.data.user.feign.RemoteStudentService; import com.yida.data.user.feign.RemoteTeacherService; import com.yida.data.user.vo.ParentInfoVO; @@ -64,6 +61,7 @@ public class SocialLoginServiceImpl implements SocialLoginService { private static final String USERNAME = "username"; private static final String PASSWORD = "password"; + private static final String NOT_BIND = "not_bind"; private static final String SOCIAL_LOGIN_SUCCESS = "social_login_success"; @@ -75,16 +73,17 @@ public class SocialLoginServiceImpl implements SocialLoginService { private final UserConnectionService userConnectionService; private final ResourceOwnerPasswordTokenGranter granter; private final RedisClientDetailsService redisClientDetailsService; - - private final RemoteStaffService remoteStaffService; - private final RemoteStudentService remoteStudentService; - private final RemoteTeacherService remoteTeacherService; - private final RemoteSmartWelcomeService remoteSmartWelcomeService; - private final WxUtil wxUtil; private final WxPublicUtil wxPublicUtil; - private final RedisService redisService; + private final RemoteStudentService remoteStudentService; + private final RemoteTeacherService remoteTeacherService; + private final RemoteStaffService remoteStaffService; + private final RemoteDeptService remoteDeptService; private final CommonService commonService; + private final RemoteRoleService remoteRoleService; + private final RemoteUserService remoteUserService; + private final RemoteStudentApplyService remoteStudentApplyService; + private final RedisService redisService; @Override public AuthRequest renderAuth(String oauthType) throws FebsException { @@ -580,43 +579,4 @@ public class SocialLoginServiceImpl implements SocialLoginService { res.put("identity", type == 0 ? teacher : parent); return res; } - - @Override - public Map checkOpenId(String code, Long deptId) { - Dept school = commonService.getDept(deptId); - if (Objects.isNull(school)) { - throw new FebsException("学校信息错误"); - } - // 查询用户信息 - String openId = wxPublicUtil.getOpenId(school.getWxPublicAppId(), school.getWxPublicSecret(), code); - // 查询openId是否绑定了对应的信息 - EduSmartWelcomeGuideRosterRelation relation = remoteSmartWelcomeService.getOpenIdRelation(openId, deptId).getData(); - Map map = new HashMap<>(); - // true代表已经绑定,false代表未绑定 - map.put("status", Objects.nonNull(relation)); - // 微信openId - map.put("openId", openId); - return map; - } - - @Override - public Map wxPublicLogin(String openId, Long deptId) { - // 查询关联关系 - EduSmartWelcomeGuideRosterRelation relation = remoteSmartWelcomeService.getOpenIdRelation(openId, deptId).getData(); - if (Objects.isNull(relation) || Objects.isNull(relation.getGuideRoster())) { - throw new FebsException("信息错误"); - } - // 用户信息 - SystemUser systemUser = userManager.findByName(relation.getGuideRoster().getMobile()); - // 登录返回token和用户信息 - Map res = new HashMap<>(); - res.put("token", getOauth2AccessToken(systemUser)); - systemUser.setPassword(null); - res.put("user", systemUser); -// // 查询人员步骤信息 -// List stepList = remoteSmartWelcomeService.listStepInfo(relation.getId(), relation.getGuideId()).getData(); -// relation.setStepList(stepList); - res.put("info", relation); - return res; - } } diff --git a/edu-auth/edu-auth-biz/src/main/resources/mapper/MenuMapper.xml b/edu-auth/edu-auth-biz/src/main/resources/mapper/MenuMapper.xml index 848b308..8da1407 100644 --- a/edu-auth/edu-auth-biz/src/main/resources/mapper/MenuMapper.xml +++ b/edu-auth/edu-auth-biz/src/main/resources/mapper/MenuMapper.xml @@ -2,15 +2,15 @@ - + \ No newline at end of file diff --git a/edu-auth/edu-auth-biz/src/main/resources/mapper/UserMapper.xml b/edu-auth/edu-auth-biz/src/main/resources/mapper/UserMapper.xml index 6c2875e..355aadd 100644 --- a/edu-auth/edu-auth-biz/src/main/resources/mapper/UserMapper.xml +++ b/edu-auth/edu-auth-biz/src/main/resources/mapper/UserMapper.xml @@ -18,7 +18,6 @@ u.description, u.avatar, d.dept_type deptType, - d.school_nature schoolNature, d.dept_name deptName, u.agent_id agentId, GROUP_CONCAT(r.role_id) roleId, @@ -60,7 +59,6 @@ - select um.*, m.perms - from t_user_menu um - left join t_user u on (u.user_id = um.user_id) - left join t_menu m on (m.menu_id = um.menu_id) - where u.username = #{userName} - and m.perms is not null - and m.perms '' + \ No newline at end of file diff --git a/febs-common/febs-common-core/pom.xml b/febs-common/febs-common-core/pom.xml index f520f5c..edbfcb4 100644 --- a/febs-common/febs-common-core/pom.xml +++ b/febs-common/febs-common-core/pom.xml @@ -148,30 +148,18 @@ ${wxpay.apiv3.version} compile - - - - - - + + com.github.wechatpay-apiv3 + wechatpay-apache-httpclient + ${wxpay.apiv3.version} + compile + com.google.zxing javase ${qr.code.version} - - - com.baidu.aip - java-sdk - ${baidu.api.version} - - - org.slf4j - slf4j-simple - - - diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/common/ModuleName.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/common/ModuleName.java index 55b62ac..0dcfbd0 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/common/ModuleName.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/common/ModuleName.java @@ -8,24 +8,15 @@ public enum ModuleName { AUTH("认证中心"), APPLY_PARODUCT("应用商品"), ATTENDANCE("考勤"), - DEVICE("设备"), LETTER_BOX("校长信箱"), NOTICE("通知"), SCHOOL("校园主页"), STUDENT_EXAM("考试管理"), USER("用户管理"), - STUDENT("学生管理"), - STAFF("职工管理"), JOB("任务调度"), SYSTEM("系统管理"), - DEPT("系统部门"), - USER_DEPT("家校部门"), - INSTRUCTION("系统指南"), ELECTRONIC_STUDENT_CARD("电子学生证"), TELEPHONE("亲情电话"), - COURSE("课程表"), - PRODUCT("商品管理"), - TRANSATION("交易管理"), HEALTH("健康管理"); @Getter String name; diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/common/ResultMsgType.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/common/ResultMsgType.java index fcec419..326bedd 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/common/ResultMsgType.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/common/ResultMsgType.java @@ -21,29 +21,22 @@ public enum ResultMsgType { IMPORT_EXCEL_FAIL("导入失败!", 500), FILE_TYPE_ERROR("导入文件类型错误", 500), ID_CARD_EXIST("身份证号码已存在!", 500), - STUDENT_CARD_NUMBER_EXIST("校园学号已存在!", 500), STUDENT_NUMBER_EXIST("学号已存在!", 500), - STUDENT_NUMBER_NOT_EXIST("学号不存在!", 500), CAMPUS_NAME_ERROR("学区名称错误", 500), SECTION_NAME_ERROR("学段名称错误", 500), GRADE_NAME_ERROR("年级名称错误", 500), CLASS_NAME_ERROR("班级名称错误", 500), - START_DATE_ERROR("入学时间错误", 500), SERVER_ERROR("服务器繁忙!请稍后再试", 500), LOGIN_INFO_ERROR("用户登陆信息异常", 500), PAY_TYPE_ERROR("暂不支持此支付方式", 500), ORDER_FAIL("创建订单失败!请稍后再试", 500), - ORDER_NOT_FOUND("未找到订单信息", 500), ORDER_INVALID("该订单已失效!无法执行该操作", 500), ORDER_QUERY_FAIL("订单查询失败", 500), ORDER_CLOSE_FAIL("关闭订单失败", 500), ORDER_REFUND_FAIL("订单退款失败", 500), REFUND_QUERY_FAIL("退款查询失败", 500), - ORDER_MONEY_ERROR("订单金额异常", 500), - - CARD_STATUS_ERROR("卡状态异常", 500), ; private final String value; diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/CurrentUser.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/CurrentUser.java index 3881bb9..acc1bd7 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/CurrentUser.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/CurrentUser.java @@ -91,12 +91,6 @@ public class CurrentUser implements Serializable { */ private String mainRolePerms; - - /** - * 学校性质:0幼儿园,1小学,2中学,3九年一贯,4十二年一贯,5:高校 - */ - private Integer schoolNature; - @JsonIgnore private EduUserLogo userLogo; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/FebsAuthUser.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/FebsAuthUser.java index 71566fa..57aaf48 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/FebsAuthUser.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/FebsAuthUser.java @@ -55,8 +55,6 @@ public class FebsAuthUser extends User { private String status; - private Integer schoolNature; - private String deptIds; private Long identityId; diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceRecord.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceRecord.java index c5fb84b..6cd53c1 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceRecord.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceRecord.java @@ -35,9 +35,6 @@ public class EduAttendanceRecord { private String className; - @ApiModelProperty("0上学,1宿舍") - private Integer type; - @ApiModelProperty("宿舍id") private Long dormId; @@ -86,8 +83,5 @@ public class EduAttendanceRecord { @ApiModelProperty("该条记录使用的考勤时间段") private Long ruleTimeId; - @ApiModelProperty("考勤时间段类型:0开始时间,1结束时间") - private Integer ruleTimeType; - private transient String deviceName; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceResult.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceResult.java index 464f8a4..b700b27 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceResult.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceResult.java @@ -109,15 +109,9 @@ public class EduAttendanceResult { /** * 考勤结果,100-正常, 201-迟到,202-早退,203-迟到早退,204-旷课,205-请假, 211-晚归,212-异常晚归,213-旷宿,214-已被核查但学生还未归寝 */ - @ApiModelProperty(value = "考勤结果,100-正常,201-迟到,202-早退,203-迟到早退,204-旷课,205-请假,206-上班未打卡|下班正常,207-上班未打卡|下班早退,208-上班未打卡|下班未在有效打卡时间段内,209-上班未在有效打卡时间段内|下班早退,210-上班迟到|下班未打卡,211-晚归,212-异常晚归,213-旷宿,214-已被核查但学生还未归寝") + @ApiModelProperty(value = "考勤结果,100-正常,201-迟到,202-早退,203-迟到早退,204-旷课,205-请假,211-晚归,212-异常晚归,213-旷宿,214-已被核查但学生还未归寝") @TableField("status") private Integer status; - @ApiModelProperty(value = "开始时间考勤结果1正常,0异常,空未打卡") - @TableField("begin_status") - private Integer beginStatus; - @ApiModelProperty(value = "结束时间考勤结果1正常,0异常,空未打卡") - @TableField("end_status") - private Integer endStatus; /** * 核查时间 @@ -171,7 +165,4 @@ public class EduAttendanceResult { @ApiModelProperty("学号") private transient String stuNo; - - @ApiModelProperty("类型:1宿舍考勤,0上学考勤") - private transient Integer type; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceRuleDevice.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceRuleDevice.java index 8a59f1f..3f44f10 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceRuleDevice.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceRuleDevice.java @@ -11,7 +11,6 @@ import java.time.LocalDateTime; @Data @ApiModel("规则设备") public class EduAttendanceRuleDevice { - @TableId(type = IdType.AUTO) private Long id; @@ -24,12 +23,9 @@ public class EduAttendanceRuleDevice { @ApiModelProperty("设备编号") private String deviceSn; - @ApiModelProperty("设备名称") - private String deviceName; - @ApiModelProperty("创建时间") private LocalDateTime createDate; - + @ApiModelProperty("创建人ID") private Long createId; diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceStaffResult.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceStaffResult.java index bb8a816..1238c8e 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceStaffResult.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/attendance/EduAttendanceStaffResult.java @@ -1,13 +1,11 @@ package com.yida.data.common.core.entity.attendance; -import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; -import java.time.LocalDateTime; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -62,21 +60,10 @@ public class EduAttendanceStaffResult { /** * 考勤结果,0-正常,1-迟到,2-早退,3-旷工,4-迟到早退,5-上班未在打卡时间段,6-下班未在打卡时间段 */ - @ApiModelProperty(value = "考勤结果,0-正常,1-迟到,2-早退,3-旷工,4-迟到早退,5-上班未在打卡时间段,6-下班未在打卡时间段,7-上班未在打卡时间段|早退,8-上班迟到|下班未打卡") + @ApiModelProperty(value = "考勤结果,0-正常,1-迟到,2-早退,3-旷工,4-迟到早退,5-上班未在打卡时间段,6-下班未在打卡时间段") @TableField("status") private Integer status; - /** - * 上班考勤状态 0 正常 1 异常 - */ - @TableField("start_status") - private Integer startStatus; - /** - * 下班考勤状态 0 正常 1 异常 - */ - @TableField("end_status") - private Integer endStatus; - /** * 考勤日期 */ @@ -105,14 +92,4 @@ public class EduAttendanceStaffResult { @DateTimeFormat(pattern = "HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss") private LocalTime endRealTime; - - @TableField(value = "CREATE_TIME", fill = FieldFill.INSERT) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; - - @TableField(value = "UPDATE_TIME", fill = FieldFill.UPDATE) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/AppConstant.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/AppConstant.java index a9b57e3..b96f950 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/AppConstant.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/AppConstant.java @@ -3,18 +3,9 @@ package com.yida.data.common.core.entity.constant; public interface AppConstant { /** - * 通讯录(用于操作) https://developer.work.weixin.qq.com/document/path/96078 + * 通讯录 */ String CONTACT = "通讯录"; - - /** - * 通讯录(用于查询) 职工端智慧迎新 - */ - String CONTACT_SELECT = "contact_resources"; - - /** - * 家校沟通 - */ String CONTACT_SCHOOL = "家校沟通"; /** @@ -89,28 +80,8 @@ public interface AppConstant { */ String TEACHER_LEAVE_REQUEST = "teacher_leave_request"; - /** - * 请假家长端 - */ - String STUDENT_LEAVE_REQUEST = "student_leave_request"; - /** * 访客教师端 */ String VISITOR_STAFF = "visitor_staff"; - - /** - * 微官网 家长端智慧迎新 - */ - String INDEX_PARENT = "index_parent"; - - /** - * 查寝 - */ - String DORM_ATTENDANCE_STAFF = "dorm_attendance_staff"; - - /** - * 智慧迎新职工端 - */ - String SMART_WELCOME_STAFF = "smart_welcome_staff"; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/CachePrefixConstant.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/CachePrefixConstant.java index 6d1c750..b1a0676 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/CachePrefixConstant.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/CachePrefixConstant.java @@ -2,31 +2,11 @@ package com.yida.data.common.core.entity.constant; public interface CachePrefixConstant { - /** - * 企业微信服务商缓存前缀 - */ - String SYS_SERVICE_PROVIDER = "sys:service:provider."; - /** * 企业微信应用缓存前缀 */ String SYS_APP = "sys:app."; - /** - * 系统白名单信息 - */ - String SYS_WHITE_LIST = "sys:white:list."; - - /** - * 部门对应的第三方系统功能 - */ - String SYS_DEPT_FUNCTION = "sys:dept:function."; - - /** - * 企业微信应用模板缓存前缀 - */ - String SYS_APP_TEMPLATE = "sys:app.template."; - /** * 部门公众号 */ @@ -81,18 +61,6 @@ public interface CachePrefixConstant { String IMPORT_STUDENT_KEY = "import.student."; String IMPORT_STUDENT_FILE = "import.student.file."; - String IMPORT_STUDENT_CARD_NUMBER_KEY = "import.student.cardNo"; - - /** - * 学生导出信息 - */ - String EXPORT_STUDENT_DATA = "student:data:export."; - - /** - * 学生宿舍导出信息 - */ - String EXPORT_STUDENT_DORM_DATA = "student:dorm:data:export."; - /** * 登录用户将要登录的部门id */ @@ -139,31 +107,6 @@ public interface CachePrefixConstant { */ String UNION_PAY_CONFIG = "sys:union.pay.config"; - /** - * 建行支付配置信息 - */ - String CONSTRUCTION_PAY_CONFIG = "sys:construction.pay.config"; - - /** - * 收钱吧支付配置信息 - */ - String U_PAY_CONFIG = "sys:u.pay.config"; - - /** - * 百度api配置信息 - */ - String BAI_DU_API_CONFIG = "baidu:api.config"; - - /** - * 学校收钱吧终端信息 - */ - String DEPT_CONSUME_TERMINAL = "dept:consume:terminal."; - - /** - * 学校消费机服务器信息 - */ - String CONSUME_CONFIG = "sys:consume.config"; - //------------------学校------------------- /** * 导入寝室 进度信息 @@ -183,20 +126,11 @@ public interface CachePrefixConstant { //------------------用户------------------- String STUDENT_DATA = "user:student.data"; - //------------------用户------------------- - String STUDENT_BASE_DATA = "user:student.base.data"; - - /** * 导入住宿学生 进度信息 */ String IMPORT_STUDENT_DORM = "user:studentDorm.import"; - /** - * 导入学生类型 进度信息 - */ - String IMPORT_STUDENT_TYPE = "user:studentType.import"; - /** * 学生在校离校,在寝不在寝状态 */ @@ -229,11 +163,6 @@ public interface CachePrefixConstant { */ String ISSUE_FACE_ERROR_MSG = "user:face:issue.error.msg."; - /** - * 设备组人脸下发成功数量 - */ - String ISSUE_GROUP_USER_FACE_SUCCESS = "group.user.face.success."; - /** * 大华code与人员id对应 */ @@ -256,11 +185,6 @@ public interface CachePrefixConstant { */ String DEVICE_DATA = "attendance:device:data"; - /** - * 设备数据 - */ - String DEVICE_DATA_BY_ID = "attendance:device:id:data"; - /** * 最新考勤记录时间 */ @@ -276,31 +200,11 @@ public interface CachePrefixConstant { */ String ISSUE_FACE_GROUP_DEVICE = "attendance:device:face-group."; - /** - * 设备下发的人脸组鼠标数量 - */ - String ISSUE_FACE_GROUP_DEVICE_NUMBER = "attendance:device:face-group.number."; - /** * 海清设备批量编辑列表 */ String HQ_EDIT_BATCH = "hq.edit.batch."; - /** - * 海清人脸新增信息 - */ - String HQ_BATCH_ADD = "hq.batch.add."; - - /** - * 海清人脸新编辑信息 - */ - String HQ_BATCH_EDIT = "hq.batch.edit."; - - /** - * 接收的认证消息缓存 - */ - String HQ_RECEIVE_INFO = "hq.receive.info."; - //--------------商品订单------------------ /** @@ -436,13 +340,6 @@ public interface CachePrefixConstant { * 宿舍信息 */ String FACILITY_DORM_ROOM = "facility:dorm:room"; - - // --------------------宿舍数据----------------- - /** - * 宿舍信息 - */ - String FACILITY_DORM_MASTER = "facility:dorm:master."; - // --------------------第二课堂---------------- /** * 菜单配置 @@ -469,7 +366,7 @@ public interface CachePrefixConstant { String BILL_ORDER = "bill.order."; /** - * 账单订单调起支付所需参数,微信jsapi为prepay_id,微信h5为支付地址,银联支付为支付地址 + * 账单订单调起支付所需参数,微信jsapi为prepay_id,微信h5为回调地址,银联支付为支付地址 */ String BILL_ORDER_FLAG = "bill.order.flag."; @@ -508,27 +405,6 @@ public interface CachePrefixConstant { */ String BILL_PAY_DETAIL_EXPORT_URL = "bill:pay:detail:export:url:"; - // --------------------消费充值---------------- - /** - * 学生消费订单缓存 - */ - String CONSUME_ORDER_STUDENT = "consume.order.student."; - - /** - * 消费订单信息 - */ - String CONSUME_ORDER = "consume.order."; - - /** - * 消费订单调起支付所需参数,微信jsapi为prepay_id,微信h5为支付地址,银联支付为支付地址,收钱吧为支付地址 - */ - String CONSUME_ORDER_FLAG = "consume.order.flag."; - - /** - * 商品描述 - */ - String CONSUME_ORDER_DESC = "充值缴费"; - // -----------摄像头------------------------- /** * 摄像头 @@ -542,41 +418,6 @@ public interface CachePrefixConstant { */ String USER_PIC_DOWNLOAD = "user:pic:downLoad."; - - /** - * 职工通行记录下载 - */ - String STAFF_ATTENDANCE_RECORD_DOWNLOAD = "staff:attendance:record:downLoad."; - - /** - * 职工考勤记录下载 - */ - String STAFF_ATTENDANCE_RESULT_DOWNLOAD = "staff:attendance:result:downLoad."; - - - /** - * 学生宿舍考勤下载 - */ - String STUDENT_DORM_ATTENDANCE_RESULT_DOWNLOAD = "student:dorm:attendance:result:downLoad."; - - - /** - * 通行记录下载 - */ - String ATTENDANCE_RECORD_DOWNLOAD = "attendance:record:download."; - - - /** - * 考勤日报下载 - */ - String ATTENDANCE_DAY_REPORT_DOWNLOAD = "attendance:day:report:download."; - - - /** - * 商品购买情况下载 - */ - String PRODUCT_BUY_DATA_DOWNLOAD = "product:buy:data:downLoad."; - /** * 下载学生照片 */ @@ -590,7 +431,7 @@ public interface CachePrefixConstant { /** * 学校对应关键功能点配置 */ - String SCHOOL_FUNCATION_CODE = "school:funcation:code:"; + String SCHOOL_FUNCATION_CODE = "school:funcation:code."; String ATTENDANCE_DORMITORY_CLASS = "attendance:Dormitory:class."; @@ -599,9 +440,6 @@ public interface CachePrefixConstant { String STAFF_MANGE_DEPT = "staff:mange:dept."; - String STAFF_MANGE_CLASS = "staff:mange:class."; - - /** * 对应设备策略id(人脸组id)缓存 */ @@ -641,165 +479,6 @@ public interface CachePrefixConstant { String ADD_MANUSCRIPT_PROGRESS = "add:manuscript:progress"; // --------------------智慧迎新----------------- - /** - * 花名册下载缓存 - */ String GUIDE_ROSTER_DATA_DOWNLOAD = "guide:roster:data:download."; - /** - * 花名册身份证、通知书下载图片缓存 - */ - String GUIDE_ROSTER_PIC_DATA_DOWNLOAD = "guide:roster:pic:data:download."; - - // --------------------智慧迎新----------------- - /** - * 新生迎新步骤信息 - */ - String GUIDE_ROSTER_STEP_DATA = "guide:roster:step:data."; - - /** - * 花名册人员迎新订单缓存 - */ - String GUIDE_STEP_ORDER_ROSTER = "guide.step.order.roster."; - - /** - * 迎新步骤订单缓存 - */ - String GUIDE_STEP_ORDER = "guide.step.order."; - - /** - * 迎新订单调起支付所需参数,微信jsapi为prepay_id,微信h5为支付地址,银联支付为支付地址,建行为支付地址 - */ - String GUIDE_STEP_ORDER_FLAG = "guide.step.order.flag."; - - - /** - * 智慧迎新导入学生人脸 - */ - String IMPORT_GUIDE_AVATAR_KEY = "guide:avatar:import.key."; - - - /** - * 智慧迎新导入花名册 - */ - String IMPORT_GUIDE_ROSTER_KEY = "guide:roster:import.key."; - - /** - * 智慧迎新系部专业数据 - */ - String WELCOME_DEPARTMENT_DATA = "welcome:department:data."; - - /** - * 智慧迎新预分班级数据 - */ - String WELCOME_CLASS_DATA = "welcome:class:data."; - - /** - * 智慧迎新班级对应人员数量 - */ - String WELCOME_CLASS_STUDENT_NUMBER = "welcome:class:student:number:"; - - /** - * 智慧迎新预分宿舍数据 - */ - String WELCOME_DORM_DATA = "welcome:dorm:data."; - - - /** - * 智慧迎新宿舍对应人员数量 - */ - String WELCOME_DROM_STUDENT_NUMBER = "welcome:dorm:student:number:"; - - - /** - * 智慧迎新宿舍对应人员数量 - */ - String WELCOME_DROM_STUDENT_NUMBER_BUDING = "welcome:dorm:student:number:buding"; - - - /** - * 智慧迎新预分班级导入进度 - */ - String WELCOME_CLASS_IMPOST_PROGRESS = "welcome:class:import:progress:"; - - /** - * 智慧迎新预分宿舍导入进度 - */ - String WELCOME_DORM_IMPOST_PROGRESS = "welcome:dorm:import:progress:"; - - /** - * 智慧迎新花名册信息 - */ - String WELCOME_ROSTER = "welcome:roster"; - - - /** - * 学生考勤结果 每月记录 - */ - String ATTENDANCE_DATE_STATUS = "attendance:date:status."; - - - /** - * 管理员查看 每月记录 - */ - String ATTENDANCE_MANAGE_DATE_STATUS = "attendance:manage:date:status."; - - - /** - * 学生考勤结果 每日记录 - */ - String ATTENDANCE_STATUS_DAY_STUDENT = "attendance:status:day:student:"; - - - /** - * 教职工考勤结果 每日记录 - */ - String ATTENDANCE_STATUS_DAY_STAFF = "attendance:status:day:staff:"; - - /** - * 考勤管理管理部门树 - */ - String ATTENDANCE_USER_MANAGE_TREE = "attendance:user:manage:tree:"; - - /** - * 考勤管理管理部门树 - */ - String ATTENDANCE_STAFF_IDENTITY = "attendance:staff:identity:"; - - /** - * 职工管理规则 - */ - String ATTENDANCE_STAFF_MANAGE_RULE = "attendance:staff:manage:rule"; - - /** - * 用户打卡记录 - */ - String ATTENDANCE_USER_RECORD = "attendance:user:record"; - - /** - * 学生匹配的考勤规则 - */ - String ATTENDANCE_STUDENT_RULE = "attendance:student:rule"; - - /** - * 校园主页信息 - */ - String SCHOOL_HOME_INFO = "school:home:info"; - - /** - * 学校小程序信息 - */ - String DEPT_HOME_APP_INFO = "dept:home:app:info"; - - - /** - * 用户对应微信小程序 - */ - String USER_GENERATE_URL_LINK = "user:generate:url:link:"; - - - /** - * 考勤规则 - */ - String ATTENDANCE_RULE_DATA = "attendance:rule"; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/FebsConstant.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/FebsConstant.java index b1816c7..09cf148 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/FebsConstant.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/FebsConstant.java @@ -79,20 +79,10 @@ public interface FebsConstant { String TP_TOKEN = "tupu.token."; /** - * 微信公众号 token key前缀 7200s + * 微信公众号 token key前缀 */ String WX_PUBLIC_ACCESS_TOKEN = "wx.public:access.token."; - /** - * 微信 JS-SDK jsapi_ticket key前缀 7200s - */ - String WX_PUBLIC_JS_API_TICKET = "wx.public:jsapi.ticket."; - - /** - * 企业微信 JS-SDK jsapi_ticket key前缀 7200s - */ - String QYWX_WX_JS_API_TICKET = "qywx.wx:jsapi.ticket."; - /** * 几米 access_token key前缀 */ diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/LockPrefixConstant.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/LockPrefixConstant.java index c3b7b77..f9d3c4c 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/LockPrefixConstant.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/LockPrefixConstant.java @@ -43,12 +43,7 @@ public interface LockPrefixConstant { String CARD_CMD_LOCK = "device:card:cmd-lock"; /** - * 设备下发处理返回数据锁 + * 学生账单订单锁 */ - String ISSUE_FACE_DEVICE_LOCK = "user:face:issue.device.lock."; - - /** - * 设备组下发处理人脸数据锁 - */ - String ISSUE_FACE_GROUP_LOCK = "user:face:group.lock."; + String STUDENT_BILL_ORDER_LOCK = "student.bill.order.lock."; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/QywxConstant.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/QywxConstant.java index 40661e4..6557e70 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/QywxConstant.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/QywxConstant.java @@ -38,21 +38,11 @@ public interface QywxConstant { */ String USER_DETAIL_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/get"; - /** - * 获取访问用户敏感信息 post https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token=ACCESS_TOKEN - */ - String USER_SENSITIVE_INFO_URL = "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token="; - /** * 查询部门成员详情 get https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token=ACCESS_TOKEN&department_id=DEPARTMENT_ID&fetch_child=FETCH_CHILD */ String USER_DETAIL_LIST_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/list"; - /** - * 获取成员ID列表 POST https://qyapi.weixin.qq.com/cgi-bin/user/list_id?access_token=ACCESS_TOKEN - */ - String USER_ID_LIST_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/list_id?access_token="; - /** * 创建部门 POST https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token=ACCESS_TOKEN */ @@ -73,16 +63,6 @@ public interface QywxConstant { */ String DEPT_LIST_URL = "https://qyapi.weixin.qq.com/cgi-bin/department/list"; - /** - * 获取子部门ID列表 GET https://qyapi.weixin.qq.com/cgi-bin/department/simplelist?access_token=ACCESS_TOKEN&id=ID - */ - String SIMPLE_DEPT_LIST_URL = "https://qyapi.weixin.qq.com/cgi-bin/department/simplelist"; - - /** - * 获取单个部门详情 GET https://qyapi.weixin.qq.com/cgi-bin/department/get?access_token=ACCESS_TOKEN&id=ID - */ - String DEPT_INFO_URL = "https://qyapi.weixin.qq.com/cgi-bin/department/get"; - /** * 创建部门(家校沟通) POST https://qyapi.weixin.qq.com/cgi-bin/school/department/create?access_token=ACCESS_TOKEN */ @@ -225,39 +205,16 @@ public interface QywxConstant { */ String CONTACT_EVENT = "change_contact"; - /** - * 创建部门 - */ String DEPT_CREATE_TYPE = "create_party"; - /** - * 更新部门 - */ String DEPT_UPDATE_TYPE = "update_party"; - /** - * 删除部门 - */ String DEPT_DELETE_TYPE = "delete_party"; - /** - * 创建成员 - */ String USER_CREATE_TYPE = "create_user"; - /** - * 更新成员 - */ String USER_UPDATE_TYPE = "update_user"; - /** - * 删除成员 - */ String USER_DELETE_TYPE = "delete_user"; - /** - * 获取企业微信的jsapi_ticket - * https://developer.work.weixin.qq.com/document/path/96909 - */ - String GET_JS_API_TICKET_URL = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket"; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/WxPublicConstant.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/WxPublicConstant.java index 9f7e084..9fe334b 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/WxPublicConstant.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/constant/WxPublicConstant.java @@ -61,10 +61,4 @@ public interface WxPublicConstant { * 获取微信小程序 URL Link */ String GENERATE_URL_LINK = "https://api.weixin.qq.com/wxa/generate_urllink"; - - /** - * 获取JS-SDK jsapi_ticket - * https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62 - */ - String GET_JS_API_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket"; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/notice/app/AppNotice.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/notice/app/AppNotice.java index d74a5f8..63dd832 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/notice/app/AppNotice.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/notice/app/AppNotice.java @@ -15,6 +15,11 @@ public class AppNotice { */ private List userIds; + /** + * 用户id + */ + private List userIdList; + /** * 订阅号 消息内容 */ diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/notice/app/inside/PushMessage.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/notice/app/inside/PushMessage.java index 8f3ca95..781c407 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/notice/app/inside/PushMessage.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/notice/app/inside/PushMessage.java @@ -63,4 +63,5 @@ public class PushMessage { public static final String AUDIO = "audio"; public static final String NORMAL = "NORMAL"; public static final String ACCOUNT = "MSG_ACCOUNT_MSG"; + public static final String H5_SUB_MSG_TYPE = "NEWSEDUCATION"; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/pay/UnionPayOrder.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/pay/UnionPayOrder.java index fd9d486..7cbf25e 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/pay/UnionPayOrder.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/pay/UnionPayOrder.java @@ -23,7 +23,7 @@ import java.math.BigDecimal; @AllArgsConstructor public class UnionPayOrder implements Serializable { - private static final long serialVersionUID = -1580486861180880702L; + private static final long serialVersionUID = -1548806861180880702L; @ApiModelProperty("银联云闪付支付类型") private Integer unionPayType; diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/school/EduSchoolManuscript.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/school/EduSchoolManuscript.java index a464048..1e6b15a 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/school/EduSchoolManuscript.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/school/EduSchoolManuscript.java @@ -89,7 +89,7 @@ public class EduSchoolManuscript { @TableField("author_id") private Long authorId; - @ApiModelProperty("发布位置,0-城市书房, 1-第二课堂(精彩推荐),2-微信公众号,多个用逗号分割") + @ApiModelProperty("发布位置,0-城市书房, 1-第二课堂(精彩推荐),2-微信公众号,多个用逗号分割,3-首页") @TableField("publish_path") private String publishPath; @@ -132,7 +132,7 @@ public class EduSchoolManuscript { private transient String authorName; // 新闻区 - public static final String NEWS_PATH = "0"; + public static final String NEWS_PATH = "3"; // 第二课堂 public static final String SECOND_CLASS_PATH = "1"; // 公众号 diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/Dept.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/Dept.java index db9a6ad..df601ba 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/Dept.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/Dept.java @@ -54,7 +54,8 @@ public class Dept implements Serializable { @ApiModelProperty("部门简称") private String deptAbbreviation; /** - * 部门类型,0表示学校,5公司,6部门, 7教育局, 8代理商 {@link DeptTypeEnum} + * 部门类型,0表示学校,5公司,6部门, 7教育局, 8代理商 + * {@link DeptTypeEnum} */ @ApiModelProperty("部门类型,0表示学校,5公司,6部门, 7教育局, 8代理商") private Integer deptType; @@ -70,11 +71,6 @@ public class Dept implements Serializable { private String wxAesKey; @ApiModelProperty("学校关联类型类型,0-企业微信,1-易达app,2-大华平台 多类型使用','连接") private String schoolType; - - @ApiModelProperty("学校性质:0小学,1中学,2九年一贯,3十二年一贯,4:高校") - @TableField(value = "school_nature") - private Integer schoolNature; - private Long wxId; private Long parentWxId; /** diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/EduApp.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/EduApp.java index 4519a69..716b393 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/EduApp.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/EduApp.java @@ -45,12 +45,4 @@ public class EduApp { @ApiModelProperty("应用地址") private String appSrc; - @ApiModelProperty("应用类型。0-自建应用, 1-服务商代开发应用") - private Integer appType; - - @ApiModelProperty("应用模板id") - private String templateId; - - @ApiModelProperty("服务商企业微信corpId") - private String serviceCorpId; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/Menu.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/Menu.java index a1af709..eedb9b3 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/Menu.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/Menu.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.time.LocalDateTime; @@ -106,7 +105,5 @@ public class Menu implements Serializable { private transient String createTimeFrom; private transient String createTimeTo; - - @ApiModelProperty("菜单类型(0-合并, 1-剔除)") - private transient Integer userMenuType; + } \ No newline at end of file diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/SystemUser.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/SystemUser.java index 78b4267..bd0bfcf 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/SystemUser.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/SystemUser.java @@ -244,9 +244,4 @@ public class SystemUser implements Serializable { private String mainRolePerms; private transient EduUserLogo userLogo; - - /** - * 学校性质:0幼儿园,1小学,2中学,3九年一贯,4十二年一贯,5:高校 - */ - private transient Integer schoolNature; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/SystemUserMenu.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/SystemUserMenu.java index 00eec42..4465e57 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/SystemUserMenu.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/SystemUserMenu.java @@ -25,13 +25,4 @@ public class SystemUserMenu { @ApiModelProperty("菜单id") @TableField("menu_id") private Long menuId; - - - @ApiModelProperty("菜单类型(0-合并, 1-剔除)") - private Integer type; - - /** - * 权限串 - */ - private transient String perms; } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/enums/RoleEnum.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/enums/RoleEnum.java index d28ced0..37da08e 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/enums/RoleEnum.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/system/enums/RoleEnum.java @@ -27,9 +27,7 @@ public enum RoleEnum { ROLE_CLASS_PRINCIPAL("role:class:principal", "班主任", 9, 5), - ROLE_EDUCATION_PRINCIPAL("role:education:principal", "教育局负责人", 8, 2), - - ROLE_TEACHER("role:teacher", "教师基础角色", 10, 8); + ROLE_EDUCATION_PRINCIPAL("role:education:principal", "教育局负责人", 8, 2); /** * 角色标识值 diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduStaffDept.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduStaffDept.java index 9b10dea..63e7555 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduStaffDept.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduStaffDept.java @@ -49,9 +49,6 @@ public class EduStaffDept { @ApiModelProperty(value = "") private String staffName; - @ApiModelProperty(value = "z职工用户头像") - private String avatar; - /** * 部门id */ diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduStudent.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduStudent.java index 5267d5d..9ceaaee 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduStudent.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduStudent.java @@ -51,42 +51,6 @@ public class EduStudent implements Serializable { @ApiModelProperty("学生姓名") private String stuName; - @ApiModelProperty("曾用名") - private String formerName; - - @ApiModelProperty("考生号") - private String stuExamNumber; - - @ApiModelProperty("银行卡号") - private String creditCardNumbers; - - @ApiModelProperty("民族") - private String nation; - - @ApiModelProperty("QQ号") - private String qqCode; - - @ApiModelProperty("微信号") - private String wxCode; - - @ApiModelProperty("邮箱") - private String email; - - @ApiModelProperty("入学年级") - private String startGrade; - - @ApiModelProperty("政治面貌") - private String politicsStatus; - - @ApiModelProperty("邮政编码") - private String postalCode; - - @ApiModelProperty("籍贯") - private String nativePlace; - - @ApiModelProperty("现住址") - private String presentAddress; - @ApiModelProperty("学生头像url") private String avatar; @@ -136,9 +100,6 @@ public class EduStudent implements Serializable { @ApiModelProperty("学生当前状态,0=在校/在寝,1=离校/离寝") private Integer status; - @ApiModelProperty("学籍状态:关联字典表") - private String studentStatus; - @ApiModelProperty("学生在寝状态,0-在寝,1-离寝") private Integer dormStatus; diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduUserFace.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduUserFace.java index 0ddba20..9e1ce37 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduUserFace.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/entity/user/EduUserFace.java @@ -9,11 +9,13 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; -import lombok.Data; + import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import lombok.Data; + /** * 用户人脸图像 Entity * @@ -82,30 +84,7 @@ public class EduUserFace { private String picPath; /** - * 人脸组id + * 人脸与人脸组的关联id */ private transient Long faceGroupUserId; - - /** - * 学生对应卡号 - */ - private transient String rfidCard; - - /** - * 是否为会员 1=是,0=否(针对学生,教师全是会员) - */ - private transient Integer notes; - /** - * 会员开始时间 - */ - private transient String cardValidBegin; - /** - * 会员结束时间 - */ - private transient String cardValidEnd; - - /** - * 下发的设备名称 - */ - private transient String deviceName; } \ No newline at end of file diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/AttendanceResult.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/AttendanceResult.java index d022fd5..2247454 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/AttendanceResult.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/AttendanceResult.java @@ -14,11 +14,6 @@ public enum AttendanceResult { */ NORMAL(100, "正常"), - /** - * 异常状态 - */ - ABNORMAL(999, "异常"), - /** * 上学未在打卡有效时间段 */ @@ -45,33 +40,10 @@ public enum AttendanceResult { * 走读-旷课 */ STU_NOTARRIVE(204, "旷课"), - /** * 走读-请假 */ STU_REQUEST(205, "请假"), - /** - * 上班未打卡|下班正常 - */ - STU_NOSTART_AND_END_NORMAL(206, "上班未打卡|下班正常"), - - /** - * 上班未打卡|下班正常 - */ - STU_NOSTART_AND_END_LATE(207, "上班未打卡|下班早退"), - /** - * 上班未打卡|下班正常 - */ - STU_NOSTART_AND_END_NOTIN(208, "上班未打卡|下班未在有效打卡时间段内"), - /** - * 上班未在有效打卡时间段内|下班早退 - */ - STU_NOSTARTIN_AND_END_LEAVE(209, "上班未在有效打卡时间段内|下班早退"), - - /** - * 上班迟到|下班未打卡 - */ - STU_NOSTARTIN_AND_END_NO(210, "上班迟到|下班未打卡"), /** * 住宿-晚归 */ diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/MsgChannel.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/MsgChannel.java index 7766998..138ed4e 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/MsgChannel.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/MsgChannel.java @@ -6,10 +6,8 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum MsgChannel { - MQTT("mqtt","mqtt(人脸设备)"), - ACTIVE("activeMq","active(人脸设备)"), - WIFI("WIFI", "WIFI打卡"); + ACTIVE("activeMq","active(人脸设备)"); private String value; private String name; diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/PayWay.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/PayWay.java index 57ea57b..8bb1995 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/PayWay.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/PayWay.java @@ -16,11 +16,9 @@ public enum PayWay { /** * 支付方式枚举 */ - WEI_XIN("1", "微信"), + WEIXIN("1", "微信"), ALIPAY("2", "支付宝"), - UNION("3", "银联"), - U_PAY("4", "收钱吧"), - CONSTRUCTION_PAY("5", "建行"); + UNION("3", "银联"); /** * 类型 diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/UnionPayTypeEnum.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/UnionPayTypeEnum.java index 1d149c3..2ad88e7 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/UnionPayTypeEnum.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/enums/UnionPayTypeEnum.java @@ -17,7 +17,7 @@ public enum UnionPayTypeEnum { /** * 银联云闪付支付类型枚举 */ - WX_H5_TYPE(0, "微信H5", UnionPayConstant.UNION_H5_PAY), + WX_H5_TYPE(0, "微信H5", UnionPayConstant.WX_H5_PAY), WX_TO_MINI_H5_TYPE(1, "微信H5转小程序", UnionPayConstant.WX_TO_MINI_H5_PAY), ALI_H5_TYPE(2, "支付宝H5", UnionPayConstant.ALI_H5_PAY), UNION_H5_TYPE(3, "银联H5", UnionPayConstant.UNION_H5_PAY); diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/handler/BaseExceptionHandler.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/handler/BaseExceptionHandler.java index cc5752b..1f0d75f 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/handler/BaseExceptionHandler.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/handler/BaseExceptionHandler.java @@ -5,8 +5,7 @@ import com.yida.data.common.core.entity.constant.StringConstant; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.exception.FileDownloadException; import com.yida.data.common.core.utils.FebsUtil; -import feign.FeignException; -import lombok.extern.slf4j.Slf4j; + import org.apache.commons.lang3.StringUtils; import org.springframework.http.HttpStatus; import org.springframework.security.access.AccessDeniedException; @@ -19,11 +18,15 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; +import java.util.List; +import java.util.Set; + import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import javax.validation.Path; -import java.util.List; -import java.util.Set; + +import feign.FeignException; +import lombok.extern.slf4j.Slf4j; /** * @author MrBird @@ -135,7 +138,7 @@ public class BaseExceptionHandler { @ExceptionHandler(value = HttpRequestMethodNotSupportedException.class) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) public FebsResponse handleHttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException e) { - log.error("error: ", e); + log.error("error:{},{}", e.getMessage(), e.getStackTrace()); String message = "该方法不支持" + StringUtils.substringBetween(e.getMessage(), "'", "'") + "请求方法"; log.error(message); return new FebsResponse().message(message); diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/AppUtil.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/AppUtil.java index 7dc3de6..2e9e8b7 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/AppUtil.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/AppUtil.java @@ -178,25 +178,55 @@ public class AppUtil { } } + /** + * 推送app消息 + * + * @param appNotice 消息配置类 + * @param app app信息 + * @author ZYJ + * @date 2023/7/14 16:04 + */ + public static void sendPushMsg(AppNotice appNotice, EduYidaApp app) { + StringBuilder url = new StringBuilder(); + AppNotice appNotice1 = new AppNotice(); + BeanUtils.copyProperties(appNotice, appNotice1); + appNotice1.setMsgList(null); + url.append(app.getAppUrl()).append(YidaAppConstant.JIGUANG_SEND_MSG); +// url.append("http://10.143.132.192:8082/push/sendMulti").append(YidaAppConstant.JIGUANG_SEND_MSG); + String body = JSONUtil.toJsonStr(appNotice1); + // 1s后超时 不保证收到推送 + try { + String res = HttpUtil.post(url.toString(), body, 1000); + log.info("app消息推送,res:[{}],params:[{}]", res, body); + } catch (Exception e) { + log.error("app消息推送超时,url:[{}],params:[{}]", url, body); + } + } /** * 发送稿件 */ public static String publishManuscript(EduSchoolManuscript manuscript, EduYidaApp yidaApp, String columnId, String yidaUserId) { - JSONObject body = new JSONObject() {{ - set("title", manuscript.getTitle()); - set("fileType", manuscript.getCoverType()); - set("type", 1); - set("isPush", 1); - set("isSub", 1); - set("isPublish", 1); - set("from", 2); - set("isTop", 0); - set("titleFilePath", manuscript.getCoverUrl()); - set("areaId", yidaApp.getAppAreaId()); - set("createById", yidaUserId); - }}; + JSONObject body = JSONUtil.createObj() + .set("title", manuscript.getTitle()) + .set("fileType", manuscript.getCoverType()) + .set("type", 1) + .set("isPush", 1) + .set("isSub", 1) + .set("isPublish", 1) + .set("from", 2) + .set("isTop", 0) + .set("titleFilePath", manuscript.getCoverUrl()) + .set("areaId", yidaApp.getAppAreaId()) + .set("createById", yidaUserId); + // 判断稿件id + if (StrUtil.isNotBlank(manuscript.getYidaAppMunascriptId())) { + body.set("id", manuscript.getYidaAppMunascriptId()); + body.set("isNewRecord", false); + } else { + body.set("isNewRecord", true); + } // 是否发布到栏目 if (StrUtil.isNotBlank(columnId)) { body.set("columnId", columnId); @@ -207,9 +237,9 @@ public class AppUtil { if (StrUtil.isNotBlank(manuscript.getContentUrl())) { body.set("contenUrl", manuscript.getContentUrl()); } - if (StrUtil.isNotBlank(manuscript.getYidaAppMunascriptId())) { - body.set("id", manuscript.getYidaAppMunascriptId()); - } +// if (StrUtil.isNotBlank(manuscript.getYidaAppMunascriptId())) { +// body.set("id", manuscript.getYidaAppMunascriptId()); +// } String res = HttpUtil.post(yidaApp.getAppUrl() + YidaAppConstant.MANUSCRIPT_SAVE, body); JSONObject resJson = JSONUtil.parseObj(res); log.info("易达发送稿件,res:[{}],params:[{}]", res, body); @@ -258,10 +288,16 @@ public class AppUtil { /** * 删除稿件 */ - public static void manuscriptDel(List ids, EduYidaApp yidaApp) { + public static void manuscriptDel(List ids, EduYidaApp yidaApp, String userId) { + if (CollUtil.isEmpty(ids)) { + log.info("易达删除稿件IDS为空"); + return; + } JSONObject body = new JSONObject() {{ set("ids", CollUtil.join(ids, ",")); + set("operateUserId", userId); }}; + log.info("易达删除稿件:params:{}", body); HttpUtil.post(yidaApp.getAppUrl() + YidaAppConstant.MANUSCRIPT_DEL, body); } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/DateUtil.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/DateUtil.java index fb59258..bdceddf 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/DateUtil.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/DateUtil.java @@ -1,19 +1,14 @@ package com.yida.data.common.core.utils; -import cn.hutool.core.date.DateUnit; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; -import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.util.Calendar; import java.util.Date; -import java.util.HashMap; import java.util.Locale; -import java.util.Map; /** * 时间工具类 @@ -99,115 +94,4 @@ public abstract class DateUtil { LocalTime now = LocalTime.now(); return now.isAfter(from) && now.isBefore(to); } - - - /** - * 计算两个时间点相差的天数 - * - * @param - * @return - */ - public static Long daysBetween(Date beginDate, Date endDate) { - return cn.hutool.core.date.DateUtil.between(beginDate, endDate, DateUnit.DAY); - } - - - /** - * 获取指定年指定月的开始天数和结束天数 - * - * @param yearMonth - * @return - */ - public static Map getFirstDayAndLastDayOfTheSpecifiedMonth(String yearMonth) { - - int year = Integer.parseInt(yearMonth.split("-")[0]); - int month = Integer.parseInt(yearMonth.split("-")[1]); - // 获取当前分区的日历信息(这里可以使用参数指定时区) - Calendar calendar = Calendar.getInstance(); - // 设置年 - calendar.set(Calendar.YEAR, year); - // 设置月,月份从0开始 - calendar.set(Calendar.MONTH, month - 1); - // 设置为指定月的第一天 - calendar.set(Calendar.DAY_OF_MONTH, 1); - // 获取指定月第一天的时间 - Date start = calendar.getTime(); - // 设置日历天数为当前月实际天数的最大值,即指定月份的最后一天 - calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE)); - // 获取最后一天的时间 - Date end = calendar.getTime(); - // 设置返回信息,返回样式根据需求自行格式化 - Map dateMap = new HashMap<>(); - dateMap.put("start", start); - dateMap.put("end", end); - return dateMap; - } - - - /** - * 查询日期间有几天一周中的某一天 日期格式 yyyy-MM-dd yyyy-MM-dd 1-7(表示周一到周日) - * - * @param startDate 准备查询的起始日期 - * @param endDate 准备查询的结束日期 - * @param dayOfWeek 准备查的一周中的某一天(准备查周几?) - * @return 包含所查周几的天数 - * @throws ParseException 不支持跨年查询、不支持结束日期早于起始日期、周几输入错误等 - */ - public static Integer getMondayNumber(LocalDate startDate, LocalDate endDate, int dayOfWeek) throws ParseException { - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - int differenceDay = 0; - //实例化起始和结束Calendar对象 - Calendar startCalendar = Calendar.getInstance(); - Calendar endCalendar = Calendar.getInstance(); - //分别设置Calendar对象的时间 - ZoneId zone = ZoneId.systemDefault(); - Instant instantStartDate = startDate.atStartOfDay().atZone(zone).toInstant(); - Instant instantEndDate = endDate.atStartOfDay().atZone(zone).toInstant(); - startCalendar.setTime(Date.from(instantStartDate)); - endCalendar.setTime(Date.from(instantEndDate)); - - //定义起始日期和结束日期分别属于第几周 - int startWeek = startCalendar.get(Calendar.WEEK_OF_YEAR); - int endWeek = endCalendar.get(Calendar.WEEK_OF_YEAR); - - //拿到起始日期是星期几 - int startDayOfWeek = startCalendar.get(Calendar.DAY_OF_WEEK); - if (startDayOfWeek == 1) { - startDayOfWeek = 7; - startWeek--; - } else { - startDayOfWeek--; - } - - //拿到结束日期是星期几 - int endDayOfWeek = endCalendar.get(Calendar.DAY_OF_WEEK); - if (endDayOfWeek == 1) { - endDayOfWeek = 7; - endWeek--; - } else { - endDayOfWeek--; - } - - //计算相差的周数 - int differenceWeek = endWeek - startWeek; - - //开始计算 - if (startDayOfWeek <= dayOfWeek) { - if (endDayOfWeek >= dayOfWeek) { - differenceDay = differenceWeek + 1; - } - } else if (startDayOfWeek > dayOfWeek) { - if (endDayOfWeek < dayOfWeek) { - differenceDay = differenceWeek - 1; - } - } else { - differenceDay = differenceWeek; - } - return differenceDay; - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/FebsUtil.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/FebsUtil.java index e256c57..d794edf 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/FebsUtil.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/FebsUtil.java @@ -9,10 +9,8 @@ import com.yida.data.common.core.entity.constant.PageConstant; import com.yida.data.common.core.entity.constant.RegexpConstant; import com.yida.data.common.core.entity.constant.StringConstant; import com.yida.data.common.core.exception.FebsException; -import java.time.LocalDate; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.omg.CORBA.UNKNOWN; import org.springframework.core.env.Environment; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.core.io.buffer.DataBufferUtils; @@ -49,7 +47,6 @@ import java.util.stream.IntStream; public abstract class FebsUtil { private static final String UNKNOW = "unknown"; - private static final String UNKNOWN = "unknown"; /** * 驼峰转下划线 @@ -216,18 +213,13 @@ public abstract class FebsUtil { public static String getHttpServletRequestIpAddress() { HttpServletRequest request = getHttpServletRequest(); String ip = request.getHeader("x-forwarded-for"); - if (ip != null && ip.length() != 0 && !UNKNOWN.equalsIgnoreCase(ip)) { - if (ip.contains(StringConstant.COMMA)) { - ip = ip.split(StringConstant.COMMA)[0]; - } - } - if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) { + if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } - if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) { + if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } - if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) { + if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip; @@ -409,91 +401,11 @@ public abstract class FebsUtil { res = "星期六"; break; case 7: - res = "星期日"; + res = "星期天"; break; default: } } return res; } - - public static boolean isWeek(String weekStr, Integer week) { - boolean flag = false; - switch (week) { - case 1: - if (weekStr.contains("星期一")) { - flag = true; - } - break; - case 2: - if (weekStr.contains("星期二")) { - flag = true; - } - break; - case 3: - if (weekStr.contains("星期三")) { - flag = true; - } - break; - case 4: - if (weekStr.contains("星期四")) { - flag = true; - } - break; - case 5: - if (weekStr.contains("星期五")) { - flag = true; - } - break; - case 6: - if (weekStr.contains("星期六")) { - flag = true; - } - break; - case 7: - if (weekStr.contains("星期日")) { - flag = true; - } - break; - default: - break; - } - return flag; - } - - - /** - * 通过身份证号码获取性别(sex) - * - * @param idCardNo 身份证号码 - * @return 性别格式:1:女,0:男 - */ - public static Integer getSexByIdCardNo(String idCardNo) { - Integer sexCode = null; - char[] number = idCardNo.toCharArray(); - boolean flag = true; - if (number.length == 15) { - for (int x = 0; x < number.length; x++) { - if (!flag) { - return null; - } - flag = Character.isDigit(number[x]); - } - } else if (number.length == 18) { - for (int x = 0; x < number.length - 1; x++) { - if (!flag) { - return null; - } - flag = Character.isDigit(number[x]); - } - } - if (flag && idCardNo.length() == 15) { - sexCode = Integer.parseInt(idCardNo.substring(idCardNo.length() - 3, idCardNo.length())) % 2 == 0 ? 1 : 0; - } else if (flag && idCardNo.length() == 18) { - sexCode = Integer.parseInt(idCardNo.substring(idCardNo.length() - 4, idCardNo.length() - 1)) % 2 == 0 ? 1 : 0; - } - - return sexCode; - } - } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/FileUtil.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/FileUtil.java index bde3fc5..f736310 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/FileUtil.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/FileUtil.java @@ -111,7 +111,7 @@ public abstract class FileUtil { put("source", 50); } }); -// log.info("上传响应,[{}]", resp); + log.info("上传响应,[{}]", resp); JSONObject respJson = JSONUtil.parseObj(resp); if (!"200".equals(respJson.get("status").toString())) { throw new FebsException(respJson.getStr("message")); @@ -261,14 +261,6 @@ public abstract class FileUtil { public static String downloadToLocal(String url) { LocalDateTime now = LocalDateTime.now(); String path = TEMP_DIR + now.getYear() + "/" + now.getMonthValue() + "/" + now.getDayOfMonth() + "/"; -// String filename = cn.hutool.core.io.FileUtil.getName(url); -// if (filename.contains(".jpg") || filename.contains(".png")) { -// if (filename.contains("?")) { -// filename = filename.split("\\?")[0]; -// } -// } else { -// filename = UUID.randomUUID() + ".jpg"; -// } String filename = UUID.randomUUID() + ".jpg"; try { HttpUtil.downloadFile(url, path + filename); diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/WxPublicUtil.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/WxPublicUtil.java index 6d327ff..c06f34b 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/WxPublicUtil.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/WxPublicUtil.java @@ -106,7 +106,7 @@ public class WxPublicUtil { public String getAccessToken(String appId, String secret) { String accessToken = - String.valueOf(redisService.get(FebsConstant.WX_PUBLIC_ACCESS_TOKEN + appId + "." + secret)); + String.valueOf(redisService.get(FebsConstant.WX_PUBLIC_ACCESS_TOKEN + appId + "." + secret)); if ("null".equals(accessToken)) { Map params = new HashMap<>(); params.put("grant_type", "client_credential"); @@ -117,7 +117,7 @@ public class WxPublicUtil { JSONObject token = JSONUtil.parseObj(response); if (token.containsKey("errcode") && !"0".equals(token.get("errcode").toString())) { log.error("请求微信公众号access token失败,code:{},msg:{}", token.get("errcode").toString(), - token.get("errmsg").toString()); + token.get("errmsg").toString()); throw new FebsException("验证失败"); } accessToken = token.get("access_token").toString(); @@ -138,7 +138,7 @@ public class WxPublicUtil { JSONObject token = JSONUtil.parseObj(response); if (token.containsKey("errcode") && !"0".equals(token.get("errcode"))) { log.error("请微信求access token失败,code:{},msg:{}", token.get("errcode"), - token.get("errmsg")); + token.get("errmsg")); throw new FebsException("验证失败"); } return token.getStr("openid"); @@ -151,10 +151,10 @@ public class WxPublicUtil { Map body = new HashMap<>(); body.put("media", img); JSONObject response = JSONUtil.parseObj( - post(WxPublicConstant.UPLOAD_NEWS_IMG + "?access_token=" + token, body)); + post(WxPublicConstant.UPLOAD_NEWS_IMG + "?access_token=" + token, body)); if (response.containsKey("errcode") && !"0".equals(response.get("errcode").toString())) { log.error("上传图片失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("上传图片失败"); } return response.getStr("url"); @@ -166,10 +166,10 @@ public class WxPublicUtil { public String uploadNews(News news, String token) { String body = JSONUtil.toJsonPrettyStr(news); JSONObject response = JSONUtil.parseObj( - post(WxPublicConstant.UPLOAD_NEWS + "?access_token=" + token, body)); + post(WxPublicConstant.UPLOAD_NEWS + "?access_token=" + token, body)); if (response.containsKey("errcode") && !"0".equals(response.get("errcode").toString())) { log.error("上传图文素材失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("上传图文素材失败"); } return response.getStr("media_id"); @@ -190,10 +190,10 @@ public class WxPublicUtil { put("send_ignore_reprint", 1); }}; JSONObject response = JSONUtil.parseObj( - post(WxPublicConstant.SEND_MSG + "?access_token=" + token, JSONUtil.toJsonStr(body))); + post(WxPublicConstant.SEND_MSG + "?access_token=" + token, JSONUtil.toJsonStr(body))); if (response.containsKey("errcode") && !"0".equals(response.get("errcode").toString())) { log.error("群发图文消息失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("群发图文消息失败"); } return response.getStr("msg_data_id"); @@ -213,10 +213,10 @@ public class WxPublicUtil { set("msgtype", "text"); }}; JSONObject response = JSONUtil.parseObj( - post(WxPublicConstant.SEND_MSG + "?access_token=" + token, body)); + post(WxPublicConstant.SEND_MSG + "?access_token=" + token, body)); if (response.containsKey("errcode") && !"0".equals(response.get("errcode").toString())) { log.error("群发文本消息失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("群发文本消息失败"); } return response.getStr("msg_data_id"); @@ -236,10 +236,10 @@ public class WxPublicUtil { set("msgtype", "voice"); }}; JSONObject response = JSONUtil.parseObj( - post(WxPublicConstant.SEND_MSG + "?access_token=" + token, body)); + post(WxPublicConstant.SEND_MSG + "?access_token=" + token, body)); if (response.containsKey("errcode") && !"0".equals(response.get("errcode").toString())) { log.error("群发音频消息失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("群发音频消息失败"); } return response.getStr("msg_data_id"); @@ -259,10 +259,10 @@ public class WxPublicUtil { set("msgtype", "image"); }}; JSONObject response = JSONUtil.parseObj( - post(WxPublicConstant.SEND_MSG + "?access_token=" + token, body)); + post(WxPublicConstant.SEND_MSG + "?access_token=" + token, body)); if (response.containsKey("errcode") && !"0".equals(response.get("errcode").toString())) { log.error("群发音频消息失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("群发音频消息失败"); } return response.getStr("msg_data_id"); @@ -282,10 +282,10 @@ public class WxPublicUtil { set("msgtype", "mpvideo"); }}; JSONObject response = JSONUtil.parseObj( - post(WxPublicConstant.SEND_MSG + "?access_token=" + token, body)); + post(WxPublicConstant.SEND_MSG + "?access_token=" + token, body)); if (response.containsKey("errcode") && !"0".equals(response.get("errcode").toString())) { log.error("群发音频消息失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("群发音频消息失败"); } return response.getStr("msg_data_id"); @@ -305,10 +305,10 @@ public class WxPublicUtil { }})); } JSONObject response = JSONUtil.parseObj( - post(WxPublicConstant.UPLOAD_MATERIAL + "?access_token=" + token + "&type=" + type, body)); + post(WxPublicConstant.UPLOAD_MATERIAL + "?access_token=" + token + "&type=" + type, body)); if (response.containsKey("errcode") && !"0".equals(response.get("errcode").toString())) { log.error("上传永久素材失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("上传永久素材失败"); } return response.getStr("media_id"); @@ -322,10 +322,10 @@ public class WxPublicUtil { put("media_id", mediaId); }}; JSONObject response = JSONUtil.parseObj( - post(WxPublicConstant.DELETE_MATERIAL + "?access_token=" + token, JSONUtil.toJsonStr(body))); + post(WxPublicConstant.DELETE_MATERIAL + "?access_token=" + token, JSONUtil.toJsonStr(body))); if (response.containsKey("errcode") && !"0".equals(response.get("errcode").toString())) { log.error("删除永久素材失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("删除永久素材失败"); } } @@ -334,15 +334,15 @@ public class WxPublicUtil { * 上传临时素材 图片(image)、语音(voice)、视频(video)和缩略图(thumb) */ public String uploadTempMaterial(String type, File file, - String token) { + String token) { Map body = new HashMap() {{ put("media", file); }}; JSONObject response = JSONUtil.parseObj( - HttpUtil.post(WxPublicConstant.UPLOAD_TEMP_MATERIAL + "?access_token=" + token + "&type=" + type, body)); + HttpUtil.post(WxPublicConstant.UPLOAD_TEMP_MATERIAL + "?access_token=" + token + "&type=" + type, body)); if (response.containsKey("errcode") && !"0".equals(response.get("errcode").toString())) { log.error("上传临时素材失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("上传临时素材失败"); } if ("thumb".equals(type)) { @@ -364,7 +364,7 @@ public class WxPublicUtil { return null; } String url = new StringBuilder(WxPublicConstant.QR_CODE).append("?access_token=").append(accessToken) - .toString(); + .toString(); JSONObject body = new JSONObject() {{ if (expire != null) { set("expire_seconds", expire); @@ -408,13 +408,13 @@ public class WxPublicUtil { }}); }}; String post = HttpUtil.post( - new StringBuilder(WxPublicConstant.PUSH_CUSTOM_MSG).append("?access_token=").append(accessToken).toString(), - body.toString()); + new StringBuilder(WxPublicConstant.PUSH_CUSTOM_MSG).append("?access_token=").append(accessToken).toString(), + body.toString()); log.info("发送客户消息,res:[{}],body:[{}]", post, body); } public void publishTemplateMsg(String accessToken, String openUserId, String templateId, String url, - JSONObject data) { + JSONObject data) { JSONObject body = new JSONObject() {{ set("touser", openUserId); if (StrUtil.isNotBlank(url)) { @@ -424,12 +424,13 @@ public class WxPublicUtil { set("data", data); }}; String post = HttpUtil.post(new StringBuilder(WxPublicConstant.PUSH_TEMPLATE_MSG).append( - "?access_token=").append(accessToken).toString(), body.toString()); + "?access_token=").append(accessToken).toString(), body.toString()); log.info("发送模板消息,res:[{}],body:[{}]", post, body); } /** - * 获取小程序URL Link https + post + * 获取小程序URL Link + * https + post * * @param accessToken token值 * @param generateUrlLink 获取小程序URL Link请求类 @@ -440,62 +441,30 @@ public class WxPublicUtil { public String generateUrlLink(String accessToken, GenerateUrlLink generateUrlLink) { // 封装参数 JSONObject body = JSONUtil.createObj() - .set("path", generateUrlLink.getPath()) - .set("query", generateUrlLink.getQuery()) - .set("env_version", generateUrlLink.getEnvVersion()) - .set("expire_type", generateUrlLink.getExpireType()) - .set("expire_interval", 30); + .set("path", generateUrlLink.getPath()) + .set("query", generateUrlLink.getQuery()) + .set("env_version", generateUrlLink.getEnvVersion()) + .set("expire_type", generateUrlLink.getExpireType()) + .set("expire_interval", 30); if (Objects.nonNull(generateUrlLink.getCloudBase())) { GenerateUrlLink.CloudBase cloudBase = generateUrlLink.getCloudBase(); body.set("cloud_base", JSONUtil.createObj() - .set("env", cloudBase.getEnv()) - .set("domain", cloudBase.getDomain()) - .set("path", cloudBase.getPath()) - .set("query", cloudBase.getQuery()) - .set("resource_appid", cloudBase.getResourceAppId()) + .set("env", cloudBase.getEnv()) + .set("domain", cloudBase.getDomain()) + .set("path", cloudBase.getPath()) + .set("query", cloudBase.getQuery()) + .set("resource_appid", cloudBase.getResourceAppId()) ); } // 请求接口 String result = HttpUtil.post(WxPublicConstant.GENERATE_URL_LINK + "?access_token=" + accessToken, body.toString()); -// log.info("获取小程序URL Link接口, result: [{}], body: [{}]", result, body); + log.info("获取小程序URL Link接口, result: [{}], body: [{}]", result, body); JSONObject response = JSONUtil.parseObj(result); if (response.containsKey("errcode") && !"0".equals(response.getStr("errcode"))) { log.error("获取小程序URL Link接口失败,code:{},msg:{}", response.get("errcode"), - response.get("errmsg")); + response.get("errmsg")); throw new FebsException("获取小程序URL Link接口失败"); } return response.getStr("url_link"); } - - /** - * 微信获取JS-SDK jsapi_ticket - * - * @param appId 微信appId - * @param secret 微信secret - * @return java.lang.String - * @author ZYJ - * @date 2023/6/5 14:50 - */ - public String getJsApiTicket(String appId, String secret) { - String jsApiTicket = - String.valueOf(redisService.get(FebsConstant.WX_PUBLIC_JS_API_TICKET + appId + "." + secret)); - if ("null".equals(jsApiTicket)) { - - Map params = new HashMap<>(); - params.put("access_token", getAccessToken(appId, secret)); - params.put("type", "jsapi"); - // 获取JS-SDK jsapi_ticket - String response = get(WxPublicConstant.GET_JS_API_TICKET_URL, params); - JSONObject token = JSONUtil.parseObj(response); - if (token.containsKey("errcode") && !"0".equals(token.get("errcode").toString())) { - log.error("获取JS-SDK jsapi_ticket失败,code:{},msg:{}", token.get("errcode").toString(), - token.get("errmsg").toString()); - throw new FebsException("验证失败"); - } - jsApiTicket = token.get("ticket").toString(); - // 缓存accessToken两小时 - redisService.set(FebsConstant.WX_PUBLIC_JS_API_TICKET + appId + "." + secret, jsApiTicket, 7200L); - } - return jsApiTicket; - } } diff --git a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/WxUtil.java b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/WxUtil.java index 3eab974..99248a8 100644 --- a/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/WxUtil.java +++ b/febs-common/febs-common-core/src/main/java/com/yida/data/common/core/utils/WxUtil.java @@ -9,20 +9,28 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.yida.data.common.core.entity.constant.FebsConstant; import com.yida.data.common.core.entity.constant.QywxConstant; -import com.yida.data.common.core.entity.constant.WxPublicConstant; import com.yida.data.common.core.entity.notice.qywx.BaseSchoolNotice; import com.yida.data.common.core.entity.notice.qywx.BaseStaffNotice; import com.yida.data.common.core.entity.system.Dept; -import com.yida.data.common.core.entity.user.*; +import com.yida.data.common.core.entity.user.EduParent; +import com.yida.data.common.core.entity.user.EduStaff; +import com.yida.data.common.core.entity.user.EduStaffDept; +import com.yida.data.common.core.entity.user.EduStudent; +import com.yida.data.common.core.entity.user.EduTeacherDept; +import com.yida.data.common.core.entity.user.EduUserDept; import com.yida.data.common.core.exception.FebsException; +import java.io.File; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.io.File; -import java.util.*; -import java.util.stream.Collectors; - @Component @Slf4j public class WxUtil { @@ -168,7 +176,7 @@ public class WxUtil { public Boolean pushSchoolNotice(String token, BaseSchoolNotice notice) { JSONObject resp = JSONUtil.parseObj(post(QywxConstant.PUSH_SCHOOL_NOTICE_URL + token, JSONUtil.toJsonStr(notice).replace("\\n", "\n"))); -// log.info("打印学校消息推送信息: {}", JSONUtil.toJsonStr(notice).replace("\\n", "\n")); + log.info("打印学校消息推送信息: {}", JSONUtil.toJsonStr(notice).replace("\\n", "\n")); if (!"0".equals(resp.containsKey("errcode") ? resp.get("errcode").toString() : null)) { log.error("微信通知发送失败,msg:{},notice:{}", resp, notice); return false; @@ -176,14 +184,12 @@ public class WxUtil { return true; } - public Boolean pushStaffNotice(String token, BaseStaffNotice notice) { -// log.info("打印学校消息推送信息: {}", JSONUtil.toJsonStr(notice).replace("\\n", "\n")); JSONObject resp = JSONUtil.parseObj(post(QywxConstant.PUSH_STAFF_NOTICE_URL + token, JSONUtil.toJsonStr(notice).replace("\\n", "\n"))); -// log.info("打印学校消息推送信息返回信息: {}", resp); + log.info("打印学校消息推送信息: {}", JSONUtil.toJsonStr(notice).replace("\\n", "\n")); if (!"0".equals(resp.containsKey("errcode") ? resp.get("errcode").toString() : null)) { - log.error("微信通知发送失败,msg:{},notice:{}", resp.get("errmsg"), JSONUtil.toJsonStr(notice).replace("\\n", "\n")); + log.error("微信通知发送失败,msg:{},notice:{}", resp.get("errmsg"), notice); return false; } return true; @@ -220,41 +226,6 @@ public class WxUtil { return user.getJSONArray("userlist"); } - /** - * 获取成员ID列表 - * - * @param accessToken 调用接口凭证 - * @param cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用不填 - * @param limit 分页,预期请求的数据量,取值范围 1 ~ 10000 - * @return cn.hutool.json.JSONArray - * @author ZYJ - * @date 2022/12/6 17:35 - */ - public JSONArray getUserIdList(String accessToken, String cursor, String limit, JSONArray jsonArray) { - // 封装请求参数 - JSONObject params = JSONUtil.createObj() - .set("limit", limit); - if (StrUtil.isNotBlank(cursor)) { - params.set("cursor", cursor); - } - String response = post(QywxConstant.USER_ID_LIST_URL + accessToken, params.toString()); - JSONObject jsonObject = JSONUtil.parseObj(response); - log.info("企业微信获取成员ID列表请求参数: {}, 返回值: {}", params, jsonObject); - if (!SUCCESS_CODE.equals(jsonObject.containsKey(ERR_CODE) ? jsonObject.get(ERR_CODE).toString() : null)) { - log.error("企业微信获取获取成员ID列表失败,code:{},msg:{}", jsonObject.get(ERR_CODE), jsonObject.get(ERR_MESSAGE)); - throw new FebsException("企业微信获取获取成员ID列表失败"); - } - // 获取成员列表id数据 - JSONArray deptUser = jsonObject.getJSONArray("dept_user"); - jsonArray.addAll(deptUser); - // 获取分页游标 - String nextCursor = jsonObject.getStr("next_cursor"); - if (StrUtil.isNotBlank(nextCursor)) { - getUserIdList(accessToken, nextCursor, limit, jsonArray); - } - return jsonArray; - } - /** * 使用授权登陆code,获取成员信息,通讯录成员返回UserId,家长返回parent_userid */ @@ -265,17 +236,14 @@ public class WxUtil { params.put("code", code); String response = get(QywxConstant.USER_INFO_URL, params); JSONObject user = JSONUtil.parseObj(response); - if (!SUCCESS_CODE.equals(user.containsKey(ERR_CODE) ? user.get(ERR_CODE).toString() : null)) { - log.error("请求微信用户信息失败,code:{},msg:{}", user.get(ERR_CODE), - user.get(ERR_MESSAGE)); + if (!"0".equals(user.containsKey("errcode") ? user.get("errcode").toString() : null)) { + log.error("请求微信用户信息失败,code:{},msg:{}", user.get("errcode"), + user.get("errmsg")); throw new FebsException("获取用户信息失败"); } return user; } - /** - * 查询用户详细信息 - */ public JSONObject getUserDetail(String accessToken, String userId) { // 查询用户微信userid Map params = new HashMap<>(); @@ -283,34 +251,10 @@ public class WxUtil { params.put("userid", userId); String userDetailResponse = get(QywxConstant.USER_DETAIL_URL, params); JSONObject userDetail = JSONUtil.parseObj(userDetailResponse); - log.info("请求企业微信用户详细信息请求参数: {}, 返回值: {}", params, userDetail); - if (!SUCCESS_CODE.equals(userDetail.containsKey(ERR_CODE) ? userDetail.get(ERR_CODE).toString() : null)) { - log.error("请求企业微信用户详细信息失败,code:{},msg:{}", userDetail.get(ERR_CODE), - userDetail.get(ERR_MESSAGE)); - throw new FebsException("请求企业微信用户详细信息失败"); - } - return userDetail; - } - - /** - * 查询用户敏感信息 - * - * @param accessToken 调用接口凭证 - * @param userTicket 成员票据 - * @return cn.hutool.json.JSONObject - * @author ZYJ - * @date 2022/11/28 15:35 - */ - public JSONObject getUserSensitiveInfo(String accessToken, String userTicket) { - JSONObject params = JSONUtil.createObj() - .set("user_ticket", userTicket); - String userDetailResponse = post(QywxConstant.USER_SENSITIVE_INFO_URL + accessToken, params.toString()); - JSONObject userDetail = JSONUtil.parseObj(userDetailResponse); - log.info("查询用户敏感信息请求参数: {}, 返回值: {}", params, userDetail); - if (!SUCCESS_CODE.equals(userDetail.containsKey(ERR_CODE) ? userDetail.get(ERR_CODE).toString() : null)) { - log.error("查询用户敏感信息失败,code:{}, msg:{}", userDetail.get(ERR_CODE), - userDetail.get(ERR_MESSAGE)); - throw new FebsException("查询用户敏感信息失败"); + if (!"0".equals(userDetail.containsKey("errcode") ? userDetail.get("errcode").toString() : null)) { + log.error("请求微信用户详细信息失败,code:{},msg:{}", userDetail.get("errcode"), + userDetail.get("errmsg")); + throw new FebsException("获取用户信息失败"); } return userDetail; } @@ -384,9 +328,9 @@ public class WxUtil { if (deptId != null) { params.put("id", deptId); } + JSONObject response = JSONUtil.parseObj( get(QywxConstant.DEPT_LIST_URL, params)); - log.info("获取企业微信部门列表请求参数: {}, 返回值: {}", params, response); if (!"0".equals(response.containsKey("errcode") ? response.get("errcode").toString() : null)) { log.error("获取企业微信部门列表失败,code:{},msg:{},params:{}", response.get("errcode"), response.get("errmsg"), params); @@ -396,50 +340,6 @@ public class WxUtil { return response.getJSONArray("department").toList(Map.class); } - /** - * 获取子部门ID列表 - * - * @param accessToken 调用接口凭证 - * @param deptId 部门id。获取指定部门及其下的子部门(以及子部门的子部门等等,递归)。 如果不填,默认获取全量组织架构 - * @return java.util.List - * @author ZYJ - * @date 2023/4/24 10:46 - */ - public List listSimpleDept(String accessToken, Long deptId) { - Map params = new HashMap<>(); - params.put("access_token", accessToken); - if (deptId != null) { - params.put("id", deptId); - } - JSONObject response = JSONUtil.parseObj(get(QywxConstant.SIMPLE_DEPT_LIST_URL, params)); - log.info("获取企业微信子部门ID列表请求参数: {}, 返回值: {}", params, response); - if (!SUCCESS_CODE.equals(response.containsKey(ERR_CODE) ? response.get(ERR_CODE).toString() : null)) { - log.error("获取企业微信子部门ID列表失败,code:{},msg:{},params:{}", response.get(ERR_CODE), - response.get(ERR_MESSAGE), params); - throw new FebsException("获取企业微信子部门ID列表失败"); - } - return response.getJSONArray("department_id").toList(Map.class); - } - - /** - * 获取单个部门详情 - */ - public JSONObject getDeptInfo(String accessToken, String deptId) { - Map params = new HashMap<>(); - params.put("access_token", accessToken); - if (deptId != null) { - params.put("id", deptId); - } - JSONObject response = JSONUtil.parseObj(get(QywxConstant.DEPT_INFO_URL, params)); - log.info("获取企业单个部门详情请求参数: {}, 返回值: {}", params, response); - if (!SUCCESS_CODE.equals(response.containsKey(ERR_CODE) ? response.get(ERR_CODE).toString() : null)) { - log.error("获取企业单个部门详情失败,code:{},msg:{},params:{}", response.get(ERR_CODE), - response.get(ERR_MESSAGE), params); - throw new FebsException("获取企业单个部门详情失败"); - } - return response.getJSONObject("department"); - } - /** * 创建企业微信部门(家校沟通) */ @@ -507,10 +407,10 @@ public class WxUtil { JSONObject response = JSONUtil.parseObj( post(QywxConstant.SCHOOL_DEPT_UPDATE_URL + "?access_token=" + accessToken, JSONUtil.toJsonStr(body))); - log.info("删除部门管理员接口,params:[{}],res:[{}]", body, response); - if (!SUCCESS_CODE.equals(response.containsKey(ERR_CODE) ? response.get(ERR_CODE).toString() : null)) { - log.error("企业微信删除部门(家校)管理员失败,code:{},msg:{}", response.get(ERR_CODE), - response.get(ERR_MESSAGE)); + log.info("删除部门,params:[{}],res:[{}]", body, response); + if (!"0".equals(response.containsKey("errcode") ? response.get("errcode").toString() : null)) { + log.error("企业微信删除部门(家校)管理员失败,code:{},msg:{}", response.get("errcode"), + response.get("errmsg")); throw new FebsException("删除部门(家校)管理员失败"); } } @@ -544,10 +444,9 @@ public class WxUtil { } JSONObject response = JSONUtil.parseObj( get(QywxConstant.SCHOOL_DEPT_LIST_URL, params)); - log.info("获取家校沟通部门列表请求参数: {}, 返回值: {}", params, response); - if (!SUCCESS_CODE.equals(response.containsKey(ERR_CODE) ? response.get(ERR_CODE).toString() : null)) { - log.error("获取企业微信部门(家校)列表失败,code:{},msg:{},params:{}", response.get(ERR_CODE), - response.get(ERR_MESSAGE), params); + if (!"0".equals(response.containsKey("errcode") ? response.get("errcode").toString() : null)) { + log.error("获取企业微信部门(家校)列表失败,code:{},msg:{},params:{}", response.get("errcode"), + response.get("errmsg"), params); throw new FebsException("获取企业微信部门(家校)列表失败"); } @@ -590,9 +489,6 @@ public class WxUtil { if (StrUtil.isNotBlank(staff.getLandLine())) { body.put("telephone", staff.getLandLine()); } - if (StrUtil.isNotBlank(staff.getAddress())) { - body.put("address", staff.getAddress()); - } log.info(JSONUtil.toJsonStr(body)); JSONObject response = JSONUtil.parseObj( post(QywxConstant.USER_CREATE_URL + "?access_token=" + accessToken, @@ -668,15 +564,12 @@ public class WxUtil { if (StrUtil.isNotBlank(staff.getLandLine())) { body.put("telephone", staff.getLandLine()); } - if (StrUtil.isNotBlank(staff.getAddress())) { - body.put("address", staff.getAddress()); - } log.info(JSONUtil.toJsonStr(body)); JSONObject response = JSONUtil.parseObj( post(QywxConstant.USER_UPDATE_URL + "?access_token=" + accessToken, JSONUtil.toJsonStr(body))); if (!"0".equals(response.containsKey("errcode") ? response.get("errcode").toString() : null)) { - log.error("企业微信修改用户失败,code:{},msg:{}", response.get("errcode"), + log.error("企业微信新增用户失败,code:{},msg:{}", response.get("errcode"), response.get("errmsg")); throw new FebsException("更新职工失败"); } @@ -691,7 +584,6 @@ public class WxUtil { JSONObject response = JSONUtil.parseObj( post(QywxConstant.USER_DELETE_URL + "?access_token=" + accessToken, JSONUtil.toJsonStr(body))); - log.info("企业微信删除用户请求参数: {}, 返回值: {}", body, response); if (!"0".equals(response.containsKey("errcode") ? response.get("errcode").toString() : null)) { log.error("企业微信删除用户失败,code:{},msg:{}", response.get("errcode"), response.get("errmsg")); @@ -827,7 +719,6 @@ public class WxUtil { JSONObject response = JSONUtil.parseObj( post(QywxConstant.PARENT_CREATE_URL + "?access_token=" + accessToken, JSONUtil.toJsonStr(body))); - log.info("企业微信新增家长,res:[{}],params:[{}]", response, body); if (!"0".equals(response.containsKey("errcode") ? response.get("errcode").toString() : null)) { log.error("企业微信新增家长失败,code:{},msg:{},result_list:{}", response.get("errcode"), response.get("errmsg"), response.get("result_list")); @@ -983,43 +874,10 @@ public class WxUtil { JSONObject response = JSONUtil.parseObj( get(QywxConstant.SCHOOL_DEPT_DELETE_URL, params)); - String code = response.containsKey(ERR_CODE) ? response.get(ERR_CODE).toString() : null; - // 60003代表企业微信部门不存在 - if (!SUCCESS_CODE.equals(code) && !"60003".equals(code)) { + if (!SUCCESS_CODE.equals(response.containsKey(ERR_CODE) ? response.get(ERR_CODE).toString() : null)) { log.error("企业微信删除家校部门失败,code:{},msg:{},params:{}", response.get(ERR_CODE), response.get(ERR_MESSAGE), params); throw new FebsException("删除家校部门失败,请检查是否包含成员或子部门"); } } - - /** - * 获取企业微信JS-SDK jsapi_ticket - * - * @param accessToken 应用token - * @param deptId 部门id - * @return java.lang.String - * @author ZYJ - * @date 2023/6/5 14:50 - */ - public String getJsApiTicket(String accessToken, Long deptId) { - String jsApiTicket = - String.valueOf(redisService.get(FebsConstant.QYWX_WX_JS_API_TICKET + deptId)); - if ("null".equals(jsApiTicket)) { - - Map params = new HashMap<>(); - params.put("access_token", accessToken); - // 获取JS-SDK jsapi_ticket - String response = get(QywxConstant.GET_JS_API_TICKET_URL, params); - JSONObject token = JSONUtil.parseObj(response); - if (token.containsKey("errcode") && !"0".equals(token.get("errcode").toString())) { - log.error("获取JS-SDK jsapi_ticket失败,code:{},msg:{}", token.get("errcode").toString(), - token.get("errmsg").toString()); - throw new FebsException("验证失败"); - } - jsApiTicket = token.get("ticket").toString(); - // 缓存accessToken两小时 - redisService.set(FebsConstant.QYWX_WX_JS_API_TICKET + deptId, jsApiTicket, 7200L); - } - return jsApiTicket; - } } diff --git a/febs-common/febs-common-core/src/main/resources/META-INF/spring.factories b/febs-common/febs-common-core/src/main/resources/META-INF/spring.factories index 9568df0..4e32f5b 100644 --- a/febs-common/febs-common-core/src/main/resources/META-INF/spring.factories +++ b/febs-common/febs-common-core/src/main/resources/META-INF/spring.factories @@ -5,5 +5,4 @@ com.yida.data.common.core.utils.WxUtil,\ com.yida.data.common.core.utils.WxPublicUtil,\ com.yida.data.common.core.utils.UnionPayPublicUtil,\ com.yida.data.common.core.configure.AsyncPollConfigure,\ -com.yida.data.common.core.handler.BaseExceptionHandler,\ -com.yida.data.common.core.utils.WxServiceProviderUtil \ No newline at end of file +com.yida.data.common.core.handler.BaseExceptionHandler \ No newline at end of file diff --git a/febs-common/febs-common-log-starter/src/main/java/com/yida/data/log/aspect/OperationLogAspect.java b/febs-common/febs-common-log-starter/src/main/java/com/yida/data/log/aspect/OperationLogAspect.java index 1dfc2e9..337dcff 100644 --- a/febs-common/febs-common-log-starter/src/main/java/com/yida/data/log/aspect/OperationLogAspect.java +++ b/febs-common/febs-common-log-starter/src/main/java/com/yida/data/log/aspect/OperationLogAspect.java @@ -3,7 +3,6 @@ package com.yida.data.log.aspect; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.log.service.LogService; @@ -61,24 +60,13 @@ public class OperationLogAspect { public Object insertOperationLog(ProceedingJoinPoint joinPoint) throws Throwable { //返回结果 Object result; - HttpServletRequest request = ((ServletRequestAttributes) Objects - .requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); //请求参数 String params = getRequestParams(joinPoint, request); //执行接口 result = joinPoint.proceed(); //异步保存日志 - Long createId = null; - String createName = null; - if (FebsUtil.isLogin()) { - CurrentUser currentUser = FebsUtil.getCurrentUser(); - if (currentUser != null) { - createId = currentUser.getUserId(); - createName = currentUser.getUsername(); - } - } - logService.saveOperationLog(joinPoint, FebsUtil.getHttpServletRequestIpAddress(), params, result, createId, - createName); + logService.saveOperationLog(joinPoint, FebsUtil.getHttpServletRequestIpAddress(), params, result); return result; } diff --git a/febs-common/febs-common-log-starter/src/main/java/com/yida/data/log/service/LogService.java b/febs-common/febs-common-log-starter/src/main/java/com/yida/data/log/service/LogService.java index 9d70bd7..2afa0a0 100644 --- a/febs-common/febs-common-log-starter/src/main/java/com/yida/data/log/service/LogService.java +++ b/febs-common/febs-common-log-starter/src/main/java/com/yida/data/log/service/LogService.java @@ -15,7 +15,6 @@ import com.yida.data.log.annotation.OperationLog; import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.lang.reflect.Method; @@ -50,23 +49,21 @@ public class LogService { * @author ZYJ * @date 2021/1/8 16:30 */ - @Async - public void saveOperationLog(JoinPoint joinPoint, String ip, String params, Object result, Long createId, String createName) { + //@Async + public void saveOperationLog(JoinPoint joinPoint, String ip, String params, Object result) { MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); OperationLog opLog = method.getAnnotation(OperationLog.class); //ip地址 Log systemLogInfo = new Log(); - systemLogInfo.setCreateId(createId); - systemLogInfo.setCreateName(createName); // 创建人 -// if (FebsUtil.isLogin()) { -// CurrentUser currentUser = FebsUtil.getCurrentUser(); -// if (currentUser != null) { -// systemLogInfo.setCreateId(currentUser.getUserId()); -// systemLogInfo.setCreateName(currentUser.getUsername()); -// } -// } + if (FebsUtil.isLogin()) { + CurrentUser currentUser = FebsUtil.getCurrentUser(); + if (currentUser != null) { + systemLogInfo.setCreateId(currentUser.getUserId()); + systemLogInfo.setCreateName(currentUser.getUsername()); + } + } systemLogInfo.setIp(ip); //设置开始时间 systemLogInfo.setStartTime(LocalDateTime.now()); @@ -87,8 +84,8 @@ public class LogService { systemLogInfo.setResult(JSON.toJSONString(result)); //将返回值转换为对象 ResultBean logResult = JSON.parseObject(JSON.toJSONString(result), - new TypeReference>() { - }); + new TypeReference>() { + }); int successStatus = 200; if (logResult != null) { if (logResult.getStatus() == successStatus) { @@ -112,7 +109,7 @@ public class LogService { systemLogInfo.setEndTime(LocalDateTime.now()); //操作时长 systemLogInfo.setOperationTime(LocalDateTimeUtil.between(systemLogInfo.getStartTime(), - systemLogInfo.getEndTime(), ChronoUnit.MILLIS)); + systemLogInfo.getEndTime(), ChronoUnit.MILLIS)); //保存数据到redis list数据 redisService.lSet(CachePrefixConstant.OPERATION_LOG_LIST, systemLogInfo); } diff --git a/febs-common/rabbitmq-starter/src/main/java/com/yida/data/rabbit/constant/RabbitConstant.java b/febs-common/rabbitmq-starter/src/main/java/com/yida/data/rabbit/constant/RabbitConstant.java index 29e6054..616b618 100644 --- a/febs-common/rabbitmq-starter/src/main/java/com/yida/data/rabbit/constant/RabbitConstant.java +++ b/febs-common/rabbitmq-starter/src/main/java/com/yida/data/rabbit/constant/RabbitConstant.java @@ -104,19 +104,4 @@ public interface RabbitConstant { * websocket推送队列与交换机绑定key */ String MSG_WEBSOCKET_KEY = "msg_websocket_key"; - - /** - * 企业微信处理交换机 - */ - String QYWX_HANDLE_EXCHANGE = "qywx_handle_exchange"; - - /** - * 企业微信处理队列 - */ - String QYWX_HANDLE_QUEUE = "qywx_handle_queue"; - - /** - * 企业微信处理绑定key值 - */ - String QYWX_HANDLE_KEY = "qywx_handle_key"; } diff --git a/febs-server/edu-common/src/main/java/com/yida/data/common/service/CommonService.java b/febs-server/edu-common/src/main/java/com/yida/data/common/service/CommonService.java index f818726..8ac3696 100644 --- a/febs-server/edu-common/src/main/java/com/yida/data/common/service/CommonService.java +++ b/febs-server/edu-common/src/main/java/com/yida/data/common/service/CommonService.java @@ -1,132 +1,43 @@ package com.yida.data.common.service; -import static com.yida.data.common.core.entity.constant.CachePrefixConstant.STAFF_DATA; - import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.net.URLEncoder; -import cn.hutool.core.util.CharsetUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import com.yida.data.common.core.entity.CurrentUser; -import com.yida.data.common.core.entity.Dict; -import com.yida.data.common.core.entity.constant.AppConstant; import com.yida.data.common.core.entity.constant.CachePrefixConstant; -import com.yida.data.common.core.entity.constant.QywxServiceProviderConstant; -import com.yida.data.common.core.entity.constant.UPayConstant; -import com.yida.data.common.core.entity.consume.DeptConsumeTerminalCache; -import com.yida.data.common.core.entity.consume.EduConsumeConfig; -import com.yida.data.common.core.entity.school.EduDeptHomeApp; import com.yida.data.common.core.entity.school.EduYidaAppAccount; -import com.yida.data.common.core.entity.system.BaiduApiConfig; -import com.yida.data.common.core.entity.system.ConstructionPayConfig; -import com.yida.data.common.core.entity.system.Dept; -import com.yida.data.common.core.entity.system.EduApp; -import com.yida.data.common.core.entity.system.EduAppTemplate; -import com.yida.data.common.core.entity.system.EduArea; -import com.yida.data.common.core.entity.system.EduDeptFunction; -import com.yida.data.common.core.entity.system.EduDeptPayType; -import com.yida.data.common.core.entity.system.EduDeptWxPublic; -import com.yida.data.common.core.entity.system.EduHoliday; -import com.yida.data.common.core.entity.system.EduPayWxConfig; -import com.yida.data.common.core.entity.system.EduQywxServiceProvider; -import com.yida.data.common.core.entity.system.EduQywxServiceProviderSchool; -import com.yida.data.common.core.entity.system.EduYidaApp; -import com.yida.data.common.core.entity.system.UPayConfig; -import com.yida.data.common.core.entity.system.UnionPayConfig; -import com.yida.data.common.core.entity.system.WhiteList; -import com.yida.data.common.core.entity.system.enums.RoleEnum; -import com.yida.data.common.core.entity.system.enums.SysFunctionEnum; -import com.yida.data.common.core.entity.user.EduStaff; -import com.yida.data.common.core.entity.user.EduStudent; +import com.yida.data.common.core.entity.system.*; import com.yida.data.common.core.entity.user.EduUserDept; import com.yida.data.common.core.entity.user.enums.UserDeptTypeEnum; -import com.yida.data.common.core.enums.BaiDuModuleEnum; -import com.yida.data.common.core.enums.school.DeptAppTypeEnum; -import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.common.core.utils.NumberUtil; import com.yida.data.common.core.utils.RedisUtil; -import com.yida.data.common.core.utils.UPayUtil; -import com.yida.data.common.core.utils.WxServiceProviderUtil; -import com.yida.data.common.core.utils.WxUtil; -import com.yida.data.school.feign.index.RemoteDeptHomeIndexService; -import com.yida.data.system.feign.RemoteAppService; -import com.yida.data.system.feign.RemoteBaiDuApiConfigService; -import com.yida.data.system.feign.RemoteCommonService; -import com.yida.data.system.feign.RemoteConstructionPayConfigService; -import com.yida.data.system.feign.RemoteConsumeConfigService; -import com.yida.data.system.feign.RemoteDeptFunctionService; -import com.yida.data.system.feign.RemoteDeptService; -import com.yida.data.system.feign.RemoteDictService; -import com.yida.data.system.feign.RemoteHolidayService; -import com.yida.data.system.feign.RemotePayTypeService; -import com.yida.data.system.feign.RemotePayWxConfigService; -import com.yida.data.system.feign.RemoteQywxService; -import com.yida.data.system.feign.RemoteUPayConfigService; -import com.yida.data.system.feign.RemoteUnionPayConfigService; -import com.yida.data.system.feign.RemoteWhiteListService; -import com.yida.data.system.feign.RemoteYidaAppAccountService; -import com.yida.data.system.feign.RemoteYidaAppService; -import com.yida.data.user.feign.RemoteStaffService; -import com.yida.data.user.feign.RemoteStudentService; +import com.yida.data.system.feign.*; import com.yida.data.user.feign.RemoteUserDeptService; -import com.yida.data.user.vo.TeacherDeptVO; -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.util.List; +import java.util.Objects; + @Slf4j @Service @RequiredArgsConstructor public class CommonService { - private final RemoteAppService remoteAppService; - private final RemoteQywxService remoteQywxService; private final RemoteDeptService remoteDeptService; - private final RemoteDictService remoteDictService; - private final RemoteCommonService remoteCommonService; + private final RemoteAppService remoteAppService; private final RemoteYidaAppService remoteYidaAppService; - private final RemoteHolidayService remoteHolidayService; - private final RemotePayTypeService remotePayTypeService; - private final RemoteUserDeptService remoteUserDeptService; - private final RemoteWhiteListService remoteWhiteListService; - private final RemoteUPayConfigService remoteUPayConfigService; - private final RemotePayWxConfigService remotePayWxConfigService; - private final RemoteDeptFunctionService remoteDeptFunctionService; - private final RemoteConsumeConfigService remoteConsumeConfigService; - private final RemoteUnionPayConfigService remoteUnionPayConfigService; private final RemoteYidaAppAccountService remoteYidaAppAccountService; - private final RemoteBaiDuApiConfigService remoteBaiDuApiConfigService; - private final RemoteConstructionPayConfigService remoteConstructionPayConfigService; - private final RemoteStaffService remoteStaffService; - private final RemoteStudentService remoteStudentService; - private final RemoteDeptHomeIndexService remoteDeptHomeIndexService; - - - private final WxUtil wxUtil; - private final WxServiceProviderUtil wxServiceProviderUtil; + private final RemotePayWxConfigService remotePayWxConfigService; + private final RemoteHolidayService remoteHolidayService; + private final RemoteCommonService remoteCommonService; + private final RemoteUserDeptService remoteUserDeptService; + private final RemotePayTypeService remotePayTypeService; + private final RemoteUnionPayConfigService remoteUnionPayConfigService; private final RedisService redisService; - public List selectDict(String type) { - if (ObjectUtil.isNull(type)) { - return null; - } - return remoteDictService.selectDict(type).getData(); - } - - public Dict getDictByTypeAndValueOrLabel(String type, String value, String label) { - if (ObjectUtil.isNull(type)) { - return null; - } - return remoteDictService.getDictByTypeAndValueOrLabel(type, value, label).getData(); - } - public Dept getDept(Long deptId) { if (deptId == null) { return null; @@ -300,7 +211,7 @@ public class CommonService { redisService.llSet(CachePrefixConstant.HOLIDAY, data); for (EduHoliday holiday : data) { // 节假日 - if (target.equals(holiday.getDate())) { + if (target.equals(holiday)) { return false; } } @@ -309,7 +220,7 @@ public class CommonService { for (Object o : objects) { // 节假日 EduHoliday holiday = (EduHoliday) o; - if (target.equals(holiday.getDate())) { + if (target.equals(holiday)) { return false; } } @@ -317,38 +228,6 @@ public class CommonService { return true; } - - /** - * 时间段内 节假日集合 - */ - public List inHolidayDateList(LocalDate startDate, LocalDate endDate) { - List inHolidayList = new ArrayList<>(); - List objects = redisService.lGet(CachePrefixConstant.HOLIDAY, 0L, -1L); - if (CollUtil.isEmpty(objects)) { - List data = remoteHolidayService.listAllHoliday().getData(); - if (CollUtil.isNotEmpty(data)) { - redisService.llSet(CachePrefixConstant.HOLIDAY, data); - for (EduHoliday holiday : data) { - // 节假日 - LocalDate date = holiday.getDate(); - if ((date.isAfter(startDate) && date.isBefore(endDate)) || date.equals(startDate) || date.equals(endDate)) { - inHolidayList.add(date); - } - } - } - } else { - for (Object o : objects) { - // 节假日 - EduHoliday holiday = (EduHoliday) o; - LocalDate date = holiday.getDate(); - if ((date.isAfter(startDate) && date.isBefore(endDate)) || date.equals(startDate) || date.equals(endDate)) { - inHolidayList.add(date); - } - } - } - return inHolidayList; - } - /** * 查询当天的上一个工作日 */ @@ -427,83 +306,6 @@ public class CommonService { return config; } - /** - * 根据部门查询建行支付配置 - * - * @param deptId 部门id - * @return com.yida.data.common.core.entity.system.ConstructionPayConfig - * @author ZYJ - * @date 2023/6/19 16:50 - */ - public ConstructionPayConfig getConstructionPayConfigByDept(Long deptId) { - ConstructionPayConfig config = redisService.hasKey(CachePrefixConstant.CONSTRUCTION_PAY_CONFIG) - ? (ConstructionPayConfig) redisService.hget(CachePrefixConstant.CONSTRUCTION_PAY_CONFIG, deptId.toString()) - : null; - if (config == null) { - config = remoteConstructionPayConfigService.getConstructionPayConfigByDept(deptId).getData(); - redisService.hset(CachePrefixConstant.CONSTRUCTION_PAY_CONFIG, deptId.toString(), config); - } - return config; - } - - /** - * 根据部门查询收钱吧支付配置 - * - * @param deptId 部门id - * @return com.yida.data.common.core.entity.system.UPayConfig - * @author ZYJ - * @date 2023/3/21 10:42 - */ - public UPayConfig getUPayConfigByDept(Long deptId) { - UPayConfig config = redisService.hasKey(CachePrefixConstant.U_PAY_CONFIG) - ? (UPayConfig) redisService.hget(CachePrefixConstant.U_PAY_CONFIG, deptId.toString()) - : null; - if (config == null) { - config = remoteUPayConfigService.getUPayConfigByDept(deptId).getData(); - redisService.hset(CachePrefixConstant.U_PAY_CONFIG, deptId.toString(), config); - } - return config; - } - - /** - * 获取学校消费机服务器信息 - * - * @param deptId 部门id - * @return com.yida.data.common.core.entity.consume.EduConsumeConfig - * @author ZYJ - * @date 2023/4/6 17:46 - */ - public EduConsumeConfig getConsumeConfigByDept(Long deptId) { - EduConsumeConfig config = redisService.hasKey(CachePrefixConstant.CONSUME_CONFIG) - ? (EduConsumeConfig) redisService.hget(CachePrefixConstant.CONSUME_CONFIG, deptId.toString()) - : null; - if (config == null) { - config = remoteConsumeConfigService.getConsumeConfigByDept(deptId).getData(); - redisService.hset(CachePrefixConstant.CONSUME_CONFIG, deptId.toString(), config); - } - return config; - } - - /** - * 获取学校收钱吧终端信息 - * - * @param deptId 学校id - * @return com.yida.data.common.core.entity.consume.DeptConsumeTerminalCache - * @author ZYJ - * @date 2023/4/3 14:47 - */ - public DeptConsumeTerminalCache getDeptConsumeTerminal(Long deptId) { - DeptConsumeTerminalCache cache = redisService.hasKey(CachePrefixConstant.DEPT_CONSUME_TERMINAL + deptId.toString()) - ? (DeptConsumeTerminalCache) redisService.get(CachePrefixConstant.DEPT_CONSUME_TERMINAL + deptId.toString()) - : null; - if (cache == null) { - cache = UPayUtil.active(getUPayConfigByDept(deptId), UPayConstant.ACTIVE_DEVICE_NAME); - cache.setDeptId(deptId); - redisService.set(CachePrefixConstant.DEPT_CONSUME_TERMINAL + deptId.toString(), cache); - } - return cache; - } - /** * 向下查询指定家校部门类型的家校部门id(可查询非直接子家校部门) 未毕业家校部门 * @@ -529,360 +331,14 @@ public class CommonService { return remoteUserDeptService.findChildIdByParentAndTypeNoPermission(deptId, type).getData(); } - /** - * 获取服务商信息 - * - * @param serviceCorpId 服务商企业微信corpId - * @return com.yida.data.common.core.entity.system.EduQywxServiceProvider - * @author ZYJ - * @date 2022/12/1 10:46 - */ - public EduQywxServiceProvider getServiceProvider(String serviceCorpId) { - EduQywxServiceProvider serviceProvider = redisService.hasKey(CachePrefixConstant.SYS_SERVICE_PROVIDER) - ? (EduQywxServiceProvider) redisService.hget(CachePrefixConstant.SYS_SERVICE_PROVIDER, serviceCorpId) - : null; - if (Objects.isNull(serviceProvider)) { - serviceProvider = remoteAppService.getServiceProviderByServiceCorpId(serviceCorpId).getData(); - if (Objects.nonNull(serviceProvider)) { - redisService.hset(CachePrefixConstant.SYS_SERVICE_PROVIDER, serviceCorpId, serviceProvider); - } - } - return serviceProvider; - } /** - * 获取对应服务商模板信息 + * 工具学校名称查找机构信息 * - * @param templateId 模板id - * @param serviceCorpId 服务商corpId - * @return com.yida.data.common.core.entity.system.EduAppTemplate - * @author ZYJ - * @date 2022/12/1 9:27 - */ - public EduAppTemplate getAppTemplateByTemplateId(String templateId, String serviceCorpId) { - EduAppTemplate eduAppTemplate = redisService.hasKey(CachePrefixConstant.SYS_APP_TEMPLATE) - ? (EduAppTemplate) redisService.hget(CachePrefixConstant.SYS_APP_TEMPLATE, serviceCorpId + "." + templateId) - : null; - if (Objects.isNull(eduAppTemplate)) { - eduAppTemplate = remoteAppService.getAppTemplateByTemplateId(templateId, serviceCorpId).getData(); - if (Objects.nonNull(eduAppTemplate)) { - redisService.hset(CachePrefixConstant.SYS_APP_TEMPLATE, serviceCorpId + "." + templateId, eduAppTemplate); - } - } - return eduAppTemplate; - } - - /** - * 根据学校对应的通讯录应用类型获取不同的access_token 创建、编辑、删除、获取部门ID列表、获取成员ID列表时使用 - * - * @param schoolId 学校id - * @return java.lang.String - * @author ZYJ - * @date 2022/12/1 9:46 - */ - public String getAddressListToken(Long schoolId) { - String accessToken; - // 获取学校通讯录应用 - EduApp app = getAppByCodeAndSchool(AppConstant.CONTACT, null, schoolId); - - if (Objects.isNull(app.getTemplateId())) { - // 自建应用 - accessToken = wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()); - } else { - // 服务商代开发应用 - // 获取对应模板信息 - EduAppTemplate appTemplate = getAppTemplateByTemplateId(app.getTemplateId(), app.getServiceCorpId()); - // 获取第三方应用凭证 - String suiteAccessToken = wxServiceProviderUtil.getSuiteAccessToken(appTemplate.getTemplateId(), - appTemplate.getTemplateSecret(), - String.valueOf(redisService.get(QywxServiceProviderConstant.SERVICE_SUITE_TICKET + appTemplate.getTemplateId()))); - // 获取企业微信信息缓存 -// EduQywxServiceProviderSchool providerSchool = (EduQywxServiceProviderSchool) redisService -// .hget(QywxServiceProviderConstant.PROVIDER_SCHOOL_CORP_ORIGINAL_DATA, -// app.getServiceCorpId() + "." + app.getWxCorpId()); - EduQywxServiceProviderSchool providerSchool = getCorpByOriginalData(app.getServiceCorpId(), app.getWxCorpId()); - accessToken = wxServiceProviderUtil - .getCorpToken(providerSchool.getDeptEncryptionCorpId(), app.getWxSecret(), suiteAccessToken); - } - return accessToken; - } - - /** - * 服务商对应学校加密corpId数据(原始值为key) - * - * @param providerCorpId 服务商corpId - * @param deptOriginalCorpId 部门原始corpId - * @return com.yida.data.common.core.common.ResultBean - * @author ZYJ - * @date 2023/9/25 17:48 - */ - public EduQywxServiceProviderSchool getCorpByOriginalData(String providerCorpId, String deptOriginalCorpId) { - EduQywxServiceProviderSchool providerSchool = - redisService.hasKey(QywxServiceProviderConstant.PROVIDER_SCHOOL_CORP_ORIGINAL_DATA) - ? (EduQywxServiceProviderSchool) redisService.hget(QywxServiceProviderConstant.PROVIDER_SCHOOL_CORP_ORIGINAL_DATA, - providerCorpId + "." + deptOriginalCorpId) - : null; - if (providerSchool == null) { - providerSchool = remoteQywxService.getCorpByOriginalData(providerCorpId, deptOriginalCorpId).getData(); - redisService - .hset(QywxServiceProviderConstant.PROVIDER_SCHOOL_CORP_ORIGINAL_DATA, providerCorpId + "." + deptOriginalCorpId, - providerSchool); - } - return providerSchool; - } - - /** - * 服务商对应学校加密corpId数据(加密值为key) - * - * @param providerCorpId 服务商corpId - * @param deptEncryptionCorpId 部门加密corpId - * @return com.yida.data.common.core.common.ResultBean - * @author ZYJ - * @date 2023/9/25 17:48 - */ - public EduQywxServiceProviderSchool getCorpByEncryptionData(String providerCorpId, String deptEncryptionCorpId) { - EduQywxServiceProviderSchool providerSchool = redisService.hasKey(QywxServiceProviderConstant.PROVIDER_SCHOOL_CORP_DATA) - ? (EduQywxServiceProviderSchool) redisService.hget(QywxServiceProviderConstant.PROVIDER_SCHOOL_CORP_DATA, - providerCorpId + "." + deptEncryptionCorpId) - : null; - if (providerSchool == null) { - providerSchool = remoteQywxService.getCorpByEncryptionData(providerCorpId, deptEncryptionCorpId).getData(); - redisService.hset(QywxServiceProviderConstant.PROVIDER_SCHOOL_CORP_DATA, providerCorpId + "." + deptEncryptionCorpId, - providerSchool); - } - return providerSchool; - } - - /** - * 获取企业凭证 - * - * @param app 通讯录应用信息 - * @return java.lang.String - * @author ZYJ - * @date 2022/12/1 11:24 - */ - public String getCorpToken(EduApp app) { - // 获取对应模板信息 - EduAppTemplate appTemplate = getAppTemplateByTemplateId(app.getTemplateId(), app.getServiceCorpId()); - // 获取第三方应用凭证 - String suiteAccessToken = wxServiceProviderUtil.getSuiteAccessToken(appTemplate.getTemplateId(), - appTemplate.getTemplateSecret(), - String.valueOf(redisService.get(QywxServiceProviderConstant.SERVICE_SUITE_TICKET + appTemplate.getTemplateId()))); - // 获取企业微信信息缓存 -// EduQywxServiceProviderSchool providerSchool = (EduQywxServiceProviderSchool) redisService -// .hget(QywxServiceProviderConstant.PROVIDER_SCHOOL_CORP_ORIGINAL_DATA, -// app.getServiceCorpId() + "." + app.getWxCorpId()); - EduQywxServiceProviderSchool providerSchool = getCorpByOriginalData(app.getServiceCorpId(), app.getWxCorpId()); - return wxServiceProviderUtil.getCorpToken(providerSchool.getDeptEncryptionCorpId(), app.getWxSecret(), suiteAccessToken); - } - - /** - * 设置职工授权url - * - * @param corpId 企业的CorpID - * @param redirectUrl 授权后重定向的回调链接地址,请使用urlencode对链接进行处理 - * @param agentId 应用agentid,snsapi_privateinfo时必填 - * @return java.lang.String - * @author ZYJ - * @date 2022/11/25 15:11 - */ - public String setAuthUrl(String corpId, String redirectUrl, String agentId) { - return "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + corpId - + "&redirect_uri=" + URLEncoder.createDefault().encode(redirectUrl, CharsetUtil.CHARSET_UTF_8) - + "&response_type=code&scope=snsapi_privateinfo&state=STATE" - + "&agentid=" + agentId + "#wechat_redirect"; - } - - /** - * 根据通讯录应用情况获取对应用户明文id 如果不是通讯录模板授权则返回本身userId - * - * @param userId 企业微信userId - * @param schoolId 学校id - * @param eduApp 通讯录app - * @return java.lang.String - * @author ZYJ - * @date 2023/2/2 10:41 - */ - public String getPlainUserId(String userId, Long schoolId, EduApp eduApp) { - // 获取学校通讯录应用 - EduApp app = getAppByCodeAndSchool(AppConstant.CONTACT, null, schoolId); - - // 本身就是明文id - if (Objects.isNull(app.getTemplateId())) { - return userId; - } else { - // 企业自建应用或基础应用的调用接口凭证 - EduApp appContactSchool = getAppByCodeAndSchool(AppConstant.CONTACT_SCHOOL, null, schoolId); - String accessToken = wxUtil.getAccessToken(appContactSchool.getWxCorpId(), appContactSchool.getWxSecret()); - // 密文转换成明文id - return wxServiceProviderUtil.convertUserIdToPlain(accessToken, userId, eduApp.getWxAgentId()); - } - } - - /** - * 根据通讯录应用情况获取对应用户密文id 如果不是通讯录模板授权则返回本身userId - * - * @param userId 企业微信userId - * @param schoolId 学校id - * @return java.lang.String - * @author ZYJ - * @date 2023/2/2 14:45 - */ - public String getSecretUserId(String userId, Long schoolId) { - // 获取学校通讯录应用 - EduApp app = getAppByCodeAndSchool(AppConstant.CONTACT, null, schoolId); - - // 本身就是明文id - if (Objects.isNull(app.getTemplateId())) { - return userId; - } else { - EduApp eduApp = getAppByCodeAndSchool(AppConstant.CONTACT_SELECT, null, schoolId); - // 明文转换成密文id - return wxServiceProviderUtil.convertUserIdToSecret( - wxUtil.getAccessToken(eduApp.getWxCorpId(), eduApp.getWxSecret()), userId); - } - } - - /** - * 查询学校用于查询的通讯录应用 - * - * @param schoolId 学校id - * @return com.yida.data.common.core.entity.system.EduApp - * @author ZYJ - * @date 2023/4/23 20:25 - */ - public EduApp getAppContactUsedBySelect(Long schoolId) { - // 获取学校通讯录应用 - EduApp app = getAppByCodeAndSchool(AppConstant.CONTACT, null, schoolId); - // 本身就是明文id - if (Objects.isNull(app.getTemplateId())) { - return app; - } else { - return getAppByCodeAndSchool(AppConstant.CONTACT_SELECT, null, schoolId); - } - } - - /** - * 根据学校名称查找机构信息 - * - * @param schoolName 学校名称 - * @return com.yida.data.common.core.entity.system.Dept - * @author ZYJ - * @date 2023/2/2 11:03 + * @param schoolName + * @return */ public Dept getSchoolByName(String schoolName) { return remoteDeptService.getSchoolByName(schoolName).getData(); } - - /** - * 获取系统白名单信息 - * - * @param functionName 功能名称 {@link SysFunctionEnum} - * @return com.yida.data.common.core.entity.system.WhiteList - * @author ZYJ - * @date 2023/2/20 18:00 - */ - public WhiteList getWhiteList(String functionName) { - WhiteList whiteList = redisService.hasKey(CachePrefixConstant.SYS_WHITE_LIST) - ? (WhiteList) redisService.hget(CachePrefixConstant.SYS_WHITE_LIST, functionName) - : null; - if (whiteList == null) { - whiteList = remoteWhiteListService.getWhiteList(functionName).getData(); - redisService.hset(CachePrefixConstant.SYS_WHITE_LIST, functionName, whiteList); - } - return whiteList; - } - - /** - * 获取部门是否开通当前功能 - * - * @param functionName 功能名称 - * @param schoolId 部门id - * @return com.yida.data.common.core.entity.system.EduDeptFunction - * @author ZYJ - * @date 2023/2/21 16:08 - */ - public EduDeptFunction getDeptFunction(String functionName, Long schoolId) { - EduDeptFunction eduDeptFunction = redisService.hasKey(CachePrefixConstant.SYS_DEPT_FUNCTION + schoolId) - ? (EduDeptFunction) redisService.hget(CachePrefixConstant.SYS_DEPT_FUNCTION + schoolId, functionName) - : null; - if (eduDeptFunction == null) { - eduDeptFunction = remoteDeptFunctionService.getDeptFunction(functionName, schoolId).getData(); - redisService.hset(CachePrefixConstant.SYS_DEPT_FUNCTION + schoolId, functionName, eduDeptFunction); - } - return eduDeptFunction; - } - - /** - * 根据学校id查询百度api配置 - * - * @param deptId 学校id - * @param moduleName 百度模块名称 {@link BaiDuModuleEnum} - * @return com.yida.data.common.core.entity.system.BaiduApiConfig - * @author ZYJ - * @date 2023/6/20 20:57 - */ - public BaiduApiConfig getBaiDuApiConfigByDept(Long deptId, String moduleName) { - BaiduApiConfig config = redisService.hasKey(CachePrefixConstant.BAI_DU_API_CONFIG + deptId) - ? (BaiduApiConfig) redisService.hget(CachePrefixConstant.BAI_DU_API_CONFIG + deptId, moduleName) - : null; - if (config == null) { - config = remoteBaiDuApiConfigService.getBaiDuApiConfigByDept(deptId, moduleName).getData(); - redisService.hset(CachePrefixConstant.BAI_DU_API_CONFIG + deptId.toString(), moduleName, config); - } - return config; - } - - public EduStaff getStaffById(Long staffId) { - EduStaff staff = (EduStaff) redisService.hget(STAFF_DATA, staffId.toString()); - if (ObjectUtil.isNull(staff)) { - staff = remoteStaffService.getStaff(staffId).getData(); - if (ObjectUtil.isNotNull(staff)) { - redisService.hset(STAFF_DATA, staffId.toString(), staff); - } - } - return staff; - } - - public EduStudent getStudentById(Long id) { - EduStudent student = (EduStudent) redisService - .hget(CachePrefixConstant.STUDENT_DATA, id.toString()); - if (ObjectUtil.isNull(student)) { - student = remoteStudentService.getStudentNoPermission(id).getData(); - if (student == null) { - log.error("学生不存在,id:[{}]", id); - return null; - } else { - redisService.hset(CachePrefixConstant.STUDENT_DATA, id.toString(), student); - } - } - return student; - } - - - /** - * 清除 人员匹配考勤规则 - */ - public void clearAttendanceRuleData() { - redisService.del(CachePrefixConstant.ATTENDANCE_STUDENT_RULE); - } - - - public void delUserGenerateUrlLinkCache(Long schoolId, Long userId, Integer userType) { - //查询所有的微信小程序app - List eduDeptHomeAppList = remoteDeptHomeIndexService.getDeptAppList(schoolId).getData(); - List wxAppList = eduDeptHomeAppList.stream() - .filter(e -> DeptAppTypeEnum.WX.getType().equals(e.getAppType())) - .collect(Collectors.toList()); - for (EduDeptHomeApp homeApp : wxAppList) { - redisService.del(CachePrefixConstant.USER_GENERATE_URL_LINK + userId + "" + userType + "" + homeApp.getId()); - } - } - - public List findStaffMangerClassIdList() { - List ClassIdList = new ArrayList<>(); - CurrentUser currentUser = FebsUtil.getCurrentUser(); - String rolePerms = FebsUtil.getCurrentUser().getRolePerms(); - return null; - } } diff --git a/febs-server/edu-custom-form/edu-custom-form-biz/pom.xml b/febs-server/edu-custom-form/edu-custom-form-biz/pom.xml index 1e0c47d..7ca074a 100644 --- a/febs-server/edu-custom-form/edu-custom-form-biz/pom.xml +++ b/febs-server/edu-custom-form/edu-custom-form-biz/pom.xml @@ -9,7 +9,7 @@ 4.0.0 edu-custom-form-biz - jar + 8 8 diff --git a/febs-server/edu-device/edu-device-api/src/main/resources/META-INF/spring.factories b/febs-server/edu-device/edu-device-api/src/main/resources/META-INF/spring.factories index f952799..1f23b88 100644 --- a/febs-server/edu-device/edu-device-api/src/main/resources/META-INF/spring.factories +++ b/febs-server/edu-device/edu-device-api/src/main/resources/META-INF/spring.factories @@ -1,5 +1,4 @@ # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.yida.data.device.fallback.RemoteStudentCardServiceFallback,\ -com.yida.data.device.fallback.RemoteTelephoneServiceFallback,\ -com.yida.data.device.fallback.RemoteConsumeCardServiceFallback +com.yida.data.device.fallback.RemoteTelephoneServiceFallback diff --git a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/config/CardRabbitReceiver.java b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/config/CardRabbitReceiver.java index e5623f5..6a0f6c3 100644 --- a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/config/CardRabbitReceiver.java +++ b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/config/CardRabbitReceiver.java @@ -119,7 +119,7 @@ public class CardRabbitReceiver { redisService.hset(CachePrefixConstant.STUDENT_DATA, card.getStudentId().toString(), student); } EduApp app = commonService - .getAppByCodeAndSchool(AppConstant.INDEX_PARENT, null, card.getSchoolId()); + .getAppByCodeAndSchool(AppConstant.ELECTRONIC_PARENT, null, card.getSchoolId()); String accessToken = wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()); TextSchoolNotice notice = new TextSchoolNotice(); notice.setAgentid(app.getWxAgentId()); diff --git a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/controller/EduStudentCardController.java b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/controller/EduStudentCardController.java index d4137f7..55b5efe 100644 --- a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/controller/EduStudentCardController.java +++ b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/controller/EduStudentCardController.java @@ -2,6 +2,7 @@ package com.yida.data.device.studentCard.controller; import cc.mrbird.febs.common.redis.service.RedisService; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yida.data.common.core.annotation.ControllerLog; import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.CurrentUser; @@ -20,12 +21,12 @@ import com.yida.data.device.dto.studentCard.CardWithAddressDTO; import com.yida.data.device.dto.studentCard.DisturbStatusDTO; import com.yida.data.device.studentCard.service.EduStudentCardDisturbTimeService; import com.yida.data.device.studentCard.service.EduStudentCardService; -import com.yida.data.device.vo.OnlineCountVO; import com.yida.data.device.vo.studentCard.CardInfoVO; import com.yida.data.device.vo.studentCard.CardPageVO; import com.yida.data.device.vo.studentCard.CardWithAddressVO; import com.yida.data.device.vo.studentCard.ListStudentCardVO; import com.yida.data.device.vo.studentCard.LocationVO; +import com.yida.data.device.vo.OnlineCountVO; import com.yida.data.device.vo.studentCard.TrackVO; import com.yida.data.log.annotation.OperationLog; import com.yida.data.system.feign.RemoteDeptService; @@ -82,7 +83,6 @@ public class EduStudentCardController { @ApiOperation("更新学生证") @PostMapping("/updateCard") - @OperationLog(module = ModuleName.ELECTRONIC_STUDENT_CARD, methods = "更新学生证", type = OperationLogTypeEnum.UPDATE) public ResultBean updateCard(@RequestBody EduStudentCard card) { eduStudentCardService.updateCard(card); return ResultBean.buildSuccess(); @@ -154,7 +154,9 @@ public class EduStudentCardController { @ApiOperation("家长对应学生列表") @GetMapping("/listStudentCard") + @ControllerLog(operation = "家长对应学生列表") public ResultBean> listStudentCard(@ApiParam("家长id") @RequestParam Long parentId) { + return ResultBean.buildSuccess(eduStudentCardService.listStudentCard(parentId)); } @@ -180,7 +182,7 @@ public class EduStudentCardController { @ApiOperation("批量免打扰") @PostMapping("/setDisturbStatus") - @OperationLog(module = ModuleName.ELECTRONIC_STUDENT_CARD, methods = "批量免打扰", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "批量免打扰") public ResultBean setDisturbStatus(@RequestBody DisturbStatusDTO disturbStatusDTO) { eduStudentCardService.setDisturbStatus(disturbStatusDTO); return ResultBean.buildSuccess(); @@ -211,7 +213,6 @@ public class EduStudentCardController { @ApiOperation("下发监听指令") @GetMapping("/issueMonitor") - @OperationLog(module = ModuleName.ELECTRONIC_STUDENT_CARD, methods = "下发监听指令", type = OperationLogTypeEnum.SELECT) public ResultBean issueMonitor(@ApiParam("接收监听手机号") String mobile, @ApiParam("学生证imei号") String imei) { eduStudentCardService.issueMonitor(mobile, imei); diff --git a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/controller/EduStudentCardPhoneController.java b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/controller/EduStudentCardPhoneController.java index ebe9266..0adce56 100644 --- a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/controller/EduStudentCardPhoneController.java +++ b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/controller/EduStudentCardPhoneController.java @@ -2,12 +2,9 @@ package com.yida.data.device.studentCard.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.card.EduStudentCardPhone; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.device.studentCard.service.EduStudentCardPhoneService; -import com.yida.data.log.annotation.OperationLog; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -42,6 +39,7 @@ public class EduStudentCardPhoneController { @ApiOperation("查询学生证电话") @GetMapping("/getFamilyPhone") + @ControllerLog(operation = "查询亲情电话") public ResultBean getFamilyPhone(@ApiParam("iMei号") @RequestParam String imei, @ApiParam("1是亲情电话,2是sos电话,3是通话白名单") @RequestParam Integer type) { List list = eduStudentCardPhoneService.list(Wrappers.lambdaQuery(new EduStudentCardPhone()) @@ -52,7 +50,7 @@ public class EduStudentCardPhoneController { @ApiOperation("保存电话") @PostMapping("/savePhone") - @OperationLog(module = ModuleName.TELEPHONE, methods = "保存电话", type = OperationLogTypeEnum.SAVE) + @ControllerLog(operation = "保存电话") public ResultBean savePhone(@RequestBody EduStudentCardPhone phone) { eduStudentCardPhoneService.savePhone(phone); return ResultBean.buildSuccess(); @@ -61,7 +59,7 @@ public class EduStudentCardPhoneController { @ApiOperation("通用删除电话") @GetMapping("/delPhone") - @OperationLog(module = ModuleName.TELEPHONE, methods = "通用删除电话", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "通用删除电话") public ResultBean delPhone(@RequestParam Long id) { eduStudentCardPhoneService.delPhone(id); return ResultBean.buildSuccess(); @@ -69,7 +67,7 @@ public class EduStudentCardPhoneController { @ApiOperation("批量修改电话") @PostMapping("/updateFamilyPhoneBatch") - @OperationLog(module = ModuleName.TELEPHONE, methods = "批量修改电话", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改电话") public ResultBean updateFamilyPhoneBatch(@RequestBody List phones, @ApiParam("1-亲情电话,2-sos,3-白名单") Integer type, String imei) { eduStudentCardPhoneService.updatePhoneBatch(phones, type, imei); diff --git a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/service/impl/EduStudentCardAlarmServiceImpl.java b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/service/impl/EduStudentCardAlarmServiceImpl.java index da297b9..b7303f9 100644 --- a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/service/impl/EduStudentCardAlarmServiceImpl.java +++ b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/studentCard/service/impl/EduStudentCardAlarmServiceImpl.java @@ -158,7 +158,7 @@ public class EduStudentCardAlarmServiceImpl extends ServiceImpl } private void pushSchoolNotice(EduStudent student, EduStudentCardAlarm alarm, Dept school) { - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.INDEX_PARENT, null, school.getDeptId()); + EduApp app = commonService.getAppByCodeAndSchool(AppConstant.ELECTRONIC_PARENT, null, school.getDeptId()); TextSchoolNotice notice = new TextSchoolNotice(); notice.setAgentid(app.getWxAgentId()); notice.setTo_student_userid(Collections.singletonList(student.getWxId())); diff --git a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/telephone/controller/EduTelephoneController.java b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/telephone/controller/EduTelephoneController.java index 34c5273..fe46745 100644 --- a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/telephone/controller/EduTelephoneController.java +++ b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/telephone/controller/EduTelephoneController.java @@ -2,11 +2,9 @@ package com.yida.data.device.telephone.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.system.Dept; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.entity.telephone.EduTelephone; import com.yida.data.common.core.entity.telephone.EduTelephoneBlack; import com.yida.data.common.core.entity.telephone.EduTelephoneCard; @@ -21,7 +19,6 @@ import com.yida.data.device.telephone.service.EduTelephoneService; import com.yida.data.device.vo.OnlineCountVO; import com.yida.data.device.vo.telephone.DeviceNumberVO; import com.yida.data.device.vo.telephone.TelephoneVO; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.system.feign.RemoteDeptService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -87,13 +84,13 @@ public class EduTelephoneController { */ @ApiOperation("话机设备数量统计") @GetMapping("/findDeviceNumber") + @ControllerLog(operation = "话机设备数量统计") public ResultBean findDeviceNumber() throws NoSuchMethodException { return eduTelephoneService.findDeviceNumber(); } @ApiOperation("修改或新增") @PostMapping("/insertTelephone") - @OperationLog(module = ModuleName.TELEPHONE, methods = "修改或新增亲情电话", type = OperationLogTypeEnum.SAVE) public ResultBean insertTelephone(@RequestBody EduTelephone eduTelephone) { eduTelephoneService.saveOrUpdate(eduTelephone); return ResultBean.buildSuccess(); @@ -101,7 +98,6 @@ public class EduTelephoneController { @ApiOperation("批量设置") @PostMapping("/updateTelephone") - @OperationLog(module = ModuleName.TELEPHONE, methods = "批量设置亲情电话", type = OperationLogTypeEnum.UPDATE) public ResultBean updateTelephone(@RequestBody TelephoneDTO telephoneDTO) { eduTelephoneService.updateTelephone(telephoneDTO); return ResultBean.buildSuccess(); @@ -116,7 +112,6 @@ public class EduTelephoneController { @ApiOperation("重置本月通话时间") @GetMapping("/delTelephoneTime") - @OperationLog(module = ModuleName.TELEPHONE, methods = "重置本月通话时间", type = OperationLogTypeEnum.UPDATE) public ResultBean delTelephoneTime(@ApiParam("话机Id") @RequestParam Long id) { EduTelephone eduTelephone = new EduTelephone(); eduTelephone.setId(id); @@ -127,7 +122,6 @@ public class EduTelephoneController { @ApiOperation("停运") @GetMapping("/stopTelephone") - @OperationLog(module = ModuleName.TELEPHONE, methods = "停运亲情电话", type = OperationLogTypeEnum.UPDATE) public ResultBean stopTelephone(@ApiParam("话机Id") @RequestParam Long id, @ApiParam("1停运,0正常") @RequestParam Integer status) { @@ -139,7 +133,6 @@ public class EduTelephoneController { @ApiOperation("删除和批量删除") @PostMapping("/delTelephone") - @OperationLog(module = ModuleName.TELEPHONE, methods = "删除和批量删除亲情电话", type = OperationLogTypeEnum.DELETE) public ResultBean delTelephone(@ApiParam("ids") @RequestBody List ids) { eduTelephoneService.removeByIds(ids); for (Long id : ids) { @@ -153,7 +146,6 @@ public class EduTelephoneController { @ApiOperation("批量停运") @PostMapping("/listStopTelephone") - @OperationLog(module = ModuleName.TELEPHONE, methods = "批量停运亲情电话", type = OperationLogTypeEnum.UPDATE) public ResultBean listStopTelephone(@ApiParam("话机Id") @RequestBody PhoneStatusDTO phoneStatusDTO) { List ids = phoneStatusDTO.getIds(); diff --git a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/telephone/controller/EduTelephoneOrderController.java b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/telephone/controller/EduTelephoneOrderController.java index 3dffe05..ab1857b 100644 --- a/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/telephone/controller/EduTelephoneOrderController.java +++ b/febs-server/edu-device/edu-device-biz/src/main/java/com/yida/data/device/telephone/controller/EduTelephoneOrderController.java @@ -4,17 +4,14 @@ import cc.mrbird.febs.common.redis.service.RedisService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.constant.CachePrefixConstant; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.entity.telephone.EduTelephoneOrder; import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.device.dto.telephone.OrderPageDTO; import com.yida.data.device.telephone.service.EduTelephoneOrderService; import com.yida.data.device.vo.telephone.OrderInfoVO; import com.yida.data.device.vo.telephone.OrderPageVO; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.vo.transcation.PayInfoVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -68,17 +65,17 @@ public class EduTelephoneOrderController { @GetMapping("/listOrder") public ResultBean> listOrder(@ApiParam("卡id") @RequestParam Long cardId) { return ResultBean.buildSuccess(eduTelephoneOrderService.list(Wrappers.lambdaQuery(new EduTelephoneOrder()) - .eq(EduTelephoneOrder::getCardId, cardId).orderByDesc(EduTelephoneOrder::getCreateDate))); + .eq(EduTelephoneOrder::getCardId, cardId).orderByDesc(EduTelephoneOrder::getCreateDate))); } @ApiOperation("生成订单") @GetMapping("/createOrder") - @OperationLog(module = ModuleName.TELEPHONE, methods = "生成订单", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "生成订单") public ResultBean insertEduProductOrder(@ApiParam("充值金额") Double money, - @ApiParam("ic卡id") Long icCardId, - @ApiParam("支付方式,0-微信jsapi,1-微信h5") Integer payType) { + @ApiParam("ic卡id") Long icCardId, + @ApiParam("支付方式,0-微信jsapi,1-微信h5") Integer payType) { return ResultBean.buildSuccess(eduTelephoneOrderService.createOrder(money, icCardId, payType, FebsUtil.getCurrentUser(), - FebsUtil.getHttpServletRequestIpAddress())); + FebsUtil.getHttpServletRequestIpAddress())); } @ApiOperation("订单完成(前台支付完成后调用)") @@ -90,7 +87,6 @@ public class EduTelephoneOrderController { @ApiOperation("发起支付") @GetMapping("/payOrder") - @OperationLog(module = ModuleName.TELEPHONE, methods = "发起支付", type = OperationLogTypeEnum.INSERT) public ResultBean payOrder(String orderCode) { Object prepay = redisService.get(CachePrefixConstant.ORDER_FLAG + orderCode); PayInfoVO infoVO = eduTelephoneOrderService.getWxJsSign(orderCode, prepay.toString()); diff --git a/febs-server/edu-mall/edu-mall-api/src/main/java/com/yida/data/mall/vo/h5/BillOrderStudentCacheVO.java b/febs-server/edu-mall/edu-mall-api/src/main/java/com/yida/data/mall/vo/h5/BillOrderStudentCacheVO.java index 7102259..3350358 100644 --- a/febs-server/edu-mall/edu-mall-api/src/main/java/com/yida/data/mall/vo/h5/BillOrderStudentCacheVO.java +++ b/febs-server/edu-mall/edu-mall-api/src/main/java/com/yida/data/mall/vo/h5/BillOrderStudentCacheVO.java @@ -42,6 +42,6 @@ public class BillOrderStudentCacheVO implements Serializable { @ApiModelProperty("家长手机号码") private String mobile; - @ApiModelProperty("订单号") + @ApiModelProperty("'订单号'") private String orderNo; } \ No newline at end of file diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/controller/EduBillController.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/controller/EduBillController.java index 15563e2..75073ef 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/controller/EduBillController.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/controller/EduBillController.java @@ -123,6 +123,15 @@ public class EduBillController { return ResultBean.buildSuccess(eduBillStudentService.exportBillPayData(billStudentSelectPageDTO, response)); } + @GetMapping(value = "sendBillNotice") + @ApiOperation(value = "账单催缴") + public ResultBean sendBillNotice( + @ApiParam(value = "账单id", required = true) @RequestParam Long billId, + @ApiParam(value = "推送标题", required = true) @RequestParam String noticeTitle) { + eduBillStudentService.sendBillNotice(billId, noticeTitle); + return ResultBean.buildSuccess(); + } + @PostMapping(value = "listBillOrderPage") @ApiOperation(value = "查询账单订单列表数据") public ResultBean> listBillOrderPage(BillOrderSelectPageDTO dto) { diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/mapper/EduBillOrderItemMapper.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/mapper/EduBillOrderItemMapper.java index c55ef76..015164b 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/mapper/EduBillOrderItemMapper.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/mapper/EduBillOrderItemMapper.java @@ -53,4 +53,19 @@ public interface EduBillOrderItemMapper extends BaseMapper { */ List listItemPayInfo(@Param("billId") Long billId, @Param("studentId") Long studentId); + + + /** + * 查询学生是否有对应账单项目的缴费信息 + * + * @param billId 账单id + * @param studentId 学生id + * @param itemId 项目id + * @return int + * @author ZYJ + * @date 2023/9/19 14:58 + */ + int countItemPayInfo(@Param("billId") Long billId, + @Param("studentId") Long studentId, + @Param("itemId") Long itemId); } diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/mapper/EduBillOrderMapper.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/mapper/EduBillOrderMapper.java index 3d93a06..bfe58af 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/mapper/EduBillOrderMapper.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/mapper/EduBillOrderMapper.java @@ -62,12 +62,14 @@ public interface EduBillOrderMapper extends BaseMapper { * 查询账单缴费人数 * 缴费金额大于0 * - * @param billId 账单id + * @param billId 账单id + * @param studentIds 学生id集合 * @return java.lang.Long * @author ZYJ * @date 2022/4/18 16:30 */ - Long sumPayStudentNumber(@Param("billId") Long billId); + Long sumPayStudentNumber(@Param("billId") Long billId, + @Param("studentIds") List studentIds); /** * 查询所有已经超时订单 diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillOrderItemService.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillOrderItemService.java index 6ebff3e..7400e8d 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillOrderItemService.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillOrderItemService.java @@ -48,4 +48,16 @@ public interface EduBillOrderItemService extends IService { * @date 2022/4/19 17:04 */ List listItemPayInfo(Long billId, Long studentId); + + /** + * 查询学生是否有对应账单项目的缴费信息 + * + * @param billId 账单id + * @param studentId 学生id + * @param itemId 项目id + * @return int + * @author ZYJ + * @date 2023/9/19 14:57 + */ + int countItemPayInfo(Long billId, Long studentId, Long itemId); } diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillOrderService.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillOrderService.java index 53429ca..52ac456 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillOrderService.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillOrderService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.yida.data.common.core.entity.mall.EduBillOrder; import java.math.BigDecimal; +import java.util.List; import java.util.Map; /** @@ -45,12 +46,13 @@ public interface EduBillOrderService extends IService { /** * 查询账单缴费人数 * - * @param billId 账单id + * @param billId 账单id + * @param studentIds 学生id集合 * @return java.lang.Long * @author ZYJ * @date 2022/4/18 16:29 */ - Long sumPayStudentNumber(Long billId); + Long sumPayStudentNumber(Long billId, List studentIds); /** * 银联支付通知结果回调 diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillStudentService.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillStudentService.java index 5d56e8e..ebce92b 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillStudentService.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/EduBillStudentService.java @@ -2,10 +2,12 @@ package com.yida.data.mall.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.yida.data.common.core.entity.constant.FebsConstant; import com.yida.data.common.core.entity.mall.EduBillStudent; import com.yida.data.mall.dto.BillStudentSelectPageDTO; import com.yida.data.mall.dto.BillUserSaveDTO; import com.yida.data.mall.vo.BillStudentInfoVO; +import org.springframework.scheduling.annotation.Async; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -79,4 +81,15 @@ public interface EduBillStudentService extends IService { * @date 2022/10/11 17:29 */ String exportBillPayData(BillStudentSelectPageDTO billStudentSelectPageDTO, HttpServletResponse response); + + /** + * 账单催缴 + * + * @param billId 账单id + * @param noticeTitle 推送标题 + * @author ZYJ + * @date 2023/7/14 14:30 + */ + @Async(FebsConstant.ASYNC_POOL) + void sendBillNotice(Long billId, String noticeTitle); } diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/H5EduBillService.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/H5EduBillService.java index 4d6f0bd..98287bc 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/H5EduBillService.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/H5EduBillService.java @@ -92,7 +92,7 @@ public interface H5EduBillService { H5BillOrderInfoVO getH5BillOrderInfo(Long billOrderId, String orderCode); /** - * 继续支付 + * continuePayOrder * * @param orderCode 订单号 * @param deptId 学校id diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillOrderItemServiceImpl.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillOrderItemServiceImpl.java index e00ccba..269f442 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillOrderItemServiceImpl.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillOrderItemServiceImpl.java @@ -38,4 +38,9 @@ public class EduBillOrderItemServiceImpl extends ServiceImpl public List listItemPayInfo(Long billId, Long studentId) { return baseMapper.listItemPayInfo(billId, studentId); } + + @Override + public int countItemPayInfo(Long billId, Long studentId, Long itemId) { + return baseMapper.countItemPayInfo(billId, studentId, itemId); + } } diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillOrderServiceImpl.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillOrderServiceImpl.java index 9cb185f..b2402a0 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillOrderServiceImpl.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillOrderServiceImpl.java @@ -65,8 +65,8 @@ public class EduBillOrderServiceImpl extends ServiceImpl } @Override - public Long sumPayStudentNumber(Long billId) { - return baseMapper.sumPayStudentNumber(billId); + public Long sumPayStudentNumber(Long billId, List studentIds) { + return baseMapper.sumPayStudentNumber(billId, studentIds); } @Override @@ -76,7 +76,7 @@ public class EduBillOrderServiceImpl extends ServiceImpl if (CollUtil.isNotEmpty(list)) { for (EduBillOrder order : list) { // 微信订单 - if (PayWay.WEI_XIN.getValue().equals(order.getPayWay())) { + if (PayWay.WEIXIN.getValue().equals(order.getPayWay())) { updateWxBillOrderStatus(order); } else if (PayWay.UNION.getValue().equals(order.getPayWay())) { updateUnionBillOrderStatus(order); @@ -210,7 +210,7 @@ public class EduBillOrderServiceImpl extends ServiceImpl if (CollUtil.isNotEmpty(refundOrderList)) { refundOrderList.forEach(billRefundOrderVO -> { // 微信 - if (PayWay.WEI_XIN.getValue().equals(billRefundOrderVO.getPayWay())) { + if (PayWay.WEIXIN.getValue().equals(billRefundOrderVO.getPayWay())) { updateWxRefundStatus(billRefundOrderVO); } else if (PayWay.UNION.getValue().equals(billRefundOrderVO.getPayWay())) { updateUnionRefundStatus(billRefundOrderVO); diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillServiceImpl.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillServiceImpl.java index a8a5bf0..1d37aa9 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillServiceImpl.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillServiceImpl.java @@ -89,7 +89,7 @@ public class EduBillServiceImpl extends ServiceImpl billSelectPageVO.setTotalNumber(totalNumber); // 缴费人数 缴费金额大于0 if (totalNumber > 0) { - billSelectPageVO.setPayNumber(eduBillOrderService.sumPayStudentNumber(billSelectPageVO.getId())); + billSelectPageVO.setPayNumber(eduBillOrderService.sumPayStudentNumber(billSelectPageVO.getId(), studentIds)); } }); return page; @@ -199,10 +199,8 @@ public class EduBillServiceImpl extends ServiceImpl new LambdaQueryWrapper<>(new EduBillStudent()).eq(EduBillStudent::getBillId, billSaveDTO.getId())); } saveOrUpdate(eduBill); - boolean flag = Objects.isNull(billSaveDTO.getId()) || - (Objects.nonNull(billSaveDTO.getId()) && - (Objects.isNull(billSaveDTO.getOldBillStartDate()) - || billSaveDTO.getOldBillStartDate().isAfter(LocalDateTime.now()))); + boolean flag = Objects.isNull(billSaveDTO.getId()) || Objects.isNull(billSaveDTO.getOldBillStartDate()) + || billSaveDTO.getOldBillStartDate().isAfter(LocalDateTime.now()); List saveItemList = new ArrayList<>(); if (flag) { // 保存对应的缴费项目数据 @@ -282,8 +280,7 @@ public class EduBillServiceImpl extends ServiceImpl if (BillStatusEnum.ENABLE_STATUS.getStatus().equals(bill.getEnableStatus())) { throw new FebsException("当前账单已启用, 无法删除!"); } - if (Objects.isNull(bill.getBillStartDate()) || - Objects.nonNull(bill.getBillStartDate()) && bill.getBillStartDate().isAfter(LocalDateTime.now())) { + if (Objects.isNull(bill.getBillStartDate()) || bill.getBillStartDate().isAfter(LocalDateTime.now())) { // 删除项目子选项 eduBillItemSubService.remove( new LambdaQueryWrapper<>(new EduBillItemSub()).eq(EduBillItemSub::getBillId, billId)); diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillStatisticsServiceImpl.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillStatisticsServiceImpl.java index b2e2a2b..2096400 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillStatisticsServiceImpl.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillStatisticsServiceImpl.java @@ -123,8 +123,6 @@ public class EduBillStatisticsServiceImpl implements EduBillStatisticsService { // 查询指定账单数据 billList.add(eduBillService.getById(billId)); } - // 查询已开始的账单 -// List billList = eduBillMapper.selectStartBill(); if (CollUtil.isNotEmpty(billList)) { for (EduBill eduBill : billList) { diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillStudentServiceImpl.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillStudentServiceImpl.java index 44e61fd..7d9e458 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillStudentServiceImpl.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/EduBillStudentServiceImpl.java @@ -2,6 +2,7 @@ package com.yida.data.mall.service.impl; import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; @@ -15,10 +16,16 @@ import com.yida.data.common.core.entity.constant.StringConstant; import com.yida.data.common.core.entity.mall.EduBill; import com.yida.data.common.core.entity.mall.EduBillOrder; import com.yida.data.common.core.entity.mall.EduBillStudent; +import com.yida.data.common.core.entity.notice.app.AppNotice; +import com.yida.data.common.core.entity.notice.app.inside.PushMessage; +import com.yida.data.common.core.entity.system.EduYidaApp; +import com.yida.data.common.core.entity.user.EduParent; import com.yida.data.common.core.entity.user.EduStudent; import com.yida.data.common.core.enums.OrderStatusEnum; import com.yida.data.common.core.exception.FebsException; +import com.yida.data.common.core.utils.AppUtil; import com.yida.data.common.core.utils.FebsUtil; +import com.yida.data.common.service.CommonService; import com.yida.data.mall.dto.BillStudentSelectPageDTO; import com.yida.data.mall.dto.BillUserSaveDTO; import com.yida.data.mall.mapper.EduBillMapper; @@ -31,11 +38,13 @@ import com.yida.data.mall.vo.BillItemInfoVO; import com.yida.data.mall.vo.BillStudentInfoVO; import com.yida.data.mall.vo.h5.H5BillItemVO; import com.yida.data.system.feign.RemoteCommonService; +import com.yida.data.user.dto.ListStudentDTO; import com.yida.data.user.feign.RemoteStudentService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,10 +53,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -63,8 +69,8 @@ import java.util.stream.Collectors; public class EduBillStudentServiceImpl extends ServiceImpl implements EduBillStudentService { + private final CommonService commonService; private final RemoteStudentService remoteStudentService; - private final RemoteCommonService remoteCommonService; private final EduBillOrderService eduBillOrderService; private final EduBillOrderItemService eduBillOrderItemService; @@ -77,6 +83,12 @@ public class EduBillStudentServiceImpl extends ServiceImpl private final RedisService redisService; + @Value("${febs.pushUrl}") + private String pushUrl; + + @Value("${febs.billUrl}") + private String billUrl; + @Override public IPage listBillUserPage(BillStudentSelectPageDTO dto) { // 查询学生信息 @@ -363,4 +375,79 @@ public class EduBillStudentServiceImpl extends ServiceImpl return ""; } } + + @Override + public void sendBillNotice(Long billId, String noticeTitle) { + EduBill bill = eduBillService.getById(billId); + if (Objects.isNull(bill) || bill.getBillEndDate().isAfter(LocalDateTime.now())) { + log.error("当前账单无法进行催缴功能!"); + } + // 查询学生信息 + ListStudentDTO studentDTO = ListStudentDTO.builder().schoolId(FebsUtil.getDeptId()) + .isQueryUserDept(false).isQuerySchoolName(false) + .build(); + List studentList = remoteStudentService.listStudent(studentDTO).getData(); + + // 学生分组 + Map> studentMap = studentList.stream().collect( + Collectors.groupingBy(EduStudent::getId)); + if (CollUtil.isNotEmpty(studentList)) { + // 需要推送的家长集合 + List parentList = new ArrayList<>(); + // 查询账单人员列表 + List list = baseMapper.listBillUserPage(null, + BillStudentSelectPageDTO.builder() + .billId(billId) + .build(), + studentList); + list.forEach(billStudentInfoVO -> { + // 匹配学生信息 + EduStudent student = studentMap.get(billStudentInfoVO.getStudentId()).get(0); + BigDecimal payOrderPrice = eduBillOrderService.sumPayOrderPrice(billId, student.getId()); + if (Objects.isNull(payOrderPrice) && CollUtil.isNotEmpty(student.getParents())) { + // 添加需要推送的家长信息 + parentList.addAll(student.getParents()); + } + }); + + // 推送消息 + List appUserIds = parentList.stream().map(EduParent::getYidaAppUserId) + .filter(StringUtils::isNotBlank).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(appUserIds)) { + EduYidaApp yidaApp = new EduYidaApp(); + yidaApp.setAppUrl(pushUrl); + // 创建发送对象 + AppNotice notice = new AppNotice(); + // 消息主体 + PushMessage message = new PushMessage(); + message.setTitle(noticeTitle); + message.setContent(String.format("您有一条待缴费信息:%s,截止日期:%s,点击查询详情。", bill.getBillTitle(), + LocalDateTimeUtil.format(bill.getBillEndDate(), "yyyy年MM月dd日HH时mm分秒"))); + message.setUrl(billUrl); + message.setMsgType(PushMessage.NORMAL); + message.setMsgSubType(PushMessage.H5_SUB_MSG_TYPE); + notice.setPushMessage(message); + notice.setUserIdList(appUserIds); + AppUtil.sendPushMsg(notice, yidaApp); + } + } + } + + public static void main(String[] args) { + EduYidaApp yidaApp = new EduYidaApp(); + yidaApp.setAppUrl("https://push.pzhdqrmtzx.com"); + // 创建发送对象 + AppNotice notice = new AppNotice(); + // 消息主体 + PushMessage message = new PushMessage(); + message.setTitle("测试"); + message.setContent(String.format("您有一条待缴费信息:%s,截止日期:%s,点击查询详情。", "sdad", + LocalDateTimeUtil.format(LocalDateTime.now(), "yyyy年MM月dd日HH时mm分秒"))); + message.setUrl("https://jyjf.pzhdqrmtzx.com/view/billApp/#/index?deptId=10548&loginType=2"); + message.setMsgType(PushMessage.NORMAL); + message.setMsgSubType(PushMessage.H5_SUB_MSG_TYPE); + notice.setPushMessage(message); + notice.setUserIdList(CollUtil.toList("f15f25a55fad4b61a527c67abbf1dcd1")); + AppUtil.sendPushMsg(notice, yidaApp); + } } diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/H5EduBillServiceImpl.java b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/H5EduBillServiceImpl.java index 53ae6fc..39a42e6 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/H5EduBillServiceImpl.java +++ b/febs-server/edu-mall/edu-mall-biz/src/main/java/com/yida/data/mall/service/impl/H5EduBillServiceImpl.java @@ -7,6 +7,7 @@ import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.crypto.SecureUtil; @@ -20,6 +21,7 @@ import com.yida.data.common.core.common.ResultMsgType; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.apply.EduApplyProductOrder; import com.yida.data.common.core.entity.constant.CachePrefixConstant; +import com.yida.data.common.core.entity.constant.LockPrefixConstant; import com.yida.data.common.core.entity.constant.StringConstant; import com.yida.data.common.core.entity.constant.UnionPayConstant; import com.yida.data.common.core.entity.mall.*; @@ -80,12 +82,12 @@ public class H5EduBillServiceImpl implements H5EduBillService { private final EduBillService eduBillService; private final EduBillItemService eduBillItemService; - private final EduBillItemSubService eduBillItemSubService; private final EduBillOrderService eduBillOrderService; + private final EduBillItemSubService eduBillItemSubService; private final EduBillOrderItemService eduBillOrderItemService; + private final EduBillOrderRefundService eduBillOrderRefundService; private final EduBillOrderItemSubService eduBillOrderItemSubService; private final EduBillOrderStudentService eduBillOrderStudentService; - private final EduBillOrderRefundService eduBillOrderRefundService; private final EduBillMapper eduBillMapper; private final EduBillOrderMapper eduBillOrderMapper; @@ -183,16 +185,26 @@ public class H5EduBillServiceImpl implements H5EduBillService { public BillPayInfoVO createBillOrder(CreateBillOrderDTO createBillOrderDTO) { CurrentUser currentUser = FebsUtil.getCurrentUser(); + // 判断学生账单订单锁 + String lockKey = LockPrefixConstant.STUDENT_BILL_ORDER_LOCK + createBillOrderDTO.getStudentId() + StringConstant.DOT + createBillOrderDTO.getBillId(); + Asserts.isFalse(redisService.hasKey(lockKey), "该学生正在缴费中,请稍后再试!"); + // 加锁 + redisService.lock(lockKey); + // 判断是否有下单缓存信息 BillOrderStudentCacheVO existBillOrderStudent = (BillOrderStudentCacheVO) redisService.get( CachePrefixConstant.BILL_ORDER_STUDENT + createBillOrderDTO.getStudentId().toString() + StringConstant.DOT + createBillOrderDTO.getBillId().toString()); if (Objects.nonNull(existBillOrderStudent)) { + // 解锁 + redisService.unlock(lockKey); throw new FebsException(String.format("%s%s正在支付中, 请耐心等待", existBillOrderStudent.getStudentName(), existBillOrderStudent.getParentType())); } if (StringUtils.isEmpty(createBillOrderDTO.getPayWay()) || PayWay.ALIPAY.getValue().equals(createBillOrderDTO.getPayWay())) { + // 解锁 + redisService.unlock(lockKey); throw new FebsException(ResultMsgType.PAY_TYPE_ERROR.getValue()); } // 查询账单信息 @@ -200,11 +212,15 @@ public class H5EduBillServiceImpl implements H5EduBillService { if (Objects.isNull(bill) || BillStatusEnum.DISABLE_STATUS.getStatus().equals(bill.getEnableStatus()) || bill.getBillEndDate().isBefore(LocalDateTime.now())) { + // 解锁 + redisService.unlock(lockKey); throw new FebsException("当前账单暂时无法缴费"); } // 查询学生信息 EduStudent student = remoteStudentService.getStudentNoPermission(createBillOrderDTO.getStudentId()).getData(); if (Objects.isNull(student)) { + // 解锁 + redisService.unlock(lockKey); throw new FebsException("学生信息错误"); } // 家长信息 @@ -212,6 +228,8 @@ public class H5EduBillServiceImpl implements H5EduBillService { EduParent orderParent = parents.stream().filter( x -> currentUser.getMobile().equals(x.getMobile())).collect(Collectors.toList()).get(0); if (Objects.isNull(orderParent)) { + // 解锁 + redisService.unlock(lockKey); throw new FebsException("家长信息错误"); } @@ -219,7 +237,7 @@ public class H5EduBillServiceImpl implements H5EduBillService { try { // 订单号 需要根据支付方式生成不同的订单号 String orderNo = ""; - if (PayWay.WEI_XIN.getValue().equals(createBillOrderDTO.getPayWay())) { + if (PayWay.WEIXIN.getValue().equals(createBillOrderDTO.getPayWay())) { // 微信 orderNo = String.valueOf(ORDER_CODE_GENERATOR.nextId()); } else if (PayWay.UNION.getValue().equals(createBillOrderDTO.getPayWay())) { @@ -258,6 +276,9 @@ public class H5EduBillServiceImpl implements H5EduBillService { redisService.del(CachePrefixConstant.BILL_ORDER_FLAG + orderCode); } throw new FebsException(e.getMessage()); + } finally { + // 解锁 + redisService.unlock(lockKey); } } @@ -290,6 +311,11 @@ public class H5EduBillServiceImpl implements H5EduBillService { for (CreateBillOrderDTO.CreateBillOrderItemDTO itemDTO : createBillOrderDTO.getItemList()) { // 根据项目id查询具体信息 EduBillItem billItem = eduBillItemService.getById(itemDTO.getItemId()); + // TODO: 2023/9/19 判断当前费项是否缴费(排除多项选择多项,此处直接查询主费项) + int itemPayCount = eduBillOrderItemService.countItemPayInfo(bill.getId(), student.getId(), itemDTO.getItemId()); + if (itemPayCount > 0) { + throw new FebsException(String.format("【%s】已支付,请刷新页面后重新操作", billItem.getItemName())); + } String itemFamilyType = billItem.getFamilyType(); // 判断当前学生能否减免 boolean reductionFlag = false; @@ -495,7 +521,7 @@ public class H5EduBillServiceImpl implements H5EduBillService { // 下单返回信息 String result = ""; try { - if (PayWay.WEI_XIN.getValue().equals(eduBillOrder.getPayWay())) { + if (PayWay.WEIXIN.getValue().equals(eduBillOrder.getPayWay())) { // 微信支付 EduPayWxConfig config = commonService.getPayWxConfigBySchool(student.getSchoolId()); EduApplyProductOrder order = new EduApplyProductOrder(); @@ -553,7 +579,7 @@ public class H5EduBillServiceImpl implements H5EduBillService { public BillPayInfoVO getPayInfo(String orderCode, String billOrderFlag, Long deptId, boolean needToPay, String payWay, Integer payType) { BillPayInfoVO billPayInfoVO = null; - if (PayWay.WEI_XIN.getValue().equals(payWay)) { + if (PayWay.WEIXIN.getValue().equals(payWay)) { // 微信 billPayInfoVO = getWxJsSign(orderCode, billOrderFlag, deptId, needToPay, payType); } else if (PayWay.UNION.getValue().equals(payWay)) { @@ -587,7 +613,7 @@ public class H5EduBillServiceImpl implements H5EduBillService { BillPayInfoVO infoVO = new BillPayInfoVO(); infoVO.setOrderCode(orderCode); infoVO.setNeedToPay(needToPay); - infoVO.setPayWay(PayWay.WEI_XIN.getValue()); + infoVO.setPayWay(PayWay.WEIXIN.getValue()); infoVO.setPayType(wxPayType); // js api类型 @@ -621,7 +647,7 @@ public class H5EduBillServiceImpl implements H5EduBillService { if (Objects.nonNull(order) && (OrderStatusEnum.NOT_PAY.getStatus().equals(order.getOrderStatus()) || OrderStatusEnum.USER_PAYING.getStatus().equals(order.getOrderStatus()))) { - if (PayWay.WEI_XIN.getValue().equals(order.getPayWay())) { + if (PayWay.WEIXIN.getValue().equals(order.getPayWay())) { // 微信 wxBillOrderSuccess(order); } else if (PayWay.UNION.getValue().equals(order.getPayWay())) { @@ -675,7 +701,7 @@ public class H5EduBillServiceImpl implements H5EduBillService { if (flag) { break; } - Thread.sleep(1000L); + ThreadUtil.sleep(1000L); } catch (Exception e) { log.error("账单订单(微信支付方式)完成失败, orderNo: {}", orderCode, e); } @@ -734,9 +760,9 @@ public class H5EduBillServiceImpl implements H5EduBillService { if (flag) { break; } - Thread.sleep(1000L); + ThreadUtil.sleep(1000L); } catch (Exception e) { - log.error("账单订单(云闪付支付方式)完成失败, orderNo: {}", orderCode, e); + log.error("账单订单(微信支付方式)完成失败, orderNo: {}", orderCode, e); } } } @@ -814,7 +840,7 @@ public class H5EduBillServiceImpl implements H5EduBillService { eduBillOrderService.updateById(order); try { // 判断支付方式 - if (PayWay.WEI_XIN.getValue().equals(order.getPayWay())) { + if (PayWay.WEIXIN.getValue().equals(order.getPayWay())) { // 关闭微信订单 WxPayUtil.closeOrder(commonService.getPayWxConfigBySchool(order.getDeptId()), order.getOrderCode()); } else if (PayWay.UNION.getValue().equals(order.getPayWay()) @@ -851,7 +877,7 @@ public class H5EduBillServiceImpl implements H5EduBillService { eduBillOrderRefund.setOrderCode(orderCode); // 生成退款订单号 String refundOrderCode = ""; - if (PayWay.WEI_XIN.getValue().equals(order.getPayWay())) { + if (PayWay.WEIXIN.getValue().equals(order.getPayWay())) { // 微信 refundOrderCode = "R" + orderCode; } else if (PayWay.UNION.getValue().equals(order.getPayWay())) { @@ -873,7 +899,7 @@ public class H5EduBillServiceImpl implements H5EduBillService { PayWay.class.getMethod("getValue")); switch (Objects.requireNonNull(payWay)) { // 微信 - case WEI_XIN: + case WEIXIN: // 查询学校微信支付配置 EduPayWxConfig config = commonService.getPayWxConfigBySchool(order.getDeptId()); WxPayUtil.refund(config, eduBillOrderRefund.getOrderCode(), diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/resources/mapper/EduBillOrderItemMapper.xml b/febs-server/edu-mall/edu-mall-biz/src/main/resources/mapper/EduBillOrderItemMapper.xml index faf7c2c..378359e 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/resources/mapper/EduBillOrderItemMapper.xml +++ b/febs-server/edu-mall/edu-mall-biz/src/main/resources/mapper/EduBillOrderItemMapper.xml @@ -125,5 +125,19 @@ - + + + + diff --git a/febs-server/edu-mall/edu-mall-biz/src/main/resources/mapper/EduBillOrderMapper.xml b/febs-server/edu-mall/edu-mall-biz/src/main/resources/mapper/EduBillOrderMapper.xml index 35295e3..8268f1a 100644 --- a/febs-server/edu-mall/edu-mall-biz/src/main/resources/mapper/EduBillOrderMapper.xml +++ b/febs-server/edu-mall/edu-mall-biz/src/main/resources/mapper/EduBillOrderMapper.xml @@ -25,6 +25,10 @@ AND s.del_flag = 0 AND o.pay_status = '1' AND o.bill_id = #{billId} + AND s.student_id IN + + #{item} + diff --git a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/fallback/facility/RemoteDormitoryServiceFallback.java b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/fallback/facility/RemoteDormitoryServiceFallback.java index a4ae5a5..a75b8af 100644 --- a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/fallback/facility/RemoteDormitoryServiceFallback.java +++ b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/fallback/facility/RemoteDormitoryServiceFallback.java @@ -3,7 +3,6 @@ package com.yida.data.school.fallback.facility; import com.yida.data.common.core.annotation.Fallback; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.school.EduDormitory; -import com.yida.data.common.core.entity.school.EduDormitoryMaster; import com.yida.data.common.core.entity.school.EduDormitoryRoom; import com.yida.data.school.dto.index.EditPersonNumDTO; import com.yida.data.school.dto.index.ListDormRoomDTO; @@ -106,11 +105,6 @@ public class RemoteDormitoryServiceFallback implements FallbackFactory dtos) { - return null; - } - /** * 获取宿舍 * @@ -134,16 +128,6 @@ public class RemoteDormitoryServiceFallback implements FallbackFactory getDormNoPermission(Long id) { return null; } - - @Override - public ResultBean> getDormBySchoolId(Long schoolId) { - return null; - } - - @Override - public ResultBean> listDormRoomNoAuth(ListDormRoomDTO dto) { - return null; - } }; } } diff --git a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/fallback/leave/RemoteLeaveRequestServiceFallback.java b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/fallback/leave/RemoteLeaveRequestServiceFallback.java index eb6b663..2116044 100644 --- a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/fallback/leave/RemoteLeaveRequestServiceFallback.java +++ b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/fallback/leave/RemoteLeaveRequestServiceFallback.java @@ -3,11 +3,8 @@ package com.yida.data.school.fallback.leave; import com.yida.data.common.core.annotation.Fallback; import com.yida.data.common.core.common.ResultBean; import com.yida.data.school.dto.leave.ListStudentRequestDetailDTO; -import com.yida.data.school.dto.userLeave.ListUserRequestDTO; import com.yida.data.school.feign.leave.RemoteLeaveRequestService; -import com.yida.data.school.vo.userLeave.EduLeaveRequestUserVO; import feign.hystrix.FallbackFactory; -import java.util.List; import lombok.extern.slf4j.Slf4j; /** @@ -25,16 +22,16 @@ public class RemoteLeaveRequestServiceFallback implements FallbackFactory existRequest(ListStudentRequestDetailDTO dto) { return null; } - - @Override - public ResultBean> findList(ListUserRequestDTO dto) { - return null; - } }; } } diff --git a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/feign/facility/RemoteDormitoryService.java b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/feign/facility/RemoteDormitoryService.java index d5392d2..9028158 100644 --- a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/feign/facility/RemoteDormitoryService.java +++ b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/feign/facility/RemoteDormitoryService.java @@ -3,7 +3,6 @@ package com.yida.data.school.feign.facility; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.constant.FebsServerConstant; import com.yida.data.common.core.entity.school.EduDormitory; -import com.yida.data.common.core.entity.school.EduDormitoryMaster; import com.yida.data.common.core.entity.school.EduDormitoryRoom; import com.yida.data.school.dto.index.EditPersonNumDTO; import com.yida.data.school.dto.index.ListDormRoomDTO; @@ -18,7 +17,7 @@ import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @FeignClient(value = FebsServerConstant.EDU_SCHOOL, contextId = "dormitoryServiceClient", - fallbackFactory = RemoteDormitoryServiceFallback.class) + fallbackFactory = RemoteDormitoryServiceFallback.class) public interface RemoteDormitoryService { /** @@ -37,9 +36,6 @@ public interface RemoteDormitoryService { @PostMapping("/facility/dormRoom/listDormRoom") ResultBean> listDormRoom(@RequestBody ListDormRoomDTO dto); - @PostMapping("/in/facility/dormRoom/listDormRoom") - ResultBean> listDormRoomNoAuth(@RequestBody ListDormRoomDTO dto); - /** * 查询寝室 * @@ -66,7 +62,7 @@ public interface RemoteDormitoryService { */ @GetMapping("/facility/dormRoom/getDormRoomByNameAndDorm") ResultBean getDormRoomByNameAndDorm(@RequestParam("name") String name, - @RequestParam("dormId") Long dormId); + @RequestParam("dormId") Long dormId); /** * 根据名称查询宿舍 @@ -76,7 +72,7 @@ public interface RemoteDormitoryService { */ @GetMapping("/facility/dorm/getDormByName") ResultBean getDormByName(@RequestParam("name") String name, - @RequestParam("schoolId") Long schoolId); + @RequestParam("schoolId") Long schoolId); /** * 修改寝室入住的人数 @@ -86,14 +82,6 @@ public interface RemoteDormitoryService { @PostMapping("/facility/dormRoom/editPersonNum") ResultBean editPersonNum(@RequestBody List dtos); - /** - * 修改寝室入住的人数 - * - * @return - */ - @PostMapping("in/facility/dormRoom/editPersonNum") - ResultBean editPersonNumNoPermission(@RequestBody List dtos); - /** * 获取宿舍 * @@ -113,8 +101,4 @@ public interface RemoteDormitoryService { */ @GetMapping("/in/facility/dorm/getDorm") ResultBean getDormNoPermission(@RequestParam("id") Long id); - - @GetMapping("/in/facility/dorm/getDormListBySchoolId") - ResultBean> getDormBySchoolId(@RequestParam("schoolId") Long schoolId); - } diff --git a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/feign/leave/RemoteLeaveRequestService.java b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/feign/leave/RemoteLeaveRequestService.java index 1ef904f..cf2edff 100644 --- a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/feign/leave/RemoteLeaveRequestService.java +++ b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/feign/leave/RemoteLeaveRequestService.java @@ -3,10 +3,7 @@ package com.yida.data.school.feign.leave; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.constant.FebsServerConstant; import com.yida.data.school.dto.leave.ListStudentRequestDetailDTO; -import com.yida.data.school.dto.userLeave.ListUserRequestDTO; import com.yida.data.school.fallback.leave.RemoteLeaveRequestServiceFallback; -import com.yida.data.school.vo.userLeave.EduLeaveRequestUserVO; -import java.util.List; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -14,7 +11,7 @@ import org.springframework.web.bind.annotation.PostMapping; * @author ccl */ @FeignClient(value = FebsServerConstant.EDU_SCHOOL, contextId = "leaveRequestServiceClient", - fallbackFactory = RemoteLeaveRequestServiceFallback.class) + fallbackFactory = RemoteLeaveRequestServiceFallback.class) public interface RemoteLeaveRequestService { /** @@ -25,12 +22,4 @@ public interface RemoteLeaveRequestService { */ @PostMapping("/in/request/leaveRequest/existRequest") ResultBean existRequest(ListStudentRequestDetailDTO dto); - - /** - * @param dto - * @return - */ - @PostMapping("/in/eduLeaveRequestUser/findList") - ResultBean> findList(ListUserRequestDTO dto); - } diff --git a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/index/HomeInfoVO.java b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/index/HomeInfoVO.java index 585efdd..0eac9db 100644 --- a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/index/HomeInfoVO.java +++ b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/index/HomeInfoVO.java @@ -1,7 +1,6 @@ package com.yida.data.school.vo.index; import com.yida.data.common.core.entity.home.EduHomeFunction; -import com.yida.data.common.core.entity.school.EduDeptHomeApp; import com.yida.data.common.core.entity.school.EduSchoolHomeAnnouncement; import com.yida.data.common.core.entity.school.EduSchoolHomeApp; import com.yida.data.common.core.entity.school.EduSchoolHomeCover; @@ -40,6 +39,4 @@ public class HomeInfoVO { private EduSchoolHomeNews news; private Integer deptType; - @ApiModelProperty("关联小程序List:新版") - private List eduDeptHomeAppList; } diff --git a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/index/ManuscriptPageInfoVO.java b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/index/ManuscriptPageInfoVO.java index 189b871..8287cf4 100644 --- a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/index/ManuscriptPageInfoVO.java +++ b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/index/ManuscriptPageInfoVO.java @@ -11,6 +11,7 @@ import lombok.Data; @ApiModel("稿件分页信息") @Data public class ManuscriptPageInfoVO { + private Long id; @ApiModelProperty("标题") @@ -41,4 +42,7 @@ public class ManuscriptPageInfoVO { @ApiModelProperty("标签:以逗号分隔") private String labels; + + @ApiModelProperty("状态") + private Integer status; } diff --git a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/news/SchoolNoticePageVO.java b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/news/SchoolNoticePageVO.java index b2a12d9..273bcdf 100644 --- a/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/news/SchoolNoticePageVO.java +++ b/febs-server/edu-school/edu-school-api/src/main/java/com/yida/data/school/vo/news/SchoolNoticePageVO.java @@ -13,7 +13,6 @@ import lombok.Data; @Data @ApiModel("分页查询数据") public class SchoolNoticePageVO { - private Long id; @ApiModelProperty("发送时间") @@ -24,9 +23,6 @@ public class SchoolNoticePageVO { @ApiModelProperty("标题") private String title; - @ApiModelProperty("作者") - private String author; - @ApiModelProperty("描述") private String description; diff --git a/febs-server/edu-school/edu-school-api/src/main/resources/META-INF/spring.factories b/febs-server/edu-school/edu-school-api/src/main/resources/META-INF/spring.factories index a01d0cd..0a141c4 100644 --- a/febs-server/edu-school/edu-school-api/src/main/resources/META-INF/spring.factories +++ b/febs-server/edu-school/edu-school-api/src/main/resources/META-INF/spring.factories @@ -9,5 +9,5 @@ com.yida.data.school.fallback.news.RemoteNoticeSystemUserServiceFallback,\ com.yida.data.school.fallback.news.RemoteNoticeUpdateServiceFallback,\ com.yida.data.school.fallback.transaction.RemoteProductOrderServiceFallback,\ com.yida.data.school.fallback.transaction.RemoteProductServiceFallback,\ -com.yida.data.school.fallback.visitor.RemoteVisitorServiceFallback,\ -com.yida.data.school.fallback.smart.RemoteSmartWelcomeServiceFallback +com.yida.data.school.fallback.transaction.RemoteStudentApplyServiceFallback,\ +com.yida.data.school.fallback.visitor.RemoteVisitorServiceFallback diff --git a/febs-server/edu-school/edu-school-biz/pom.xml b/febs-server/edu-school/edu-school-biz/pom.xml index 45c854b..ec149d9 100644 --- a/febs-server/edu-school/edu-school-biz/pom.xml +++ b/febs-server/edu-school/edu-school-biz/pom.xml @@ -1,84 +1,78 @@ - - edu-school - com.yida.data.school - 2.2-RELEASE - - 4.0.0 + xmlns="http://maven.apache.org/POM/4.0.0" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + edu-school + com.yida.data.school + 2.2-RELEASE + + 4.0.0 - edu-school-biz - - - com.yida.data.school - edu-school-api - ${febs-cloud.version} - compile - - - com.yida.data.job - febs-server-job-api - ${febs-cloud.version} - compile - - - com.yida.data.device - edu-device-api - ${febs-cloud.version} - compile - - - com.yida.data.system - febs-server-system-api - ${febs-cloud.version} - compile - - - com.yida.data.user - edu-user-api - ${febs-cloud.version} - compile - - - com.yida.data.common - edu-common - ${febs-cloud.version} - compile - - - com.vdurmont - emoji-java - ${emoji.version} - - - com.yida.data.websocket - edu-websocket-api - 2.2-RELEASE - compile - - - com.yida.data.attendance - attendance-api - ${febs-cloud.version} - compile - - + edu-school-biz + + + com.yida.data.school + edu-school-api + ${febs-cloud.version} + compile + + + com.yida.data.job + febs-server-job-api + ${febs-cloud.version} + compile + + + com.yida.data.device + edu-device-api + ${febs-cloud.version} + compile + + + com.yida.data.system + febs-server-system-api + ${febs-cloud.version} + compile + + + com.yida.data.user + edu-user-api + ${febs-cloud.version} + compile + + + com.yida.data.common + edu-common + ${febs-cloud.version} + compile + + + com.vdurmont + emoji-java + ${emoji.version} + + + com.yida.data.websocket + edu-websocket-api + 2.2-RELEASE + compile + + - - 8 - 8 - - - - - org.springframework.boot - spring-boot-maven-plugin - - ../../../febs-jar - - - - + + 8 + 8 + + + + + org.springframework.boot + spring-boot-maven-plugin + + ../../../febs-jar + + + + \ No newline at end of file diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/EduSchoolApplication.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/EduSchoolApplication.java index 8dded13..518653c 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/EduSchoolApplication.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/EduSchoolApplication.java @@ -13,9 +13,11 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.scheduling.annotation.EnableAsync; import cc.mrbird.febs.common.security.starter.annotation.EnableFebsCloudResourceServer; +import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootConfiguration @EnableAsync +@EnableTransactionManagement @EnableFeignClients(basePackages = "com.yida.data") @SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class) @EnableFebsCloudResourceServer diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/exam/service/impl/CoreExaminationPublishServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/exam/service/impl/CoreExaminationPublishServiceImpl.java index 975bca6..5b8a7f3 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/exam/service/impl/CoreExaminationPublishServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/exam/service/impl/CoreExaminationPublishServiceImpl.java @@ -225,7 +225,7 @@ public class CoreExaminationPublishServiceImpl extends private void pushScoreNotice(CoreExamination coreExamination, List studentList) { Dept school = commonService.getDept(coreExamination.getSchoolId()); - EduApp eduApp = commonService.getAppByCodeAndSchool(AppConstant.INDEX_PARENT, null, school.getDeptId()); + EduApp eduApp = commonService.getAppByCodeAndSchool(AppConstant.SCORE_PARENT, null, school.getDeptId()); List studentId = studentList.stream().map(x -> x.getCoreStudentId()).collect(Collectors.toList()); String accessToken = null; EduYidaApp yidaApp = null; diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/controller/InEduDormitoryController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/controller/InEduDormitoryController.java index 344b76a..03c8e59 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/controller/InEduDormitoryController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/controller/InEduDormitoryController.java @@ -1,20 +1,10 @@ package com.yida.data.school.facility.controller; -import cn.hutool.core.collection.CollUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.school.EduDormitory; -import com.yida.data.common.core.entity.school.EduDormitoryMaster; -import com.yida.data.common.core.entity.school.EduDormitoryRoom; -import com.yida.data.school.dto.index.ListDormRoomDTO; -import com.yida.data.school.facility.mapper.EduDormitoryRoomMapper; -import com.yida.data.school.facility.service.EduDormitoryMasterService; import com.yida.data.school.facility.service.EduDormitoryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -39,35 +29,9 @@ public class InEduDormitoryController { private final EduDormitoryService eduDormitoryService; - private final EduDormitoryRoomMapper eduDormitoryRoomMapper; - - private final EduDormitoryMasterService eduDormitoryMasterService; - @ApiOperation("获取宿舍楼") @GetMapping("/getDorm") ResultBean getDorm(@RequestParam("id") Long id) { return ResultBean.buildSuccess(eduDormitoryService.getDorm(id)); } - - @ApiOperation("根据学校ID获取宿舍楼List") - @GetMapping("/getDormListBySchoolId") - ResultBean> getDormListBySchoolId(@RequestParam("schoolId") Long schoolId) { - List list = eduDormitoryService - .list(Wrappers.lambdaQuery(new EduDormitory()).eq(EduDormitory::getSchoolId, schoolId)); - - list.forEach(eduDormitory -> { - ListDormRoomDTO dto = new ListDormRoomDTO(); - dto.setDormIds(Collections.singletonList(eduDormitory.getId())); - List eduDormitoryRooms = eduDormitoryRoomMapper.listDormRoom(dto); - eduDormitory.setDormRoomList(eduDormitoryRooms); - //宿管 - List masterList = eduDormitoryMasterService - .list(Wrappers.lambdaQuery(new EduDormitoryMaster()).eq(EduDormitoryMaster::getSchoolId, schoolId) - .eq(EduDormitoryMaster::getDormitoryId, eduDormitory.getId())); - if (CollUtil.isNotEmpty(masterList)) { - eduDormitory.setMasterIds(masterList.stream().map(EduDormitoryMaster::getMasterId).collect(Collectors.toList())); - } - }); - return ResultBean.buildSuccess(list); - } } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/controller/InEduDormitoryRoomController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/controller/InEduDormitoryRoomController.java index e842c05..9f460e3 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/controller/InEduDormitoryRoomController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/controller/InEduDormitoryRoomController.java @@ -2,15 +2,9 @@ package com.yida.data.school.facility.controller; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.school.EduDormitoryRoom; -import com.yida.data.school.dto.index.EditPersonNumDTO; -import com.yida.data.school.dto.index.ListDormRoomDTO; import com.yida.data.school.facility.service.EduDormitoryRoomService; -import io.swagger.annotations.ApiOperation; -import java.util.List; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -34,17 +28,4 @@ public class InEduDormitoryRoomController { ResultBean getDormRoomNoPermission(@RequestParam("id") Long id) { return ResultBean.buildSuccess(eduDormitoryRoomService.getDormRoom(id)); } - - @ApiOperation("寝室入住") - @PostMapping("/editPersonNum") - public ResultBean editPersonNumNoPermission(@RequestBody List dtos) { - eduDormitoryRoomService.editPersonNum(dtos); - return ResultBean.buildSuccess(); - } - - @ApiOperation("查询寝室列表") - @PostMapping("/listDormRoom") - public ResultBean> listDormRoom(@RequestBody ListDormRoomDTO dto) { - return ResultBean.buildSuccess(eduDormitoryRoomService.listDormRoom(dto)); - } } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/EduDormitoryMasterService.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/EduDormitoryMasterService.java index 394f696..fda9698 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/EduDormitoryMasterService.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/EduDormitoryMasterService.java @@ -11,5 +11,7 @@ import com.yida.data.common.core.entity.school.EduDormitoryMaster; * @date 2022/8/22 */ public interface EduDormitoryMasterService extends IService { - + + + } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/EduDormitoryService.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/EduDormitoryService.java index d9b4996..529ab04 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/EduDormitoryService.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/EduDormitoryService.java @@ -54,6 +54,4 @@ public interface EduDormitoryService extends IService { * @date 2022/7/15 14:31 */ EduDormitory getDorm(Long id); - - } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/impl/EduDormitoryServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/impl/EduDormitoryServiceImpl.java index 92d2f8b..38af579 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/impl/EduDormitoryServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/facility/service/impl/EduDormitoryServiceImpl.java @@ -45,7 +45,7 @@ import java.util.stream.Collectors; @RequiredArgsConstructor @Transactional(rollbackFor = Exception.class) public class EduDormitoryServiceImpl extends ServiceImpl - implements EduDormitoryService { + implements EduDormitoryService { private final EduDormitoryRoomMapper eduDormitoryRoomMapper; private final EduDormitoryMasterMapper eduDormitoryMasterMapper; @@ -62,15 +62,14 @@ public class EduDormitoryServiceImpl extends ServiceImpl public IPage listDormPage(PageDormDTO dto) { if (Objects.nonNull(dto.getMasterId())) { - List masterList = eduDormitoryMasterMapper - .selectList(Wrappers.lambdaQuery(new EduDormitoryMaster()) + List masterList = eduDormitoryMasterMapper.selectList(Wrappers.lambdaQuery(new EduDormitoryMaster()) .eq(EduDormitoryMaster::getMasterId, dto.getMasterId()).select(EduDormitoryMaster::getDormitoryId)); if (CollUtil.isEmpty(masterList)) { return new Page<>(); } dto.setDormIds(masterList.stream().map(EduDormitoryMaster::getDormitoryId) - .distinct() - .collect(Collectors.toList())); + .distinct() + .collect(Collectors.toList())); } IPage dormPage = baseMapper.listDormPage(dto.toPage(), dto); // 查询宿管名称 @@ -78,18 +77,18 @@ public class EduDormitoryServiceImpl extends ServiceImpl // 查询宿管id集合 for (DormInfoVO dormInfoVO : dormPage.getRecords()) { List masterIds = eduDormitoryMasterMapper.selectList(Wrappers.lambdaQuery(new EduDormitoryMaster()) - .eq(EduDormitoryMaster::getDormitoryId, dormInfoVO.getDormId()) - .select(EduDormitoryMaster::getMasterId) + .eq(EduDormitoryMaster::getDormitoryId, dormInfoVO.getDormId()) + .select(EduDormitoryMaster::getMasterId) ).stream().map(EduDormitoryMaster::getMasterId).collect(Collectors.toList()); dormInfoVO.setMasterIds(masterIds); List staffList = CollUtil.isNotEmpty(masterIds) - ? remoteStaffService.listStaff(ListStaffDTO.builder().ids(masterIds).build()).getData() - : Collections.emptyList(); + ? remoteStaffService.listStaff(ListStaffDTO.builder().ids(masterIds).build()).getData() + : Collections.emptyList(); // 匹配宿管 if (CollUtil.isNotEmpty(staffList)) { dormInfoVO.setMasterName(staffList.stream().map(EduStaff::getName) - .collect(Collectors.joining(StringConstant.COMMA))); + .collect(Collectors.joining(StringConstant.COMMA))); } } } @@ -107,8 +106,8 @@ public class EduDormitoryServiceImpl extends ServiceImpl } } LambdaQueryWrapper condition = Wrappers.lambdaQuery() - .eq(EduDormitory::getSchoolId, dorm.getSchoolId()) - .eq(EduDormitory::getName, dorm.getName()); + .eq(EduDormitory::getSchoolId, dorm.getSchoolId()) + .eq(EduDormitory::getName, dorm.getName()); if (dorm.getId() != null) { condition.ne(EduDormitory::getId, dorm.getId()); } @@ -116,14 +115,13 @@ public class EduDormitoryServiceImpl extends ServiceImpl saveOrUpdate(dorm); // 删除旧宿管数据 - eduDormitoryMasterMapper - .delete(Wrappers.lambdaQuery().in(EduDormitoryMaster::getDormitoryId, dorm.getId())); + eduDormitoryMasterMapper.delete(Wrappers.lambdaQuery().in(EduDormitoryMaster::getDormitoryId, dorm.getId())); dorm.getMasterIds().forEach(masterId -> { EduDormitoryMaster master = EduDormitoryMaster.builder() - .dormitoryId(dorm.getId()) - .masterId(masterId) - .schoolId(dorm.getSchoolId()) - .build(); + .dormitoryId(dorm.getId()) + .masterId(masterId) + .schoolId(dorm.getSchoolId()) + .build(); eduDormitoryMasterMapper.insert(master); }); } @@ -131,7 +129,7 @@ public class EduDormitoryServiceImpl extends ServiceImpl @Override public void delDormBatch(List ids) { List rooms = eduDormitoryRoomMapper.selectList( - Wrappers.lambdaQuery().in(EduDormitoryRoom::getDormId, ids).select(EduDormitoryRoom::getId)); + Wrappers.lambdaQuery().in(EduDormitoryRoom::getDormId, ids).select(EduDormitoryRoom::getId)); //删除寝室 eduDormitoryRoomMapper.delete(Wrappers.lambdaQuery().in(EduDormitoryRoom::getDormId, ids)); // 删除宿舍楼 @@ -147,15 +145,14 @@ public class EduDormitoryServiceImpl extends ServiceImpl EduDormitory eduDormitory = getById(id); Optional.ofNullable(eduDormitory).ifPresent(dormitory -> { // 查询宿管信息 - List masterList = eduDormitoryMasterMapper - .selectList(Wrappers.lambdaQuery(new EduDormitoryMaster()) + List masterList = eduDormitoryMasterMapper.selectList(Wrappers.lambdaQuery(new EduDormitoryMaster()) .eq(EduDormitoryMaster::getDormitoryId, dormitory.getId()).select(EduDormitoryMaster::getMasterId)); if (CollUtil.isNotEmpty(masterList)) { dormitory.setEduStaffList( - remoteStaffService.listStaff( - ListStaffDTO.builder().ids(masterList.stream().map(EduDormitoryMaster::getMasterId) - .collect(Collectors.toList())).build()) - .getData()); + remoteStaffService.listStaff( + ListStaffDTO.builder().ids(masterList.stream().map(EduDormitoryMaster::getMasterId) + .collect(Collectors.toList())).build()) + .getData()); } }); return eduDormitory; diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/health/service/impl/EduHealthStudentPhysicalExaminationGroupServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/health/service/impl/EduHealthStudentPhysicalExaminationGroupServiceImpl.java index f7452ab..416678f 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/health/service/impl/EduHealthStudentPhysicalExaminationGroupServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/health/service/impl/EduHealthStudentPhysicalExaminationGroupServiceImpl.java @@ -94,7 +94,7 @@ public class EduHealthStudentPhysicalExaminationGroupServiceImpl extends Service public void sendHealthNotice(Long groupId,Long schoolId) { List studentId = baseMapper.findStudentId(groupId); EduHealthStudentPhysicalExaminationGroup group = getById(groupId); - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.INDEX_PARENT, null, + EduApp app = commonService.getAppByCodeAndSchool(AppConstant.PRODUCT_PARENT, null, schoolId); String accessToken = wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()); diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/controller/EduSchoolHomeController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/controller/EduSchoolHomeController.java index 308c4ea..620795f 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/controller/EduSchoolHomeController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/controller/EduSchoolHomeController.java @@ -13,7 +13,6 @@ import com.yida.data.common.core.entity.school.EduSchoolHomeMicroPic; import com.yida.data.common.core.entity.school.EduSchoolHomeNews; import com.yida.data.common.core.entity.school.EduSchoolManuscript; import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.school.index.service.EduDeptHomeAppService; import com.yida.data.school.index.service.EduHomeFunctionService; import com.yida.data.school.index.service.EduSchoolHomeAnnouncementService; import com.yida.data.school.index.service.EduSchoolHomeAppService; @@ -64,15 +63,14 @@ public class EduSchoolHomeController { private final EduSchoolHomeMicroIndexService eduSchoolHomeMicroIndexService; private final EduSchoolHomeMicroPicService eduSchoolHomeMicroPicService; private final EduSchoolManuscriptService eduSchoolManuscriptService; - private final EduDeptHomeAppService eduDeptHomeAppService; @ApiOperation("主页信息查询") @GetMapping("/getHomeInfo") - public ResultBean getHomeInfo(@ApiParam("学校id") Long schoolId, @RequestParam(required = false) Integer userType) { + public ResultBean getHomeInfo(@ApiParam("学校id") Long schoolId) { if (schoolId == null) { schoolId = FebsUtil.getTopDeptId(); } - return ResultBean.buildSuccess(eduSchoolHomeCoverService.getHomeInfo(schoolId, userType)); + return ResultBean.buildSuccess(eduSchoolHomeCoverService.getHomeInfo(schoolId)); } @ApiOperation("更新轮播图(新增、编辑、删除)") @@ -204,15 +202,4 @@ public class EduSchoolHomeController { eduHomeFunctionService.updateFunction(functionData); return ResultBean.buildSuccess(); } - - - @GetMapping("/getWxPublicURLLink") - @ApiOperation("获取微信小程序短链接") - ResultBean getWxPublicURLLink( - @RequestParam @ApiParam(value = "学校ID", required = true) String schoolId, - @RequestParam @ApiParam(value = "用户ID", required = true) Long userId, - @RequestParam @ApiParam(value = "用户类型", required = true) Integer userType, - @RequestParam @ApiParam(value = "系统内部小程序ID", required = true) Long localAppId) { - return ResultBean.buildSuccess(eduDeptHomeAppService.getWxPublicURLLink(schoolId, userId, userType, localAppId)); - } } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/controller/InEduSchoolHomeController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/controller/InEduSchoolHomeController.java index 055b60f..c9e2610 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/controller/InEduSchoolHomeController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/controller/InEduSchoolHomeController.java @@ -2,9 +2,7 @@ package com.yida.data.school.index.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.common.ResultBean; -import com.yida.data.common.core.entity.school.EduDeptHomeApp; import com.yida.data.common.core.entity.school.EduSchoolHomeMicroPic; -import com.yida.data.school.index.service.EduDeptHomeAppService; import com.yida.data.school.index.service.EduSchoolHomeCoverService; import com.yida.data.school.index.service.EduSchoolHomeMicroIndexService; import com.yida.data.school.index.service.EduSchoolHomeMicroPicService; @@ -28,11 +26,9 @@ import lombok.RequiredArgsConstructor; @RestController @RequiredArgsConstructor public class InEduSchoolHomeController { - private final EduSchoolHomeMicroIndexService eduSchoolHomeMicroIndexService; private final EduSchoolHomeMicroPicService eduSchoolHomeMicroPicService; private final EduSchoolHomeCoverService eduSchoolHomeCoverService; - private final EduDeptHomeAppService eduDeptHomeAppService; @ApiOperation("查询校园概况") @@ -48,20 +44,13 @@ public class InEduSchoolHomeController { @GetMapping("/listPicByCol") public ResultBean> listPicByCol(@ApiParam("栏目id") Long colId) { return ResultBean.buildSuccess(eduSchoolHomeMicroPicService.list(Wrappers.lambdaQuery(new EduSchoolHomeMicroPic()) - .eq(EduSchoolHomeMicroPic::getColId, colId) - .orderByAsc(EduSchoolHomeMicroPic::getSort))); + .eq(EduSchoolHomeMicroPic::getColId, colId) + .orderByAsc(EduSchoolHomeMicroPic::getSort))); } @ApiOperation("主页信息查询") @GetMapping("/getHomeInfo") - public ResultBean getHomeInfo(@ApiParam("学校id") Long schoolId, @RequestParam(required = false) Integer userType) { - return ResultBean.buildSuccess(eduSchoolHomeCoverService.getHomeInfo(schoolId, userType)); - } - - @ApiOperation("主页信息查询") - @GetMapping("/getDeptAppList") - public ResultBean> getDeptAppList(@RequestParam("schoolId") Long schoolId) { - return ResultBean.buildSuccess(eduDeptHomeAppService.list(Wrappers.lambdaQuery(new EduDeptHomeApp()) - .eq(EduDeptHomeApp::getDeptId, schoolId))); + public ResultBean getHomeInfo(@ApiParam("学校id") Long schoolId) { + return ResultBean.buildSuccess(eduSchoolHomeCoverService.getHomeInfo(schoolId)); } } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/EduSchoolHomeAppService.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/EduSchoolHomeAppService.java index 1268e77..4e38e00 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/EduSchoolHomeAppService.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/EduSchoolHomeAppService.java @@ -3,9 +3,7 @@ package com.yida.data.school.index.service; import com.baomidou.mybatisplus.extension.service.IService; import com.yida.data.common.core.entity.school.EduSchoolHomeApp; -import io.swagger.annotations.ApiParam; import java.util.List; -import org.springframework.web.bind.annotation.RequestParam; /** * Service接口 diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/EduSchoolHomeCoverService.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/EduSchoolHomeCoverService.java index 48d2ac1..d3531cb 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/EduSchoolHomeCoverService.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/EduSchoolHomeCoverService.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.yida.data.common.core.entity.school.EduSchoolHomeCover; import com.yida.data.school.vo.index.HomeInfoVO; -import io.swagger.models.auth.In; import java.util.List; /** @@ -15,7 +14,7 @@ import java.util.List; */ public interface EduSchoolHomeCoverService extends IService { - HomeInfoVO getHomeInfo(Long schoolId, Integer userType); + HomeInfoVO getHomeInfo(Long schoolId); /** * 更新轮播图 diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/impl/EduSchoolHomeAppServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/impl/EduSchoolHomeAppServiceImpl.java index 43c5aa8..9fe9c5b 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/impl/EduSchoolHomeAppServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/impl/EduSchoolHomeAppServiceImpl.java @@ -1,11 +1,9 @@ package com.yida.data.school.index.service.impl; -import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.entity.school.EduSchoolHomeApp; import com.yida.data.common.core.entity.school.EduSchoolHomeAppShow; import com.yida.data.common.core.entity.user.EduStaffDept; @@ -41,7 +39,6 @@ public class EduSchoolHomeAppServiceImpl extends ServiceImpl private final RemoteDeptService remoteDeptService; private final RemoteUserDeptService remoteUserDeptService; private final EduSchoolMatterService eduSchoolMatterService; - private final RedisService redisService; @Override @Transactional diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/impl/EduSchoolHomeCoverServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/impl/EduSchoolHomeCoverServiceImpl.java index 02942eb..af9e35b 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/impl/EduSchoolHomeCoverServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/index/service/impl/EduSchoolHomeCoverServiceImpl.java @@ -1,15 +1,10 @@ package com.yida.data.school.index.service.impl; -import cc.mrbird.febs.common.redis.service.RedisService; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.entity.home.EduHomeFunction; import com.yida.data.common.core.entity.notice.EduNoticeSchool; -import com.yida.data.common.core.entity.school.EduDeptHomeApp; import com.yida.data.common.core.entity.school.EduSchoolHomeAnnouncement; import com.yida.data.common.core.entity.school.EduSchoolHomeCover; import com.yida.data.common.core.entity.school.EduSchoolHomeMicro; @@ -18,13 +13,11 @@ import com.yida.data.common.core.entity.school.EduSchoolManuscript; import com.yida.data.common.core.entity.system.Dept; import com.yida.data.common.core.entity.system.EduYidaApp; import com.yida.data.common.core.entity.system.enums.DeptTypeEnum; -import com.yida.data.common.core.enums.EnableStatusEnum; import com.yida.data.common.core.utils.AppUtil; import com.yida.data.common.service.CommonService; import com.yida.data.school.index.mapper.EduSchoolHomeAppMapper; import com.yida.data.school.index.mapper.EduSchoolHomeCoverMapper; import com.yida.data.school.index.mapper.EduSchoolHomeNewsMapper; -import com.yida.data.school.index.service.EduDeptHomeAppService; import com.yida.data.school.index.service.EduHomeFunctionService; import com.yida.data.school.index.service.EduSchoolHomeAnnouncementService; import com.yida.data.school.index.service.EduSchoolHomeCoverService; @@ -55,112 +48,89 @@ public class EduSchoolHomeCoverServiceImpl extends ServiceImpl private final EduSchoolMatterService eduSchoolMatterService; private final EduSchoolHomeMicroService eduSchoolHomeMicroService; private final EduSchoolHomeAnnouncementService eduSchoolHomeAnnouncementService; - private final EduDeptHomeAppService eduDeptHomeAppService; + private final EduNoticeSchoolMapper eduNoticeSchoolMapper; private final EduSchoolHomeAppMapper eduSchoolHomeAppMapper; private final EduSchoolHomeNewsMapper eduSchoolHomeNewsMapper; private final EduSchoolManuscriptMapper eduSchoolManuscriptMapper; private final CommonService commonService; - private final RedisService redisService; @Override - public HomeInfoVO getHomeInfo(Long schoolId, Integer userType) { + public HomeInfoVO getHomeInfo(Long schoolId) { + Dept dept = commonService.getDept(schoolId); HomeInfoVO homeInfoVO = new HomeInfoVO(); - //缓存主页信息 - if (redisService.hHasKey(CachePrefixConstant.SCHOOL_HOME_INFO, schoolId + "" + userType)) { - homeInfoVO = (HomeInfoVO) redisService - .hget(CachePrefixConstant.SCHOOL_HOME_INFO, schoolId + "" + userType); - } else { - Dept dept = commonService.getDept(schoolId); - homeInfoVO.setDeptType(dept.getDeptType()); - homeInfoVO.setCoverList(list(Wrappers.lambdaQuery(new EduSchoolHomeCover()) - .eq(EduSchoolHomeCover::getSchoolId, schoolId))); - if (dept.getDeptType().equals(DeptTypeEnum.SCHOOL_TYPE.getValue())) { - homeInfoVO.setParentAppList(eduSchoolHomeAppMapper.listApp(schoolId, 0, null, null)); - homeInfoVO.setTeacherAppList(eduSchoolHomeAppMapper.listApp(schoolId, 1, null, null)); - // 查询公告区 - EduSchoolHomeAnnouncement announcement = - eduSchoolHomeAnnouncementService.getOne(Wrappers.lambdaQuery(new EduSchoolHomeAnnouncement()) - .eq(EduSchoolHomeAnnouncement::getSchoolId, schoolId)); - // 无公告进行保存操作 - if (announcement == null) { - announcement = new EduSchoolHomeAnnouncement(); - announcement.setSchoolId(schoolId); - announcement.setName("公示公告"); - eduSchoolHomeAnnouncementService.saveAnnouncement(announcement); - } - // 设置了置顶公告则进行查询 - if (announcement.getTopAnnouncementId() != null) { - EduNoticeSchool topNotice = eduNoticeSchoolMapper.selectById(announcement.getTopAnnouncementId()); - if (topNotice != null) { - announcement.setTopAnnouncementPubDate(topNotice.getSendDate()); - announcement.setTopAnnouncement(topNotice); - } - } - // 查询公告区公告 - LambdaQueryWrapper condition = Wrappers.lambdaQuery(new EduNoticeSchool()) - .eq(EduNoticeSchool::getSchoolId, schoolId) - .eq(EduNoticeSchool::getIsPublic, 1) - .orderByDesc(EduNoticeSchool::getSendDate) - .last(announcement.getTopAnnouncementId() == null ? "limit 3" : "limit 2"); - if (announcement.getTopAnnouncementId() != null) { - condition.ne(EduNoticeSchool::getId, announcement.getTopAnnouncementId()); - } - announcement.setManuscriptList(eduNoticeSchoolMapper.selectList(condition)); - homeInfoVO.setAnnouncement(announcement); - // 微官网区 - EduSchoolHomeMicro microInfo = eduSchoolHomeMicroService.getInfo(schoolId); - if (microInfo == null) { - eduSchoolHomeMicroService.initMicro(schoolId); - microInfo = eduSchoolHomeMicroService.getInfo(schoolId); - } - homeInfoVO.setMicro(microInfo); - // 查询新闻区 - EduSchoolHomeNews news = eduSchoolHomeNewsMapper.selectOne(Wrappers.lambdaQuery(new EduSchoolHomeNews()) - .eq(EduSchoolHomeNews::getSchoolId, schoolId)); - if (news == null) { - news = new EduSchoolHomeNews(); - news.setSchoolId(schoolId); - news.setName("学校新闻"); - eduSchoolHomeNewsMapper.insert(news); - } - homeInfoVO.setNews(news); - if (homeInfoVO.getNews().getTopNewsId() != null) { - EduSchoolManuscript topNews = eduSchoolManuscriptMapper.getInfo(homeInfoVO.getNews().getTopNewsId()); - homeInfoVO.getNews().setTopNews(topNews); + homeInfoVO.setDeptType(dept.getDeptType()); + homeInfoVO.setCoverList(list(Wrappers.lambdaQuery(new EduSchoolHomeCover()) + .eq(EduSchoolHomeCover::getSchoolId, schoolId))); + if (dept.getDeptType().equals(DeptTypeEnum.SCHOOL_TYPE.getValue())) { + homeInfoVO.setParentAppList(eduSchoolHomeAppMapper.listApp(schoolId, 0, null, null)); + homeInfoVO.setTeacherAppList(eduSchoolHomeAppMapper.listApp(schoolId, 1, null, null)); + // 查询公告区 + EduSchoolHomeAnnouncement announcement = + eduSchoolHomeAnnouncementService.getOne(Wrappers.lambdaQuery(new EduSchoolHomeAnnouncement()) + .eq(EduSchoolHomeAnnouncement::getSchoolId, schoolId)); + // 无公告进行保存操作 + if (announcement == null) { + announcement = new EduSchoolHomeAnnouncement(); + announcement.setSchoolId(schoolId); + announcement.setName("公示公告"); + eduSchoolHomeAnnouncementService.saveAnnouncement(announcement); + } + // 设置了置顶公告则进行查询 + if (announcement.getTopAnnouncementId() != null) { + EduNoticeSchool topNotice = eduNoticeSchoolMapper.selectById(announcement.getTopAnnouncementId()); + if (topNotice != null) { + announcement.setTopAnnouncementPubDate(topNotice.getSendDate()); + announcement.setTopAnnouncement(topNotice); } } - // 查询功能区 - EduHomeFunction function = eduHomeFunctionService - .getOne(Wrappers.lambdaQuery().eq(EduHomeFunction::getDeptId, schoolId)); - if (function == null) { - function = new EduHomeFunction(); - function.setDeptId(schoolId); - function.setSearchSchool(0); - function.setMatchSchool(0); - function.setEnrolSign(0); - function.setEnrolQa(0); - eduHomeFunctionService.save(function); + // 查询公告区公告 + LambdaQueryWrapper condition = Wrappers.lambdaQuery(new EduNoticeSchool()) + .eq(EduNoticeSchool::getSchoolId, schoolId) + .eq(EduNoticeSchool::getIsPublic, 1) + .orderByDesc(EduNoticeSchool::getSendDate) + .last(announcement.getTopAnnouncementId() == null ? "limit 3" : "limit 2"); + if (announcement.getTopAnnouncementId() != null) { + condition.ne(EduNoticeSchool::getId, announcement.getTopAnnouncementId()); } - - if (ObjectUtil.isNotNull(userType)) { - List list = eduDeptHomeAppService.list(Wrappers.lambdaQuery() - .eq(EduDeptHomeApp::getDeptId, schoolId) - .eq(EduDeptHomeApp::getUserType, userType) - .eq(EduDeptHomeApp::getEnableStatus, EnableStatusEnum.ENABLE_STATUS.getStatus()) - .orderByAsc(EduDeptHomeApp::getSort)); - if (CollUtil.isNotEmpty(list)) { - homeInfoVO.setEduDeptHomeAppList(list); - } - + announcement.setManuscriptList(eduNoticeSchoolMapper.selectList(condition)); + homeInfoVO.setAnnouncement(announcement); + // 微官网区 + EduSchoolHomeMicro microInfo = eduSchoolHomeMicroService.getInfo(schoolId); + if (microInfo == null) { + eduSchoolHomeMicroService.initMicro(schoolId); + microInfo = eduSchoolHomeMicroService.getInfo(schoolId); } - homeInfoVO.setFunction(function); - - if (ObjectUtil.isNotNull(homeInfoVO)) { - redisService.hset(CachePrefixConstant.SCHOOL_HOME_INFO, schoolId + "" + userType, homeInfoVO); + homeInfoVO.setMicro(microInfo); + // 查询新闻区 + EduSchoolHomeNews news = eduSchoolHomeNewsMapper.selectOne(Wrappers.lambdaQuery(new EduSchoolHomeNews()) + .eq(EduSchoolHomeNews::getSchoolId, schoolId)); + if (news == null) { + news = new EduSchoolHomeNews(); + news.setSchoolId(schoolId); + news.setName("学校新闻"); + eduSchoolHomeNewsMapper.insert(news); + } + homeInfoVO.setNews(news); + if (homeInfoVO.getNews().getTopNewsId() != null) { + EduSchoolManuscript topNews = eduSchoolManuscriptMapper.getInfo(homeInfoVO.getNews().getTopNewsId()); + homeInfoVO.getNews().setTopNews(topNews); } } + // 查询功能区 + EduHomeFunction function = eduHomeFunctionService + .getOne(Wrappers.lambdaQuery().eq(EduHomeFunction::getDeptId, schoolId)); + if (function == null) { + function = new EduHomeFunction(); + function.setDeptId(schoolId); + function.setSearchSchool(0); + function.setMatchSchool(0); + function.setEnrolSign(0); + function.setEnrolQa(0); + eduHomeFunctionService.save(function); + } + homeInfoVO.setFunction(function); return homeInfoVO; } @@ -187,8 +157,5 @@ public class EduSchoolHomeCoverServiceImpl extends ServiceImpl EduYidaApp yidaApp = commonService.getYidaApp(schoolId); AppUtil.bannerUpdate(school.getYidaAppColId(), urlList, sortList, yidaApp); } - - redisService.del(CachePrefixConstant.SCHOOL_HOME_INFO, schoolId + "" + 0); - redisService.del(CachePrefixConstant.SCHOOL_HOME_INFO, schoolId + "" + 1); } } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/leave/service/impl/EduLeaveRequestServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/leave/service/impl/EduLeaveRequestServiceImpl.java index fd1f84e..eb73cb4 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/leave/service/impl/EduLeaveRequestServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/leave/service/impl/EduLeaveRequestServiceImpl.java @@ -135,7 +135,7 @@ public class EduLeaveRequestServiceImpl extends ServiceImpl //发送企业微信通知 if (school.getSchoolType().contains("0")) { - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT_SELECT, null, + EduApp app = commonService.getAppByCodeAndSchool(AppConstant.TEACHER_LEAVE_REQUEST, null, staff.getSchoolId()); String accessToken = wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()); @@ -246,7 +246,7 @@ public class EduLeaveRequestServiceImpl extends ServiceImpl //通知企业微信对应家长 Dept dept = commonService.getDept(schoolId); if (dept.getSchoolType().contains("0")) { - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT_SELECT, null, + EduApp app = commonService.getAppByCodeAndSchool(AppConstant.TEACHER_LEAVE_REQUEST, null, schoolId); String accessToken = wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()); List list = new ArrayList<>(); diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/EduLetterBoxConfigController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/EduLetterBoxConfigController.java index bc77e35..e686019 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/EduLetterBoxConfigController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/EduLetterBoxConfigController.java @@ -1,25 +1,21 @@ package com.yida.data.school.letter.controller; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.letter.EduLetterBoxConfig; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; +import com.yida.data.common.core.entity.letter.EduLetterBoxReplyPerson; import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.dto.letterbox.LetterBoxConfigDTO; import com.yida.data.school.letter.service.EduLetterBoxConfigService; import com.yida.data.school.letter.service.EduLetterBoxReplyPersonService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import java.util.List; -import javax.annotation.Resource; +import io.swagger.annotations.ApiParam; import org.springframework.cloud.context.config.annotation.RefreshScope; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; /** * @author ccl @@ -37,6 +33,7 @@ public class EduLetterBoxConfigController { @ApiOperation("滚动图列表") @GetMapping("/findBannerList") + @ControllerLog(operation = "撤回") public ResultBean> findBannerList() { return ResultBean.buildSuccess(configService.findBannerList(FebsUtil.getCurrentUser().getDeptId())); @@ -44,14 +41,16 @@ public class EduLetterBoxConfigController { @ApiOperation("滚动图列表") @GetMapping("/findConfig") + @ControllerLog(operation = "撤回") public ResultBean findConfig() { + return ResultBean.buildSuccess(configService.findConfig(FebsUtil.getCurrentUser().getDeptId())); } @ApiOperation("新增或修改配置") @PostMapping("/saveOrUpdateConfig") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "新增或修改配置", type = OperationLogTypeEnum.SAVE) + @ControllerLog(operation = "撤回") public ResultBean saveOrUpdateConfig(@RequestBody LetterBoxConfigDTO config) { replyPersonService.saveOrUpdateConfig(config,FebsUtil.getCurrentUser().getDeptId()); return ResultBean.buildSuccess(); diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/EduLetterBoxController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/EduLetterBoxController.java index 96104e1..7b3f07a 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/EduLetterBoxController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/EduLetterBoxController.java @@ -9,16 +9,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vdurmont.emoji.EmojiParser; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.letter.EduLetterBox; import com.yida.data.common.core.entity.letter.EduLetterBoxReply; import com.yida.data.common.core.entity.system.Dept; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.common.core.vo.NameValueVO; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.dto.letterbox.LetterBoxDTO; import com.yida.data.school.letter.mapper.EduLetterBoxMapper; import com.yida.data.school.letter.service.EduLetterBoxService; @@ -50,7 +47,6 @@ import org.springframework.web.client.RestTemplate; @RefreshScope @RequiredArgsConstructor public class EduLetterBoxController { - private final EduLetterBoxService eduLetterBoxService; private final EduLetterBoxMapper eduLetterBoxMapper; @@ -65,13 +61,14 @@ public class EduLetterBoxController { */ @ApiOperation("分页查询信箱列表") @GetMapping("/findLetterPageList") + @ControllerLog(operation = "分页查询信箱列表") public ResultBean> findLetterPageList(@ApiParam("问题名称") @RequestParam(required = false) String title, - @ApiParam("学校id") @RequestParam Long schoolId, - @ApiParam("信件类型") @RequestParam(required = false) String contentType, - @ApiParam("手机号") @RequestParam(required = false) String appPhone, - @ApiParam("是否已回复0=否,1是") @RequestParam Integer reply, - @ApiParam("页码") @RequestParam(defaultValue = "1") Integer pageNo, - @ApiParam("数量") @RequestParam(defaultValue = "10") Integer pageSize) { + @ApiParam("学校id") @RequestParam Long schoolId, + @ApiParam("信件类型") @RequestParam(required = false) String contentType, + @ApiParam("手机号") @RequestParam(required = false) String appPhone, + @ApiParam("是否已回复0=否,1是") @RequestParam Integer reply, + @ApiParam("页码") @RequestParam(defaultValue = "1") Integer pageNo, + @ApiParam("数量") @RequestParam(defaultValue = "10") Integer pageSize) { //查询分页数据 Page page = new Page(); page.setCurrent(pageNo); @@ -88,7 +85,7 @@ public class EduLetterBoxController { @ApiOperation("提交回复信息") @PostMapping("/submitReplyLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "提交回复信息", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "提交回复信息") public ResultBean submitReplyLetter(@RequestBody EduLetterBox eduLetterBox) { CurrentUser currentUser = FebsUtil.getCurrentUser(); if (ObjectUtil.isEmpty(currentUser)) { @@ -109,7 +106,7 @@ public class EduLetterBoxController { */ @ApiOperation("提交审核") @PostMapping("/submitExamineLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "提交审核", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "提交审核") public ResultBean submitExamineLetter(@RequestBody EduLetterBox eduLetterBox) { EduLetterBox eduLetterBox1 = eduLetterBoxMapper.selectById(eduLetterBox.getId()); if ("0".equals(eduLetterBox1.getStatus())) { @@ -128,7 +125,7 @@ public class EduLetterBoxController { */ @ApiOperation("撤回") @GetMapping("/retract") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "撤回", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "撤回") public ResultBean retract(@ApiParam("信箱id") @RequestParam Long id) { eduLetterBoxMapper.updateByReply(id); return ResultBean.buildSuccess(); @@ -137,7 +134,7 @@ public class EduLetterBoxController { @ApiOperation("批量公开") @PostMapping("/listOpenLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "批量公开", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "批量公开") public ResultBean listOpenLetter(@RequestBody List ids) { Collection eduLetterBoxes = eduLetterBoxService.listByIds(ids); for (EduLetterBox eduLetterBox : eduLetterBoxes) { @@ -149,7 +146,7 @@ public class EduLetterBoxController { @ApiOperation("批量回复") @PostMapping("/listReplyLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "批量回复", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "批量回复") public ResultBean listReplyLetter(@RequestBody LetterBoxDTO letterBoxDTO) { CurrentUser currentUser = FebsUtil.getCurrentUser(); Collection eduLetterBoxes = eduLetterBoxService.listByIds(letterBoxDTO.getIds()); @@ -159,11 +156,11 @@ public class EduLetterBoxController { @ApiOperation("进行置顶或公开操作") @GetMapping(value = "updateTopOrOpen") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "进行置顶或公开操作", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "进行置顶或公开操作") public ResultBean updateTopOrOpen(@ApiParam("信箱id") @RequestParam Long id, - @ApiParam("学校id") @RequestParam Long schoolId, - @ApiParam("1为置顶,null为取消置顶") @RequestParam(required = false) Integer top, - @ApiParam("1为公开,0为取消公开") @RequestParam(required = false) Integer open) { + @ApiParam("学校id") @RequestParam Long schoolId, + @ApiParam("1为置顶,null为取消置顶") @RequestParam(required = false) Integer top, + @ApiParam("1为公开,0为取消公开") @RequestParam(required = false) Integer open) { CurrentUser currentUser = FebsUtil.getCurrentUser(); if (ObjectUtil.isEmpty(currentUser)) { @@ -186,9 +183,9 @@ public class EduLetterBoxController { @ApiOperation("取消置顶") @GetMapping(value = "updateTop") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "取消置顶", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "取消置顶") public ResultBean updateTop(@ApiParam("信箱id") @RequestParam Long id, - @ApiParam("1为置顶,null为取消置顶") @RequestParam(required = false) Integer top) { + @ApiParam("1为置顶,null为取消置顶") @RequestParam(required = false) Integer top) { if (ObjectUtil.isEmpty(FebsUtil.getCurrentUser())) { return ResultBean.buildError("登录失效请重新登录"); @@ -199,7 +196,7 @@ public class EduLetterBoxController { @GetMapping("/viewLetter") public ResultBean viewLetter(Long id, String title, - Integer status, String contentType) { + Integer status, String contentType) { EduLetterBox eduLetterBox = eduLetterBoxMapper.selectById(id); if (StrUtil.isNotBlank(eduLetterBox.getContent())) { eduLetterBox.setContent(EmojiParser.parseToUnicode(eduLetterBox.getContent())); @@ -235,7 +232,7 @@ public class EduLetterBoxController { for (int i = 0; i < listViewLetter.size(); i++) { // 判断是否只有一条数据 if (Objects.equals(listViewLetter.get(0).getId(), id) && Objects - .equals(listViewLetter.get(listViewLetter.size() - 1).getId(), id)) { + .equals(listViewLetter.get(listViewLetter.size() - 1).getId(), id)) { previousShow = false; nextShow = false; break; @@ -276,16 +273,15 @@ public class EduLetterBoxController { @GetMapping("/getStaData") public ResultBean getStaData(String startDate, String endDate) { List schoolIds = remoteDeptService.getSchoolByArea(null, null).getData().stream().map(Dept::getDeptId).collect( - Collectors.toList()); - return ResultBean - .buildSuccess(eduLetterBoxService.getStaData(LocalDate.parse(startDate), LocalDate.parse(endDate), schoolIds)); + Collectors.toList()); + return ResultBean.buildSuccess(eduLetterBoxService.getStaData(LocalDate.parse(startDate), LocalDate.parse(endDate), schoolIds)); } @ApiOperation("校长信息标题词云") @GetMapping("/titleCloud") public ResultBean>> titleCloud(String startDate, String endDate) { List schoolIds = remoteDeptService.getSchoolByArea(null, null).getData().stream().map(Dept::getDeptId).collect( - Collectors.toList()); + Collectors.toList()); return ResultBean.buildSuccess(eduLetterBoxService.titleCloud(startDate, endDate, schoolIds)); } } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/H5EduLetterBoxController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/H5EduLetterBoxController.java index 6420084..457502d 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/H5EduLetterBoxController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/H5EduLetterBoxController.java @@ -7,16 +7,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vdurmont.emoji.EmojiManager; import com.vdurmont.emoji.EmojiParser; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.letter.EduLetterBox; import com.yida.data.common.core.entity.letter.EduLetterBoxConfig; import com.yida.data.common.core.entity.letter.EduLetterBoxReply; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.utils.Asserts; import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.letter.service.EduLetterBoxReplyService; import com.yida.data.school.letter.service.EduLetterBoxService; import io.swagger.annotations.Api; @@ -35,7 +32,6 @@ import java.util.Optional; @RestController @RequestMapping(value = "/letter/H5/letter") public class H5EduLetterBoxController { - @Autowired private EduLetterBoxService eduLetterBoxService; @@ -51,16 +47,28 @@ public class H5EduLetterBoxController { * @apiParam {Integer} coreOrderId 参加的点单id:必传,作为判断 * @apiParam {String} header 用户头像 * @apiParam {String} nikeName 用户昵称 - * @apiParamExample {json} 请求样例: { coreOrderId : 1 appId : demoData nikeName : demoData header : demoData } + * @apiParamExample {json} 请求样例: + * { + * coreOrderId : 1 + * appId : demoData + * nikeName : demoData + * header : demoData + * } * @apiSuccess (200) {String} msg 信息 * @apiSuccess (200) {int} code 200 代表无错误 其他 代表错误 * @apiSuccess (200) {int} count 总条数 * @apiSuccess (200) {object} data 数据详情 - * @apiSuccessExample {json} 返回样例: { "code": 200, "msg": "操作成功", "count": 0, "data": null } + * @apiSuccessExample {json} 返回样例: + * { + * "code": 200, + * "msg": "操作成功", + * "count": 0, + * "data": null + * } */ @ApiOperation("新增信箱提问") @PostMapping("/addLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "新增信箱提问", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "新增信箱提问") public ResultBean addLetter(@RequestBody EduLetterBox eduLetterBox) { CurrentUser currentUser = FebsUtil.getCurrentUser(); if (ObjectUtil.isEmpty(currentUser)) { @@ -76,7 +84,7 @@ public class H5EduLetterBoxController { if (EmojiManager.containsEmoji(eduLetterBox.getTitle())) { return ResultBean.buildError("标题不能含有表情符号"); } - eduLetterBoxService.addLetter(eduLetterBox, currentUser); + eduLetterBoxService.addLetter(eduLetterBox,currentUser); return ResultBean.buildSuccess(); } @@ -88,15 +96,16 @@ public class H5EduLetterBoxController { */ @ApiOperation("分页信箱列表") @GetMapping("/findLetterPageList") + @ControllerLog(operation = "分页查询信息列表") public ResultBean> findLetterPageList(@RequestParam(defaultValue = "1") Integer pageNo, - @RequestParam(defaultValue = "10") Integer pageSize, - @ApiParam("学校id") @RequestParam Long schoolId, - @ApiParam("标题") @RequestParam(required = false) String title, - @ApiParam("浏览次数传0按照创建时间排序,传1按照浏览数量排序") @RequestParam(required = false) Integer viewsNum, - @ApiParam("identityId") @RequestParam(required = false) Long identityId) { + @RequestParam(defaultValue = "10") Integer pageSize, + @ApiParam("学校id") @RequestParam Long schoolId, + @ApiParam("标题") @RequestParam(required = false) String title, + @ApiParam("浏览次数传0按照创建时间排序,传1按照浏览数量排序") @RequestParam(required = false) Integer viewsNum, + @ApiParam("identityId") @RequestParam(required = false) Long identityId) { Asserts.isNotNull(schoolId, "学校id为空"); IPage list = eduLetterBoxService.findViewList(new Page(pageNo, pageSize), title, schoolId, - identityId, viewsNum); + identityId, viewsNum); return ResultBean.buildSuccess(list); } @@ -108,8 +117,10 @@ public class H5EduLetterBoxController { */ @ApiOperation("查询信箱详情") @GetMapping("/getLetter") + @ControllerLog(operation = "当前提问详情") public ResultBean getLetter(@ApiParam("信箱表id") @RequestParam Integer id) { + if (ObjectUtil.isEmpty(id)) { return ResultBean.buildError("id为空"); } @@ -126,11 +137,11 @@ public class H5EduLetterBoxController { */ @ApiOperation("回复信箱") @PostMapping("/replyLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "回复信箱", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "回复信箱") public ResultBean replyLetter(@RequestBody EduLetterBox eduLetterBox) { if (ObjectUtil.isEmpty(eduLetterBox.getIdentityId()) || - ObjectUtil.isEmpty(eduLetterBox.getReplyContent()) || - ObjectUtil.isEmpty(eduLetterBox.getId())) { + ObjectUtil.isEmpty(eduLetterBox.getReplyContent()) || + ObjectUtil.isEmpty(eduLetterBox.getId())) { return ResultBean.buildError("需传入id,appId,replyContent"); } // 需要处理是处理初次提问的问题还是追问的问题 @@ -151,11 +162,11 @@ public class H5EduLetterBoxController { @ApiOperation("信箱点赞") @GetMapping("/upOrDownLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "信箱点赞", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "信箱点赞") public ResultBean upOrDownLetter(@ApiParam("信箱表id") @RequestParam Integer letterId, - @ApiParam("0为有用,1为没用") @RequestParam Integer status, - @ApiParam("0为点赞,1为取消") @RequestParam Integer type) { - eduLetterBoxService.upOrDownLetter(letterId, status, FebsUtil.getCurrentUser().getUserId(), type); + @ApiParam("0为有用,1为没用") @RequestParam Integer status, + @ApiParam("0为点赞,1为取消") @RequestParam Integer type) { + eduLetterBoxService.upOrDownLetter(letterId, status, FebsUtil.getCurrentUser().getUserId(),type); return ResultBean.buildSuccess(); } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/out/OutEduLetterBoxController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/out/OutEduLetterBoxController.java index 2ab9420..24bb0f5 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/out/OutEduLetterBoxController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/controller/out/OutEduLetterBoxController.java @@ -11,16 +11,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vdurmont.emoji.EmojiManager; import com.vdurmont.emoji.EmojiParser; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.letter.EduLetterBox; import com.yida.data.common.core.entity.letter.EduLetterBoxConfig; import com.yida.data.common.core.entity.letter.EduLetterBoxReply; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.common.core.vo.NameValueVO; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.dto.letterbox.LetterBoxConfigDTO; import com.yida.data.school.dto.letterbox.LetterBoxDTO; import com.yida.data.school.letter.mapper.EduLetterBoxMapper; @@ -103,16 +100,28 @@ public class OutEduLetterBoxController { * @apiParam {Integer} coreOrderId 参加的点单id:必传,作为判断 * @apiParam {String} header 用户头像 * @apiParam {String} nikeName 用户昵称 - * @apiParamExample {json} 请求样例: { coreOrderId : 1 appId : demoData nikeName : demoData header : demoData } + * @apiParamExample {json} 请求样例: + * { + * coreOrderId : 1 + * appId : demoData + * nikeName : demoData + * header : demoData + * } * @apiSuccess (200) {String} msg 信息 * @apiSuccess (200) {int} code 200 代表无错误 其他 代表错误 * @apiSuccess (200) {int} count 总条数 * @apiSuccess (200) {object} data 数据详情 - * @apiSuccessExample {json} 返回样例: { "code": 200, "msg": "操作成功", "count": 0, "data": null } + * @apiSuccessExample {json} 返回样例: + * { + * "code": 200, + * "msg": "操作成功", + * "count": 0, + * "data": null + * } */ @ApiOperation("新增信箱提问") @PostMapping("/addLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "新增信箱提问", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "新增信箱提问") public ResultBean addLetter(@RequestBody EduLetterBox eduLetterBox) { CurrentUser currentUser = new CurrentUser(); @@ -120,7 +129,7 @@ public class OutEduLetterBoxController { return ResultBean.buildError("标题不能含有表情符号"); } - eduLetterBoxService.addLetter(eduLetterBox, currentUser); + eduLetterBoxService.addLetter(eduLetterBox,currentUser); return ResultBean.buildSuccess(); } @@ -132,8 +141,10 @@ public class OutEduLetterBoxController { */ @ApiOperation("查询信箱详情") @GetMapping("/getLetter") + @ControllerLog(operation = "当前提问详情") public ResultBean getLetter(@ApiParam("信箱表id") @RequestParam Integer id) { + if (ObjectUtil.isEmpty(id)) { return ResultBean.buildError("id为空"); } @@ -150,11 +161,11 @@ public class OutEduLetterBoxController { */ @ApiOperation("回复信箱") @PostMapping("/replyLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "回复信箱", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "回复信箱") public ResultBean replyLetter(@RequestBody EduLetterBox eduLetterBox) { if (ObjectUtil.isEmpty(eduLetterBox.getIdentityId()) || - ObjectUtil.isEmpty(eduLetterBox.getReplyContent()) || - ObjectUtil.isEmpty(eduLetterBox.getId())) { + ObjectUtil.isEmpty(eduLetterBox.getReplyContent()) || + ObjectUtil.isEmpty(eduLetterBox.getId())) { return ResultBean.buildError("需传入id,appId,replyContent"); } // 需要处理是处理初次提问的问题还是追问的问题 @@ -175,11 +186,11 @@ public class OutEduLetterBoxController { @ApiOperation("信箱点赞") @GetMapping("/upOrDownLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "信箱点赞", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "信箱点赞") public ResultBean upOrDownLetter(@ApiParam("信箱表id") @RequestParam Integer letterId, - @ApiParam("0为有用,1为没用") @RequestParam Integer status, - @ApiParam("0为点赞,1为取消") @RequestParam Integer type) { - eduLetterBoxService.upOrDownLetter(letterId, status, FebsUtil.getCurrentUser().getUserId(), type); + @ApiParam("0为有用,1为没用") @RequestParam Integer status, + @ApiParam("0为点赞,1为取消") @RequestParam Integer type) { + eduLetterBoxService.upOrDownLetter(letterId, status, FebsUtil.getCurrentUser().getUserId(),type); return ResultBean.buildSuccess(); } @@ -190,13 +201,14 @@ public class OutEduLetterBoxController { */ @ApiOperation("分页查询信箱列表") @GetMapping("/findLetterPageList") + @ControllerLog(operation = "分页查询信箱列表") public ResultBean> findLetterPageList(@ApiParam("问题名称") @RequestParam(required = false) String title, - @ApiParam("学校id") @RequestParam Long schoolId, - @ApiParam("信件类型") @RequestParam(required = false) String contentType, - @ApiParam("手机号") @RequestParam(required = false) String appPhone, - @ApiParam("是否已回复0=否,1是") @RequestParam Integer reply, - @ApiParam("页码") @RequestParam(defaultValue = "1") Integer pageNo, - @ApiParam("数量") @RequestParam(defaultValue = "10") Integer pageSize) { + @ApiParam("学校id") @RequestParam Long schoolId, + @ApiParam("信件类型") @RequestParam(required = false) String contentType, + @ApiParam("手机号") @RequestParam(required = false) String appPhone, + @ApiParam("是否已回复0=否,1是") @RequestParam Integer reply, + @ApiParam("页码") @RequestParam(defaultValue = "1") Integer pageNo, + @ApiParam("数量") @RequestParam(defaultValue = "10") Integer pageSize) { //查询分页数据 Page page = new Page(); page.setCurrent(pageNo); @@ -213,7 +225,7 @@ public class OutEduLetterBoxController { @ApiOperation("提交回复信息") @PostMapping("/submitReplyLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "提交回复信息", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "提交回复信息") public ResultBean submitReplyLetter(@RequestBody EduLetterBox eduLetterBox) { if (ObjectUtil.isEmpty(eduLetterBox.getReplyContent())) { @@ -231,7 +243,7 @@ public class OutEduLetterBoxController { */ @ApiOperation("提交审核") @PostMapping("/submitExamineLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "提交审核", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "提交审核") public ResultBean submitExamineLetter(@RequestBody EduLetterBox eduLetterBox) { EduLetterBox eduLetterBox1 = eduLetterBoxMapper.selectById(eduLetterBox.getId()); if ("0".equals(eduLetterBox1.getStatus())) { @@ -250,7 +262,7 @@ public class OutEduLetterBoxController { */ @ApiOperation("撤回") @GetMapping("/retract") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "撤回", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "撤回") public ResultBean retract(@ApiParam("信箱id") @RequestParam Long id) { eduLetterBoxMapper.updateByReply(id); return ResultBean.buildSuccess(); @@ -259,7 +271,7 @@ public class OutEduLetterBoxController { @ApiOperation("批量公开") @PostMapping("/listOpenLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "批量公开", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "批量公开") public ResultBean listOpenLetter(@RequestBody List ids) { Collection eduLetterBoxes = eduLetterBoxService.listByIds(ids); for (EduLetterBox eduLetterBox : eduLetterBoxes) { @@ -271,7 +283,7 @@ public class OutEduLetterBoxController { @ApiOperation("批量回复") @PostMapping("/listReplyLetter") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "批量回复", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "批量回复") public ResultBean listReplyLetter(@RequestBody LetterBoxDTO letterBoxDTO) { CurrentUser currentUser = FebsUtil.getCurrentUser(); Collection eduLetterBoxes = eduLetterBoxService.listByIds(letterBoxDTO.getIds()); @@ -281,11 +293,11 @@ public class OutEduLetterBoxController { @ApiOperation("进行置顶或公开操作") @GetMapping(value = "updateTopOrOpen") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "进行置顶或公开操作", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "进行置顶或公开操作") public ResultBean updateTopOrOpen(@ApiParam("信箱id") @RequestParam Long id, - @ApiParam("学校id") @RequestParam Long schoolId, - @ApiParam("1为置顶,null为取消置顶") @RequestParam(required = false) Integer top, - @ApiParam("1为公开,0为取消公开") @RequestParam(required = false) Integer open) { + @ApiParam("学校id") @RequestParam Long schoolId, + @ApiParam("1为置顶,null为取消置顶") @RequestParam(required = false) Integer top, + @ApiParam("1为公开,0为取消公开") @RequestParam(required = false) Integer open) { if (ObjectUtil.isNotEmpty(top)) { Integer num = eduLetterBoxMapper.getTopNum(schoolId); @@ -303,9 +315,10 @@ public class OutEduLetterBoxController { @ApiOperation("取消置顶") @GetMapping(value = "updateTop") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "取消置顶", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "取消置顶") public ResultBean updateTop(@ApiParam("信箱id") @RequestParam Long id, - @ApiParam("1为置顶,null为取消置顶") @RequestParam(required = false) Integer top) { + @ApiParam("1为置顶,null为取消置顶") @RequestParam(required = false) Integer top) { + eduLetterBoxMapper.updateTop(id, top); return ResultBean.buildSuccess(); @@ -313,7 +326,7 @@ public class OutEduLetterBoxController { @GetMapping("/viewLetter") public ResultBean viewLetter(Long id, String title, - Integer status, String contentType) { + Integer status, String contentType) { EduLetterBox eduLetterBox = eduLetterBoxMapper.selectById(id); if (StrUtil.isNotBlank(eduLetterBox.getContent())) { eduLetterBox.setContent(EmojiParser.parseToUnicode(eduLetterBox.getContent())); @@ -349,7 +362,7 @@ public class OutEduLetterBoxController { for (int i = 0; i < listViewLetter.size(); i++) { // 判断是否只有一条数据 if (Objects.equals(listViewLetter.get(0).getId(), id) && Objects - .equals(listViewLetter.get(listViewLetter.size() - 1).getId(), id)) { + .equals(listViewLetter.get(listViewLetter.size() - 1).getId(), id)) { previousShow = false; nextShow = false; break; @@ -388,6 +401,7 @@ public class OutEduLetterBoxController { @ApiOperation("查询滚动图列表") @GetMapping("/findBannerList") + @ControllerLog(operation = "查询滚动图列表") public ResultBean> findBannerList(@RequestParam Long deptId) { return ResultBean.buildSuccess(configService.findBannerList(deptId)); @@ -395,6 +409,7 @@ public class OutEduLetterBoxController { @ApiOperation("查询学校对应配置") @GetMapping("/findConfig") + @ControllerLog(operation = "查询学校对应配置") public ResultBean findConfig(@RequestParam Long deptId) { return ResultBean.buildSuccess(configService.findConfig(deptId)); @@ -403,9 +418,9 @@ public class OutEduLetterBoxController { @ApiOperation("新增或修改配置") @PostMapping("/saveOrUpdateConfig") - @OperationLog(module = ModuleName.LETTER_BOX, methods = "新增或修改配置", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "新增或修改配置") public ResultBean saveOrUpdateConfig(@RequestBody LetterBoxConfigDTO config) { - replyPersonService.saveOrUpdateConfig(config, config.getDeptId()); + replyPersonService.saveOrUpdateConfig(config,config.getDeptId()); return ResultBean.buildSuccess(); } } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/service/impl/EduLetterBoxServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/service/impl/EduLetterBoxServiceImpl.java index 065f580..9cde1e7 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/service/impl/EduLetterBoxServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/letter/service/impl/EduLetterBoxServiceImpl.java @@ -163,7 +163,7 @@ public class EduLetterBoxServiceImpl extends ServiceImpl list = new ArrayList<>(); - List userList = redisService.lGet(AppConstant.INDEX_PARENT + letterId, 0L, -1L); + List userList = redisService.lGet(AppConstant.LETTER_BOX_LIKE + letterId.toString(), 0L, -1L); for (Object o : userList) { String id = String.valueOf(o); list.add(Long.valueOf(id)); } list.add(userId); - redisService.llSet(AppConstant.INDEX_PARENT + letterId, list); + redisService.llSet(AppConstant.LETTER_BOX_LIKE + letterId.toString(), list); } else { List userList = new ArrayList<>(); userList.add(userId); - redisService.llSet(AppConstant.INDEX_PARENT + letterId, userList); + redisService.llSet(AppConstant.LETTER_BOX_LIKE + letterId.toString(), userList); } } //没用 else if (status == 1) { - if (redisService.hasKey(AppConstant.INDEX_PARENT + "d" + letterId.toString())) { + if (redisService.hasKey(AppConstant.LETTER_BOX_DISLIKE + letterId.toString())) { List list = new ArrayList<>(); - List userList = redisService.lGet(AppConstant.INDEX_PARENT + "d" + letterId, 0L, -1L); + List userList = redisService.lGet(AppConstant.LETTER_BOX_DISLIKE + letterId.toString(), 0L, -1L); for (Object o : userList) { String id = String.valueOf(o); list.add(Long.valueOf(id)); } list.add(userId); - redisService.llSet(AppConstant.INDEX_PARENT + "d" + letterId, list); + redisService.llSet(AppConstant.LETTER_BOX_DISLIKE + letterId.toString(), list); } else { List userList = new ArrayList<>(); userList.add(userId); - redisService.llSet(AppConstant.INDEX_PARENT + "d" + letterId, userList); + redisService.llSet(AppConstant.LETTER_BOX_DISLIKE + letterId.toString(), userList); } } } //取消点赞 else { - if (redisService.hasKey(AppConstant.INDEX_PARENT + "d" + letterId)) { + if (redisService.hasKey(AppConstant.LETTER_BOX_DISLIKE + letterId.toString())) { List list = new ArrayList<>(); - List userList = redisService.lGet(AppConstant.INDEX_PARENT + "d" + letterId, 0L, -1L); + List userList = redisService.lGet(AppConstant.LETTER_BOX_DISLIKE + letterId.toString(), 0L, -1L); for (Object o : userList) { String id = String.valueOf(o); list.add(Long.valueOf(id)); @@ -280,12 +280,12 @@ public class EduLetterBoxServiceImpl extends ServiceImpl list = new ArrayList<>(); - List userList = redisService.lGet(AppConstant.INDEX_PARENT + letterId, 0L, -1L); + List userList = redisService.lGet(AppConstant.LETTER_BOX_LIKE + letterId.toString(), 0L, -1L); if (CollectionUtil.isNotEmpty(userList)) { for (Object o : userList) { String id = String.valueOf(o); @@ -293,7 +293,7 @@ public class EduLetterBoxServiceImpl extends ServiceImpl list = new ArrayList<>(); - List userList = redisService.lGet(AppConstant.INDEX_PARENT + "d" + eduLetterBox.getId(), 0L, -1L); + List userList = redisService.lGet(AppConstant.LETTER_BOX_DISLIKE + eduLetterBox.getId().toString(), 0L, -1L); for (Object o : userList) { String id = String.valueOf(o); list.add(Long.valueOf(id)); @@ -396,10 +396,10 @@ public class EduLetterBoxServiceImpl extends ServiceImpl list = new ArrayList<>(); - List userList = redisService.lGet(AppConstant.INDEX_PARENT + eduLetterBox.getId().toString(), 0L, -1L); + List userList = redisService.lGet(AppConstant.LETTER_BOX_LIKE + eduLetterBox.getId().toString(), 0L, -1L); for (Object o : userList) { String id = String.valueOf(o); list.add(Long.valueOf(id)); diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/controller/EduSchoolManuscriptController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/controller/EduSchoolManuscriptController.java index c4249e4..9e64636 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/controller/EduSchoolManuscriptController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/controller/EduSchoolManuscriptController.java @@ -22,6 +22,7 @@ import com.yida.data.system.feign.RemoteDeptService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import java.util.Map; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -72,6 +73,7 @@ public class EduSchoolManuscriptController { pageSize), schoolId, keyword, author, publishDate, path, notShowId, type, status, label)); } + @ApiOperation("保存、编辑稿件") @PostMapping("/saveManuscript") public ResultBean saveManuscript(@RequestBody EduSchoolManuscript manuscript) { @@ -151,4 +153,12 @@ public class EduSchoolManuscriptController { .in(EduSchoolManuscript::getSchoolId, schoolIds) .eq(EduSchoolManuscript::getType, type)) : 0); } + + @ApiOperation("查询稿件可以发布的位置") + @GetMapping("/getManuscriptPublishPath") + public ResultBean> getManuscriptPublishPath() { + return ResultBean.buildSuccess(null); + } + + } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/EduSchoolManuscriptService.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/EduSchoolManuscriptService.java index a38a321..5bce83a 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/EduSchoolManuscriptService.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/EduSchoolManuscriptService.java @@ -45,4 +45,5 @@ public interface EduSchoolManuscriptService extends IService findManuscriptByLabel(Page page, String label); + } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/impl/EduNoticeBuyServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/impl/EduNoticeBuyServiceImpl.java index 99b898b..8dff873 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/impl/EduNoticeBuyServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/impl/EduNoticeBuyServiceImpl.java @@ -143,7 +143,7 @@ public class EduNoticeBuyServiceImpl extends ServiceImpl implements EduSchoolManuscriptService { + implements EduSchoolManuscriptService { private final static String JOB_BEAN_NAME = "schoolManuscriptTask"; private final static String JOB_METHOD_NAME = "publishManuscript"; private static final Pattern BASE64_IMG_HEAD_PATTERN = Pattern - .compile("\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;" + - "base64)?,([A-Za-z0-9+/]{4}){2,}(?:[A-Za-z0-9+=]{4})"); + .compile("\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;" + + "base64)?,([A-Za-z0-9+/]{4}){2,}(?:[A-Za-z0-9+=]{4})"); private static final Pattern BASE64_IMG_PATTERN = Pattern.compile("([A-Za-z0-9+/]{4}){2,}(?:[A-Za-z0-9+=]{4})"); private static final Pattern URL_IMG_PATTERN = Pattern.compile("http:\\/\\/((?!http:\\/\\/).)+?(\\.jpg|\\.png)"); - // private static final Pattern URL_IMG_PATTERN_MINE = Pattern -// .compile("http:\\/\\/((?!https:\\/\\/).)+?(\\/jpg|\\/png|\\/GIF|\\/gif|\\/PNG|\\/JPG)"); - private static final String URL_IMG_PATTERN_MINE = "((http|https|ftp):\\/\\/)?([\\w\\-]+\\.)+[\\w\\-]+(:[0-9]+)?(/[\\w \\-.~!*:@&=+$,/?#%]*)"; - // private static final String LOCAL_IMG_URL_HRAD = "http://zbz.yd-data.com"; + private static final String URL_IMG_PATTERN_MINE = "((http|https|ftp):\\/\\/)?([\\w\\-]+\\.)+[\\w\\-]+(:[0-9]+)?(/[\\w \\-.~!*:@&=+$,/?#%;]*)"; private static final ExecutorService PUBLISH_THREAD_POOL = - new ThreadPoolExecutor(5, 10, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<>()); + new ThreadPoolExecutor(5, 10, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<>()); private final RemoteJobService remoteJobService; private final EduSchoolHomeAnnouncementMapper eduSchoolHomeAnnouncementMapper; private final EduSchoolManuscriptAuthorMapper eduSchoolManuscriptAuthorMapper; @@ -96,12 +94,14 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl @Value("${febs.uploadUrl}") private String uploadUrl; + private final TransactionTemplate transactionTemplate; + @Override public IPage listManuscriptPage(Page page, Long schoolId, String keyword, - String author, String publishDate, Integer path, - Long notShowId, Integer type, Integer status, Integer label) { + String author, String publishDate, Integer path, + Long notShowId, Integer type, Integer status, Integer label) { IPage ipage = baseMapper.listManuscriptPage(page, schoolId, keyword, author, - publishDate, path, notShowId, type, status, label); + publishDate, path, notShowId, type, status, label); for (ManuscriptPageInfoVO record : ipage.getRecords()) { String htmlStr = HtmlUtil.cleanHtmlTag(record.getContent()); if (StrUtil.isBlank(htmlStr) || htmlStr.length() < 50) { @@ -128,156 +128,179 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl } @Override - @Transactional(rollbackFor = Exception.class) public void saveManuscript(EduSchoolManuscript manuscript, String key) { - redisService - .hset(CachePrefixConstant.ADD_MANUSCRIPT_PROGRESS, key, AddManuscriptProgress.builder().key(key).finish(0).build()); - + // 添加处理进度 AddManuscriptProgress addManuscriptProgress = new AddManuscriptProgress(); addManuscriptProgress.setKey(key); - - Dept school = commonService.getDept(manuscript.getSchoolId()); - if (StrUtil.isBlank(school.getWxPublicAppId()) && manuscript.getPublishPath() - .contains(EduSchoolManuscript.WX_PUBLIC_PATH)) { - addManuscriptProgress.setFinish(1); - addManuscriptProgress.setErrorMsg("该学校未绑定微信公众号"); + try { + // 添加初始缓存 redisService - .hset(CachePrefixConstant.ADD_MANUSCRIPT_PROGRESS, key, addManuscriptProgress); + .hset(CachePrefixConstant.ADD_MANUSCRIPT_PROGRESS, key, AddManuscriptProgress.builder().key(key).finish(0).build()); - throw new FebsException("该学校未绑定微信公众号"); -// Asserts.isFalse(StrUtil.isBlank(school.getWxPublicAppId()) && manuscript.getPublishPath() -// .contains(EduSchoolManuscript.WX_PUBLIC_PATH), "该学校未绑定微信公众号"); - } - - if (school.getSchoolType().contains(Dept.TYPE_YIDA_APP)) { - EduSchoolManuscriptAuthor author = eduSchoolManuscriptAuthorMapper.selectById(manuscript.getAuthorId()); - if (StrUtil.isBlank(author.getYidaAppUserId())) { - addManuscriptProgress.setFinish(1); - addManuscriptProgress.setErrorMsg("该作者未在易达APP中创建,请选择其他作者"); - redisService - .hset(CachePrefixConstant.ADD_MANUSCRIPT_PROGRESS, key, addManuscriptProgress); - throw new FebsException("该作者未在易达APP中创建,请选择其他作者"); + Dept school = commonService.getDept(manuscript.getSchoolId()); + if (StrUtil.isBlank(school.getWxPublicAppId()) && manuscript.getPublishPath() + .contains(EduSchoolManuscript.WX_PUBLIC_PATH)) { + addManuscriptProgress.setErrorMsg("该学校未绑定微信公众号"); + throw new FebsException("该学校未绑定微信公众号"); } -// Asserts.isTrue(StrUtil.isNotBlank(author.getYidaAppUserId()), "该作者未在易达APP中创建,请选择其他作者"); - } - // 正则匹配base64为url - Matcher matcher1 = BASE64_IMG_HEAD_PATTERN.matcher(manuscript.getContent()); - Matcher matcher2 = BASE64_IMG_PATTERN.matcher(manuscript.getContent()); - List saveMatter = new ArrayList<>(); - if (matcher1.find()) { - matcher2.find(); - for (int i = 0; i < matcher1.groupCount(); i++) { - String base64 = matcher1.group(i); - if (base64 == null || base64.length() < 22 || matcher2.group(i) == null || StrUtil - .isBlankIfStr(matcher2.group(i))) { - continue; + + if (school.getSchoolType().contains(Dept.TYPE_YIDA_APP)) { + EduSchoolManuscriptAuthor author = eduSchoolManuscriptAuthorMapper.selectById(manuscript.getAuthorId()); + if (StrUtil.isBlank(author.getYidaAppUserId())) { + addManuscriptProgress.setErrorMsg("该作者未在易达APP中创建,请选择其他作者"); + throw new FebsException("该作者未在易达APP中创建,请选择其他作者"); } - String base64Code = matcher2.group(i); - String url = remoteCommonService.uploadImg(base64Code).getData(); - manuscript.setContent(manuscript.getContent().replace(base64, url)); } - } - //正则匹配非本地媒资系统URL - List urlList = ReUtil.findAll(URL_IMG_PATTERN_MINE, manuscript.getContent(), 0, new ArrayList<>()); - log.info("匹配出的图片:【{}】", urlList); - for (String url : urlList) { - if (url == null || url.length() < 12 || url.contains(uploadUrl)) { - continue; + // 正则匹配base64为url + Matcher matcher1 = BASE64_IMG_HEAD_PATTERN.matcher(manuscript.getContent()); + Matcher matcher2 = BASE64_IMG_PATTERN.matcher(manuscript.getContent()); + List saveMatter = new ArrayList<>(); + if (matcher1.find()) { + matcher2.find(); + for (int i = 0; i < matcher1.groupCount(); i++) { + try { + String base64 = matcher1.group(i); + if (base64 == null || base64.length() < 22 || matcher2.group(i) == null || StrUtil + .isBlankIfStr(matcher2.group(i))) { + continue; + } + String base64Code = matcher2.group(i); + String url = remoteCommonService.uploadImg(base64Code).getData(); + manuscript.setContent(manuscript.getContent().replace(base64, url)); + } catch (Exception e) { + log.error("处理base图片失败", e); + } + } } - String path = com.yida.data.common.core.utils.FileUtil.downloadToLocal(url); - - log.info("缓存本地图片地址:【{}】", path); - //上传本地媒资系统 - String newUrl = com.yida.data.common.core.utils.FileUtil.uploadFileToMediaServer(uploadUrl, path); - FileUtil.del(path); - manuscript.setContent(manuscript.getContent().replace(url, newUrl)); - } - // 上传图片到素材库 - if (CollUtil.isNotEmpty(saveMatter)) { - List list = eduSchoolMatterService.list(Wrappers.lambdaQuery(new EduSchoolMatter()) - .eq(EduSchoolMatter::getSchoolId, manuscript.getSchoolId()) - .in(EduSchoolMatter::getUrl, saveMatter) - .select(EduSchoolMatter::getUrl)); - if (CollUtil.isNotEmpty(list)) { - // 已存在的素材库 - List collect = list.stream().map(x -> x.getUrl()).collect(Collectors.toList()); - saveMatter = saveMatter.stream().filter(x -> !collect.contains(x)).collect(Collectors.toList()); + //正则匹配非本地媒资系统URL + List urlList = ReUtil.findAll(URL_IMG_PATTERN_MINE, manuscript.getContent(), 0, new ArrayList<>()); + log.info("匹配出的图片:【{}】", urlList); + for (String url : urlList) { + try { + if (url == null || url.length() < 12 || url.contains(uploadUrl)) { + continue; + } + String path = com.yida.data.common.core.utils.FileUtil.downloadToLocal(url); + log.info("缓存本地图片地址:【{}】", path); + // 上传本地媒资系统 +// String base64 = com.yida.data.common.core.utils.FileUtil.convertFileToBase64(new File(path)); +// String newUrl = remoteCommonService.uploadImg(base64).getData(); + String newUrl = com.yida.data.common.core.utils.FileUtil.uploadFileToMediaServer(uploadUrl, path); + FileUtil.del(path); + manuscript.setContent(manuscript.getContent().replace(url, newUrl)); + } catch (Exception e) { + log.error("处理图片失败, url: {}", url, e); + } } + // 上传图片到素材库 if (CollUtil.isNotEmpty(saveMatter)) { - eduSchoolMatterService.saveMatterBatch(saveMatter, manuscript.getSchoolId(), 0); + List list = eduSchoolMatterService.list(Wrappers.lambdaQuery(new EduSchoolMatter()) + .eq(EduSchoolMatter::getSchoolId, manuscript.getSchoolId()) + .in(EduSchoolMatter::getUrl, saveMatter) + .select(EduSchoolMatter::getUrl)); + if (CollUtil.isNotEmpty(list)) { + // 已存在的素材库 + List collect = list.stream().map(EduSchoolMatter::getUrl).collect(Collectors.toList()); + saveMatter = saveMatter.stream().filter(x -> !collect.contains(x)).collect(Collectors.toList()); + } + if (CollUtil.isNotEmpty(saveMatter)) { + eduSchoolMatterService.saveMatterBatch(saveMatter, manuscript.getSchoolId(), 0); + } } + // 使用编程式事务 + transactionTemplate.executeWithoutResult(transactionStatus -> { + try { + saveOrUpdate(manuscript); + if (CollUtil.isNotEmpty(manuscript.getTags())) { + List labels = manuscript.getTags(); + List list = new ArrayList<>(); + for (Long label : labels) { + EduSchoolManuscriptLabel eduSchoolManuscriptLabel = new EduSchoolManuscriptLabel(); + eduSchoolManuscriptLabel.setLabel(label); + eduSchoolManuscriptLabel.setManuscriptId(manuscript.getId()); + list.add(eduSchoolManuscriptLabel); + } + labelService.saveBatch(list); + } + if (Objects.isNull(manuscript.getContentType())) { + // 如果没有则默认为文章类型 + manuscript.setContentType(1); + } + if (manuscript.getStatus() != 0 && manuscript.getContentType() != 2) { + if (manuscript.getIsTiming() == 0) { + // 定时发送 + StringBuilder cron = new StringBuilder(); + // cron表达式 + cron.append("0") + .append(" ") + .append(manuscript.getPublishDate().getMinute()) + .append(" ") + .append(manuscript.getPublishDate().getHour()) + .append(" ") + .append(manuscript.getPublishDate().getDayOfMonth()) + .append(" ") + .append(manuscript.getPublishDate().getMonthValue()) + .append(" ") + .append("?") + .append(" ") + .append(manuscript.getPublishDate().getYear()); + Job job = new Job(); + job.setBeanName(JOB_BEAN_NAME); + job.setMethodName(JOB_METHOD_NAME); + job.setParams(manuscript.getId().toString()); + job.setCronExpression(cron.toString()); + job.setRemark(String.format("学校稿件定时发送,name:[%s],id:[%d]", manuscript.getTitle(), + manuscript.getId())); + job.setStatus(Job.ScheduleStatus.NORMAL.getValue()); + remoteJobService.saveJob(job); + } else { + // 立即发送 + manuscript.setPublishDate(LocalDateTime.now()); + updateById(manuscript); + publishManuscript(manuscript); + } + } + } catch (Exception e) { + // 手动回滚事务 + transactionStatus.setRollbackOnly(); + } + }); + } catch (Exception e) { + throw new FebsException(e instanceof FebsException ? e.getMessage() : "保存失败"); + } finally { + // 添加完成信息 + addManuscriptProgress.setFinish(1); + redisService + .hset(CachePrefixConstant.ADD_MANUSCRIPT_PROGRESS, key, addManuscriptProgress); } - saveOrUpdate(manuscript); - if (CollUtil.isNotEmpty(manuscript.getTags())) { - List labels = manuscript.getTags(); - List list = new ArrayList<>(); - for (Long label : labels) { - EduSchoolManuscriptLabel eduSchoolManuscriptLabel = new EduSchoolManuscriptLabel(); - eduSchoolManuscriptLabel.setLabel(label); - eduSchoolManuscriptLabel.setManuscriptId(manuscript.getId()); - list.add(eduSchoolManuscriptLabel); - } - labelService.saveBatch(list); - } - if (Objects.isNull(manuscript.getContentType())) { - // 如果没有则默认为文章类型 - manuscript.setContentType(1); - } - if (manuscript.getStatus() != 0 && manuscript.getContentType() != 2) { - if (manuscript.getIsTiming() == 0) { - // 定时发送 - StringBuilder cron = new StringBuilder(); - // cron表达式 - cron.append("0") - .append(" ") - .append(manuscript.getPublishDate().getMinute()) - .append(" ") - .append(manuscript.getPublishDate().getHour()) - .append(" ") - .append(manuscript.getPublishDate().getDayOfMonth()) - .append(" ") - .append(manuscript.getPublishDate().getMonthValue()) - .append(" ") - .append("?") - .append(" ") - .append(manuscript.getPublishDate().getYear()); - Job job = new Job(); - job.setBeanName(JOB_BEAN_NAME); - job.setMethodName(JOB_METHOD_NAME); - job.setParams(manuscript.getId().toString()); - job.setCronExpression(cron.toString()); - job.setRemark(String.format("学校稿件定时发送,name:[%s],id:[%d]", manuscript.getTitle(), - manuscript.getId())); - job.setStatus(Job.ScheduleStatus.NORMAL.getValue()); - remoteJobService.saveJob(job); - } else { - // 立即发送 - manuscript.setPublishDate(LocalDateTime.now()); - updateById(manuscript); - publishManuscript(manuscript); - } - } - addManuscriptProgress.setFinish(1); - redisService - .hset(CachePrefixConstant.ADD_MANUSCRIPT_PROGRESS, key, addManuscriptProgress); } @Override @Transactional public void delManuscript(List ids) { Collection manuscriptList = listByIds(ids); + String yidaAppUserId = null; for (EduSchoolManuscript manuscript : manuscriptList) { + if (ObjectUtil.isNull(yidaAppUserId)) { + if (ObjectUtil.isNotNull(manuscript.getAuthorId())) { + EduSchoolManuscriptAuthor author = eduSchoolManuscriptAuthorMapper + .selectById(manuscript.getAuthorId()); + if (ObjectUtil.isNotNull(author)) { + yidaAppUserId = author.getYidaAppUserId(); + } + } + } + if (manuscript.getStatus() == 1 && manuscript.getIsTiming() == 0) { remoteJobService.delJobByMethod(JOB_BEAN_NAME, JOB_METHOD_NAME, manuscript.getId().toString()); } } - removeByIds(ids); List manuscriptYidaIds = manuscriptList.stream().map(EduSchoolManuscript::getYidaAppMunascriptId) - .filter(StrUtil::isNotBlank).collect(Collectors.toList()); + .filter(StrUtil::isNotBlank).collect(Collectors.toList()); if (CollUtil.isNotEmpty(manuscriptYidaIds)) { EduYidaApp yidaApp = commonService.getYidaApp(manuscriptList.toArray(new EduSchoolManuscript[0])[0].getSchoolId()); - AppUtil.manuscriptDel(manuscriptYidaIds, yidaApp); + AppUtil.manuscriptDel(manuscriptYidaIds, yidaApp, yidaAppUserId); } } @@ -286,9 +309,18 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl EduSchoolManuscript manuscript = getById(id); // 判断是否调用易达app撤回稿件接口 if (Objects.nonNull(manuscript.getYidaAppMunascriptId())) { + String yidaAppUserId = null; EduYidaApp yidaApp = commonService.getYidaApp(manuscript.getSchoolId()); - AppUtil.manuscriptDel(Collections.singletonList(manuscript.getYidaAppMunascriptId()), yidaApp); - manuscript.setYidaAppMunascriptId(""); + + if (ObjectUtil.isNotNull(manuscript.getAuthorId())) { + EduSchoolManuscriptAuthor author = eduSchoolManuscriptAuthorMapper + .selectById(manuscript.getAuthorId()); + if (ObjectUtil.isNotNull(author)) { + yidaAppUserId = author.getYidaAppUserId(); + } + } + AppUtil.manuscriptDel(Collections.singletonList(manuscript.getYidaAppMunascriptId()), yidaApp, yidaAppUserId); +// manuscript.setYidaAppMunascriptId(""); } // 修改为撤回(待发送)状态 manuscript.setStatus(1); @@ -322,11 +354,11 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl EduSchoolManuscriptAuthor author; if (manuscript.getAuthorId() == null) { author = eduSchoolManuscriptAuthorMapper - .selectOne(Wrappers.lambdaQuery() - .eq(EduSchoolManuscriptAuthor::getSchoolId, school.getDeptId()) - .isNotNull(EduSchoolManuscriptAuthor::getYidaAppUserId) - .orderByAsc(EduSchoolManuscriptAuthor::getCreateDate) - .last("limit 1")); + .selectOne(Wrappers.lambdaQuery() + .eq(EduSchoolManuscriptAuthor::getSchoolId, school.getDeptId()) + .isNotNull(EduSchoolManuscriptAuthor::getYidaAppUserId) + .orderByAsc(EduSchoolManuscriptAuthor::getCreateDate) + .last("limit 1")); } else { author = eduSchoolManuscriptAuthorMapper.selectById(manuscript.getAuthorId()); } @@ -337,11 +369,11 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl // 公告同步的稿件放入公告区 if (manuscript.getNoticeSchoolId() != null) { EduSchoolHomeAnnouncement announcement = eduSchoolHomeAnnouncementMapper - .selectOne(Wrappers.lambdaQuery(new EduSchoolHomeAnnouncement()) - .eq(EduSchoolHomeAnnouncement::getSchoolId, school.getDeptId())); + .selectOne(Wrappers.lambdaQuery(new EduSchoolHomeAnnouncement()) + .eq(EduSchoolHomeAnnouncement::getSchoolId, school.getDeptId())); if (StrUtil.isNotBlank(announcement.getYidaAppRegionId())) { AppUtil.regionSaveContent(announcement.getYidaAppRegionId(), manuscriptId, null, - school.getYidaAppColId(), yidaApp); + school.getYidaAppColId(), yidaApp); } } } @@ -349,7 +381,7 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl @Override public IPage findManuscriptByLabel(Page page, String label) { List labelList = labelService.list(Wrappers.query(new EduSchoolManuscriptLabel()) - .lambda().eq(EduSchoolManuscriptLabel::getLabel, label)); + .lambda().eq(EduSchoolManuscriptLabel::getLabel, label)); List manuscriptId = new ArrayList<>(); for (EduSchoolManuscriptLabel item : labelList) { manuscriptId.add(item.getManuscriptId()); @@ -359,7 +391,7 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl } return page(page, Wrappers.query(new EduSchoolManuscript()).lambda().eq(EduSchoolManuscript::getType, 2) - .in(EduSchoolManuscript::getId, manuscriptId)); + .in(EduSchoolManuscript::getId, manuscriptId)); } /** @@ -383,7 +415,7 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl wxPublishPublic(manuscript, school); } // 发布公告到易达app - if (school.getSchoolType().contains(Dept.TYPE_YIDA_APP)) { + if (school.getSchoolType().contains(Dept.TYPE_YIDA_APP) && publishPath.contains(EduSchoolManuscript.NEWS_PATH)) { saveManuscriptToYidaApp(manuscript, school, yidaApp); } // 稿件不是从学校通知同步且学校绑定企业微信才发送微信通知 @@ -401,7 +433,7 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl } private void wxPublishNotice(EduSchoolManuscript manuscript) { - EduApp eduApp = commonService.getAppByCodeAndSchool(AppConstant.INDEX_PARENT, null, manuscript.getSchoolId()); + EduApp eduApp = commonService.getAppByCodeAndSchool(AppConstant.NOTICE_PARENT, null, manuscript.getSchoolId()); String accessToken = wxUtil.getAccessToken(eduApp.getWxCorpId(), eduApp.getWxSecret()); String contentText = HtmlUtil.cleanHtmlTag(manuscript.getContent()); MpNewsSchoolNotice notice = new MpNewsSchoolNotice(); @@ -411,8 +443,8 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl if (manuscript.getCoverType() != 0) { try { String path = - com.yida.data.common.core.utils.FileUtil - .downloadCompressBase64Img(manuscript.getCoverUrl().split(",")[0], 2048L); + com.yida.data.common.core.utils.FileUtil + .downloadCompressBase64Img(manuscript.getCoverUrl().split(",")[0], 2048L); File file = new File(path); article.setThumb_media_id(wxUtil.uploadTempFile(accessToken, "image", file)); FileUtil.del(path); @@ -444,7 +476,7 @@ public class EduSchoolManuscriptServiceImpl extends ServiceImpl if (manuscript.getCoverType() != 0) { try { String path = com.yida.data.common.core.utils.FileUtil - .downloadCompressBase64Img(manuscript.getCoverUrl().split(",")[0], 64L); + .downloadCompressBase64Img(manuscript.getCoverUrl().split(",")[0], 64L); File file = new File(path); article.setThumb_media_id(wxPublicUtil.uploadTempMaterial("thumb", file, token)); FileUtil.del(path); diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/impl/EduSchoolMatterServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/impl/EduSchoolMatterServiceImpl.java index 0dbcfe6..5038f1a 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/impl/EduSchoolMatterServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/news/service/impl/EduSchoolMatterServiceImpl.java @@ -125,21 +125,10 @@ public class EduSchoolMatterServiceImpl extends ServiceImpl eduSchoolMatterMatterGroupService.remove(Wrappers.lambdaQuery(new EduSchoolMatterMatterGroup()) .in(EduSchoolMatterMatterGroup::getMatterId, ids)); if (StrUtil.isNotBlank(school.getWxPublicAppId())) { - String token; - try { - token = wxPublicUtil.getAccessToken(school.getWxPublicAppId(), school.getWxPublicSecret()); - } catch (Exception e) { - log.error("获取token失败", e); - return; - } + String token = wxPublicUtil.getAccessToken(school.getWxPublicAppId(), school.getWxPublicSecret()); for (EduSchoolMatter matter : eduSchoolMatters) { if (StrUtil.isNotBlank(matter.getWxPublicMediaId())) { - try { - wxPublicUtil.deleteMaterial(matter.getWxPublicMediaId(), token); - } catch (Exception e) { - log.error("删除微信公众号素材失败", e); - } - + wxPublicUtil.deleteMaterial(matter.getWxPublicMediaId(), token); } } } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/secondClass/service/impl/EduSecondClassContentServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/secondClass/service/impl/EduSecondClassContentServiceImpl.java index 52b29f6..9afbe27 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/secondClass/service/impl/EduSecondClassContentServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/secondClass/service/impl/EduSecondClassContentServiceImpl.java @@ -72,10 +72,12 @@ public class EduSecondClassContentServiceImpl implements EduSecondClassContentSe existIds.add(subject.getId()); } } - eduSecondClassSubjectService - .remove(Wrappers.lambdaQuery().eq(EduSecondClassSubject::getDeptId, deptId) - .eq(EduSecondClassSubject::getTopicType, dto.getType()) - .notIn(EduSecondClassSubject::getId, existIds)); + if (CollUtil.isNotEmpty(existIds)) { + eduSecondClassSubjectService + .remove(Wrappers.lambdaQuery().eq(EduSecondClassSubject::getDeptId, deptId) + .eq(EduSecondClassSubject::getTopicType, dto.getType()) + .notIn(EduSecondClassSubject::getId, existIds)); + } eduSecondClassSubjectService.saveOrUpdateBatch(dto.getSubjectList()); } else { eduSecondClassSubjectService diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/secondClass/service/impl/EduSecondClassVenueOrderServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/secondClass/service/impl/EduSecondClassVenueOrderServiceImpl.java index 88d0630..384abbd 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/secondClass/service/impl/EduSecondClassVenueOrderServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/secondClass/service/impl/EduSecondClassVenueOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.yida.data.school.secondClass.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yida.data.common.core.entity.school.secondClass.EduSecondClassVenueGuide; import com.yida.data.common.core.entity.school.secondClass.EduSecondClassVenueOrder; @@ -33,8 +34,10 @@ public class EduSecondClassVenueOrderServiceImpl extends ServiceImpl @Override public void saveOrder(EduSecondClassVenueOrder order) { - EduSecondClassVenueGuide guide = eduSecondClassVenueGuideMapper.selectById(order.getGuideId()); - order.setDeptId(guide.getDeptId()); + if (ObjectUtil.isNotNull(order.getGuideId())) { + EduSecondClassVenueGuide guide = eduSecondClassVenueGuideMapper.selectById(order.getGuideId()); + order.setDeptId(guide.getDeptId()); + } save(order); for (EduSecondClassVenueOrderMember member : order.getMemberList()) { member.setOrderId(order.getId()); diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduApplyController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduApplyController.java index a83917d..4397422 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduApplyController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduApplyController.java @@ -4,26 +4,20 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.yida.data.common.core.common.ModuleName; +import com.yida.data.common.core.annotation.ControllerLog; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.apply.EduApply; import com.yida.data.common.core.entity.apply.EduProductApply; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.transaction.mapper.EduProductApplyMapper; import com.yida.data.school.transaction.service.EduAppService; import com.yida.data.school.vo.transcation.EduApplyVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; -import java.util.List; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** @@ -40,6 +34,7 @@ public class EduApplyController { @ApiOperation("应用分页查询") @GetMapping("/listApply") + @ControllerLog(operation = "分页查询应用") public ResultBean> listApply(@ApiParam("app名字") @RequestParam String applyName, @ApiParam("当前页码") @RequestParam(defaultValue = "1") Integer pageNum, @ApiParam("页面大小") @RequestParam(defaultValue = "10") Integer pageSize) { @@ -52,7 +47,7 @@ public class EduApplyController { @ApiOperation("新增应用") @PostMapping("/insertApply") - @OperationLog(module = ModuleName.SCHOOL, methods = "新增应用", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "新增应用") public ResultBean insertApply(@ApiParam("应用名字") @RequestBody EduApplyVO applyFunction) { eduAppService.insertEduApplyService(applyFunction); return ResultBean.buildSuccess(); @@ -61,7 +56,7 @@ public class EduApplyController { @ApiOperation("修改应用") @PostMapping("/updateApply") - @OperationLog(module = ModuleName.SCHOOL, methods = "修改应用", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改应用") public ResultBean upDataApply(@ApiParam("应用名字") @RequestBody EduApplyVO eduApply) { eduAppService.upDataApplyService(eduApply); return ResultBean.buildSuccess(); @@ -70,7 +65,7 @@ public class EduApplyController { @ApiOperation("删除应用") @GetMapping("/removeEduApply") - @OperationLog(module = ModuleName.SCHOOL, methods = "删除应用", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除应用") public ResultBean removeEduApply(@ApiParam("应用id") @RequestParam Long applyId) { List eduProductApplies = eduProductApplyMapper.selectList(Wrappers.lambdaQuery(new EduProductApply()) diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduApplyFunctionController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduApplyFunctionController.java index 217c5d2..800ac31 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduApplyFunctionController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduApplyFunctionController.java @@ -2,11 +2,8 @@ package com.yida.data.school.transaction.controller; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.apply.EduApplyFunction; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.transaction.service.EduApplyFunctionService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -28,7 +25,7 @@ public class EduApplyFunctionController { @ApiOperation("新增应用功能") @PostMapping("/insertApplyFunction") - @OperationLog(module = ModuleName.TRANSATION, methods = "新增应用功能", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "新增应用功能") public ResultBean insertApply(@ApiParam("应用名字") @RequestParam EduApplyFunction eduApplyFunction) { eduApplyFunctionService.insertEduApplyFunctionService(eduApplyFunction); return ResultBean.buildSuccess(); @@ -37,7 +34,7 @@ public class EduApplyFunctionController { @ApiOperation("修改应用功能") @PostMapping("/updateApplyFunction") - @OperationLog(module = ModuleName.TRANSATION, methods = "修改应用功能", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改应用功能") public ResultBean upDataApplyFunction(@ApiParam("应用名字") @RequestParam EduApplyFunction eduApplyFunction) { eduApplyFunctionService.upDataEduApplyFunctionService(eduApplyFunction); @@ -47,7 +44,7 @@ public class EduApplyFunctionController { @ApiOperation("删除应用功能") @GetMapping("/removeEduApplyFunction") - @OperationLog(module = ModuleName.TRANSATION, methods = "删除应用功能", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除应用功能") public ResultBean removeEduApply(@ApiParam("功能id") @RequestParam Long functionId) { eduApplyFunctionService.removeById(functionId); return ResultBean.buildSuccess(); diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductController.java index 6d6dbed..8b97346 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductController.java @@ -4,16 +4,13 @@ import cc.mrbird.febs.common.redis.service.RedisService; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.apply.EduProduct; import com.yida.data.common.core.entity.apply.EduProductApply; import com.yida.data.common.core.entity.constant.FebsConstant; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.utils.Asserts; import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.dto.transaction.ListBuyStudentDTO; import com.yida.data.school.dto.transaction.ProductSelectDTO; import com.yida.data.school.transaction.service.EduProductApplyService; @@ -46,6 +43,7 @@ public class EduProductController { // @Secured({"ROLE_role:agent:normal", "ROLE_role:agent:admin"}) @ApiOperation("商品分页查询") @PostMapping("/listProduct") + @ControllerLog(operation = "商品分页查询") public ResultBean listProduct(@RequestBody ProductSelectDTO dto) { Page page = new Page(); page.setCurrent(dto.getCurrent()); @@ -55,13 +53,14 @@ public class EduProductController { @ApiOperation("查询商品详情") @GetMapping("/selectProduct") + @ControllerLog(operation = "商品详情查询") public ResultBean selectProduct(@ApiParam("商品id") @RequestParam Long productId) { return ResultBean.buildSuccess(eduProductService.getInfo(productId)); } @ApiOperation("修改商品") @PostMapping("/upDateProduct") - @OperationLog(module = ModuleName.PRODUCT, methods = "修改商品", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "修改商品") public ResultBean upDataProduct(@ApiParam("商品") @RequestBody EduProduct eduProduct) { Asserts.isTrue(eduProductService.count(Wrappers.lambdaQuery(new EduProduct()) .eq(EduProduct::getProductCode, eduProduct.getProductCode()) @@ -73,7 +72,7 @@ public class EduProductController { @ApiOperation("商品上架") @GetMapping("/upDateProductById") - @OperationLog(module = ModuleName.PRODUCT, methods = "商品上架", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改商品") public ResultBean upDateProductById(@ApiParam("商品") @RequestParam("id") Long id) { EduProduct eduProduct = new EduProduct(); eduProduct.setProductId(id); @@ -84,7 +83,7 @@ public class EduProductController { @ApiOperation("下架商品") @GetMapping("/soldOutProduct") - @OperationLog(module = ModuleName.PRODUCT, methods = "下架商品", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "下架商品") public ResultBean soldOutProduct(@ApiParam("商品") @RequestParam Long productId) { EduProduct eduProduct = new EduProduct(); eduProduct.setProductId(productId); @@ -97,7 +96,7 @@ public class EduProductController { @ApiOperation("新增商品") @PostMapping("/insertProduct") - @OperationLog(module = ModuleName.PRODUCT, methods = "新增商品", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "新增商品") public ResultBean insertProduct(@RequestBody EduProduct eduProduct) { Asserts.isTrue(eduProductService.count(Wrappers.lambdaQuery(new EduProduct()) .eq(EduProduct::getProductCode, eduProduct.getProductCode())) == 0, "商品编码重复,请修改后重试"); @@ -108,7 +107,7 @@ public class EduProductController { @ApiOperation("删除商品") @GetMapping("/removeProduct") - @OperationLog(module = ModuleName.PRODUCT, methods = "删除商品", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除商品") public ResultBean removeProduct(@ApiParam("商品id") @RequestParam Long productId) { eduProductService.removeEduProductService(productId); return ResultBean.buildSuccess(); @@ -116,6 +115,7 @@ public class EduProductController { @ApiOperation("手机端商品列表查询") @GetMapping("/selectProductList") + @ControllerLog(operation = "须知查询") public ResultBean listApply(@ApiParam("学校id") @RequestParam Long schoolId) { CurrentUser currentUser = FebsUtil.getCurrentUser(); assert currentUser != null; @@ -124,13 +124,14 @@ public class EduProductController { @ApiOperation("手机商品详情") @GetMapping("/selectProductAndApply") + @ControllerLog(operation = "新增须知") public ResultBean selectProductAndApply(@ApiParam("商品id") @RequestParam Long productId) { return ResultBean.buildSuccess(eduProductService.selectProductAndApply(productId)); } @ApiOperation("商品与应用取消关联") @GetMapping("/delEduProductApply") - @OperationLog(module = ModuleName.PRODUCT, methods = "商品与应用取消关联", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "商品与应用取消关联") public ResultBean delEduProductApply(@ApiParam("应用id") @RequestParam Long applyId) { eduProductApplyService.remove(Wrappers.lambdaQuery(new EduProductApply()) diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductModelController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductModelController.java index 9e6c8d6..e335ea9 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductModelController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductModelController.java @@ -3,11 +3,8 @@ package com.yida.data.school.transaction.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.apply.EduProductModel; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.transaction.service.EduProductModelService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -29,6 +26,7 @@ public class EduProductModelController { @ApiOperation("须知查询") @GetMapping("/selectProductModel") + @ControllerLog(operation = "须知查询") public ResultBean listModel(@ApiParam("须知名字") @RequestParam String modelName, @RequestParam Integer pageNum, @RequestParam Integer pageSize) { @@ -40,7 +38,7 @@ public class EduProductModelController { @ApiOperation("新增须知") @PostMapping("/insertProductModel") - @OperationLog(module = ModuleName.PRODUCT, methods = "新增商品须知", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "新增须知") public ResultBean insertModel(@RequestBody EduProductModel eduProductModel) { eduProductModelService.insertEduProductModelService(eduProductModel); return ResultBean.buildSuccess(); @@ -49,7 +47,7 @@ public class EduProductModelController { @ApiOperation("修改须知") @PostMapping("/updateProductModel") - @OperationLog(module = ModuleName.PRODUCT, methods = "修改商品须知", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改须知") public ResultBean upDataModel(@RequestBody EduProductModel eduProductModel) { eduProductModelService.updateEduProductModelService(eduProductModel); return ResultBean.buildSuccess(); @@ -58,7 +56,7 @@ public class EduProductModelController { @ApiOperation("删除须知") @GetMapping("/removeEduProductModel") - @OperationLog(module = ModuleName.PRODUCT, methods = "删除商品须知", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除须知") public ResultBean removeModel(@ApiParam("应用id") @RequestParam Integer modelId) { eduProductModelService.removeEduProductModelService(modelId); return ResultBean.buildSuccess(); diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductNoticeStudentController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductNoticeStudentController.java index d424a58..6a2b9c4 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductNoticeStudentController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductNoticeStudentController.java @@ -1,22 +1,16 @@ package com.yida.data.school.transaction.controller; -import cc.mrbird.febs.common.redis.service.RedisService; -import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.apply.EduProductNoticeStudent; -import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.school.dto.transaction.ListBuyStudentDTO; import com.yida.data.school.transaction.service.EduProductNoticeService; import com.yida.data.school.transaction.service.EduProductNoticeStudentService; -import com.yida.data.school.vo.transcation.DownStudentBuyDataVO; -import com.yida.data.user.vo.DownLoadStaffAttendanceRecordVO; import com.yida.data.user.vo.ListParentByStudentIdsVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -42,7 +36,6 @@ public class EduProductNoticeStudentController { private final EduProductNoticeStudentService eduProductNoticeStudentService; private final EduProductNoticeService eduProductNoticeService; - private final RedisService redisService; @PostMapping("/batchPutNotice") @ApiOperation("批量催缴") @@ -61,8 +54,8 @@ public class EduProductNoticeStudentController { @ApiOperation("通知记录") @GetMapping("/findRecordList") public ResultBean> findRecordList(@RequestParam Long productId, - @RequestParam Integer size, - @RequestParam Integer pageNum) { + @RequestParam Integer size, + @RequestParam Integer pageNum) { Page page = new Page(); page.setSize(size); page.setCurrent(pageNum); @@ -72,8 +65,8 @@ public class EduProductNoticeStudentController { @ApiOperation("查询通知记录对应家长") @GetMapping("/findRecordParent") public ResultBean> findRecordParent(@RequestParam Long noticeId, - @RequestParam Integer size, - @RequestParam Integer pageNum) { + @RequestParam Integer size, + @RequestParam Integer pageNum) { Page page = new Page(); page.setSize(size); page.setCurrent(pageNum); @@ -99,25 +92,8 @@ public class EduProductNoticeStudentController { @ApiOperation("导出需要续费的学生") @ResponseBody @PostMapping("/studentBuyExport") - public ResultBean studentBuyExport(@RequestBody ListBuyStudentDTO listBuyStudentDTO, - HttpServletResponse response) { - String uuid = IdUtil.simpleUUID(); - DownStudentBuyDataVO vo = DownStudentBuyDataVO.builder() - .key(uuid) - .finish(0) - .totalNum(100) - .currentNum(0).build(); - redisService.hset(CachePrefixConstant.PRODUCT_BUY_DATA_DOWNLOAD, uuid, vo); - eduProductNoticeStudentService.studentBuyExport(listBuyStudentDTO, response, uuid); - return ResultBean.buildSuccess(vo); + public void studentBuyExport(@RequestBody ListBuyStudentDTO listBuyStudentDTO, HttpServletResponse response) { + + eduProductNoticeStudentService.studentBuyExport(listBuyStudentDTO, response); } - - - @ApiOperation("获取导出需要续费的学生进度") - @GetMapping("/getStudentBuyExportProgress") - public ResultBean getStudentBuyExportProgress(String key) { - return ResultBean.buildSuccess( - (DownStudentBuyDataVO) redisService.hget(CachePrefixConstant.PRODUCT_BUY_DATA_DOWNLOAD, key)); - } - } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductOrderController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductOrderController.java index aae6133..210ed53 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductOrderController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/EduProductOrderController.java @@ -4,15 +4,12 @@ import cc.mrbird.febs.common.redis.service.RedisService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.apply.EduApplyProductOrder; import com.yida.data.common.core.entity.apply.EduApplyProductRefund; import com.yida.data.common.core.entity.constant.CachePrefixConstant; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.dto.transaction.EduApplyProductOrderDTO; import com.yida.data.school.transaction.service.EduProductOrderService; import com.yida.data.school.vo.transcation.PayInfoVO; @@ -36,13 +33,14 @@ public class EduProductOrderController { @ApiOperation("修改支付状态") @GetMapping("/upDateEduProductOrder") - @OperationLog(module = ModuleName.PRODUCT, methods = "修改支付状态", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改支付状态") public ResultBean upDateEduProductOrder(@ApiParam("生成订单") @RequestParam EduApplyProductOrder eduApplyProductOrder) { return eduProductOrderService.updateProductOder(eduApplyProductOrder); } @ApiOperation("待付款/交易成功订单批量分页查询") @PostMapping("/selectPageListProductOrder") + @ControllerLog(operation = "待付款/交易成功订单批量分页查询") public ResultBean> selectPageListProductOrder(@ApiParam("订单查询条件") @RequestBody EduApplyProductOrderDTO dto) { Page page = new Page(); page.setSize(dto.getSize()); @@ -54,6 +52,7 @@ public class EduProductOrderController { @ApiOperation("手机端待付款/交易成功订单批量查询") @GetMapping("/selectListProductOrder") + @ControllerLog(operation = "待付款/交易成功订单批量分页查询") public ResultBean> selectListProductOrder(@ApiParam("用户手机号") @RequestParam String phone, @ApiParam("studentId") @RequestParam Long studentId) { CurrentUser currentUser = FebsUtil.getCurrentUser(); @@ -64,7 +63,7 @@ public class EduProductOrderController { @ApiOperation("生成订单") @GetMapping("/createOrder") - @OperationLog(module = ModuleName.PRODUCT, methods = "生成订单", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "生成订单") public ResultBean insertEduProductOrder(@ApiParam("商品id") Long productId, @ApiParam("学生id") Long[] studentId, @ApiParam("支付方式,0-微信jsapi,1-微信h5") Integer payType) { @@ -74,7 +73,6 @@ public class EduProductOrderController { @ApiOperation("发起支付") @GetMapping("/payOrder") - @OperationLog(module = ModuleName.PRODUCT, methods = "发起支付", type = OperationLogTypeEnum.INSERT) public ResultBean payOrder(String orderCode) { Object prepay = redisService.get(CachePrefixConstant.ORDER_FLAG + orderCode); PayInfoVO infoVO = eduProductOrderService.getWxJsSign(orderCode, prepay.toString()); @@ -84,7 +82,6 @@ public class EduProductOrderController { @ApiOperation("发起退款") @GetMapping("/refund") - @OperationLog(module = ModuleName.PRODUCT, methods = "发起退款", type = OperationLogTypeEnum.UPDATE) public ResultBean refund(EduApplyProductRefund refund) { eduProductOrderService.refund(refund, FebsUtil.getCurrentUser()); return ResultBean.buildSuccess(); @@ -115,13 +112,13 @@ public class EduProductOrderController { @ApiOperation("订单详情查询") @GetMapping("/selectEduProductOrder") + @ControllerLog(operation = "订单详情查询") public ResultBean selectEduProductOrder(@ApiParam("订单id") Long orderId) { return ResultBean.buildSuccess(eduProductOrderService.selectEduProductOrder(orderId)); } @ApiOperation("订单完成(前台支付完成后调用)") @GetMapping("/orderSuccess") - @OperationLog(module = ModuleName.PRODUCT, methods = "订单完成(前台支付完成后调用)", type = OperationLogTypeEnum.UPDATE) public ResultBean orderSuccess(@ApiParam("订单号") String orderCode) { eduProductOrderService.orderSuccess(orderCode); return ResultBean.buildSuccess(); diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/InEduProductController.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/InEduProductController.java index 5424101..471fb37 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/InEduProductController.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/controller/InEduProductController.java @@ -1,22 +1,21 @@ package com.yida.data.school.transaction.controller; -import com.yida.data.common.core.common.ModuleName; +import com.yida.data.common.core.annotation.ControllerLog; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.apply.EduProduct; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.school.transaction.service.EduProductNoticeService; import com.yida.data.school.transaction.service.EduProductService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; -import javax.annotation.Resource; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; + /** * @author chenbo */ @@ -32,7 +31,7 @@ public class InEduProductController { @ApiOperation("商品上架") @GetMapping("/upDateProductById") - @OperationLog(module = ModuleName.PRODUCT, methods = "商品上架", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改商品") public ResultBean upDateProductById(@ApiParam("商品") @RequestParam("id") Long id) { EduProduct eduProduct = new EduProduct(); eduProduct.setProductId(id); @@ -43,7 +42,7 @@ public class InEduProductController { @ApiOperation("发送商品催缴续费通知") @GetMapping("/productSendNotice") - @OperationLog(module = ModuleName.PRODUCT, methods = "发送商品催缴续费通知", type = OperationLogTypeEnum.SELECT) + @ControllerLog(operation = "发送商品催缴续费通知") public ResultBean productSendNotice(@ApiParam("通知id") @RequestParam("id") Long id) { eduProductNoticeService.productSendNotice(id); return ResultBean.buildSuccess(); @@ -51,7 +50,7 @@ public class InEduProductController { @ApiOperation("修改商品的状态为已失效") @GetMapping("/productMonitor") - @OperationLog(module = ModuleName.PRODUCT, methods = "修改商品的状态为已失效", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改商品的状态为已失效") public ResultBean productMonitor() { eduProductNoticeService.productMonitor(); return ResultBean.buildSuccess(); diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/EduProductNoticeStudentService.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/EduProductNoticeStudentService.java index c642f9e..1565701 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/EduProductNoticeStudentService.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/EduProductNoticeStudentService.java @@ -9,7 +9,6 @@ import com.yida.data.user.vo.ListParentByStudentIdsVO; import javax.servlet.http.HttpServletResponse; import java.util.List; -import org.springframework.scheduling.annotation.Async; /** * 催缴通知对应接收学生表 Service接口 @@ -18,7 +17,6 @@ import org.springframework.scheduling.annotation.Async; * @date 2021-09-03 15:33:47 */ public interface EduProductNoticeStudentService extends IService { - /** * 批量催缴 * @@ -40,8 +38,7 @@ public interface EduProductNoticeStudentService extends IService implements EduProductNoticeStudentService { + implements EduProductNoticeStudentService { private final EduProductNoticeStudentMapper eduProductNoticeStudentMapper; @Resource @@ -75,14 +69,9 @@ public class EduProductNoticeStudentServiceImpl extends ServiceImpl @Resource private EduProductMapper eduProductMapper; - private final RedisService redisService; - @Value("${febs.pageUrl}") private String pageUrl; - @Value("${febs.uploadUrl}") - private String uploadUrl; - @Override @Transactional(rollbackFor = Exception.class) public void batchPutNotice(List noticeStudents) { @@ -100,8 +89,8 @@ public class EduProductNoticeStudentServiceImpl extends ServiceImpl Long productId = noticeStudents.get(0).getProductId(); Long schoolId = eduProductService.getById(productId).getSchoolId(); - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.INDEX_PARENT, null, - schoolId); + EduApp app = commonService.getAppByCodeAndSchool(AppConstant.PRODUCT_PARENT, null, + schoolId); String accessToken = wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()); //家长wxId @@ -124,7 +113,7 @@ public class EduProductNoticeStudentServiceImpl extends ServiceImpl @Override public IPage findRecordList(Page page, Long productId) { List list = eduProductNoticeService.list(Wrappers.lambdaQuery(new EduProductNotice()) - .eq(EduProductNotice::getProductId, productId)); + .eq(EduProductNotice::getProductId, productId)); if (CollectionUtil.isEmpty(list)) { return new Page<>(); @@ -151,7 +140,7 @@ public class EduProductNoticeStudentServiceImpl extends ServiceImpl } } List list = list(Wrappers.lambdaQuery(new EduProductNoticeStudent()) - .in(EduProductNoticeStudent::getNoticeId, noticeId)); + .in(EduProductNoticeStudent::getNoticeId, noticeId)); ArrayList studentIds = new ArrayList<>(); for (EduProductNoticeStudent eduProductNoticeStudent : list) { studentIds.add(eduProductNoticeStudent.getStudentId()); @@ -190,83 +179,45 @@ public class EduProductNoticeStudentServiceImpl extends ServiceImpl // 导出Excel EasyExcelUtil.exportExcelData(list, StudentNotBuyExportVO.class, "导出未购买导出数据", - ExcelTypeEnum.XLS, response); + ExcelTypeEnum.XLS, response); stopWatch.stop(); log.info("导出未购买学生数据总共耗时: {}", stopWatch.getTotalTimeSeconds() + "秒"); } - @Override - public void studentBuyExport(ListBuyStudentDTO listBuyStudentDTO, HttpServletResponse response, String uuid) { - File file = null; - String fileName = com.yida.data.common.core.utils.FileUtil.getLocalUploadAddress() + uuid + ".xlsx"; - file = new File(fileName); - - try { - StopWatch stopWatch = new StopWatch(); - stopWatch.start(); - - List list1 = eduProductMapper.listBuyStudent(listBuyStudentDTO); - List studentId = new ArrayList<>(); - for (EduProductNoticeVO eduProductNoticeVO : list1) { - studentId.add(eduProductNoticeVO.getStudentId()); - } - ArrayList list = new ArrayList<>(); - - for (int i = 0; i < studentId.size(); i++) { - - log.info("学生ID:{}", studentId.get(i)); - - redisService.hset(CachePrefixConstant.PRODUCT_BUY_DATA_DOWNLOAD, uuid, DownStudentBuyDataVO.builder() - .key(uuid) - .finish(0) - .totalNum(studentId.size()) - .currentNum(i + 1).build()); - - EduStudent data = remoteStudentService.getStudentNoPermission(studentId.get(i)).getData(); - - StudentNotBuyExportVO studentNotBuyExportVO = new StudentNotBuyExportVO(); - studentNotBuyExportVO.setCampusName(ObjectUtil.isNull(data) ? "" : data.getCampusName()); - studentNotBuyExportVO.setSectionName(ObjectUtil.isNull(data) ? "" : data.getSectionName()); - studentNotBuyExportVO.setGradeName(ObjectUtil.isNull(data) ? "" : data.getGradeName()); - studentNotBuyExportVO.setClassName(ObjectUtil.isNull(data) ? "" : data.getClassName()); - studentNotBuyExportVO.setStudentName(ObjectUtil.isNull(data) ? "" : data.getStuName()); - studentNotBuyExportVO.setIndexNo((long) i + 1); - studentNotBuyExportVO.setStudentNumber(ObjectUtil.isNull(data) ? "" : data.getStuNumber()); - list.add(studentNotBuyExportVO); - } - - // 根据查询条件导出未购买学生数据 - // 导出数据 - EasyExcel.write(file) - .excelType(ExcelTypeEnum.XLSX) - // 这里放入动态头 - .head(StudentNotBuyExportVO.class).sheet("职工通行记录") - // 当然这里数据也可以用 List> 去传入 - .doWrite(list); - // 上传文件到媒资 - String fileUrl = com.yida.data.common.core.utils.FileUtil.uploadFileToMediaServer(uploadUrl, file); - - redisService - .hset(CachePrefixConstant.PRODUCT_BUY_DATA_DOWNLOAD, uuid, DownStudentBuyDataVO.builder() - .key(uuid) - .finish(1) - .filePath(fileUrl) - .totalNum(list.size()) - .currentNum(list.size()).build()); - -// // 导出Excel -// EasyExcelUtil.exportExcelData(list, StudentNotBuyExportVO.class, "导出需要已购买学生", -// ExcelTypeEnum.XLS, response); - stopWatch.stop(); - log.info("导出已购买学生数据总共耗时: {}", stopWatch.getTotalTimeSeconds() + "秒"); - } catch (IllegalStateException e) { - log.error("导出已购买学生数据出错:{}", e); - } finally { - if (Objects.nonNull(file)) { - cn.hutool.core.io.FileUtil.del(file); - } + public void studentBuyExport(ListBuyStudentDTO listBuyStudentDTO, HttpServletResponse response) { + List list1 = eduProductMapper.listBuyStudent(listBuyStudentDTO); + List studentId = new ArrayList<>(); + for (EduProductNoticeVO eduProductNoticeVO : list1) { + studentId.add(eduProductNoticeVO.getStudentId()); } + + ArrayList list = new ArrayList<>(); + + + for (int i = 0; i < studentId.size(); i++) { + EduStudent data = remoteStudentService.getStudentNoPermission(studentId.get(i)).getData(); + StudentNotBuyExportVO welcomeStudentExportDTO = new StudentNotBuyExportVO(); + welcomeStudentExportDTO.setCampusName(data.getCampusName()); + welcomeStudentExportDTO.setSectionName(data.getSectionName()); + welcomeStudentExportDTO.setGradeName(data.getGradeName()); + welcomeStudentExportDTO.setClassName(data.getClassName()); + welcomeStudentExportDTO.setStudentName(data.getStuName()); + welcomeStudentExportDTO.setIndexNo((long) i + 1); + welcomeStudentExportDTO.setStudentNumber(data.getStuNumber()); + list.add(welcomeStudentExportDTO); + } + + + StopWatch stopWatch = new StopWatch(); + stopWatch.start(); + // 根据查询条件导出未购买学生数据 + + // 导出Excel + EasyExcelUtil.exportExcelData(list, StudentNotBuyExportVO.class, "导出需要已购买学生", + ExcelTypeEnum.XLS, response); + stopWatch.stop(); + log.info("导出已购买学生数据总共耗时: {}", stopWatch.getTotalTimeSeconds() + "秒"); } @Override @@ -305,8 +256,8 @@ public class EduProductNoticeStudentServiceImpl extends ServiceImpl notBuyStudentIds.add(student.getId()); } - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.INDEX_PARENT, null, - schoolId); + EduApp app = commonService.getAppByCodeAndSchool(AppConstant.PRODUCT_PARENT, null, + schoolId); String accessToken = wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()); //家长wxId diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/impl/EduProductOrderServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/impl/EduProductOrderServiceImpl.java index 5a13770..5cd34b4 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/impl/EduProductOrderServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/impl/EduProductOrderServiceImpl.java @@ -36,6 +36,7 @@ import com.yida.data.school.transaction.mapper.EduApplyProductOrderStudentMapper import com.yida.data.school.transaction.mapper.EduApplyProductRefundMapper; import com.yida.data.school.transaction.mapper.EduProductMapper; import com.yida.data.school.transaction.service.EduProductOrderService; +import com.yida.data.school.transaction.service.EduStudentApplyService; import com.yida.data.school.transaction.util.GuuidUtil; import com.yida.data.school.vo.transcation.EduProductOrderVO; import com.yida.data.school.vo.transcation.PayInfoVO; @@ -70,6 +71,8 @@ public class EduProductOrderServiceImpl extends ServiceImpl()); @Resource + private EduStudentApplyService eduStudentApplyService; + @Resource private EduProductMapper eduProductMapper; @Resource private EduApplyProductOrderStudentMapper eduApplyProductOrderStudentMapper; @@ -139,8 +142,7 @@ public class EduProductOrderServiceImpl extends ServiceImpl { EduApplyProductOrder order = baseMapper.getOrderByCode(orderCode); //EduProduct product = eduProductMapper.selectById(order.getProductId()); - if (order != null && order.getPraccticalMoney() > 0D && PayWay.WEI_XIN.getValue().equals(order.getPayWay()) && "0,1" + if (order != null && order.getPraccticalMoney() > 0D && PayWay.WEIXIN.getValue().equals(order.getPayWay()) && "0,1" .contains(order.getOrderStatus())) { boolean flag = false; EduPayWxConfig config = commonService.getPayWxConfigBySchool(order.getSchoolId()); @@ -497,23 +498,21 @@ public class EduProductOrderServiceImpl extends ServiceImpl realProductList = product.getRealProductList(); // 学生-应用关联关系 -// List studentApplyList = new ArrayList<>(); + List studentApplyList = new ArrayList<>(); for (EduApplyProductOrderStudent orderStudent : studentList) { // 删除学生订单缓存 - redisService.del( - CachePrefixConstant.STUDENT_ORDER + orderStudent.getStudentId().toString() + "." + product.getProductId() - .toString()); -// // 购买了应用 -// if (CollUtil.isNotEmpty(applyList)) { -// for (EduProductApply apply : applyList) { -// EduStudentApply studentApply = new EduStudentApply(); -// studentApply.setStudentId(orderStudent.getStudentId()); -// studentApply.setApplyCode(apply.getApplyCode()); -// studentApply.setStartTime(apply.getBeginValidDate().atTime(0, 0, 0)); -// studentApply.setEndTime(apply.getEndValidDate().atTime(23, 59, 59)); -// studentApplyList.add(studentApply); -// } -// } + redisService.del(CachePrefixConstant.STUDENT_ORDER + orderStudent.getStudentId().toString() + "." + product.getProductId().toString()); + // 购买了应用 + if (CollUtil.isNotEmpty(applyList)) { + for (EduProductApply apply : applyList) { + EduStudentApply studentApply = new EduStudentApply(); + studentApply.setStudentId(orderStudent.getStudentId()); + studentApply.setApplyCode(apply.getApplyCode()); + studentApply.setStartTime(apply.getBeginValidDate().atTime(0, 0, 0)); + studentApply.setEndTime(apply.getEndValidDate().atTime(23, 59, 59)); + studentApplyList.add(studentApply); + } + } // 购买了商品 if (CollUtil.isNotEmpty(realProductList)) { for (EduRealProduct realProduct : realProductList) { @@ -525,10 +524,10 @@ public class EduProductOrderServiceImpl extends ServiceImpl orderStudentList = - eduApplyProductOrderStudentMapper.selectList( - Wrappers.lambdaQuery(new EduApplyProductOrderStudent()) - .eq(EduApplyProductOrderStudent::getOrderId, order.getOrderId())); + eduApplyProductOrderStudentMapper.selectList( + Wrappers.lambdaQuery(new EduApplyProductOrderStudent()) + .eq(EduApplyProductOrderStudent::getOrderId, order.getOrderId())); if (CollUtil.isNotEmpty(orderStudentList)) { orderStudentList.forEach(student -> { // 删除学生订单缓存 - redisService.del( - CachePrefixConstant.STUDENT_ORDER + student.getStudentId().toString() + "." + order - .getProductId().toString()); + redisService.del(CachePrefixConstant.STUDENT_ORDER + student.getStudentId().toString() + "." + order.getProductId().toString()); }); } } diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/impl/Scheduler.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/impl/Scheduler.java index c724d89..4f6aa0b 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/impl/Scheduler.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/transaction/service/impl/Scheduler.java @@ -49,7 +49,7 @@ public class Scheduler { List expireOrder = eduApplyProductOrderMapper.selectExpireOrder(LocalDateTime.now()); if (CollUtil.isNotEmpty(expireOrder)) { for (EduApplyProductOrder order : expireOrder) { - if (PayWay.WEI_XIN.getValue().equals(order.getPayWay())) { + if (PayWay.WEIXIN.getValue().equals(order.getPayWay())) { EduPayWxConfig config = commonService.getPayWxConfigBySchool(order.getSchoolId()); // 主动查询是否已经支付了 try { diff --git a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/visitor/service/impl/EduVisitorRecordServiceImpl.java b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/visitor/service/impl/EduVisitorRecordServiceImpl.java index 0538a82..9d5fdf4 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/visitor/service/impl/EduVisitorRecordServiceImpl.java +++ b/febs-server/edu-school/edu-school-biz/src/main/java/com/yida/data/school/visitor/service/impl/EduVisitorRecordServiceImpl.java @@ -224,7 +224,7 @@ public class EduVisitorRecordServiceImpl extends ServiceImpl if (staff != null) { try { EduApp app = commonService - .getAppByCodeAndSchool(AppConstant.CONTACT_SELECT, null, visitorRecord.getSchoolId()); + .getAppByCodeAndSchool(AppConstant.VISITOR_STAFF, null, visitorRecord.getSchoolId()); BaseStaffNotice notice = new BaseStaffNotice(); notice .setText(new Text(String diff --git a/febs-server/edu-school/edu-school-biz/src/main/resources/bootstrap.yml b/febs-server/edu-school/edu-school-biz/src/main/resources/bootstrap.yml index fd3e14d..a4db71b 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/resources/bootstrap.yml +++ b/febs-server/edu-school/edu-school-biz/src/main/resources/bootstrap.yml @@ -1,7 +1,6 @@ spring: profiles: active: "@env-name@" -# active: "dev" cloud: nacos: config: diff --git a/febs-server/edu-school/edu-school-biz/src/main/resources/mapper/news/EduNoticeSchoolMapper.xml b/febs-server/edu-school/edu-school-biz/src/main/resources/mapper/news/EduNoticeSchoolMapper.xml index 557ae0e..39f86c4 100644 --- a/febs-server/edu-school/edu-school-biz/src/main/resources/mapper/news/EduNoticeSchoolMapper.xml +++ b/febs-server/edu-school/edu-school-biz/src/main/resources/mapper/news/EduNoticeSchoolMapper.xml @@ -49,20 +49,20 @@ diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/PageStudentDTO.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/PageStudentDTO.java index c53a380..e0f76e8 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/PageStudentDTO.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/PageStudentDTO.java @@ -3,7 +3,6 @@ package com.yida.data.user.dto; import com.yida.data.common.core.common.BaseDTO; import io.swagger.annotations.ApiModelProperty; -import java.util.List; import lombok.Data; @Data @@ -17,17 +16,12 @@ public class PageStudentDTO extends BaseDTO { private Integer type; @ApiModelProperty("校区id") private Long campusId; - @ApiModelProperty("校区id") - private List campusIdList; @ApiModelProperty("学段id") private Long sectionId; - private List sectionIdList; @ApiModelProperty("年级id") private Long gradeId; - private List gradeIdList; @ApiModelProperty("班级id") private Long classId; - private List classIdList; @ApiModelProperty("学号id") private String stuNumber; @ApiModelProperty("名字") diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/StudentExportDTO.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/StudentExportDTO.java index efc8ce0..06582d2 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/StudentExportDTO.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/StudentExportDTO.java @@ -1,14 +1,12 @@ package com.yida.data.user.dto; import com.alibaba.excel.annotation.ExcelProperty; -import com.yida.data.common.core.converter.LocalDateConverter; import com.yida.data.common.core.entity.EasyExcelExportBaseDTO; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; -import java.time.LocalDate; /** * 学生信息导出类 @@ -19,82 +17,22 @@ import java.time.LocalDate; @Data @EqualsAndHashCode(callSuper = true) @ApiModel(value = "StudentExportDTO", description = "学生信息导出类") -public class StudentExportDTO extends StudentDormExportDTO implements Serializable { +public class StudentExportDTO extends EasyExcelExportBaseDTO implements Serializable { private static final long serialVersionUID = 6625908714399734930L; @ExcelProperty("学生姓名") private String stuName; - @ExcelProperty("班级信息") - private String deptName; + @ExcelProperty("年级") + private String gradeName; - @ExcelProperty("曾用名") - private String formerName; + @ExcelProperty("班级") + private String className; @ExcelProperty("学号") private String stuNumber; - @ExcelProperty("考生号") - private String stuExamNumber; - - @ExcelProperty("银行卡号") - private String creditCardNumbers; - - @ExcelProperty("邮箱") - private String email; - - @ExcelProperty("QQ号") - private String qqCode; - - @ExcelProperty("微信号") - private String wxCode; - - @ExcelProperty(value = "入学时间", converter = LocalDateConverter.class) - private LocalDate startDate; - - @ExcelProperty("入学年级") - private String startGrade; - - @ExcelProperty("政治面貌") - private String politicsStatus; - - @ExcelProperty("邮政编码") - private String postalCode; - - @ExcelProperty("籍贯") - private String nativePlace; - - @ExcelProperty("现住址") - private String presentAddress; - - /** - * 学生性别,0-男,1-女" - */ - @ExcelProperty("学生性别") - private String stuSex; - - @ExcelProperty("民族") - private String nation; - - @ExcelProperty("身份证号") - private String idNumber; - - @ExcelProperty("校园卡号") - private String stuCardNumber; - - /** - * 学生类别,0-走读,1-住宿 - */ - @ExcelProperty("学生类型") - private String type; - - /** - * 学籍状态:关联字典表 - */ - @ExcelProperty("学籍状态") - private String studentStatus; - @ExcelProperty("是否采集人脸") private String collectStatus; } \ No newline at end of file diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/WelcomeInviteImportDTO.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/WelcomeInviteImportDTO.java index 176135c..96c5fe9 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/WelcomeInviteImportDTO.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/dto/WelcomeInviteImportDTO.java @@ -1,15 +1,12 @@ package com.yida.data.user.dto; import com.alibaba.excel.annotation.ExcelProperty; -import com.yida.data.common.core.converter.LocalDateConverter; import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; -import java.time.LocalDate; /** * Excel一键邀请信息导入类 @@ -114,112 +111,4 @@ public class WelcomeInviteImportDTO implements Serializable { */ @ExcelProperty(index = 14) private String familyName; - - /** - * 住宿类型 - */ - @ExcelProperty(index = 15) - private String type; - - /** - * 曾用名 - */ - @ExcelProperty(index = 16) - private String formerName; - - /** - * 考生号 - */ - @ExcelProperty(index = 17) - private String stuExamNumber; - - /** - * 银行卡号 - */ - @ExcelProperty(index = 18) - private String creditCardNumbers; - - /** - * 邮箱 - */ - @ExcelProperty(index = 19) - private String email; - - /** - * QQ号 - */ - @ExcelProperty(index = 20) - private String qqCode; - - /** - * 微信号 - */ - @ExcelProperty(index = 21) - private String wxCode; - - /** - * 入学时间 - */ - @ExcelProperty(index = 22) - private String startDate; - - /** - * 入学年级 - */ - @ExcelProperty(index = 23) - private String startGrade; - - /** - * 政治面貌 - */ - @ExcelProperty(index = 24) - private String politicsStatus; - - /** - * 邮政编码 - */ - @ExcelProperty(index = 25) - private String postalCode; - - /** - * 籍贯 - */ - @ExcelProperty(index = 26) - private String nativePlace; - - /** - * 现住址 - */ - @ExcelProperty(index = 27) - private String presentAddress; - - /** - * 学生性别 - */ - @ExcelProperty(index = 28) - private String stuSex; - - /** - * 民族 - */ - @ExcelProperty(index = 29) - private String nation; - - /** - * 身份证号 - */ - @ExcelProperty(index = 30) - private String idNumber; - - /** - * 校园卡号 - */ - @ExcelProperty(index = 31) - private String stuCardNumber; - - /** - * 学籍状态 - */ - @ExcelProperty(index = 32) - private String studentStatus; } \ No newline at end of file diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteStaffServiceFallback.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteStaffServiceFallback.java index d17012b..0dcb3f5 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteStaffServiceFallback.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteStaffServiceFallback.java @@ -8,7 +8,6 @@ import com.yida.data.common.core.entity.user.EduTeacherDept; import com.yida.data.user.dto.ListStaffDTO; import com.yida.data.user.feign.RemoteStaffService; import com.yida.data.user.vo.TeacherClassVO; -import com.yida.data.user.vo.TeacherDeptVO; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; @@ -76,11 +75,6 @@ public class RemoteStaffServiceFallback implements FallbackFactory> listStaffByDeptIdNoPermission(Long deptId, String nameOrPhone, Long schoolId) { - return null; - } - /** * 根据条件查询职工列表 * @@ -112,11 +106,6 @@ public class RemoteStaffServiceFallback implements FallbackFactory> getStaffDeptByStaffIdsNoPermission(List staffIds) { - return null; - } - @Override public ResultBean syncQywxStaff() { return null; @@ -185,26 +174,6 @@ public class RemoteStaffServiceFallback implements FallbackFactory> listStaffRolesByStaffId(Long staffId) { - return null; - } - - @Override - public ResultBean> getStaffList(List staffIds) { - return null; - } - - @Override - public ResultBean updateStaffCache() { - return null; - } - - @Override - public ResultBean> listClassIdByStaffId() { - return null; - } }; } } diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteStudentServiceFallback.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteStudentServiceFallback.java index 7791982..3d095f5 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteStudentServiceFallback.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteStudentServiceFallback.java @@ -1,6 +1,5 @@ package com.yida.data.user.fallback; -import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yida.data.common.core.annotation.Fallback; import com.yida.data.common.core.common.ResultBean; @@ -323,27 +322,6 @@ public class RemoteStudentServiceFallback implements FallbackFactory> listBaseStudentNoJoin(EduStudent eduStudent) { return null; } - - @Override - public ResultBean countUserDashboardNum(Long schoolId) { - return null; - } - - @Override - public ResultBean saveStudent(EduStudent eduStudent) { - return null; - } - - @Override - public ResultBean saveStudentDorm(EduStudent eduStudent) { - return null; - } - - @Override - public ResultBean updateStudentCache() { - return null; - } - }; } } diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteTeacherServiceFallback.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteTeacherServiceFallback.java index 736312e..802001c 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteTeacherServiceFallback.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteTeacherServiceFallback.java @@ -29,9 +29,16 @@ public class RemoteTeacherServiceFallback implements FallbackFactory teacherList, Long deptWxId) { + public ResultBean dealWxTeacherChange(Long schoolId, Long campusId, Long sectionId, Long gradeId, Long classId, List teacherList) { return null; } diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteUserDeptServiceFallback.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteUserDeptServiceFallback.java index ba35eab..5a3a739 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteUserDeptServiceFallback.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteUserDeptServiceFallback.java @@ -115,11 +115,6 @@ public class RemoteUserDeptServiceFallback implements FallbackFactory> getParentListByDeptId(Long deptId) { - return null; - } - /** * 批量保存家校部门 * @@ -198,16 +193,6 @@ public class RemoteUserDeptServiceFallback implements FallbackFactory> findChildIdByParentAndTypeNoPermission(Long parentId, Integer type) { return null; } - - @Override - public ResultBean> findListByParent(Long deptId) { - return null; - } - - @Override - public ResultBean getUserDeptTree(List deptIds) { - return null; - } }; } } diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteUserDeviceServiceFallback.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteUserDeviceServiceFallback.java index 27466bf..7800b7a 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteUserDeviceServiceFallback.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/fallback/RemoteUserDeviceServiceFallback.java @@ -28,16 +28,6 @@ public class RemoteUserDeviceServiceFallback implements FallbackFactory list) { return null; } - - @Override - public ResultBean> listUserDevice(Long userId, Integer type, Long deviceId, Long faceGroupId) { - return null; - } - - @Override - public ResultBean deleteRelation(EduUserDevice userDevice) { - return null; - } }; } } diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteStaffService.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteStaffService.java index 1fde5da..969df2d 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteStaffService.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteStaffService.java @@ -8,7 +8,6 @@ import com.yida.data.common.core.entity.user.EduTeacherDept; import com.yida.data.user.dto.ListStaffDTO; import com.yida.data.user.fallback.RemoteStaffServiceFallback; import com.yida.data.user.vo.TeacherClassVO; -import com.yida.data.user.vo.TeacherDeptVO; import io.swagger.annotations.ApiParam; import org.apache.ibatis.annotations.Param; import org.springframework.cloud.openfeign.FeignClient; @@ -20,7 +19,7 @@ import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @FeignClient(value = FebsServerConstant.EDU_USER, contextId = "StaffServiceClient", - fallbackFactory = RemoteStaffServiceFallback.class) + fallbackFactory = RemoteStaffServiceFallback.class) public interface RemoteStaffService { @@ -32,7 +31,7 @@ public interface RemoteStaffService { */ @GetMapping("/staff/findTeacherRole") ResultBean> findTeacherRole(@RequestParam("teacherId") Long teacherId, - @RequestParam("type") Integer type); + @RequestParam("type") Integer type); /** * 查询教师可见课程 @@ -43,7 +42,7 @@ public interface RemoteStaffService { */ @GetMapping("/staff/findTeacherCourseId") ResultBean> findTeacherCourseId(@RequestParam("teacherId") Long teacherId, - @RequestParam("schoolId") Long schoolId); + @RequestParam("schoolId") Long schoolId); /** * 根据id查询职工信息 @@ -61,19 +60,13 @@ public interface RemoteStaffService { */ @GetMapping("/staff/listStaffByDeptId") ResultBean> listStaffByDeptId(@RequestParam("deptId") @Param("deptId") Long deptId, - @RequestParam("nameOrPhone") @Param("nameOrPhone") String nameOrPhone, - @RequestParam("schoolId") Long schoolId); - - - @GetMapping("/in/staff/listStaffByDeptId") - ResultBean> listStaffByDeptIdNoPermission(@RequestParam("deptId") @Param("deptId") Long deptId, - @RequestParam("nameOrPhone") @Param("nameOrPhone") String nameOrPhone, - @RequestParam("schoolId") Long schoolId); + @RequestParam("nameOrPhone") @Param("nameOrPhone") String nameOrPhone, + @RequestParam("schoolId") Long schoolId); /** * 根据条件查询职工列表 */ - @PostMapping("/in/staff/listStaff") + @PostMapping("/staff/listStaff") ResultBean> listStaff(@RequestBody ListStaffDTO dto); /** @@ -91,9 +84,6 @@ public interface RemoteStaffService { @PostMapping("/staff/getStaffDeptByStaffIds") ResultBean> getStaffDeptByStaffIds(@ApiParam("职工id") @RequestBody List staffIds); - @PostMapping("/in/staff/getStaffDeptByStaffIds") - ResultBean> getStaffDeptByStaffIdsNoPermission(@ApiParam("职工id") @RequestBody List staffIds); - @GetMapping("/in/staff/syncQywxStaff") ResultBean syncQywxStaff(); @@ -109,16 +99,16 @@ public interface RemoteStaffService { */ @GetMapping("/in/staff/getStaffByWxOrMobileOrOpenId") ResultBean getStaffByWxOrMobileOrOpenId(@RequestParam("wxId") String wxId, - @RequestParam("mobile") String mobile, - @RequestParam("wxOpenId") String wxOpenId, - @RequestParam("schoolId") Long schoolId); + @RequestParam("mobile") String mobile, + @RequestParam("wxOpenId") String wxOpenId, + @RequestParam("schoolId") Long schoolId); /** * 处理企业微信职工删除 */ @GetMapping("/in/staff/dealWxUserDelete") ResultBean dealWxUserDelete(@RequestParam("wxId") String wxId, - @RequestParam("schoolId") Long schoolId); + @RequestParam("schoolId") Long schoolId); @GetMapping("/in/staff/getStaffByDahua") ResultBean getStaffByDahuaNoPermission(@RequestParam("dahuaCode") String dahuaCode); @@ -143,36 +133,5 @@ public interface RemoteStaffService { */ @GetMapping("/in/staff/saveWxPublicOpenId") ResultBean saveWxPublicOpenId(@RequestParam("staffId") Long staffId, - @RequestParam("openId") String openId); - - - @GetMapping("/in/staff/listStaffRolesByStaffId") - ResultBean> listStaffRolesByStaffId(@RequestParam("staffId") Long staffId); - - /** - * 根据职工id集合查询职工信息 - * - * @param staffIds 职工id集合 - * @return com.yida.data.common.core.common.ResultBean> - * @author ZYJ - * @date 2023/6/8 17:24 - */ - @PostMapping("/staff/getStaffList") - ResultBean> getStaffList(@RequestBody List staffIds); - - /** - * 更新职工信息缓存 - * - * @return - */ - @GetMapping("in/staff/updateStaffCache") - ResultBean updateStaffCache(); - - /** - * 查询职工管理班级 - * - * @return - */ - @GetMapping("in/staff/listClassIdByStaffId") - ResultBean> listClassIdByStaffId(); + @RequestParam("openId") String openId); } \ No newline at end of file diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteStudentService.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteStudentService.java index fa01e95..e92b72c 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteStudentService.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteStudentService.java @@ -1,6 +1,5 @@ package com.yida.data.user.feign; -import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.constant.FebsServerConstant; @@ -13,7 +12,6 @@ import com.yida.data.user.fallback.RemoteStudentServiceFallback; import com.yida.data.user.vo.ListParentByStudentIdsVO; import com.yida.data.user.vo.ParentInfoVO; import com.yida.data.user.vo.StudentClassInfoVO; -import io.swagger.annotations.ApiParam; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -21,7 +19,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; -import java.util.Map; @FeignClient(value = FebsServerConstant.EDU_USER, contextId = "studentServiceClient", fallbackFactory = RemoteStudentServiceFallback.class) @@ -252,36 +249,4 @@ public interface RemoteStudentService { */ @PostMapping(value = "/in/student/listBaseStudentNoJoin") ResultBean> listBaseStudentNoJoin(@RequestBody EduStudent eduStudent); - - /** - * 查询校园大数据的人员统计数据 - * - * @param schoolId 学校id - * @return com.yida.data.common.core.common.ResultBean - * @author ZYJ - * @date 2023/4/24 15:09 - */ - @GetMapping(value = "/in/student/countUserDashboardNum") - ResultBean countUserDashboardNum(@RequestParam Long schoolId); - - - /** - * 新增/编辑学生 - * - * @param eduStudent - * @return - */ - @PostMapping("out/student/saveStudent") - ResultBean saveStudent(@RequestBody EduStudent eduStudent); - - @PostMapping("in/student/saveStudentDorm") - ResultBean saveStudentDorm(@RequestBody EduStudent eduStudent); - - /** - * 更新学生信息缓存 - * - * @return - */ - @GetMapping("in/student/updateStudentCache") - ResultBean updateStudentCache(); } diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteTeacherService.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteTeacherService.java index b7c6a3e..0431fc0 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteTeacherService.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteTeacherService.java @@ -28,8 +28,7 @@ public interface RemoteTeacherService { @RequestParam("sectionId") Long sectionId, @RequestParam("gradeId") Long gradeId, @RequestParam("classId") Long classId, - @RequestBody List teacherList, - @RequestParam("deptWxId") Long deptWxId); + @RequestBody List teacherList); /** * 根据教师微信id查询教师信息 @@ -97,7 +96,6 @@ public interface RemoteTeacherService { * * @param deptId 家校部门id * @param type 教师类型 1表示校区负责人,2表示年级负责人,3表示班主任,4表示任课老师,5表示学段负责人 - * 1表示班级,2表示年级,3表示学段,4表示校区 * @return com.yida.data.common.core.common.ResultBean> * @author ZYJ * @date 2022/7/15 17:48 diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserDeptService.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserDeptService.java index 665d7b1..ba2f11e 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserDeptService.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserDeptService.java @@ -20,7 +20,7 @@ import java.util.List; * @date 2021-11-22 */ @FeignClient(value = FebsServerConstant.EDU_USER, contextId = "userDeptServiceClient", - fallbackFactory = RemoteUserDeptServiceFallback.class) + fallbackFactory = RemoteUserDeptServiceFallback.class) public interface RemoteUserDeptService { /** @@ -99,16 +99,6 @@ public interface RemoteUserDeptService { @GetMapping("/in/eduUserDept/getParentByDeptId") ResultBean getParentByDeptId(@RequestParam Long deptId); - - /** - * 根据家校部门id查询全部上级家校部门信息 - * - * @param deptId - * @return - */ - @GetMapping("/in/eduUserDept/getParentListByDeptId") - ResultBean> getParentListByDeptId(@RequestParam Long deptId); - /** * 批量保存家校部门 * @@ -156,24 +146,9 @@ public interface RemoteUserDeptService { ResultBean> findChildByParentAndType(@RequestParam Long parentId, @RequestParam Integer type); /** - * 向下查询指定家校部门类型的家校部门id(可查询非直接子家校部门) 未毕业家校部门 + * 向下查询指定家校部门类型的家校部门id(可查询非直接子家校部门) + * 未毕业家校部门 */ @GetMapping("/in/eduUserDept/findChildIdByParentAndType") ResultBean> findChildIdByParentAndTypeNoPermission(@RequestParam Long parentId, @RequestParam Integer type); - - /** - * 向下查询指定家校部门类型的家校部门id(可查询非直接子家校部门) 未毕业家校部门 - */ - @GetMapping("/in/eduUserDept/findListByParent") - ResultBean> findListByParent(@RequestParam Long deptId); - - - /** - * 获取家校部门树 - * - * @param deptIds - * @return - */ - @PostMapping("in/eduUserDept/getUserDeptTree") - ResultBean getUserDeptTree(@RequestBody List deptIds); } diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserDeviceService.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserDeviceService.java index 8be694e..a5997f1 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserDeviceService.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserDeviceService.java @@ -6,10 +6,8 @@ import com.yida.data.common.core.entity.user.EduUserDevice; import com.yida.data.user.fallback.RemoteUserDeviceServiceFallback; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -19,32 +17,4 @@ public interface RemoteUserDeviceService { @PostMapping("/in/userDevice/batchSave") ResultBean batchSave(@RequestBody List list); - - /** - * 获取设备和人员关联信息 - * - * @param userId 用户id - * @param type 用户类型. 0-学生,1-职工 - * @param deviceId 设备id - * @param faceGroupId 人脸组id - * @return com.yida.data.common.core.common.ResultBean> - * @author ZYJ - * @date 2023/2/3 17:21 - */ - @GetMapping("/in/userDevice/listUserDevice") - ResultBean> listUserDevice(@RequestParam Long userId, - @RequestParam Integer type, - @RequestParam Long deviceId, - @RequestParam Long faceGroupId); - - /** - * 删除设备和人员关联信息 - * - * @param userDevice 删除信息 - * @return com.yida.data.common.core.common.ResultBean - * @author ZYJ - * @date 2023/2/23 17:32 - */ - @PostMapping("/in/userDevice/deleteRelation") - ResultBean deleteRelation(@RequestBody EduUserDevice userDevice); } diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserFaceService.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserFaceService.java index b6cd24e..4034a42 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserFaceService.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/feign/RemoteUserFaceService.java @@ -16,15 +16,6 @@ import org.springframework.web.bind.annotation.RequestParam; fallbackFactory = RemoteUserFaceServiceFallback.class) public interface RemoteUserFaceService { - /** - * 获取用户人脸信息 - * - * @param userId 用户id - * @param type 用户类型,0-学生,1-职工 - * @return com.yida.data.common.core.common.ResultBean - * @author ZYJ - * @date 2023/2/2 16:59 - */ @GetMapping("/in/face/getFaceByUser") ResultBean getFaceByUser(@RequestParam("userId") Long userId, @RequestParam("type") Integer type); diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/DownLoadPicVO.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/DownLoadPicVO.java index 0f0fb10..af971bd 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/DownLoadPicVO.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/DownLoadPicVO.java @@ -14,7 +14,7 @@ public class DownLoadPicVO { @ApiModelProperty("是否上传完成,0-否,1-是") private Integer finish; - + @ApiModelProperty("下载总数") private Integer totalNum; diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/TeacherDeptVO.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/TeacherDeptVO.java index 93f6e01..f662bd5 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/TeacherDeptVO.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/TeacherDeptVO.java @@ -10,11 +10,6 @@ import lombok.Data; @ApiModel("教师班级学科关系") public class TeacherDeptVO { - @ApiModelProperty("学校id") - private Long schoolId; - @ApiModelProperty("学校名称") - private String schoolName; - @ApiModelProperty("校区id") private Long campusId; @ApiModelProperty("校区名称") @@ -35,9 +30,6 @@ public class TeacherDeptVO { @ApiModelProperty("班级名称") private String className; - @ApiModelProperty("班级人数") - private Long classStudentNum; - @ApiModelProperty("教师类型 1表示校区负责人,2表示年级负责人,3表示班主任,4表示任课老师,5表示学段负责人") private Integer type; diff --git a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/UserInfoVO.java b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/UserInfoVO.java index 3ff1e5e..4fb5407 100644 --- a/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/UserInfoVO.java +++ b/febs-server/edu-user/edu-user-api/src/main/java/com/yida/data/user/vo/UserInfoVO.java @@ -5,13 +5,8 @@ import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.io.Serializable; - @Data -public class UserInfoVO implements Serializable { - - private static final long serialVersionUID = -2183584074714449444L; - +public class UserInfoVO { @ApiModelProperty("用户名称") @ExcelProperty("用户名称") private String name; @@ -23,7 +18,4 @@ public class UserInfoVO implements Serializable { @ApiModelProperty("学号/手机号") @ExcelProperty("学号/手机号") private String number; - - @ApiModelProperty("设备名称") - private String deviceName; } diff --git a/febs-server/edu-user/edu-user-api/src/main/resources/META-INF/spring.factories b/febs-server/edu-user/edu-user-api/src/main/resources/META-INF/spring.factories index 8c9587f..8b3d2f5 100644 --- a/febs-server/edu-user/edu-user-api/src/main/resources/META-INF/spring.factories +++ b/febs-server/edu-user/edu-user-api/src/main/resources/META-INF/spring.factories @@ -7,7 +7,4 @@ com.yida.data.user.fallback.RemoteTeacherServiceFallback,\ com.yida.data.user.fallback.RemoteUserDeptServiceFallback,\ com.yida.data.user.fallback.RemoteUserDeviceFactoryServiceFallback,\ com.yida.data.user.fallback.RemoteUserDeviceServiceFallback,\ -com.yida.data.user.fallback.RemoteUserFaceServiceFallback,\ -com.yida.data.user.fallback.RemoteStudentApplyServiceFallback,\ -com.yida.data.user.fallback.RemoteFaceGroupDeviceServiceFallback,\ -com.yida.data.user.fallback.RemoteFaceGroupStrategyServiceFallback \ No newline at end of file +com.yida.data.user.fallback.RemoteUserFaceServiceFallback \ No newline at end of file diff --git a/febs-server/edu-user/edu-user-biz/pom.xml b/febs-server/edu-user/edu-user-biz/pom.xml index 1573d8b..60bbc0f 100644 --- a/febs-server/edu-user/edu-user-biz/pom.xml +++ b/febs-server/edu-user/edu-user-biz/pom.xml @@ -50,7 +50,7 @@ com.yida.data.attendance - attendance-api + edu-attendance-api ${febs-cloud.version} compile diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduCourseController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduCourseController.java index b66ec3a..9003ca3 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduCourseController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduCourseController.java @@ -2,13 +2,10 @@ package com.yida.data.user.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.entity.user.EduCourse; import com.yida.data.common.core.utils.Asserts; import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.user.service.EduCourseService; import org.springframework.web.bind.annotation.GetMapping; @@ -35,13 +32,14 @@ public class EduCourseController { @ApiOperation("根据学校查询课程") @GetMapping("/listCourse") + @ControllerLog(operation = "按学校查询课程") public ResultBean> listCourse(@ApiParam("学校id") @RequestParam Long schoolId) { return ResultBean.buildSuccess(eduCourseService.list(Wrappers.lambdaQuery(new EduCourse()).eq(EduCourse::getSchoolId, schoolId))); } @ApiOperation("添加课程") @PostMapping("/saveCourse") - @OperationLog(module = ModuleName.COURSE, methods = "添加课程", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "添加课程") public ResultBean saveCourse(@RequestBody EduCourse course) { Asserts.isNotNull(course.getCourseName(), "请输入科目名称"); Asserts.isTrue(eduCourseService.count(Wrappers.lambdaQuery() @@ -53,7 +51,7 @@ public class EduCourseController { @ApiOperation("删除课程") @PostMapping("/delCourse") - @OperationLog(module = ModuleName.COURSE, methods = "删除课程", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除课程") public ResultBean delCourse(@RequestBody List ids) { eduCourseService.removeByIds(ids); return ResultBean.buildSuccess(); diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStaffController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStaffController.java index f5271c9..858275d 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStaffController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStaffController.java @@ -5,25 +5,18 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; -import com.yida.data.common.core.common.ResultMsgType; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.entity.system.Dept; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.entity.user.*; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.common.core.utils.FileUtil; -import com.yida.data.common.core.utils.RedisUtil; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.system.feign.RemoteDeptService; import com.yida.data.user.dto.ListStaffDTO; -import com.yida.data.user.dto.ManagerDTO; import com.yida.data.user.dto.PageTeacherDTO; import com.yida.data.user.mapper.EduTeacherDeptMapper; import com.yida.data.user.service.EduStaffDeptService; @@ -34,13 +27,8 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import javax.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ehcache.impl.internal.concurrent.ConcurrentHashMap; -import org.springframework.http.MediaType; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -70,6 +58,7 @@ public class EduStaffController { @ApiOperation("查询教师列表数据") @GetMapping("/listTeacherPage") + @ControllerLog(operation = "分页查询教师列表") @PreAuthorize("hasAuthority('teacher:view')") public ResultBean> listTeacherPage(PageTeacherDTO dto) { dto.setSchoolId(FebsUtil.getTopDeptId()); @@ -79,16 +68,17 @@ public class EduStaffController { @ApiOperation("保存教师信息 新增或编辑") @PostMapping("/saveTeacher") - @OperationLog(module = ModuleName.STAFF, methods = "新增、修改教师", type = OperationLogTypeEnum.SAVE) + @ControllerLog(operation = "新增、修改教师") @PreAuthorize("hasAuthority('teacher:edit')") public ResultBean saveTeacher(@ApiParam("0-添加,1-编辑") @RequestParam("operation") Integer operation, - @RequestBody EduStaff eduStaff) { + @RequestBody EduStaff eduStaff) { eduStaffService.saveTeacher(operation, eduStaff); return ResultBean.buildSuccess(); } @ApiOperation("根据教师id查询教师详细信息") @GetMapping("/getTeacher") + @ControllerLog(operation = "根据教师id查询教师详细信息") @PreAuthorize("hasAuthority('teacher:view')") public ResultBean getTeacher(@ApiParam("教师Id") @RequestParam("teacherId") Long teacherId) { return ResultBean.buildSuccess(eduStaffService.findTeacher(teacherId)); @@ -102,7 +92,6 @@ public class EduStaffController { @ApiOperation("批量删除教师信息") @PostMapping("/delTeacherBatch") - @OperationLog(module = ModuleName.STAFF, methods = "批量删除教师信息", type = OperationLogTypeEnum.DELETE) public ResultBean delTeacherBatch(@RequestBody List teacherIds) { eduStaffService.delTeacherBatch(teacherIds); return ResultBean.buildSuccess(); @@ -110,7 +99,7 @@ public class EduStaffController { @ApiOperation("批量删除职工信息信息") @PostMapping("/delStaff") - @OperationLog(module = ModuleName.STAFF, methods = "批量删除职工信息信息", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "批量删除教师") @PreAuthorize("hasAuthority('staff:delete')") public ResultBean delTeacher(@RequestBody List staffIds) { eduStaffService.delStaffBatch(staffIds); @@ -119,6 +108,7 @@ public class EduStaffController { @ApiOperation("查询教师可见班级") @GetMapping("/listClassByTeacher") + @ControllerLog(operation = "查询教师可见班级") @PreAuthorize("hasAuthority('teacher:view')") public ResultBean> listClassByTeacher(@ApiParam("教师id") @RequestParam Long teacherId) { return ResultBean.buildSuccess(eduStaffService.listClassByTeacher(teacherId)); @@ -126,6 +116,7 @@ public class EduStaffController { @ApiOperation("查询教师可见班级和年级") @GetMapping("/listClassAndGradeByTeacher") + @ControllerLog(operation = "查询教师可见班级和年级") @PreAuthorize("hasAuthority('teacher:view')") public ResultBean> listClassAndGradeByTeacher(@ApiParam("教师id") @RequestParam Long teacherId) { return ResultBean.buildSuccess(eduStaffService.listClassAndGradeByTeacher(teacherId)); @@ -143,14 +134,14 @@ public class EduStaffController { CurrentUser currentUser = FebsUtil.getCurrentUser(); Long key = System.currentTimeMillis(); Map map = redisService - .hmget(CachePrefixConstant.IMPORT_TEACHER_KEY + currentUser.getUsername()); + .hmget(CachePrefixConstant.IMPORT_TEACHER_KEY + currentUser.getUsername()); if (CollUtil.size(map) >= 5) { throw new FebsException("导入文件已达上限,请稍后重试"); } redisService.hset(CachePrefixConstant.IMPORT_TEACHER_KEY + currentUser.getUsername(), key.toString(), 0); redisService.hset(CachePrefixConstant.IMPORT_TEACHER_FILE + currentUser.getUsername(), key.toString(), - file.getOriginalFilename()); -// eduStaffService.importTeacher(FileUtil.uploadMultipartFile(file), schoolId, currentUser, System.currentTimeMillis(), file.getName()); + file.getOriginalFilename()); + //eduStaffService.importTeacher(FileUtil.uploadMultipartFile(file), schoolId, currentUser, System.currentTimeMillis(), file.getName()); return ResultBean.buildSuccess(); } @@ -161,73 +152,37 @@ public class EduStaffController { } @ApiOperation("下载教师导入表格") - @PostMapping("/downloadTemplate") - public void downloadTemplate(HttpServletResponse response, - @ApiParam("模板类型,0-教师,1-职工") @RequestParam(required = false) Integer type) { + @GetMapping("/downloadTemplate") + @ControllerLog(operation = "下载教师导入表格") + public void downloadTemplate(HttpServletResponse response, @ApiParam("模板类型,0-教师,1-职工") Integer type) { eduStaffService.downloadTemplate(response, type); } @ApiOperation("下载错误报告") @GetMapping("/downloadError") public void downloadError(HttpServletResponse response, - @ApiParam("模板类型,0-教师,1-职工") Integer type, - @ApiParam("通知id") Long noticeId) { + @ApiParam("模板类型,0-教师,1-职工") Integer type, + @ApiParam("通知id") Long noticeId) { eduStaffService.downloadError(response, type, noticeId); } -// @ApiOperation("导入职工信息") -// @PostMapping("/importStaffInformation") -// public ResultBean importStaffInformation(MultipartFile file, @RequestParam("schoolId") Long schoolId) { -// CurrentUser currentUser = FebsUtil.getCurrentUser(); -// Long key = System.currentTimeMillis(); -// Map map = redisService.hmget(CachePrefixConstant.IMPORT_STAFF_FILE + currentUser.getUsername()); -// if (CollUtil.size(map) >= 5) { -// throw new FebsException("导入文件已达上限,请稍后重试"); -// } -// redisService.hset(CachePrefixConstant.IMPORT_STAFF_KEY + currentUser.getUsername(), key.toString(), -// 0); -// redisService.hset(CachePrefixConstant.IMPORT_STAFF_FILE + currentUser.getUsername(), key.toString(), -// file.getOriginalFilename()); -// eduStaffService.importStaff(FileUtil.uploadMultipartFile(file), schoolId, currentUser -// , key, file.getName()); -// return ResultBean.buildSuccess(); -// } -// -// @ApiOperation("导入职工图片") -// @PostMapping("/importStaffPic") -// public ResultBean importStaffPic(MultipartFile file, @RequestParam("schoolId") Long schoolId) { -// CurrentUser currentUser = FebsUtil.getCurrentUser(); -// Long key = System.currentTimeMillis(); -// Map map = redisService.hmget(CachePrefixConstant.IMPORT_STAFF_FILE + currentUser.getUsername()); -// if (CollUtil.size(map) >= 5) { -// throw new FebsException("导入文件已达上限,请稍后重试"); -// } -// redisService.hset(CachePrefixConstant.IMPORT_STAFF_KEY + currentUser.getUsername(), key.toString(), -// 0); -// redisService.hset(CachePrefixConstant.IMPORT_STAFF_FILE + currentUser.getUsername(), key.toString(), -// file.getOriginalFilename()); -// eduStaffService.importStaff(FileUtil.uploadMultipartFile(file), schoolId, currentUser -// , key, file.getName()); -// return ResultBean.buildSuccess(); -// } - -// @ApiOperation("导入职工") -// @PostMapping("/importStaff") -// public ResultBean importStaff(MultipartFile file, @RequestParam("schoolId") Long schoolId) { -// CurrentUser currentUser = FebsUtil.getCurrentUser(); -// Long key = System.currentTimeMillis(); -// Map map = redisService.hmget(CachePrefixConstant.IMPORT_STAFF_FILE + currentUser.getUsername()); -// if (CollUtil.size(map) >= 5) { -// throw new FebsException("导入文件已达上限,请稍后重试"); -// } -// redisService.hset(CachePrefixConstant.IMPORT_STAFF_KEY + currentUser.getUsername(), key.toString(), -// 0); -// redisService.hset(CachePrefixConstant.IMPORT_STAFF_FILE + currentUser.getUsername(), key.toString(), -// file.getOriginalFilename()); -// eduStaffService.importStaff(FileUtil.uploadMultipartFile(file), schoolId, currentUser -// , key, file.getName()); -// return ResultBean.buildSuccess(); -// } + @ApiOperation("导入职工") + @PostMapping("/importStaff") + public ResultBean importStaff(MultipartFile file, @RequestParam("schoolId") Long schoolId) { + CurrentUser currentUser = FebsUtil.getCurrentUser(); + Long key = System.currentTimeMillis(); + Map map = redisService.hmget(CachePrefixConstant.IMPORT_STAFF_FILE + currentUser.getUsername()); + if (CollUtil.size(map) >= 5) { + throw new FebsException("导入文件已达上限,请稍后重试"); + } + redisService.hset(CachePrefixConstant.IMPORT_STAFF_KEY + currentUser.getUsername(), key.toString(), + 0); + redisService.hset(CachePrefixConstant.IMPORT_STAFF_FILE + currentUser.getUsername(), key.toString(), + file.getOriginalFilename()); + eduStaffService.importStaff(FileUtil.uploadMultipartFile(file), schoolId, currentUser + , key, file.getName()); + return ResultBean.buildSuccess(); + } @ApiOperation("职工导入信息进度") @@ -245,33 +200,32 @@ public class EduStaffController { @ApiOperation("分页查询职工列表数据") @GetMapping("/listStaffPage") public ResultBean> listStaffPage( - @ApiParam("区域id") Long areaId, @ApiParam("学校id") Long schoolId, - @ApiParam("部门id") Long deptId, @ApiParam("身份,0-普通成员,1-上级") Integer isLeader, - @ApiParam("职务") String position, @ApiParam("姓名") String name, - @ApiParam("电话") String mobile, @ApiParam("性别,0-男,1-女") Integer sex, - @ApiParam("当前页码") @RequestParam(defaultValue = "1") Integer pageNum, - @ApiParam("页面大小") @RequestParam(defaultValue = "10") Integer pageSize, - @ApiParam("人脸采集状态.0-未采集, 1-已采集") Integer collectType) { + @ApiParam("区域id") Long areaId, @ApiParam("学校id") Long schoolId, + @ApiParam("部门id") Long deptId, @ApiParam("身份,0-普通成员,1-上级") Integer isLeader, + @ApiParam("职务") String position, @ApiParam("姓名") String name, + @ApiParam("电话") String mobile, @ApiParam("性别,0-男,1-女") Integer sex, + @ApiParam("当前页码") @RequestParam(defaultValue = "1") Integer pageNum, + @ApiParam("页面大小") @RequestParam(defaultValue = "10") Integer pageSize, + @ApiParam("人脸采集状态.0-未采集, 1-已采集") Integer collectType) { return ResultBean.buildSuccess(eduStaffService - .listStaffPage(Page.of(pageNum, pageSize), FebsUtil.getCurrentUser(), areaId, schoolId, deptId, isLeader, - position, name, mobile, sex, collectType)); + .listStaffPage(Page.of(pageNum, pageSize), FebsUtil.getCurrentUser(), areaId, schoolId, deptId, isLeader, + position, name, mobile, sex, collectType)); } @ApiOperation("导出职工数据") @PostMapping("/exportStaff") public void exportStaff( - @ApiParam("区域id") Long areaId, @ApiParam("学校id") Long schoolId, - @ApiParam("部门id") Long deptId, @ApiParam("身份,0-普通成员,1-上级") Integer isLeader, - @ApiParam("职务") String position, @ApiParam("姓名") String name, - @ApiParam("电话") String mobile, @ApiParam("性别,0-男,1-女") Integer sex, - @ApiParam("人脸采集状态.0-未采集, 1-已采集") Integer collectType, HttpServletResponse response) { + @ApiParam("区域id") Long areaId, @ApiParam("学校id") Long schoolId, + @ApiParam("部门id") Long deptId, @ApiParam("身份,0-普通成员,1-上级") Integer isLeader, + @ApiParam("职务") String position, @ApiParam("姓名") String name, + @ApiParam("电话") String mobile, @ApiParam("性别,0-男,1-女") Integer sex, + @ApiParam("人脸采集状态.0-未采集, 1-已采集") Integer collectType, HttpServletResponse response) { eduStaffService.exportStaff(areaId, schoolId, deptId, isLeader, position, - name, mobile, sex, collectType, response); + name, mobile, sex, collectType, response); } @ApiOperation("添加、修改职工") @PostMapping("/saveStaff") - @OperationLog(module = ModuleName.STAFF, methods = "添加、修改职工", type = OperationLogTypeEnum.SAVE) public ResultBean saveStaff(@RequestBody EduStaff staff) { //判断手机号是否存在 int number = eduStaffService.checkTeacherTelephone(staff); @@ -284,14 +238,15 @@ public class EduStaffController { @ApiOperation("根据教师id查询教师详情") @GetMapping("/findTeacherRole") - public ResultBean> findTeacherRole(@RequestParam Long teacherId, @RequestParam Integer type) { + public ResultBean> findTeacherRole(@RequestParam Long teacherId, @RequestParam Integer type) { + return ResultBean.buildSuccess(eduStaffService.findTeacherRole(teacherId)); } @ApiOperation("查询家长孩子关联的教师(班主任、任课老师)") @GetMapping("/listTeacherByParent") public ResultBean> listTeacherByParent(@RequestParam("parentId") Long parentId, - @RequestParam(value = "teacherName", required = false) String teacherName) { + @RequestParam(value = "teacherName", required = false) String teacherName) { List studentList = eduStudentService.listStudentByParent(parentId, null); List classIds = studentList.stream().map(x -> x.getClassId()).collect(Collectors.toList()); if (CollUtil.isNotEmpty(classIds)) { @@ -309,7 +264,7 @@ public class EduStaffController { @ApiModelProperty("查询教师列表") @GetMapping("/listTeacherBySchool") ResultBean> listTeacherBySchool(@ApiParam("学校id") @RequestParam("schoolId") Long schoolId, - @ApiParam("教师名称") @RequestParam("name") String name) { + @ApiParam("教师名称") @RequestParam("name") String name) { if (schoolId == null) { schoolId = FebsUtil.getCurrentUser().getDeptId(); } @@ -331,8 +286,8 @@ public class EduStaffController { @ApiOperation("查询教师可见课程") @GetMapping("/findTeacherCourseId") ResultBean> findTeacherCourseId(@RequestParam Long teacherId, - @RequestParam Long schoolId, - @RequestParam(required = false) Long classId) { + @RequestParam Long schoolId, + @RequestParam(required = false) Long classId) { if (ObjectUtils.isEmpty(classId)) { return ResultBean.buildSuccess(eduTeacherDeptMapper.selectCoursetList(null, schoolId, null)); } @@ -354,25 +309,15 @@ public class EduStaffController { @ApiOperation("按年级或者班级查询教师任课信息") @GetMapping("/listTeacherCourseByGrade") ResultBean> listTeacherCourseByGrade( - @ApiParam("年级id") @RequestParam(value = "gradeId", required = false) Long gradeId, - @ApiParam("班级id") @RequestParam(value = "classId", required = false) Long classId) { + @ApiParam("年级id") @RequestParam(value = "gradeId", required = false) Long gradeId, + @ApiParam("班级id") @RequestParam(value = "classId", required = false) Long classId) { return ResultBean.buildSuccess(eduStaffService.listTeacherCourseByGrade(gradeId, classId)); } - - @ApiOperation("根据年级ID查询教师管理的班级") - @GetMapping("/listClassByGradeIdAndTeacherId") - ResultBean> listClassByGradeIdAndTeacherId( - @NotNull(message = "不能为空") @ApiParam("年级id") @RequestParam(value = "gradeId", required = true) Long gradeId, - @NotNull(message = "不能为空") @ApiParam("教师id") @RequestParam(value = "staffId", required = true) Long staffId) { - return ResultBean.buildSuccess(eduStaffService.listClassByGradeIdAndTeacherId(gradeId, staffId)); - } - - @ApiOperation("根据班级或名称查询教师") @GetMapping("/listTeacherByClassAndName") ResultBean> listTeacherByClassAndName(@RequestParam("classId") Long classId, - @RequestParam("name") String name) { + @RequestParam("name") String name) { return ResultBean.buildSuccess(eduStaffService.listTeacherByClassAndName(classId, name)); } @@ -380,8 +325,8 @@ public class EduStaffController { @ApiOperation("根据根据部门id查询对应教职工") @GetMapping("/listStaffByDeptId") public ResultBean> listStaffByDeptId(@RequestParam(required = false) Long deptId, - @RequestParam(required = false) String nameOrPhone, - @RequestParam(required = false) Long schoolId) { + @RequestParam(required = false) String nameOrPhone, + @RequestParam(required = false) Long schoolId) { return ResultBean.buildSuccess(eduStaffService.listStaffByDeptId(deptId, nameOrPhone, schoolId)); } @@ -407,7 +352,7 @@ public class EduStaffController { @GetMapping("/staStaffDistribute") public ResultBean staStaffDistribute() { List schoolIds = remoteDeptService.getSchoolByArea(null, null).getData().stream().map(Dept::getDeptId).collect( - Collectors.toList()); + Collectors.toList()); return ResultBean.buildSuccess(eduStaffService.staStaffDistribute(schoolIds)); } @@ -415,7 +360,7 @@ public class EduStaffController { @GetMapping("/staStaffNum") public ResultBean staStaffNum() { List schoolIds = remoteDeptService.getSchoolByArea(null, null).getData().stream().map(Dept::getDeptId).collect( - Collectors.toList()); + Collectors.toList()); return ResultBean.buildSuccess(eduStaffService.staStaffNum(schoolIds)); } @@ -426,68 +371,9 @@ public class EduStaffController { */ @ApiOperation("查询教师可见部门") @GetMapping("/listDeptByTeacher") + @ControllerLog(operation = "查询教师可见部门") public ResultBean> listDeptByTeacher(@ApiParam("教师id") @RequestParam Long teacherId, - @ApiParam("type") @RequestParam Integer type) { - return ResultBean.buildSuccess(eduStaffService.listDeptByTeacher(teacherId, type)); - } - - /** - * @param sysUserId 系统用户Id - * @param type 1表示校区负责人,2表示年级负责人,3表示班主任,4表示任课老师,5表示学段负责人 - * @return - */ - @ApiOperation("查询系统用户可见部门") - @GetMapping("/listDeptBySysUserId") - public ResultBean> listDeptBySysUserId(@ApiParam("教师id") @RequestParam Long sysUserId, - @ApiParam("type") @RequestParam Integer type) { - EduStaff staff = eduStaffService.getOne(Wrappers.lambdaQuery(new EduStaff()) - .eq(EduStaff::getSysUserId, sysUserId) - .eq(EduStaff::getSchoolId, FebsUtil.getTopDeptId())); - return ResultBean.buildSuccess(eduStaffService.listDeptByTeacher(staff.getId(), type)); - } - - /** - * @param teacherId 教师ID - * @param type 1表示校区负责人,2表示年级负责人,3表示班主任,4表示任课老师,5表示学段负责人 - * @return - */ - @ApiOperation("查询教师可见部门") - @GetMapping("/listDeptByStaffId") - public ResultBean> listDeptByStaffId(@ApiParam("教师id") @RequestParam Long teacherId, - @ApiParam("type") @RequestParam Integer type) { - return ResultBean.buildSuccess(eduStaffService.listDeptByTeacher(teacherId, type)); - } - - @ApiOperation("根据职工id集合查询职工信息") - @PostMapping("/getStaffList") - public ResultBean> listDeptByStaffId(@RequestBody List staffIds) { - return ResultBean.buildSuccess(eduStaffService.list(Wrappers.lambdaQuery(new EduStaff()).in(EduStaff::getId, staffIds))); - } - - - @ApiOperation("导入职工数据-新版") - @PostMapping(value = "/importStaffDataExcel") - public ResultBean> importStaffDataExcel( - @ApiParam(value = "导入的excel文件", required = true) @RequestParam("file") MultipartFile file, - @ApiParam(value = "学校id", required = true) @RequestParam("schoolId") Long schoolId) { - // 当前时间时间戳 - long timestamp = System.currentTimeMillis(); - try { - // 导入迎新学生数据 - return eduStaffService.importStaff(file, schoolId, timestamp); - } catch (Exception e) { - log.error("导入迎新学生数据失败: {}", e.getMessage(), e); - return ResultBean.buildError(ResultMsgType.IMPORT_EXCEL_FAIL.getValue()); - } finally { - // 清空当前导入的redis学校数据 - redisService.del(RedisUtil.getDeptKey(String.valueOf(timestamp))); - } - } - - - @ApiOperation("查询dept负责人") - @PostMapping("/getDeptManager") - public ResultBean> getDeptManager(@RequestBody ManagerDTO dto) { - return ResultBean.buildSuccess(eduStaffService.getDeptManager(dto.getDeptIdList(), dto.getRuleId())); + @ApiParam("type") @RequestParam Integer type) { + return ResultBean.buildSuccess(eduStaffService.listDeptByTeacher(teacherId,type)); } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStudentController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStudentController.java index 5e4802c..e0006af 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStudentController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStudentController.java @@ -3,23 +3,19 @@ package com.yida.data.user.controller; import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yida.data.common.core.annotation.ControllerLog; import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.entity.system.Dept; import com.yida.data.common.core.entity.system.enums.DeptTypeEnum; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.entity.user.EduStudent; import com.yida.data.common.core.entity.user.EduTeacherDept; -import com.yida.data.common.core.enums.FileDealStatusEnum; import com.yida.data.common.core.exception.FebsException; -import com.yida.data.common.core.file.common.export.ExportExcelData; -import com.yida.data.common.core.file.common.export.ExportLargeData; import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.common.core.utils.FileUtil; import com.yida.data.log.annotation.OperationLog; @@ -30,7 +26,11 @@ import com.yida.data.user.dto.PageStudentDTO; import com.yida.data.user.service.EduParentService; import com.yida.data.user.service.EduStaffService; import com.yida.data.user.service.EduStudentService; -import com.yida.data.user.vo.*; +import com.yida.data.user.vo.DownLoadPicVO; +import com.yida.data.user.vo.ListParentByStudentIdsVO; +import com.yida.data.user.vo.ParentInfoVO; +import com.yida.data.user.vo.StaStudentVO; +import com.yida.data.user.vo.StudentClassInfoVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -65,24 +65,28 @@ public class EduStudentController { private final RedisService redisService; @ApiOperation("家长查询拥有的学生") + @OperationLog(module = ModuleName.USER, methods = "家长查询拥有的学生") @GetMapping("/listStudentByParent") + @ControllerLog(operation = "查询家长拥有的学生") public ResultBean> listStudentByParent(@ApiParam("家长id") @RequestParam Long parentId, - @ApiParam("应用编码") @RequestParam(required = false) String applyCode) { + @ApiParam("应用编码") @RequestParam(required = false) String applyCode) { return ResultBean.buildSuccess(parentId != null ? eduStudentService.listStudentByParent(parentId, applyCode) - : new ArrayList<>()); + : new ArrayList<>()); } @ApiOperation("查询学生列表数据") @GetMapping("/listStudentPage") + @ControllerLog(operation = "分页查询学生列表") @PreAuthorize("hasAuthority('student:view')") public ResultBean> listStudentPage(PageStudentDTO dto) { + dto.setSchoolId(FebsUtil.getTopDeptId()); IPage list = eduStudentService.findStudentPage(dto); return ResultBean.buildSuccess(list); } @ApiOperation("保存学生信息 新增或编辑") @PostMapping("/saveStudent") - @OperationLog(module = ModuleName.STUDENT, methods = "新增、修改学生", type = OperationLogTypeEnum.SAVE) + @ControllerLog(operation = "新增、修改学生") @PreAuthorize("hasAuthority('student:edit')") public ResultBean saveStudent(@RequestBody EduStudent eduStudent) { eduStudentService.saveStudent(eduStudent, FebsUtil.getCurrentUser(), false); @@ -91,6 +95,7 @@ public class EduStudentController { @ApiOperation("根据学生id查询学生详情") @GetMapping("/getStudent") + @ControllerLog(operation = "按id查询学生详情") public ResultBean getStudent(@ApiParam("学生id") @RequestParam("id") Long id) { EduStudent eduStudent = eduStudentService.getStudent(id); return ResultBean.buildSuccess(eduStudent); @@ -98,9 +103,9 @@ public class EduStudentController { @ApiOperation("批量删除学生") @PostMapping("/delStudentBatch") - @OperationLog(module = ModuleName.STUDENT, methods = "批量删除学生", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "批量删除学生") @PreAuthorize("hasAuthority('student:delete')") - public ResultBean delStudentBatch(@RequestBody List ids) { + public ResultBean delTeacherBatchIds(@RequestBody List ids) { //批量删除学生信息 eduStudentService.delStudentBatchIds(ids, false); return ResultBean.buildSuccess(); @@ -108,8 +113,9 @@ public class EduStudentController { @ApiOperation("导入学生(压缩包导入)") @PostMapping("/import") + @ControllerLog(operation = "导入学生") public ResultBean importStudent(@RequestParam("file") MultipartFile file, - @RequestParam("schoolId") Long schoolId) { + @RequestParam("schoolId") Long schoolId) { long key = System.currentTimeMillis(); CurrentUser currentUser = FebsUtil.getCurrentUser(); Map map = redisService.hmget(CachePrefixConstant.IMPORT_STUDENT_KEY + currentUser.getUsername()); @@ -118,9 +124,9 @@ public class EduStudentController { } redisService.hset(CachePrefixConstant.IMPORT_STUDENT_KEY + currentUser.getUsername(), Long.toString(key), 0); redisService.hset(CachePrefixConstant.IMPORT_STUDENT_FILE + currentUser.getUsername(), Long.toString(key), - file.getOriginalFilename()); + file.getOriginalFilename()); eduStudentService.importStudent(FileUtil.uploadMultipartFile(file), currentUser, - schoolId, System.currentTimeMillis(), file.getName()); + schoolId, System.currentTimeMillis(), file.getName()); return ResultBean.buildSuccess(); } @@ -142,38 +148,17 @@ public class EduStudentController { eduStudentService.downloadTemplate(response, FebsUtil.getCurrentUser()); } - @ApiOperation("校园卡号导入") - @PostMapping("/importCard") - public ResultBean importCard(@RequestParam("file") MultipartFile file, - @RequestParam("schoolId") Long schoolId) { - long key = System.currentTimeMillis(); - CurrentUser currentUser = FebsUtil.getCurrentUser(); - Map map = redisService.hmget(CachePrefixConstant.IMPORT_STUDENT_CARD_NUMBER_KEY + - currentUser.getUsername()); - if (CollUtil.size(map) >= 5) { - throw new FebsException("上传文件已达最大值,请稍后重试"); - } - redisService.hset(CachePrefixConstant.IMPORT_STUDENT_CARD_NUMBER_KEY + currentUser.getUsername(), Long.toString(key), 0); - eduStudentService.importCard(FileUtil.uploadMultipartFile(file), currentUser, - schoolId, System.currentTimeMillis(), file.getName()); - return ResultBean.buildSuccess(); - } - - @ApiOperation("下载导入模板(校园卡号)") - @GetMapping("/downloadCardTemplate") - public void downloadCardTemplate(HttpServletResponse response) { - eduStudentService.downloadCardTemplate(response, FebsUtil.getCurrentUser()); - } - @ApiOperation("统计班上学生数量") @GetMapping("/countStudentNum") + @ControllerLog(operation = "统计班级学生数量") public ResultBean countStudentNum(@ApiParam("班级id") Long classId) { return ResultBean.buildSuccess( - eduStudentService.count(Wrappers.lambdaQuery(new EduStudent()).eq(EduStudent::getClassId, classId))); + eduStudentService.count(Wrappers.lambdaQuery(new EduStudent()).eq(EduStudent::getClassId, classId))); } @ApiOperation("根据企业微信通讯录初始化学生") @PostMapping("/initStudent") + @ControllerLog(operation = "根据企业微信通讯录初始化学生") @PreAuthorize("hasAuthority('student:edit')") public ResultBean initStudent(@RequestBody List student) { eduStudentService.initStudent(student); @@ -183,18 +168,18 @@ public class EduStudentController { @ApiOperation("查询学生班级信息") @GetMapping("/getClassInfoByStudent") public ResultBean getClassInfoByStudent(@ApiParam("学生id") Long studentId, - @ApiParam("家长手机号") String parentMobile) { + @ApiParam("家长手机号") String parentMobile) { return ResultBean.buildSuccess(eduStudentService.getClassInfoByStudent(studentId, parentMobile)); } @ApiOperation("根据教师查询家长列表") @GetMapping("/listParentByTeacher") public ResultBean listParentByTeacher(@ApiParam("教师id") Long teacherId, - @ApiParam("家长名称") String parentName) { + @ApiParam("家长名称") String parentName) { List teacherRole = eduStaffService.listTeacherDept(teacherId); if (CollUtil.isNotEmpty(teacherRole)) { List classIds = teacherRole.stream().map(EduTeacherDept::getClassId).filter(Objects::nonNull) - .collect(Collectors.toList()); + .collect(Collectors.toList()); if (CollUtil.isNotEmpty(classIds)) { List parentInfoVOList = eduParentService.listParentByClass(classIds, parentName); return ResultBean.buildSuccess(parentInfoVOList); @@ -234,35 +219,16 @@ public class EduStudentController { @ApiOperation("导出学生数据") @PostMapping("/exportStudent") - public ResultBean exportStudent(@RequestBody PageStudentDTO dto) { - - String key = IdUtil.simpleUUID(); - ExportExcelData vo = ExportExcelData.builder() - .key(key) - .exportStatus(FileDealStatusEnum.DEALING.getStatus()) - // 初始化数据 - .total(1) - .finish(0) - .build(); - - redisService.hset(CachePrefixConstant.EXPORT_STUDENT_DATA, key, vo); - // 异步导出学生数据 - eduStudentService.exportStudent(dto, key); - return ResultBean.buildSuccess(vo); - } - - @ApiOperation("查询导出学生详情") - @GetMapping("/getStudentExportInfo") - public ResultBean getExportRosterPicInfo(@RequestParam String key) { - return ResultBean.buildSuccess(eduStudentService.getStudentExportInfo(key)); + public void exportStudent(@RequestBody PageStudentDTO dto, HttpServletResponse response) { + eduStudentService.exportStudent(dto, response); } @ApiOperation("解除学生与宿舍的绑定") @PostMapping("/unbindDormRoom") public ResultBean unbindDormRoom(@RequestBody List dormIds) { eduStudentService.update(Wrappers.lambdaUpdate() - .in(EduStudent::getDormRoomId, dormIds) - .set(EduStudent::getDormRoomId, null)); + .in(EduStudent::getDormRoomId, dormIds) + .set(EduStudent::getDormRoomId, null)); return ResultBean.buildSuccess(); } @@ -270,7 +236,7 @@ public class EduStudentController { @PostMapping("/staStudentDistribu") public ResultBean staStudentDistribu() { List schoolIds = remoteDeptService.getSchoolByArea(null, null).getData().stream().map(Dept::getDeptId).collect( - Collectors.toList()); + Collectors.toList()); return ResultBean.buildSuccess(eduStudentService.staStudentDistribu(schoolIds)); } @@ -289,27 +255,5 @@ public class EduStudentController { return ResultBean.buildSuccess(dto); } - @ApiOperation("批量导入学生类型") - @PostMapping("/importStudentUpdateType") - public ResultBean importStudentUpdateType(@RequestParam("file") MultipartFile file, - @RequestParam("schoolId") Long schoolId) { - eduStudentService.importStudentUpdateType(file, schoolId); - return ResultBean.buildSuccess(); - } - @ApiOperation("批量导入学生类型:导入进度") - @GetMapping("/importStudentDormPercent") - public ResultBean importStudenrTypePercent() { - CurrentUser currentUser = FebsUtil.getCurrentUser(); - return ResultBean.buildSuccess(redisService.hget(CachePrefixConstant.IMPORT_STUDENT_TYPE, - currentUser.getUserId().toString())); - } - - @ApiOperation("根据班级ID查询学生") - @GetMapping("/listStudentByClassId") - public ResultBean> listStudentByClassId( - @ApiParam(required = true, value = "班级ID") @RequestParam Long classId) { - List studentList = eduStudentService.listStudentByClassId(ListStudentDTO.builder().classId(classId).build()); - return ResultBean.buildSuccess(studentList); - } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStudentDormController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStudentDormController.java index 1357985..11df8fd 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStudentDormController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduStudentDormController.java @@ -1,15 +1,12 @@ package com.yida.data.user.controller; import cc.mrbird.febs.common.redis.service.RedisService; -import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.entity.user.EduStudent; -import com.yida.data.common.core.enums.FileDealStatusEnum; import com.yida.data.common.core.exception.FebsException; -import com.yida.data.common.core.file.common.export.ExportExcelData; import com.yida.data.common.core.utils.Asserts; import com.yida.data.common.core.utils.ExcelUtil; import com.yida.data.common.core.utils.FebsUtil; @@ -17,7 +14,6 @@ import com.yida.data.common.core.utils.FileUtil; import com.yida.data.common.core.vo.ImportPercentVO; import com.yida.data.user.dto.ExchangeDormDTO; import com.yida.data.user.dto.ImportStudentDormDTO; -import com.yida.data.user.dto.PageStudentDTO; import com.yida.data.user.dto.PageStudentDormDTO; import com.yida.data.user.service.EduStudentDormService; import com.yida.data.user.service.EduStudentService; @@ -30,7 +26,11 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @Api(tags = "学生住宿管理") @@ -119,29 +119,4 @@ public class EduStudentDormController { throw new FebsException("下载住宿学生导入模板失败"); } } - - @ApiOperation("导出宿舍数据") - @PostMapping("/exportStudentDorm") - public ResultBean exportStudentDorm(@RequestBody PageStudentDormDTO dto) { - - String key = IdUtil.simpleUUID(); - ExportExcelData vo = ExportExcelData.builder() - .key(key) - .exportStatus(FileDealStatusEnum.DEALING.getStatus()) - // 初始化数据 - .total(1) - .finish(0) - .build(); - - redisService.hset(CachePrefixConstant.EXPORT_STUDENT_DORM_DATA, key, vo); - // 异步导出宿舍数据 - eduStudentDormService.exportStudentDorm(dto, key); - return ResultBean.buildSuccess(vo); - } - - @ApiOperation("查询导出学生宿舍详情") - @GetMapping("/getStudentDormExportInfo") - public ResultBean getStudentDormExportInfo(@RequestParam String key) { - return ResultBean.buildSuccess(eduStudentDormService.getStudentDormExportInfo(key)); - } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserDeptController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserDeptController.java index e90cb3e..98907ed 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserDeptController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserDeptController.java @@ -7,7 +7,6 @@ import com.yida.data.common.core.entity.QueryRequest; import com.yida.data.common.core.entity.system.Dept; import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.entity.user.EduCollectData; -import com.yida.data.common.core.entity.user.EduStudent; import com.yida.data.common.core.entity.user.EduUserDept; import com.yida.data.common.core.entity.user.EduUserDeptStandardGrade; import com.yida.data.common.core.entity.user.enums.SectionTypeEnum; @@ -15,17 +14,12 @@ import com.yida.data.common.core.enums.IncludeTypeEnum; import com.yida.data.log.annotation.OperationLog; import com.yida.data.system.vo.ClassInfoVO; import com.yida.data.user.dto.*; -import com.yida.data.user.dto.h5.ListUserDeptAttendanceDTO; import com.yida.data.user.service.EduUserDeptService; import com.yida.data.user.vo.AllDeptInfoVO; -import com.yida.data.user.vo.ClassAttendanceDataVO; import com.yida.data.user.vo.CollectDataVO; -import com.yida.data.user.vo.TeacherDeptVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.MediaType; @@ -60,6 +54,7 @@ public class EduUserDeptController { */ @ApiOperation("查询父级家校部门") @GetMapping("/getParent") + @OperationLog(module = ModuleName.USER, methods = "查询父级家校部门") public ResultBean getParent(@ApiParam("家校部门id") @RequestParam Long deptId) { return ResultBean.buildSuccess(this.eduUserDeptService.getById(this.eduUserDeptService.getById(deptId).getParentId())); } @@ -74,6 +69,7 @@ public class EduUserDeptController { */ @ApiOperation("查询所有子节点") @GetMapping("/findListByParent") + @OperationLog(module = ModuleName.USER, methods = "查询所有子节点") public ResultBean> findListByParent(@ApiParam("家校部门id") @RequestParam Long deptId) { return ResultBean.buildSuccess(this.eduUserDeptService.findListByParent(Collections.singletonList(deptId))); } @@ -88,6 +84,7 @@ public class EduUserDeptController { */ @ApiOperation("查询直接子节点") @GetMapping("/findChildByParent") + @OperationLog(module = ModuleName.USER, methods = "查询子节点") public ResultBean> findChildByParent(@ApiParam("家校部门父节点id,不能为空") @RequestParam Long deptId) { return ResultBean.buildSuccess(this.eduUserDeptService.findChildByParent(deptId)); } @@ -95,7 +92,7 @@ public class EduUserDeptController { /** * 向下查询指定家校部门类型的家校部门数据(可查询非直接子家校部门) * - * @param parentId 父节点id schoolId 为 负数 + * @param parentId 父节点id * @param type 子节点类型, 1表示班级,2表示年级,3表示学段,4表示校区, 默认所有直接子节点 * @return com.yida.data.common.core.common.ResultBean> * @author ZYJ @@ -103,34 +100,20 @@ public class EduUserDeptController { */ @ApiOperation("向下查询指定家校部门类型的家校部门数据(可查询非直接子家校部门)") @GetMapping("/findChildByParentAndType") + @OperationLog(module = ModuleName.USER, methods = "向下查询到要查询的家校部门类别的子家校部门") public ResultBean> findChildByParentAndType(@ApiParam("父节点id,不能为空") @RequestParam Long parentId, @ApiParam("子节点类型, 1表示班级,2表示年级,3表示学段,4表示校区, 默认所有直接子节点") Integer type) { return ResultBean .buildSuccess(this.eduUserDeptService.findChildByParentAndType(Collections.singletonList(parentId), type)); } - @ApiOperation("根据用户ID查询可见班级采集数据统计") @GetMapping("/findClassChildByParent") + @OperationLog(module = ModuleName.USER, methods = "根据用户ID查询可见班级采集数据统计") public ResultBean> findVisibleClassByUserId(@ApiParam("用户主键ID") @RequestParam Long staffId) { return ResultBean.buildSuccess(this.eduUserDeptService.findVisibleClassByUserId(staffId)); } - @ApiOperation("根据用户ID查询可见班级考勤统计数据") - @PostMapping("/findClassAttendanceByUserId") - public ResultBean> findClassAttendanceByUserId(@RequestBody ListUserDeptAttendanceDTO dto) { - return ResultBean.buildSuccess(this.eduUserDeptService - .findClassAttendanceByUserId(dto.getStaffId(), dto.getDate())); - } - - @ApiOperation("查询班级详细宿舍考勤数据") - @PostMapping("/findClassAttendanceDetailByDeptId") - public ResultBean> findClassAttendanceDetailByDeptId(@RequestBody ListUserDeptAttendanceDTO dto) { - return ResultBean.buildSuccess(this.eduUserDeptService - .findClassAttendanceDetailByDeptId(dto.getDeptId(), dto.getType(), dto.getDate())); - } - - /** * 根据家校部门id查询所属学校 * @@ -141,6 +124,7 @@ public class EduUserDeptController { */ @ApiOperation("根据家校部门id查询所属学校") @GetMapping("findSchoolByDept") + @OperationLog(module = ModuleName.USER, methods = "根据家校部门id查询所属学校") public ResultBean findSchoolByDept(@ApiParam("父节点id,不能为空") @RequestParam Long deptId) { return ResultBean.buildSuccess(this.eduUserDeptService.findSchoolByDept(deptId)); } @@ -157,6 +141,7 @@ public class EduUserDeptController { */ @ApiOperation("查询家校部门") @GetMapping("/userDeptList") + @OperationLog(module = ModuleName.USER, methods = "查询家校部门") public FebsResponse userDeptList(QueryRequest request, EduUserDept dept, @ApiParam("是否包含班级. 0:包含, 1:不包含.不传默认查询全部") String includeType) { Map deptList = this.eduUserDeptService.findDeptList(request, dept, includeType); @@ -173,6 +158,7 @@ public class EduUserDeptController { */ @ApiOperation("根据id查询家校部门") @GetMapping("/getInfoById") + @OperationLog(module = ModuleName.USER, methods = "根据id查询家校部门") public ResultBean getInfoById(@ApiParam("家校部门id") @RequestParam Long deptId) { return ResultBean.buildSuccess(this.eduUserDeptService.getById(deptId)); } @@ -187,6 +173,7 @@ public class EduUserDeptController { */ @ApiOperation("家校部门树(若当前登陆角色是学校负责人则不用传递参数)") @GetMapping("/getUserDeptTree") + @OperationLog(module = ModuleName.USER, methods = "家校部门树") public ResultBean getUserDeptTree(@ApiParam("根节点Id") Long deptId) { return ResultBean.buildSuccess(this.eduUserDeptService.getUserDeptTree(deptId)); } @@ -206,6 +193,7 @@ public class EduUserDeptController { */ @ApiOperation("根据各层名称查询班级信息") @GetMapping("/findClassInfoByName") + @OperationLog(module = ModuleName.USER, methods = "根据各层名称查询班级信息") public ResultBean> findClassInfoByName( Long schoolId, String campusName, String sectionName, String gradeName, String className) { @@ -223,6 +211,7 @@ public class EduUserDeptController { */ @ApiOperation("查询班级信息") @GetMapping("/getClassInfo") + @OperationLog(module = ModuleName.USER, methods = "查询班级信息") public ResultBean getClassInfo(Long classId) { return ResultBean.buildSuccess(this.eduUserDeptService.getClassInfo(classId)); } @@ -237,7 +226,7 @@ public class EduUserDeptController { */ @ApiOperation(value = "新增学区信息(包含学段、年级和班级)", consumes = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "addCampus", consumes = MediaType.APPLICATION_JSON_VALUE) - @OperationLog(module = ModuleName.USER_DEPT, methods = "新增学区信息(包含学段、年级和班级)", type = OperationLogTypeEnum.INSERT) + @OperationLog(module = ModuleName.USER, methods = "新增学区信息(包含学段、年级和班级)", type = OperationLogTypeEnum.INSERT) public ResultBean addCampus(@RequestBody SaveCampusDTO saveCampusDTO) { this.eduUserDeptService.addCampus(saveCampusDTO); return ResultBean.buildSuccess(); @@ -253,7 +242,7 @@ public class EduUserDeptController { */ @ApiOperation(value = "新增学段信息(包含年级和班级)", consumes = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "addSection", consumes = MediaType.APPLICATION_JSON_VALUE) - @OperationLog(module = ModuleName.USER_DEPT, methods = "新增学段信息(包含年级和班级)", type = OperationLogTypeEnum.INSERT) + @OperationLog(module = ModuleName.USER, methods = "新增学段信息(包含年级和班级)", type = OperationLogTypeEnum.INSERT) public ResultBean addSection(@RequestBody SectionDTO sectionDTO) { this.eduUserDeptService.addSection(sectionDTO, true, false, null, false); return ResultBean.buildSuccess(); @@ -269,7 +258,7 @@ public class EduUserDeptController { */ @ApiOperation(value = "新增年级信息(包含班级)", consumes = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "addGrade", consumes = MediaType.APPLICATION_JSON_VALUE) - @OperationLog(module = ModuleName.USER_DEPT, methods = "新增年级信息(包含班级)", type = OperationLogTypeEnum.INSERT) + @OperationLog(module = ModuleName.USER, methods = "新增年级信息(包含班级)", type = OperationLogTypeEnum.INSERT) public ResultBean addGrade(@RequestBody SaveGradeDTO saveGradeDTO) { this.eduUserDeptService.addGrade(saveGradeDTO); return ResultBean.buildSuccess(); @@ -285,7 +274,7 @@ public class EduUserDeptController { */ @ApiOperation(value = "页面添加家校部门", consumes = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "addUserDept", consumes = MediaType.APPLICATION_JSON_VALUE) - @OperationLog(module = ModuleName.USER_DEPT, methods = "添加家校部门", type = OperationLogTypeEnum.INSERT) + @OperationLog(module = ModuleName.USER, methods = "添加家校部门", type = OperationLogTypeEnum.INSERT) public ResultBean addUserDept(@RequestBody AddUserDeptDTO addUserDeptDTO) { this.eduUserDeptService.addUserDept(addUserDeptDTO); return ResultBean.buildSuccess(); @@ -301,7 +290,7 @@ public class EduUserDeptController { */ @ApiOperation(value = "编辑家校部门", consumes = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "editUserDept", consumes = MediaType.APPLICATION_JSON_VALUE) - @OperationLog(module = ModuleName.USER_DEPT, methods = "编辑家校部门", type = OperationLogTypeEnum.UPDATE) + @OperationLog(module = ModuleName.USER, methods = "编辑家校部门", type = OperationLogTypeEnum.UPDATE) public ResultBean editUserDept(@RequestBody EditUserDeptDTO editUserDeptDTO) { this.eduUserDeptService.editUserDept(editUserDeptDTO); return ResultBean.buildSuccess(); @@ -317,7 +306,7 @@ public class EduUserDeptController { */ @ApiOperation(value = "批量删除家校部门") @GetMapping("/deleteUserDeptBatch") - @OperationLog(module = ModuleName.USER_DEPT, methods = "批量删除家校部门", type = OperationLogTypeEnum.DELETE) + @OperationLog(module = ModuleName.USER, methods = "批量删除家校部门", type = OperationLogTypeEnum.DELETE) public ResultBean deleteUserDeptBatch( @ApiParam(value = "家校部门id字符串", required = true) @RequestParam String deptIds, @ApiParam(value = "学校id", required = true) @RequestParam Long schoolId) { @@ -335,6 +324,7 @@ public class EduUserDeptController { */ @ApiOperation(value = "根据学段类型查询对应的标准年级") @GetMapping("/listStandardGradeBySectionType") + @OperationLog(module = ModuleName.USER, methods = "根据学段类型查询对应的标准年级") public ResultBean> listStandardGradeBySectionType( @ApiParam(value = "学段类型", required = true) @RequestParam String sectionType) { return ResultBean.buildSuccess(this.eduUserDeptService.listStandardGradeBySectionType(sectionType)); @@ -343,16 +333,9 @@ public class EduUserDeptController { @ApiOperation("向上查询父级部门") @GetMapping("/findParentUp") + @OperationLog(module = ModuleName.USER, methods = "向上查询父级部门") public ResultBean findParentUp(@ApiParam("部门id") Long deptId, @ApiParam("最上级部门类型,1表示班级,2表示年级,3表示学段,4表示校区") Integer type) { return ResultBean.buildSuccess(eduUserDeptService.findParentUp(deptId, type)); } - - - @ApiOperation("查询职工管理班级,包含班级学生人数") - @GetMapping("/listClassByStaffId") - public ResultBean> listClassByStaffId(@RequestParam Long staffId) { - return ResultBean.buildSuccess(eduUserDeptService.listClassByStaffId(staffId)); - } - } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserDeviceController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserDeviceController.java index becf056..68792fd 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserDeviceController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserDeviceController.java @@ -1,11 +1,8 @@ package com.yida.data.user.controller; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.entity.user.EduUserDevice; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.user.service.EduUserDeviceService; import org.springframework.web.bind.annotation.PostMapping; @@ -27,7 +24,7 @@ public class EduUserDeviceController { @ApiOperation("保存、更新用户设备联系信息") @PostMapping("/saveUserDevice") - @OperationLog(module = ModuleName.USER, methods = "保存、更新用户和厂商的关联信息", type = OperationLogTypeEnum.SAVE) + @ControllerLog(operation = "保存、更新用户和厂商的关联信息") public ResultBean saveUserDevice(@RequestBody EduUserDevice userDevice) { eduUserDeviceService.saveUserDevice(userDevice); return ResultBean.buildSuccess(); diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserFaceController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserFaceController.java index 448ae49..69734be 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserFaceController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/EduUserFaceController.java @@ -1,6 +1,7 @@ package com.yida.data.user.controller; import cc.mrbird.febs.common.redis.service.RedisService; +import cn.hutool.core.util.ArrayUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yida.data.common.core.common.ResultBean; @@ -32,6 +33,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; import java.util.List; /** @@ -55,17 +57,15 @@ public class EduUserFaceController { @ApiOperation("分页查询人脸组列表") @GetMapping("/listFaceGroupPage") - public ResultBean> listFaceGroupPage( - @ApiParam("组名") @RequestParam(required = false) String groupName, - @ApiParam("组id") @RequestParam(required = false) Long groupId, - @ApiParam("当前页码") @RequestParam(defaultValue = "1") Integer pageNum, - @ApiParam("页面大小") @RequestParam(defaultValue = "10") Integer pageSize) { + public ResultBean> listFaceGroupPage(@ApiParam("组名") @RequestParam(required = false) String groupName, + @ApiParam("当前页码") @RequestParam(defaultValue = "1") Integer pageNum, + @ApiParam("页面大小") @RequestParam(defaultValue = "10") Integer pageSize) { Long schoolId = null; CurrentUser currentUser = FebsUtil.getCurrentUser(); if (currentUser.getDeptType() == 0) { schoolId = currentUser.getDeptId(); } - return ResultBean.buildSuccess(eduFaceGroupService.listFaceGroupPage(new Page(pageNum, pageSize), groupName, schoolId, groupId)); + return ResultBean.buildSuccess(eduFaceGroupService.listFaceGroupPage(new Page(pageNum, pageSize), groupName, schoolId)); } @ApiOperation("保存、修改人脸组") @@ -109,10 +109,9 @@ public class EduUserFaceController { Long schoolId, Long groupId, @ApiParam("当前页码") @RequestParam(defaultValue = "1") Integer pageNum, @ApiParam("页面大小") @RequestParam(defaultValue = "10") Integer pageSize, - Long dormId, Long dormRoomId, - Long campusId, Long sectionId, Long gradeId, Long classId) { + Long dormId, Long dormRoomId) { return ResultBean.buildSuccess(eduFaceGroupUserService.listStudentNotImport(new Page(pageNum, - pageSize), depId, type, sex, keyword, schoolId, groupId, dormId, dormRoomId, campusId, sectionId, gradeId, classId)); + pageSize), depId, type, sex, keyword, schoolId, groupId, dormId, dormRoomId)); } @@ -131,14 +130,14 @@ public class EduUserFaceController { @ApiOperation("学生全部导入") @GetMapping("/saveAllStudent") public ResultBean saveAllStudent( + @RequestParam(required = false) Long[] classId, @ApiParam("0-走读,1-寄宿") @RequestParam(required = false) Integer type, @ApiParam("0-男,1-女") @RequestParam(required = false) Integer sex, @RequestParam(required = false) String keyword, Long schoolId, Long groupId, - Long dormId, Long dormRoomId, - Long campusId, Long sectionId, Long gradeId, Long classId) { - eduFaceGroupUserService.saveAllStudent(type, sex, keyword, schoolId, groupId, dormId, dormRoomId, - campusId, sectionId, gradeId, classId); + Long dormId, Long dormRoomId) { + eduFaceGroupUserService.saveAllStudent(ArrayUtil.isNotEmpty(classId) ? Arrays.asList(classId) + : null, type, sex, keyword, schoolId, groupId, dormId, dormRoomId); return ResultBean.buildSuccess(); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserDeptController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserDeptController.java index 331d309..5300aa3 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserDeptController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserDeptController.java @@ -1,10 +1,8 @@ package com.yida.data.user.controller; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.user.EduUserDept; import com.yida.data.common.core.entity.user.enums.UserDeptTypeEnum; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.user.dto.DeleteUserDeptDTO; import com.yida.data.user.service.DaHuaSyncService; import com.yida.data.user.service.EduUserDeptService; @@ -15,7 +13,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -47,15 +44,7 @@ public class InEduUserDeptController { @GetMapping("/syncUserDept") public ResultBean syncUserDept() { log.info("同步企业微信家校部门数据"); - this.eduUserDeptService.syncUserDept(null); - return ResultBean.buildSuccess(); - } - - @ApiOperation("同步指定学校企业微信家校部门") - @GetMapping("/syncSchoolUserDept") - public ResultBean syncSchoolUserDept(@RequestParam Long schoolId) { - log.info("同步企业微信家校部门数据: schoolId: [{}]", schoolId); - eduUserDeptService.syncUserDept(schoolId); + this.eduUserDeptService.syncUserDept(); return ResultBean.buildSuccess(); } @@ -139,13 +128,6 @@ public class InEduUserDeptController { return ResultBean.buildSuccess(this.eduUserDeptService.getParentByDeptId(deptId)); } - - @ApiOperation("根据家校部门id查询全部上级家校部门信息") - @GetMapping("/getParentListByDeptId") - public ResultBean> getParentListByDeptId(@RequestParam Long deptId) { - return ResultBean.buildSuccess(this.eduUserDeptService.getParentListByDeptId(deptId)); - } - /** * 批量保存家校部门 * @@ -195,7 +177,8 @@ public class InEduUserDeptController { } /** - * 向下查询指定家校部门类型的家校部门id(可查询非直接子家校部门) 未毕业家校部门 + * 向下查询指定家校部门类型的家校部门id(可查询非直接子家校部门) + * 未毕业家校部门 * * @param parentId 父节点id * @param type 家校部门类型 {@link UserDeptTypeEnum} @@ -206,32 +189,7 @@ public class InEduUserDeptController { @ApiOperation("向下查询指定家校部门类型的家校部门数据(可查询非直接子家校部门)") @GetMapping("/findChildIdByParentAndType") public ResultBean> findChildIdByParentAndType(@ApiParam("父节点id,不能为空") @RequestParam Long parentId, - @ApiParam("子节点类型. 默认所有直接子节点") Integer type) { - List resultList = new ArrayList<>(); - return ResultBean.buildSuccess( - eduUserDeptService.findChildIdByParentAndType(Collections.singletonList(parentId), type, resultList)); + @ApiParam("子节点类型. 默认所有直接子节点") Integer type) { + return ResultBean.buildSuccess(eduUserDeptService.findChildIdByParentAndType(Collections.singletonList(parentId), type)); } - - @ApiOperation("查询所有子节点") - @GetMapping("/findListByParent") - public ResultBean> findListByParent(@RequestParam Long deptId) { - return ResultBean.buildSuccess( - eduUserDeptService.findListByParent(Collections.singletonList(deptId))); - } - - - /** - * 家校部门树 - * - * @param deptIds 根节点Id集合 - * @return - */ - @ApiOperation("家校部门树(根节点多个)") - @PostMapping("/getUserDeptTree") - @OperationLog(module = ModuleName.USER, methods = "家校部门树") - public ResultBean getUserDeptTree(@ApiParam("根节点Id") @RequestBody List deptIds) { - return ResultBean.buildSuccess(this.eduUserDeptService.getUserDeptTree(deptIds)); - } - - } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserDeviceController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserDeviceController.java index faa65a0..f292c0c 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserDeviceController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserDeviceController.java @@ -1,15 +1,19 @@ package com.yida.data.user.controller; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.user.EduUserDevice; import com.yida.data.user.service.EduUserDeviceService; + +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; - -import java.util.List; @Api(tags = "人脸下发记录(不鉴权)") @RestController @@ -20,33 +24,8 @@ public class InEduUserDeviceController { @ApiOperation("批量保存") @PostMapping("/batchSave") - public ResultBean batchSave(@RequestBody List list) { + public ResultBean batchSave(@RequestBody List list) { eduUserDeviceService.batchSaveUserDevice(list); return ResultBean.buildSuccess(); } - - @ApiOperation("获取设备和人员关联信息") - @GetMapping("/listUserDevice") - public ResultBean> listUserDevice(@RequestParam Long userId, @RequestParam Integer type, - @RequestParam Long deviceId, @RequestParam Long faceGroupId) { - List list = eduUserDeviceService.list(Wrappers.lambdaQuery(new EduUserDevice()) - .eq(EduUserDevice::getUserId, userId) - .eq(EduUserDevice::getUserType, type) - .eq(EduUserDevice::getDeviceId, deviceId) - .eq(EduUserDevice::getFaceGroupId, faceGroupId) - ); - return ResultBean.buildSuccess(list); - } - - @ApiOperation("删除设备和人员关联信息") - @PostMapping("/deleteRelation") - public ResultBean deleteRelation(@RequestBody EduUserDevice userDevice) { - eduUserDeviceService.remove(Wrappers.lambdaQuery(new EduUserDevice()) - .eq(EduUserDevice::getUserId, userDevice.getUserId()) - .eq(EduUserDevice::getUserType, userDevice.getUserType()) - .eq(EduUserDevice::getDeviceId, userDevice.getDeviceId()) - .eq(EduUserDevice::getFaceGroupId, userDevice.getFaceGroupId()) - ); - return ResultBean.buildSuccess(); - } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserFaceController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserFaceController.java index 8701f5c..514cf9c 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserFaceController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InEduUserFaceController.java @@ -1,37 +1,41 @@ package com.yida.data.user.controller; -import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.user.EduUserFace; import com.yida.data.user.dto.UpdateFaceGroupUserStatusDTO; import com.yida.data.user.service.EduFaceGroupUserService; import com.yida.data.user.service.EduUserFaceService; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import cn.hutool.core.collection.CollUtil; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; @ApiOperation("人脸管理(不鉴权)") @RestController @RequestMapping("/in/face") @RequiredArgsConstructor public class InEduUserFaceController { - private final EduUserFaceService eduUserFaceService; private final EduFaceGroupUserService eduFaceGroupUserService; @GetMapping("/getFaceByUser") public ResultBean getFaceByUser(@RequestParam("userId") Long userId, - @RequestParam("type") Integer type) { - return ResultBean.buildSuccess(eduUserFaceService.getOne( - Wrappers.lambdaQuery(new EduUserFace()).eq(EduUserFace::getUserId, userId).eq(EduUserFace::getUserType, type))); + @RequestParam("type") Integer type) { + return ResultBean.buildSuccess(eduUserFaceService.getOne(Wrappers.lambdaQuery(new EduUserFace()).eq(EduUserFace::getUserId, userId).eq(EduUserFace::getUserType, type))); } @GetMapping("/delFaceByUser") public ResultBean delFaceByUser(@RequestParam("userId") Long userId, - @RequestParam("type") Integer type) { - eduUserFaceService.remove( - Wrappers.lambdaQuery(new EduUserFace()).eq(EduUserFace::getUserId, userId).eq(EduUserFace::getUserType, type)); + @RequestParam("type") Integer type) { + eduUserFaceService.remove(Wrappers.lambdaQuery(new EduUserFace()).eq(EduUserFace::getUserId, userId).eq(EduUserFace::getUserType, type)); return ResultBean.buildSuccess(); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InStaffController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InStaffController.java index b1086a5..e3a5ed8 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InStaffController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/InStaffController.java @@ -14,7 +14,6 @@ import com.yida.data.user.dto.ListStaffDTO; import com.yida.data.user.service.EduStaffService; import com.yida.data.user.service.EduTeacherDeptService; import com.yida.data.user.service.QywxSyncService; -import com.yida.data.user.vo.TeacherClassVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -43,8 +42,8 @@ public class InStaffController { @ApiOperation("处理企业微信更改教师信息") @PostMapping("/dealWxTeacherChange") public ResultBean dealWxTeacherChange(Long schoolId, Long campusId, Long sectionId, Long gradeId, - Long classId, @RequestBody List teacherList, Long deptWxId) { - eduStaffService.dealWxTeacherChange(schoolId, campusId, sectionId, gradeId, classId, teacherList, deptWxId); + Long classId, @RequestBody List teacherList) { + eduStaffService.dealWxTeacherChange(schoolId, campusId, sectionId, gradeId, classId, teacherList); return ResultBean.buildSuccess(); } @@ -104,15 +103,7 @@ public class InStaffController { @GetMapping("/syncQywxStaff") public ResultBean syncQywxStaff() { // eduStaffService.syncQywxStaff(); - qywxSyncService.syncQywxStaff(null); - return ResultBean.buildSuccess(); - } - - @ApiOperation("同步指定学校企业微信职工数据") - @GetMapping("/syncSchoolQywxStaff") - public ResultBean syncSchoolQywxStaff(@RequestParam Long schoolId) { -// eduStudentService.syncQywxStudent(); - qywxSyncService.syncQywxStaff(schoolId); + qywxSyncService.syncQywxStaff(); return ResultBean.buildSuccess(); } @@ -124,8 +115,8 @@ public class InStaffController { } @ApiOperation("查询职工列表") - @PostMapping("/listStaff") - ResultBean> listStaff(@RequestBody ListStaffDTO dto) { + @GetMapping("/listStaff") + ResultBean> listStaff(ListStaffDTO dto) { return ResultBean.buildSuccess(eduStaffService.listStaff(dto)); } @@ -149,44 +140,18 @@ public class InStaffController { @ApiOperation("根据家校部门id和类型查询对应教师信息") @GetMapping("/listTeacherByDeptId") public ResultBean> listTeacherByDeptId(@RequestParam("deptId") Long deptId, - @RequestParam("type") String type) { + @RequestParam("type") String type) { return ResultBean.buildSuccess(eduTeacherDeptService.listTeacherDept(deptId, type)); } @ApiOperation("保存职工openId") @GetMapping("/saveWxPublicOpenId") ResultBean saveWxPublicOpenId(@RequestParam("staffId") Long staffId, - @RequestParam("openId") String openId) { + @RequestParam("openId") String openId) { EduStaff staff = new EduStaff(); staff.setId(staffId); staff.setWxPublicOpenId(openId); eduStaffService.updateById(staff); return ResultBean.buildSuccess(); } - - @ApiOperation("根据员工id获取企业微信密文用户id") - @GetMapping("/getWxIdByStaffId") - public ResultBean getWxIdByStaffId(@RequestParam Long staffId) { - eduStaffService.getWxIdByStaffId(staffId); - return ResultBean.buildSuccess(); - } - - @ApiOperation("根据StaffID查询教师家校沟通部门信息") - @GetMapping("/listDeptByTeacher") - public ResultBean> listDeptByTeacher(@RequestParam Long teacherId, Integer type) { - List teacherClassVOS = eduStaffService.listDeptByTeacher(teacherId, type); - return ResultBean.buildSuccess(teacherClassVOS); - } - - @ApiOperation("查询职工角色") - @GetMapping("/listStaffRolesByStaffId") - public ResultBean> listStaffRolesByStaffId(@RequestParam Long staffId) { - return ResultBean.buildSuccess(eduStaffService.listStaffRolesByStaffId(staffId)); - } - - @ApiOperation("查询职工管理班级") - @GetMapping("/listClassIdByStaffId") - public ResultBean> listClassIdByStaffId() { - return ResultBean.buildSuccess(eduStaffService.listClassIdByStaffId()); - } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/in/InStudentController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/in/InStudentController.java index 4f3aeb2..b88ca79 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/in/InStudentController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/in/InStudentController.java @@ -3,25 +3,18 @@ package com.yida.data.user.controller.in; import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.entity.user.EduParent; import com.yida.data.common.core.entity.user.EduStudent; -import com.yida.data.common.core.entity.user.EduTeacherDept; import com.yida.data.common.core.entity.user.EduUserDept; -import com.yida.data.common.core.entity.user.enums.DeptVisibleTypeEnum; -import com.yida.data.common.core.entity.user.enums.UserDeptTypeEnum; -import com.yida.data.common.core.utils.Asserts; import com.yida.data.school.dto.transaction.ListBuyStudentDTO; import com.yida.data.user.dto.ListStudentDTO; import com.yida.data.user.mapper.EduParentMapper; import com.yida.data.user.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -43,8 +36,6 @@ public class InStudentController { private final QywxSyncService qywxSyncService; private final DaHuaSyncService daHuaSyncService; private final RedisService redisService; - private final EduTeacherDeptService eduTeacherDeptService; - private final EduStudentDormService eduStudentDormService; @ApiOperation("处理企业微信 改变学生事件") @PostMapping("/dealWxStudentChange") @@ -226,7 +217,11 @@ public class InStudentController { student.setStatus(status); student.setDormStatus(dormStatus); eduStudentService.updateById(student); - redisService.hdel(CachePrefixConstant.STUDENT_DATA, studentId.toString()); + //更新缓存信息 + if (redisService.hHasKey(CachePrefixConstant.STUDENT_DATA, studentId.toString())) { + redisService.hdel(CachePrefixConstant.STUDENT_DATA, studentId.toString()); + } + redisService.hset(CachePrefixConstant.STUDENT_DATA, studentId.toString(), student); return ResultBean.buildSuccess(); } @@ -273,40 +268,4 @@ public class InStudentController { public ResultBean> listDormIdsByDeptId(@RequestBody ListStudentDTO dto) { return ResultBean.buildSuccess(eduStudentService.listDormIdsByDeptId(dto)); } - - @ApiOperation("查询校园大数据的人员统计数据") - @GetMapping("/countUserDashboardNum") - public ResultBean countUserDashboardNum(@RequestParam Long schoolId) { - JSONObject jsonObject = JSONUtil.createObj(); - // 学生数量 - long studentNum = eduStudentService.count(Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getSchoolId, schoolId)); - jsonObject.set("studentNum", studentNum); - // 班级数量 - long classNum = eduUserDeptService.count(Wrappers.lambdaQuery(new EduUserDept()) - .eq(EduUserDept::getSchoolId, schoolId) - .eq(EduUserDept::getDeptType, UserDeptTypeEnum.CLASS_TYPE.getValue()) - .eq(EduUserDept::getVisible, DeptVisibleTypeEnum.VISIBLE_TYPE.getValue()) - ); - jsonObject.set("classNum", classNum); - // 教师数量 - jsonObject.set("teacherNum", eduTeacherDeptService.countTeacherNumber(schoolId)); - return ResultBean.buildSuccess(jsonObject); - } - - - @ApiOperation("新增住宿生") - @PostMapping("/saveStudentDorm") - public ResultBean saveStudentDorm(@RequestBody EduStudent eduStudent) { - Asserts.isNotNull(eduStudent, "学生不存在"); - eduStudentDormService.saveStudentDorm(eduStudent.getId(), eduStudent.getDormRoomId(), eduStudent.getDormId()); - return ResultBean.buildSuccess(); - } - - @ApiOperation("更新学生信息缓存") - @GetMapping("/updateStudentCache") - public ResultBean updateStudentCache() { - eduStudentService.updateStudentCache(); - return ResultBean.buildSuccess(); - } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/out/OutEduStudentController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/out/OutEduStudentController.java index b9ea9db..79f13b4 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/out/OutEduStudentController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/out/OutEduStudentController.java @@ -1,37 +1,24 @@ package com.yida.data.user.controller.out; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; -import com.yida.data.common.core.entity.user.EduStudent; -import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.log.annotation.OperationLog; -import com.yida.data.user.dto.OutPageStudentDTO; import com.yida.data.user.service.EduStudentService; -import com.yida.data.user.vo.OutPageStudentVO; import com.yida.data.user.vo.StaStudentVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import java.util.Arrays; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; -import java.util.Arrays; - @Api(tags = "家长管理") @Slf4j @RequiredArgsConstructor @RestController @RequestMapping(value = "/out/student") public class OutEduStudentController { - private final EduStudentService eduStudentService; @ApiOperation("统计学生分布数据") @@ -39,17 +26,4 @@ public class OutEduStudentController { public ResultBean staStudentDistribu(Long[] schoolIds) { return ResultBean.buildSuccess(eduStudentService.staStudentDistribu(Arrays.asList(schoolIds))); } - - @ApiOperation("分页查询学生列表数据") - @GetMapping("/listStudentPage") - public ResultBean> listStudentOutPage(OutPageStudentDTO dto, HttpServletRequest request) { - return ResultBean.buildSuccess(eduStudentService.listStudentOutPage(dto, request)); - } - - @ApiOperation("保存学生信息 新增或编辑") - @PostMapping("/saveStudent") - @OperationLog(module = ModuleName.STUDENT, methods = "新增、修改学生", type = OperationLogTypeEnum.SAVE) - public ResultBean saveStudent(@RequestBody EduStudent eduStudent) { - return ResultBean.buildSuccess(eduStudentService.saveStudent(eduStudent, null, false)); - } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/web/WebEduSchoolWelcomeStudentController.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/web/WebEduSchoolWelcomeStudentController.java index 9dbbb6a..ab61c17 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/web/WebEduSchoolWelcomeStudentController.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/controller/web/WebEduSchoolWelcomeStudentController.java @@ -184,7 +184,8 @@ public class WebEduSchoolWelcomeStudentController { } /** - * 导入学生基础信息 + * 导入一键邀请数据 + * 学生基础信息 * * @param file 导入的excel文件 * @param schoolId 学校id @@ -192,7 +193,7 @@ public class WebEduSchoolWelcomeStudentController { * @author ZYJ * @date 2021/8/24 17:12 */ - @ApiOperation("导入学生基础信息") + @ApiOperation("导入一键邀请数据(学生基础信息)") @PostMapping(value = "/importWelcomeInviteData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public ResultBean importWelcomeInviteData( @ApiParam(value = "导入的excel文件", required = true) @RequestParam("file") MultipartFile file, diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduFaceGroupMapper.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduFaceGroupMapper.java index 9ba6d45..0155567 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduFaceGroupMapper.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduFaceGroupMapper.java @@ -16,6 +16,5 @@ import org.apache.ibatis.annotations.Param; public interface EduFaceGroupMapper extends BaseMapper { IPage listFaceGroupPage(Page page, @Param("groupName") String groupName, - @Param("schoolId") Long schoolId, - @Param("groupId") Long groupId); + @Param("schoolId") Long schoolId); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduFaceGroupUserMapper.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduFaceGroupUserMapper.java index 558e2f7..3fb3fc7 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduFaceGroupUserMapper.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduFaceGroupUserMapper.java @@ -28,14 +28,13 @@ public interface EduFaceGroupUserMapper extends BaseMapper { IPage listStudentNotImport( @Param("page") Page page, + @Param("classId") List classId, @Param("type") Integer type, @Param("sex") Integer sex, @Param("keyword") String keyword, @Param("schoolId") Long schoolId, @Param("groupId") Long groupId, - @Param("dormId") Long dormId, @Param("dormRoomId") Long dormRoomId, - @Param("campusId") Long campusId, @Param("sectionId") Long sectionId, - @Param("gradeId") Long gradeId, @Param("classId") Long classId); + @Param("dormId") Long dormId, @Param("dormRoomId") Long dormRoomId); IPage listStaffNotImport( Page page, @@ -45,14 +44,13 @@ public interface EduFaceGroupUserMapper extends BaseMapper { @Param("groupId") Long groupId); List listStudentNotImport( + @Param("classId") List classId, @Param("type") Integer type, @Param("sex") Integer sex, @Param("keyword") String keyword, @Param("schoolId") Long schoolId, @Param("groupId") Long groupId, - @Param("dormId") Long dormId, @Param("dormRoomId") Long dormRoomId, - @Param("campusId") Long campusId, @Param("sectionId") Long sectionId, - @Param("gradeId") Long gradeId, @Param("classId") Long classId); + @Param("dormId") Long dormId, @Param("dormRoomId") Long dormRoomId); List listStaffNotImport( @Param("sex") Integer sex, diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduStaffMapper.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduStaffMapper.java index d6d288f..c2cfbd4 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduStaffMapper.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduStaffMapper.java @@ -7,6 +7,7 @@ import com.yida.data.common.core.entity.user.EduStaff; import com.yida.data.user.dto.ListStaffDTO; import com.yida.data.user.dto.PageTeacherDTO; import com.yida.data.user.vo.*; + import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -48,8 +49,6 @@ public interface EduStaffMapper extends BaseMapper { EduStaff getStaffById(Long staffId); - EduStaff getStaff(@Param("id") Long staffId); - List listStaff(@Param("dto") ListStaffDTO dto); List listStaffByDeptId(@Param("deptId") Long deptId, @Param("staffIds") List staffIds); diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduStudentMapper.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduStudentMapper.java index a5db540..71a10ed 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduStudentMapper.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduStudentMapper.java @@ -8,14 +8,14 @@ import com.yida.data.common.core.entity.user.EduStudent; import com.yida.data.common.core.entity.user.EduTeacherDept; import com.yida.data.school.dto.transaction.ListBuyStudentDTO; import com.yida.data.user.dto.ListStudentDTO; -import com.yida.data.user.dto.OutPageStudentDTO; import com.yida.data.user.dto.PageStudentDTO; import com.yida.data.user.dto.PageStudentDormDTO; -import com.yida.data.user.excel.SelectStudentDormExportData; import com.yida.data.user.vo.ListParentByStudentIdsVO; -import com.yida.data.user.vo.OutPageStudentVO; import com.yida.data.user.vo.StudentClassInfoVO; import com.yida.data.user.vo.StudentDormInfoVO; + +import java.util.List; + import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -34,17 +34,12 @@ public interface EduStudentMapper extends BaseMapper { List selectStudent(@Param("dto") PageStudentDTO dto); EduStudent getStudentWithParent(@Param("studentId") Long studentId, @Param("wxId") String wxId, - @Param("schoolId") Long schoolId); - - - List getStudentListWithParent(@Param("studentIdList") List studentIdList, @Param("wxId") String wxId, @Param("schoolId") Long schoolId); - List listStudentByParent(Long parentId); StudentClassInfoVO getStudentInfo(@Param("studentId") Long studentId, - @Param("parentMobile") String parentMobile); + @Param("parentMobile") String parentMobile); List getParentByPhoneAndSchoolId(@Param("phone") List phone, @Param("schoolId") Long schoolId); @@ -99,11 +94,8 @@ public interface EduStudentMapper extends BaseMapper { * @return */ IPage listStudentDormPage(Page page, - @Param("dormRoomIds") List dormRoomIds, - @Param("dto") PageStudentDormDTO dto); - - List listStudentDorm(@Param("dormRoomIds") List dormRoomIds, - @Param("dto") SelectStudentDormExportData selectStudentDormExportData); + @Param("dormRoomIds") List dormRoomIds, + @Param("dto") PageStudentDormDTO dto); /** * 查询学生对应教师 @@ -137,17 +129,4 @@ public interface EduStudentMapper extends BaseMapper { List listDormIdsByDeptId(ListStudentDTO dto); List listBaseStudentNoJoin(EduStudent eduStudent); - - IPage listStudentOutPage(Page page, - @Param("dto") OutPageStudentDTO dto); - - /** - * 查询年级人数 - * - * @param gradeId 年级id - * @return long - * @author ZYJ - * @date 2023/4/25 11:47 - */ - long selectGradeStudentNumber(@Param("gradeId") Long gradeId); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduTeacherDeptMapper.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduTeacherDeptMapper.java index a2a290c..6c9c761 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduTeacherDeptMapper.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/mapper/EduTeacherDeptMapper.java @@ -7,9 +7,7 @@ import com.yida.data.common.core.entity.user.EduTeacherDept; import com.yida.data.common.core.entity.user.EduUserDept; import com.yida.data.user.vo.TeacherClassVO; import com.yida.data.user.vo.TeacherCourseInfoVO; - import java.util.List; - import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -20,10 +18,10 @@ public interface EduTeacherDeptMapper extends BaseMapper { List listPermissionDeptByTeacher(Long teacherSysId); List listTeacherByClass(@Param("classIds") List classIds, - @Param("teacherName") String teacherName); + @Param("teacherName") String teacherName); List listTeacherBySchool(@Param("schoolId") Long schoolId, - @Param("name") String name); + @Param("name") String name); List findType(@Param("teacherId") Long teacherId); @@ -41,18 +39,18 @@ public interface EduTeacherDeptMapper extends BaseMapper { List selectCoursetList(@Param("teacherId") Long teacherId, @Param("schoolId") Long schoolId, - @Param("classId") Long classId); + @Param("classId") Long classId); List findClassId(@Param("teacherId") Long teacherId); List listTeacherCourseByGrade(@Param("gradeId") Long gradeId, - @Param("classId") Long classId); + @Param("classId") Long classId); /** * 根据班级和名称查询教师 */ List listTeacherByClassAndName(@Param("classId") Long classId, - @Param("name") String name); + @Param("name") String name); /** * 查询教师管辖班级 @@ -70,14 +68,4 @@ public interface EduTeacherDeptMapper extends BaseMapper { * @return */ List listTeacherDept(List teacherIds); - - /** - * 教师数量 - * - * @param schoolId 学校id - * @return long - * @author ZYJ - * @date 2023/4/24 16:59 - */ - long countTeacherNumber(@Param("schoolId") Long schoolId); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupDeviceService.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupDeviceService.java index 2651222..2038677 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupDeviceService.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupDeviceService.java @@ -22,9 +22,4 @@ public interface EduFaceGroupDeviceService extends IService * 查询人脸组关联的设备(设备组查询出设备) */ List listDeviceByFaceGroup(Long faceGroupId); - - /** - * 查询人脸组关联的在线设备(设备组查询出设备) - */ - List listFaceGroupOnlineDevice(Long faceGroupId); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupService.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupService.java index 9fe5d82..bd90527 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupService.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupService.java @@ -13,7 +13,7 @@ import com.yida.data.common.core.entity.user.EduFaceGroup; */ public interface EduFaceGroupService extends IService { - IPage listFaceGroupPage(Page page, String groupName, Long schoolId, Long groupId); + IPage listFaceGroupPage(Page page, String groupName, Long schoolId); void removeFaceGroup(Long groupId); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupUserService.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupUserService.java index 137dc13..55210b9 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupUserService.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduFaceGroupUserService.java @@ -7,9 +7,15 @@ import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.user.EduFaceGroupUser; import com.yida.data.common.core.entity.user.EduStaff; import com.yida.data.common.core.entity.user.EduStudent; -import com.yida.data.user.dto.*; +import com.yida.data.user.dto.BatchIssueDTO; +import com.yida.data.user.dto.DelFaceGroupUserDTO; +import com.yida.data.user.dto.FaceGroupUserPageDTO; +import com.yida.data.user.dto.SaveFaceGroupUserDTO; +import com.yida.data.user.dto.UpdateFaceGroupUserStatusDTO; import com.yida.data.user.vo.UserFacePageVO; +import java.util.List; + /** * 人脸、人脸组关联信息 Service接口 * @@ -21,15 +27,13 @@ public interface EduFaceGroupUserService extends IService { IPage listStudentNotImport(Page page, Long deptId, Integer type, Integer sex, String keyword, Long schoolId, Long groupId, - Long dormId, Long dormRoomId, - Long campusId, Long sectionId, Long gradeId, Long classId); + Long dormId, Long dormRoomId); IPage listStaffNotImport(Page page, Integer sex, String keyword, Long schoolId, Long groupId); - void saveAllStudent(Integer type, Integer sex, String keyword, Long schoolId, - Long groupId, Long dormId, Long dormRoomId, - Long campusId, Long sectionId, Long gradeId, Long classId); + void saveAllStudent(List classId, Integer type, Integer sex, + String keyword, Long schoolId, Long groupId, Long dormId, Long dormRoomId); void saveAllStaff(Integer sex, String keyword, Long schoolId, Long groupId); diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduSchoolStudentInformationService.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduSchoolStudentInformationService.java index 464d920..1225fc0 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduSchoolStudentInformationService.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduSchoolStudentInformationService.java @@ -86,7 +86,7 @@ public interface EduSchoolStudentInformationService extends IService { - /** * 查询教师列表数据 */ @@ -46,14 +41,7 @@ public interface EduStaffService extends IService { TeacherDetailVO findTeacher(Long teacherId); List listClassByTeacher(Long teacherId); - - List listDeptByTeacher(Long teacherId, Integer type); - - List listClassIdByStaffId(); - - List listStaffRolesByStaffId(Long staffId); - - List listDeptByStaffId(Long staffId); + List listDeptByTeacher(Long teacherId,Integer type); /** * 批量删除教师信息 @@ -65,18 +53,15 @@ public interface EduStaffService extends IService { */ void delTeacherBatch(List teacherIds); - void dealWxTeacherChange(Long schoolId, Long campusId, Long sectionId, Long gradeId, - Long classId, List teacherList, Long deptWxId); + void dealWxTeacherChange(Long schoolId, Long campusId, Long sectionId, Long gradeId, Long classId, List teacherList); void initStaff(List teacherList); - ResultBean> importStaff(MultipartFile file, Long schoolId, long timestamp); - //@Async(FebsConstant.ASYNC_POOL) //void importTeacher(String path, Long schoolId, CurrentUser currentUser, Long key, String fileName); @Async(FebsConstant.ASYNC_POOL) -// void importStaff(String path, Long schoolId, CurrentUser currentUser, Long key, String fileName); + void importStaff(String path, Long schoolId, CurrentUser currentUser, Long key, String fileName); Integer importTeacherHeartbeat(String username, Long key); @@ -96,10 +81,10 @@ public interface EduStaffService extends IService { * 分页查询职工列表数据 */ IPage listStaffPage(Page page, CurrentUser currentUser, - Long areaId, Long schoolId, Long deptId, - Integer isLeader, - String position, String name, String mobile, Integer sex, - Integer collectType); + Long areaId, Long schoolId, Long deptId, + Integer isLeader, + String position, String name, String mobile, Integer sex, + Integer collectType); /** * 添加、修改职工 @@ -115,7 +100,7 @@ public interface EduStaffService extends IService { * @param teacherId * @return */ - List findTeacherRole(Long teacherId); + List findTeacherRole(Long teacherId); /*** * 根据班级查询关联的老师 @@ -135,8 +120,6 @@ public interface EduStaffService extends IService { List listTeacherCourseByGrade(Long gradeId, Long classId); - List listClassByGradeIdAndTeacherId(Long gradeId, Long staffId); - /** * 根据班级和名称查询教师 * @@ -152,7 +135,7 @@ public interface EduStaffService extends IService { * @param nameOrPhone * @return */ - List listStaffByDeptId(Long deptId, String nameOrPhone, Long schoolId); + List listStaffByDeptId(Long deptId, String nameOrPhone,Long schoolId); /** @@ -171,7 +154,6 @@ public interface EduStaffService extends IService { /** * 查询教职工分布情况 - * * @return */ StaStaffDistributeVO staStaffDistribute(List schoolIds); @@ -179,24 +161,8 @@ public interface EduStaffService extends IService { StaStaffDistributeVO staStaffNum(List schoolIds); void exportStaff(Long areaId, Long schoolId, Long deptId, Integer isLeader, String position, - String name, String mobile, Integer sex, Integer collectType, - HttpServletResponse response); + String name, String mobile, Integer sex, Integer collectType, + HttpServletResponse response); SystemUser saveSystemUser(EduStaff eduStaff); - - void getWxIdByStaffId(Long staffId); - - void saveExcelData(ConcurrentHashMap concurrentHashMap, - ConcurrentHashMap errorMap, - Long schoolId, - long timestamp); - - List getDeptManager(List deptIdList, Long ruleId); - - - /** - * 更新学生缓存信息 - */ - @Async - void updateStaffCache(); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduStudentDormService.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduStudentDormService.java index 01c6302..bc67a55 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduStudentDormService.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduStudentDormService.java @@ -1,13 +1,10 @@ package com.yida.data.user.service; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.yida.data.common.core.entity.school.EduDormitory; -import com.yida.data.common.core.entity.school.EduDormitoryRoom; import com.yida.data.user.dto.ExchangeDormDTO; import com.yida.data.user.dto.PageStudentDormDTO; import com.yida.data.user.vo.StudentDormInfoVO; -import org.springframework.scheduling.annotation.Async; import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -53,17 +50,4 @@ public interface EduStudentDormService { * @param key */ void importDormRoom(MultipartFile file, Long schoolId, String key); - - @Async - void exportStudentDorm(PageStudentDormDTO dto, String key); - - /** - * 查询导出进度 - * - * @param key 导出唯一标识 - * @return java.lang.Object - * @author ZYJ - * @date 2023/12/14 16:25 - */ - Object getStudentDormExportInfo(String key); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduStudentService.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduStudentService.java index 2ccd8cd..bd90453 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduStudentService.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduStudentService.java @@ -9,15 +9,14 @@ import com.yida.data.common.core.entity.user.EduStudent; import com.yida.data.common.core.entity.user.EduTeacherDept; import com.yida.data.school.dto.transaction.ListBuyStudentDTO; import com.yida.data.user.dto.ListStudentDTO; -import com.yida.data.user.dto.OutPageStudentDTO; import com.yida.data.user.dto.PageStudentDTO; import com.yida.data.user.dto.h5.BindStudentDTO; -import com.yida.data.user.excel.SelectStudentDormExportData; -import com.yida.data.user.vo.*; +import com.yida.data.user.vo.DownLoadPicVO; +import com.yida.data.user.vo.ListParentByStudentIdsVO; +import com.yida.data.user.vo.StaStudentVO; +import com.yida.data.user.vo.StudentClassInfoVO; import org.springframework.scheduling.annotation.Async; -import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -58,13 +57,8 @@ public interface EduStudentService extends IService { @Async(FebsConstant.ASYNC_POOL) void importStudent(String path, CurrentUser currentUser, Long schoolId, Long key, String filename); - @Async(FebsConstant.ASYNC_POOL) - void importCard(String path, CurrentUser currentUser, Long schoolId, Long key, String filename); - Integer importStaffHeartbeat(String username, Long key); - void importStudentUpdateType(MultipartFile file, Long schoolId); - List> listImportKey(String username); List listStudentByParent(Long parentId, String applyCode); @@ -78,8 +72,6 @@ public interface EduStudentService extends IService { void downloadTemplate(HttpServletResponse response, CurrentUser currentUser); - void downloadCardTemplate(HttpServletResponse response, CurrentUser currentUser); - List getParentByPhoneAndSchoolId(List phone, Long schoolId); /** @@ -127,18 +119,7 @@ public interface EduStudentService extends IService { List listStudentByClassId(ListStudentDTO dto); - @Async - void exportStudent(PageStudentDTO dto, String key); - - /** - * 查询导出进度 - * - * @param key 导出唯一标识 - * @return java.lang.Object - * @author ZYJ - * @date 2023/12/13 14:42 - */ - Object getStudentExportInfo(String key); + void exportStudent(PageStudentDTO dto, HttpServletResponse response); DownLoadPicVO exportStudentPic(PageStudentDTO dto); @@ -197,34 +178,5 @@ public interface EduStudentService extends IService { * @return */ List listBaseStudentNoJoin(EduStudent eduStudent); - - /** - * 分页查询学生列表数据 - * - * @param dto 分页查询学生列表数据请求类 - * @param request request - * @return com.baomidou.mybatisplus.core.metadata.IPage - * @author ZYJ - * @date 2023/2/20 16:41 - */ - IPage listStudentOutPage(OutPageStudentDTO dto, HttpServletRequest request); - - /** - * 更新学生缓存信息 - */ - @Async - void updateStudentCache(); - - List selectStudent(PageStudentDTO dto); - - /** - * 查询学生宿舍信息 - * - * @param dormRoomIds 宿舍id集合 - * @param selectStudentDormExportData 查询条件 - * @return java.util.List - * @author ZYJ - * @date 2023/12/13 18:17 - */ - List listStudentDorm(List dormRoomIds, SelectStudentDormExportData selectStudentDormExportData); + } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduTeacherDeptService.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduTeacherDeptService.java index d3411eb..f51e54d 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduTeacherDeptService.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduTeacherDeptService.java @@ -34,14 +34,4 @@ public interface EduTeacherDeptService extends IService { * @date 2022/7/15 17:49 */ List listTeacherDept(Long deptId, String type); - - /** - * 教师数量 - * - * @param schoolId 学校id - * @return long - * @author ZYJ - * @date 2023/4/24 16:58 - */ - long countTeacherNumber(Long schoolId); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduUserDeptService.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduUserDeptService.java index f639d5c..d1b2448 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduUserDeptService.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/EduUserDeptService.java @@ -1,12 +1,11 @@ package com.yida.data.user.service; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import com.yida.data.common.core.entity.QueryRequest; import com.yida.data.common.core.entity.constant.FebsConstant; import com.yida.data.common.core.entity.system.Dept; import com.yida.data.common.core.entity.system.EduApp; +import com.yida.data.common.core.entity.user.EduCollectData; import com.yida.data.common.core.entity.user.EduUserDept; import com.yida.data.common.core.entity.user.EduUserDeptStandardGrade; import com.yida.data.common.core.entity.user.enums.SectionTypeEnum; @@ -15,12 +14,9 @@ import com.yida.data.common.core.enums.IncludeTypeEnum; import com.yida.data.system.vo.ClassInfoVO; import com.yida.data.user.dto.*; import com.yida.data.user.vo.AllDeptInfoVO; -import com.yida.data.user.vo.ClassAttendanceDataVO; import com.yida.data.user.vo.CollectDataVO; -import com.yida.data.user.vo.TeacherDeptVO; import org.springframework.scheduling.annotation.Async; -import java.time.LocalDate; import java.util.List; import java.util.Map; @@ -66,11 +62,6 @@ public interface EduUserDeptService extends IService { List findVisibleClassByUserId(Long staffId); - - List findClassAttendanceByUserId(Long staffId, LocalDate date); - - List findClassAttendanceDetailByDeptId(Long deptId, Integer type, LocalDate date); - /** * 向下查询指定家校部门类型的家校部门id(可查询非直接子家校部门) 未毕业家校部门 * @@ -80,7 +71,7 @@ public interface EduUserDeptService extends IService { * @author ZYJ * @date 2022/7/11 16:08 */ - List findChildIdByParentAndType(List userDeptIdList, Integer type, List resultList); + List findChildIdByParentAndType(List userDeptIdList, Integer type); /** * 根据家校部门id查询所属学校 @@ -114,17 +105,6 @@ public interface EduUserDeptService extends IService { */ List getUserDeptTree(Long deptId); - - /** - * 家校部门树 - * - * @param deptIds 根节点Id - * @return java.util.List - * @author ZYJ - * @date 2021/11/11 13:40 - */ - List getUserDeptTree(List deptIds); - /** * 根据各层名称查询班级信息 * @@ -251,8 +231,6 @@ public interface EduUserDeptService extends IService { */ EduUserDept getParentByDeptId(Long deptId); - List getParentListByDeptId(Long deptId); - /** * 批量保存家校部门 * @@ -278,7 +256,7 @@ public interface EduUserDeptService extends IService { * @date 2021/11/30 13:47 */ @Async(FebsConstant.ASYNC_POOL) - void syncUserDept(Long schoolId); + void syncUserDept(); /** * 处理挂在学校下的家校部门 @@ -323,17 +301,4 @@ public interface EduUserDeptService extends IService { * @return */ AllDeptInfoVO findParentUp(Long deptId, Integer type); - - - List listClassByStaffId(Long staffId); - - /** - * 查询学校年级分布 - * - * @param schoolId 学校id - * @return cn.hutool.json.JSONArray - * @author ZYJ - * @date 2023/4/25 10:26 - */ - JSONArray getGradeDistribution(Long schoolId); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/ImportWelcomeStudentService.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/ImportWelcomeStudentService.java index fc8bf40..dd618d8 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/ImportWelcomeStudentService.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/ImportWelcomeStudentService.java @@ -1,7 +1,9 @@ package com.yida.data.user.service; import com.yida.data.common.core.entity.CurrentUser; -import com.yida.data.user.dto.*; +import com.yida.data.user.dto.StudentErrorExportDTO; +import com.yida.data.user.dto.WelcomeInviteImportDTO; +import com.yida.data.user.dto.WelcomeStudentImportDTO; import org.ehcache.impl.internal.concurrent.ConcurrentHashMap; import java.util.List; @@ -45,19 +47,4 @@ public interface ImportWelcomeStudentService { Long schoolId, String uuid, CurrentUser currentUser); - - /** - * 保存校园卡号导入数据 - * - * @param concurrentHashMap 需要保存的用户数据 - * @param errorList 导入错误数据集合 - * @param schoolId 学校id - * @param currentUser 当前登录用户信息 - * @author ZYJ - * @date 2023/2/19 14:45 - */ - void saveCardExcelData(ConcurrentHashMap concurrentHashMap, - List errorList, - Long schoolId, - CurrentUser currentUser); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/QywxSyncService.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/QywxSyncService.java index b131065..0f95a15 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/QywxSyncService.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/QywxSyncService.java @@ -21,5 +21,5 @@ public interface QywxSyncService { * 同步企业微信职工数据 */ @Async(FebsConstant.ASYNC_POOL) - void syncQywxStaff(Long schoolId); + void syncQywxStaff(); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupDeviceServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupDeviceServiceImpl.java index 388900a..d7c845d 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupDeviceServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupDeviceServiceImpl.java @@ -4,27 +4,18 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yida.data.attendance.feign.RemoteAttendanceDeviceService; -import com.yida.data.attendance.feign.RemoteAttendanceStrategyService; import com.yida.data.common.core.entity.attendance.EduAttendanceDevice; import com.yida.data.common.core.entity.user.EduFaceGroupDevice; -import com.yida.data.common.core.entity.user.EduFaceGroupStrategy; -import com.yida.data.common.core.entity.user.EduFaceGroupUser; import com.yida.data.user.dto.BindFaceGroupDeviceDTO; import com.yida.data.user.mapper.EduFaceGroupDeviceMapper; import com.yida.data.user.service.EduFaceGroupDeviceService; -import com.yida.data.user.service.EduFaceGroupStrategyService; -import com.yida.data.user.service.EduFaceGroupUserService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; /** * 人脸组、设备组关系 Service实现 @@ -32,23 +23,13 @@ import java.util.stream.Collectors; * @author zhanghaijun * @date 2021-06-16 14:15:08 */ -@Slf4j @Service @RequiredArgsConstructor -@Transactional(rollbackFor = Exception.class) +@Transactional(propagation = Propagation.SUPPORTS, readOnly = true) public class EduFaceGroupDeviceServiceImpl extends ServiceImpl - implements EduFaceGroupDeviceService { - - @Lazy - @Resource - private EduFaceGroupUserService eduFaceGroupUserService; - - @Lazy - @Resource - private EduFaceGroupStrategyService eduFaceGroupStrategyService; + implements EduFaceGroupDeviceService { private final RemoteAttendanceDeviceService remoteAttendanceDeviceService; - private final RemoteAttendanceStrategyService remoteAttendanceStrategyService; @Override @Transactional @@ -59,44 +40,18 @@ public class EduFaceGroupDeviceServiceImpl extends ServiceImpl return x; }).collect(Collectors.toList()); saveBatch(saveList); - // 查询是否有策略信息 - EduFaceGroupStrategy groupStrategy = eduFaceGroupStrategyService.getOne(Wrappers.lambdaQuery(new EduFaceGroupStrategy()) - .eq(EduFaceGroupStrategy::getFaceGroupId, dto.getFaceGroupId())); - if (Objects.isNull(groupStrategy)) { - return; - } - // 处理设备策略信息 - groupStrategy.setFaceGroupId(dto.getFaceGroupId()); - // 查询关联的设备信息 - List list = list(Wrappers.lambdaQuery(new EduFaceGroupDevice()) - .eq(EduFaceGroupDevice::getFaceGroupId, dto.getFaceGroupId())); - if (CollUtil.isEmpty(list)) { - log.info("当前人脸组策略没有对应的设备信息: {}", dto.getFaceGroupId()); - return; - } - // 设置设备信息 - groupStrategy.setGroupDeviceList(list); - List groupUserList = eduFaceGroupUserService.list(Wrappers.lambdaQuery(new EduFaceGroupUser()) - .eq(EduFaceGroupUser::getFaceGroupId, groupStrategy.getFaceGroupId()) - // 已下发人脸 - .eq(EduFaceGroupUser::getStatus, 1) - ); - groupStrategy.setGroupUserList(groupUserList); - // 设置人员信息 - remoteAttendanceStrategyService.deleteAndSaveStrategy(groupStrategy); } @Override public List listFaceGroupDevice(Long faceGroupId) { List list = list( - Wrappers.lambdaQuery(new EduFaceGroupDevice()).eq(EduFaceGroupDevice::getFaceGroupId, faceGroupId)); + Wrappers.lambdaQuery(new EduFaceGroupDevice()).eq(EduFaceGroupDevice::getFaceGroupId, faceGroupId)); if (CollUtil.isNotEmpty(list)) { list = list.stream().map(x -> { EduFaceGroupDevice device = new EduFaceGroupDevice(); device.setDeviceId(x.getDeviceId()); device.setDeviceName(x.getDeviceName()); device.setType(x.getType()); - device.setState(x.getState()); return device; }).collect(Collectors.toList()); } @@ -108,15 +63,15 @@ public class EduFaceGroupDeviceServiceImpl extends ServiceImpl List res = new ArrayList<>(); List deviceAndGroup = listFaceGroupDevice(faceGroupId); if (CollUtil.isNotEmpty(deviceAndGroup)) { - List deviceIds = deviceAndGroup.stream().filter(x -> x.getType() == 0).map(EduFaceGroupDevice::getDeviceId) - .collect(Collectors.toList()); - List deviceGroupIds = deviceAndGroup.stream().filter(x -> x.getType() == 1).map(EduFaceGroupDevice::getDeviceId) - .collect(Collectors.toList()); + List deviceIds = deviceAndGroup.stream().filter(x -> x.getType() == 0).map(x -> x.getDeviceId()) + .collect(Collectors.toList()); + List deviceGroupIds = deviceAndGroup.stream().filter(x -> x.getType() == 1).map(x -> x.getDeviceId()) + .collect(Collectors.toList()); if (CollUtil.isNotEmpty(deviceGroupIds)) { // 根据设备组查询设备 List deviceListByGroup = remoteAttendanceDeviceService - .listDeviceByGroup(deviceGroupIds.toArray(new Long[0])).getData(); - res.addAll(deviceListByGroup.stream().map(EduAttendanceDevice::getId).collect(Collectors.toList())); + .listDeviceByGroup(deviceGroupIds.toArray(new Long[0])).getData(); + res.addAll(deviceListByGroup.stream().map(x -> x.getId()).collect(Collectors.toList())); } if (CollUtil.isNotEmpty(deviceIds)) { res.addAll(deviceIds); @@ -124,11 +79,4 @@ public class EduFaceGroupDeviceServiceImpl extends ServiceImpl } return res; } - - @Override - public List listFaceGroupOnlineDevice(Long faceGroupId) { - List res = new ArrayList<>(); - - return res; - } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupServiceImpl.java index 9f30722..1d59710 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupServiceImpl.java @@ -1,28 +1,28 @@ package com.yida.data.user.service.impl; -import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yida.data.attendance.feign.RemoteAttendanceDeviceService; -import com.yida.data.attendance.feign.RemoteAttendanceStrategyService; import com.yida.data.common.core.entity.attendance.EduAttendanceDevice; import com.yida.data.common.core.entity.attendance.EduAttendanceDeviceGroup; -import com.yida.data.common.core.entity.user.*; +import com.yida.data.common.core.entity.user.EduFaceGroup; +import com.yida.data.common.core.entity.user.EduFaceGroupDevice; +import com.yida.data.common.core.entity.user.EduFaceGroupUser; import com.yida.data.user.dto.DelFaceGroupUserDTO; +import com.yida.data.user.mapper.EduFaceGroupDeviceMapper; import com.yida.data.user.mapper.EduFaceGroupMapper; -import com.yida.data.user.service.*; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - +import com.yida.data.user.service.EduFaceGroupService; +import com.yida.data.user.service.EduFaceGroupUserService; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * 人脸组信息 Service实现 @@ -30,27 +30,19 @@ import java.util.stream.Collectors; * @author zhanghaijun * @date 2021-06-16 14:09:44 */ -@Slf4j @Service @RequiredArgsConstructor @Transactional public class EduFaceGroupServiceImpl extends ServiceImpl - implements EduFaceGroupService { + implements EduFaceGroupService { private final EduFaceGroupUserService eduFaceGroupUserService; - private final EduFaceGroupDeviceService eduFaceGroupDeviceService; - private final EduFaceGroupStrategyService eduFaceGroupStrategyService; - private final EduFaceGroupStrategyPlanService eduFaceGroupStrategyPlanService; - private final EduFaceGroupStrategyPlanTimeService eduFaceGroupStrategyPlanTimeService; - + private final EduFaceGroupDeviceMapper eduFaceGroupDeviceMapper; private final RemoteAttendanceDeviceService remoteAttendanceDeviceService; - private final RemoteAttendanceStrategyService remoteAttendanceStrategyService; - - private final RedisService redisService; @Override - public IPage listFaceGroupPage(Page page, String groupName, Long schoolId, Long groupId) { - IPage res = baseMapper.listFaceGroupPage(page, groupName, schoolId, groupId); + public IPage listFaceGroupPage(Page page, String groupName, Long schoolId) { + IPage res = baseMapper.listFaceGroupPage(page, groupName, schoolId); // 获取所有设备和设备组id List deviceIds = new ArrayList<>(); List groupIds = new ArrayList<>(); @@ -67,25 +59,25 @@ public class EduFaceGroupServiceImpl extends ServiceImpl } // 查出所有的设备和设备组 List devices = remoteAttendanceDeviceService.listDeviceById(deviceIds.toArray(new Long[0])) - .getData(); + .getData(); List groups = remoteAttendanceDeviceService.listDeviceGroupById(groupIds.toArray(new Long[0])) - .getData(); + .getData(); // 按id分组方便拿数据 Map> deviceMap = devices.stream() - .collect(Collectors.groupingBy(EduAttendanceDevice::getId)); + .collect(Collectors.groupingBy(EduAttendanceDevice::getId)); Map> groupMap = groups.stream() - .collect(Collectors.groupingBy(EduAttendanceDeviceGroup::getId)); + .collect(Collectors.groupingBy(EduAttendanceDeviceGroup::getId)); for (EduFaceGroup record : res.getRecords()) { if (CollUtil.isNotEmpty(record.getDeviceList())) { for (EduFaceGroupDevice groupDevice : record.getDeviceList()) { if (groupDevice.getType() == 0 - && CollUtil.isNotEmpty(deviceMap) - && deviceMap.containsKey(groupDevice.getDeviceId())) { + && CollUtil.isNotEmpty(deviceMap) + && deviceMap.containsKey(groupDevice.getDeviceId())) { groupDevice.setDeviceName(deviceMap.get(groupDevice.getDeviceId()).get(0).getName()); groupDevice.setState(deviceMap.get(groupDevice.getDeviceId()).get(0).getState()); } else if (groupDevice.getType() == 1 - && CollUtil.isNotEmpty(groupMap) - && groupMap.containsKey(groupDevice.getDeviceId())) { + && CollUtil.isNotEmpty(groupMap) + && groupMap.containsKey(groupDevice.getDeviceId())) { groupDevice.setDeviceName(groupMap.get(groupDevice.getDeviceId()).get(0).getGroupName()); } } @@ -94,50 +86,21 @@ public class EduFaceGroupServiceImpl extends ServiceImpl return res; } + @Override public void removeFaceGroup(Long groupId) { // 删除人脸关联信息 删除下发记录 删除设备上的人脸 List faceGroupUserList = - eduFaceGroupUserService - .list(Wrappers.lambdaQuery(new EduFaceGroupUser()).eq(EduFaceGroupUser::getFaceGroupId, groupId)); + eduFaceGroupUserService + .list(Wrappers.lambdaQuery(new EduFaceGroupUser()).eq(EduFaceGroupUser::getFaceGroupId, groupId)); if (CollUtil.isNotEmpty(faceGroupUserList)) { // 删除人脸相关信息 DelFaceGroupUserDTO dto = new DelFaceGroupUserDTO(); dto.setFaceGroupId(groupId); - dto.setFaceIds(faceGroupUserList.stream().map(EduFaceGroupUser::getId).collect(Collectors.toList())); + dto.setFaceIds(faceGroupUserList.stream().map(x -> x.getId()).collect(Collectors.toList())); eduFaceGroupUserService.delUserBatch(dto); } - // 删除组 + //删除组 removeById(groupId); - // TODO 2022/12/21 此处需要删除对应通行策略以及人员绑定关系,附带对应的人员对应策略缓存信息 - // 删除策略 - eduFaceGroupStrategyService.remove(Wrappers.lambdaQuery(new EduFaceGroupStrategy()) - .eq(EduFaceGroupStrategy::getFaceGroupId, groupId)); - // 删除策略附表信息 - eduFaceGroupStrategyPlanService.remove(Wrappers.lambdaQuery(new EduFaceGroupStrategyPlan()) - .eq(EduFaceGroupStrategyPlan::getFaceGroupId, groupId)); - eduFaceGroupStrategyPlanTimeService.remove(Wrappers.lambdaQuery(new EduFaceGroupStrategyPlanTime()) - .eq(EduFaceGroupStrategyPlanTime::getFaceGroupId, groupId)); - // 查询关联的设备信息 - List list = eduFaceGroupDeviceService.list( - Wrappers.lambdaQuery(new EduFaceGroupDevice()).eq(EduFaceGroupDevice::getFaceGroupId, groupId)); - if (CollUtil.isEmpty(list)) { - return; - } - EduFaceGroupStrategy eduFaceGroupStrategy = new EduFaceGroupStrategy(); - eduFaceGroupStrategy.setFaceGroupId(groupId); - eduFaceGroupStrategy.setGroupDeviceList(list); - remoteAttendanceStrategyService.deleteStrategy(eduFaceGroupStrategy); -// // 移除对应的缓存 -// if (CollUtil.isNotEmpty(faceGroupUserList)) { -// for (EduFaceGroupDevice device : list) { -// for (EduFaceGroupUser groupUser : faceGroupUserList) { -// log.info("删除的用户数据===device: {}, user: {}", device, groupUser); -// redisService.hdel(CachePrefixConstant.USER_ATTENDANCE_STRATEGY + -// groupUser.getUserId().toString() + groupUser.getUserType().toString(), String.valueOf(groupId)); -// } -// } -// -// } } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupUserServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupUserServiceImpl.java index f0465cf..78043d6 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupUserServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduFaceGroupUserServiceImpl.java @@ -2,7 +2,6 @@ package com.yida.data.user.service.impl; import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -11,40 +10,28 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yida.data.attendance.dto.IssuedFaceDTO; import com.yida.data.attendance.dto.RemoveFaceDTO; import com.yida.data.attendance.feign.RemoteAttendanceDeviceService; -import com.yida.data.attendance.feign.RemoteAttendanceStrategyService; import com.yida.data.common.core.entity.CurrentUser; -import com.yida.data.common.core.entity.Dict; import com.yida.data.common.core.entity.attendance.EduAttendanceDevice; import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.entity.constant.LockPrefixConstant; import com.yida.data.common.core.entity.user.*; import com.yida.data.common.core.enums.DeviceType; -import com.yida.data.common.core.enums.IssuedTypeEnum; -import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.Asserts; -import com.yida.data.common.service.CommonService; import com.yida.data.user.dto.*; import com.yida.data.user.mapper.EduFaceGroupUserMapper; -import com.yida.data.user.mapper.EduStudentApplyMapper; -import com.yida.data.user.mapper.EduStudentMapper; import com.yida.data.user.mapper.EduUserDeviceMapper; import com.yida.data.user.service.EduFaceGroupDeviceService; -import com.yida.data.user.service.EduFaceGroupStrategyService; import com.yida.data.user.service.EduFaceGroupUserService; -import com.yida.data.user.service.EduStudentService; import com.yida.data.user.service.EduUserDeptService; -import com.yida.data.user.vo.OutPageStudentVO; import com.yida.data.user.vo.UserFacePageVO; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import javax.annotation.Resource; import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -53,7 +40,6 @@ import java.util.stream.Collectors; * @author zhanghaijun * @date 2021-06-16 14:13:31 */ -@Slf4j @Service @RequiredArgsConstructor @Transactional @@ -66,31 +52,20 @@ public class EduFaceGroupUserServiceImpl extends ServiceImpl private final RemoteAttendanceDeviceService remoteAttendanceDeviceService; private final EduUserDeptService eduUserDeptService; - private final EduFaceGroupStrategyService eduFaceGroupStrategyService; - private final RemoteAttendanceStrategyService remoteAttendanceStrategyService; - - private final EduStudentMapper eduStudentMapper; - private final EduStudentApplyMapper eduStudentApplyMapper; - private final CommonService commonService; - - @Override public IPage listUserFacePage(FaceGroupUserPageDTO dto) { return baseMapper.listUserFacePage(dto.toPage(), dto); } @Override - public IPage listStudentNotImport( - Page page, Long deptId, Integer type, Integer sex, - String keyword, Long schoolId, Long groupId, Long dormId, Long dormRoomId, - Long campusId, Long sectionId, Long gradeId, Long classId) { -// List classIds = null; -// if (deptId != null) { -// Long[] deptIds = new Long[]{deptId}; -// classId = eduUserDeptService.listClassByDept(Arrays.asList(deptIds)); -// } - return baseMapper.listStudentNotImport(page, type, sex, keyword, schoolId, groupId, dormId, dormRoomId, - campusId, sectionId, gradeId, classId); + public IPage listStudentNotImport(Page page, Long deptId, Integer type, Integer sex, + String keyword, Long schoolId, Long groupId, Long dormId, Long dormRoomId) { + List classId = null; + if (deptId != null) { + Long[] deptIds = new Long[]{deptId}; + classId = this.eduUserDeptService.listClassByDept(Arrays.asList(deptIds)); + } + return baseMapper.listStudentNotImport(page, classId, type, sex, keyword, schoolId, groupId, dormId, dormRoomId); } @Override @@ -100,12 +75,9 @@ public class EduFaceGroupUserServiceImpl extends ServiceImpl } @Override - public void saveAllStudent(Integer type, Integer sex, String keyword, Long schoolId, Long groupId, - Long dormId, Long dormRoomId, - Long campusId, Long sectionId, Long gradeId, Long classId) { - List studentList = baseMapper - .listStudentNotImport(type, sex, keyword, schoolId, groupId, dormId, dormRoomId, - campusId, sectionId, gradeId, classId); + public void saveAllStudent(List classId, Integer type, Integer sex, String keyword, Long schoolId, Long groupId, + Long dormId, Long dormRoomId) { + List studentList = baseMapper.listStudentNotImport(classId, type, sex, keyword, schoolId, groupId, dormId, dormRoomId); if (CollUtil.isNotEmpty(studentList)) { List saveUser = new ArrayList<>(); for (Long userId : studentList.stream().map(EduStudent::getId).collect(Collectors.toList())) { @@ -125,7 +97,7 @@ public class EduFaceGroupUserServiceImpl extends ServiceImpl List staffList = baseMapper.listStaffNotImport(sex, keyword, schoolId, groupId); if (CollUtil.isNotEmpty(staffList)) { List saveUser = new ArrayList<>(); - for (Long userId : staffList.stream().map(EduStaff::getId).collect(Collectors.toList())) { + for (Long userId : staffList.stream().map(x -> x.getId()).collect(Collectors.toList())) { EduFaceGroupUser eduFaceGroupUser = new EduFaceGroupUser(); eduFaceGroupUser.setUserId(userId); eduFaceGroupUser.setUserType(1); @@ -158,8 +130,6 @@ public class EduFaceGroupUserServiceImpl extends ServiceImpl List alreadyIssued = list( Wrappers.lambdaQuery(new EduFaceGroupUser()).in(EduFaceGroupUser::getId, dto.getFaceIds()) .eq(EduFaceGroupUser::getStatus, 1)); - List userList = list( - Wrappers.lambdaQuery(new EduFaceGroupUser()).in(EduFaceGroupUser::getId, dto.getFaceIds())); // 删除和人脸组的关联关系 removeByIds(dto.getFaceIds()); // 已下发的人要删除下发记录 @@ -175,7 +145,7 @@ public class EduFaceGroupUserServiceImpl extends ServiceImpl // 删除用户在此人脸组的下发记录 for (Map.Entry> entry : issuedMap.entrySet()) { Integer userType = entry.getKey(); - List userIds = entry.getValue().stream().map(EduFaceGroupUser::getUserId).collect(Collectors.toList()); + List userIds = entry.getValue().stream().map(x -> x.getUserId()).collect(Collectors.toList()); LambdaQueryWrapper condition = Wrappers.lambdaQuery(new EduUserDevice()) .in(EduUserDevice::getUserId, userIds) .eq(EduUserDevice::getUserType, userType); @@ -192,26 +162,6 @@ public class EduFaceGroupUserServiceImpl extends ServiceImpl remoteAttendanceDeviceService.removeFace(removeFaceDTO); } } - // 查询关联的设备信息 - List list = eduFaceGroupDeviceService.list( - Wrappers.lambdaQuery(new EduFaceGroupDevice()).eq(EduFaceGroupDevice::getFaceGroupId, dto.getFaceGroupId())); - if (CollUtil.isEmpty(list)) { - return; - } - - if (CollUtil.isNotEmpty(alreadyIssued)) { - // 删除对应的人员-策略关系 - EduFaceGroupStrategy eduFaceGroupStrategy = new EduFaceGroupStrategy(); - eduFaceGroupStrategy.setFaceGroupId(dto.getFaceGroupId()); - eduFaceGroupStrategy.setGroupDeviceList(list); - eduFaceGroupStrategy.setGroupUserList(userList); - remoteAttendanceStrategyService.unBindUserStrategy(eduFaceGroupStrategy); -// // 移除对应的缓存 -// for (EduFaceGroupUser groupUser : userList) { -// redisService.hdel(CachePrefixConstant.USER_ATTENDANCE_STRATEGY + -// groupUser.getUserId().toString() + groupUser.getUserType().toString(), String.valueOf(dto.getFaceGroupId())); -// } - } } @Override @@ -253,59 +203,18 @@ public class EduFaceGroupUserServiceImpl extends ServiceImpl ? baseMapper.listUserFace(dto.getIds()) : baseMapper.listUserFaceByGroup(dto.getFaceGroupId()); Asserts.isTrue(CollUtil.isNotEmpty(faceList), "请上传人脸!"); - // 更新下发状态 update(Wrappers.lambdaUpdate(new EduFaceGroupUser()) - .in(EduFaceGroupUser::getId, faceList.stream().map(EduUserFace::getFaceGroupUserId).collect(Collectors.toList())) + .in(EduFaceGroupUser::getId, faceList.stream().map(x -> x.getFaceGroupUserId()).collect(Collectors.toList())) .set(EduFaceGroupUser::getStatus, EduFaceGroupUser.ISSUING)); - Dict dict = commonService.getDictByTypeAndValueOrLabel("apply_type", null, "食堂消费"); - DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); for (EduUserFace face : faceList) { -// log.info("下发人脸信息:{}", face); face.setFaceGroupUserId(dto.getFaceGroupId()); - //添加学生IC卡号,是否是会员 - if (face.getUserType() == 0) { -// EduStudent student = (EduStudent) redisService -// .hget(CachePrefixConstant.STUDENT_DATA, face.getUserId().toString()); -// if (ObjectUtil.isNull(student)) { -// student = eduStudentMapper.selectById(face.getUserId()); -// } - EduStudent student = eduStudentMapper.selectById(face.getUserId()); - log.info("下发学生信息:{}", student); - if (ObjectUtil.isNotNull(student)) { - face.setRfidCard(student.getStuCardNumber()); - } - //查询会员信息 - if (Objects.isNull(dict)) { - throw new FebsException("当前学校暂不支持此功能"); - } - // 查询是否是会员 - EduStudentApply studentApply = eduStudentApplyMapper - .getStudentApply(face.getUserId(), dict.getValue()); - if (ObjectUtil.isNotNull(studentApply)) { - face.setNotes(1); - face.setCardValidBegin(studentApply.getStartTime().format(fmt)); - face.setCardValidEnd(studentApply.getEndTime().format(fmt)); - } else { - face.setNotes(0); - } - } else { - face.setNotes(1); - face.setCardValidBegin("2023-01-01 00:00:00"); - face.setCardValidEnd("2123-01-01 00:00:00"); - } } IssuedFaceDTO issuedFaceDTO = new IssuedFaceDTO(); issuedFaceDTO.setUserFaceList(faceList); issuedFaceDTO.setDeviceList(deviceIds); -// issuedFaceDTO.setType(0); + issuedFaceDTO.setType(0); issuedFaceDTO.setGroupId(dto.getFaceGroupId()); - // 判断是否有策略信息 - EduFaceGroupStrategy groupStrategy = eduFaceGroupStrategyService.getOne(Wrappers.lambdaQuery(new EduFaceGroupStrategy()) - .eq(EduFaceGroupStrategy::getFaceGroupId, dto.getFaceGroupId())); - issuedFaceDTO.setGroupStrategy(groupStrategy); - // 人脸组下发 - issuedFaceDTO.setIssuedTypeEnum(IssuedTypeEnum.FACE_GROUP); // 调用设备进行下发 remoteAttendanceDeviceService.issuedFace(issuedFaceDTO); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduSchoolStudentInformationServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduSchoolStudentInformationServiceImpl.java index 73f3b4e..57a3515 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduSchoolStudentInformationServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduSchoolStudentInformationServiceImpl.java @@ -221,7 +221,7 @@ public class EduSchoolStudentInformationServiceImpl extends public void downloadTemplate(Integer type, HttpServletResponse response) throws Exception { String fileName = - type.equals(ImportTemplateTypeEnum.WELCOME_STUDENT_TEMPLATE.getType()) ? "智慧迎新数据导入模板.xls" : "学生基础信息导入模板.xls"; + type.equals(ImportTemplateTypeEnum.WELCOME_STUDENT_TEMPLATE.getType()) ? "智慧迎新数据导入模板.xls" : "一键邀请导入模板.xls"; // 获取导入文件模板 ClassPathResource classPathResource = new ClassPathResource("template/" + fileName); InputStream inputStream = classPathResource.getInputStream(); @@ -229,7 +229,7 @@ public class EduSchoolStudentInformationServiceImpl extends } /** - * 导入学生基础信息 + * 导入一键邀请数据(导入学生基本信息) * * @param fileUrl 导入的excel文件地址 * @param schoolId 学校id diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStaffServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStaffServiceImpl.java index 0f73a13..2ad200e 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStaffServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStaffServiceImpl.java @@ -2,6 +2,7 @@ package com.yida.data.user.service.impl; import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.file.FileWriter; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.ObjectUtil; @@ -10,30 +11,22 @@ import cn.hutool.core.util.ZipUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; -import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.yida.data.common.core.common.ResultBean; -import com.yida.data.common.core.common.ResultMsgType; -import com.yida.data.common.core.common.ResultStatusType; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.constant.AppConstant; import com.yida.data.common.core.entity.constant.CachePrefixConstant; -import com.yida.data.common.core.entity.constant.FebsConstant; -import com.yida.data.common.core.entity.school.EduSchoolStudentInformation; import com.yida.data.common.core.entity.school.EduYidaAppAccount; import com.yida.data.common.core.entity.system.Dept; import com.yida.data.common.core.entity.system.EduApp; import com.yida.data.common.core.entity.system.EduYidaApp; import com.yida.data.common.core.entity.system.SystemUser; import com.yida.data.common.core.entity.system.enums.DeptTypeEnum; -import com.yida.data.common.core.entity.system.enums.RoleEnum; import com.yida.data.common.core.entity.user.*; -import com.yida.data.common.core.entity.user.enums.UserDeptTypeEnum; import com.yida.data.common.core.enums.RoleName; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.*; @@ -46,10 +39,6 @@ import com.yida.data.user.dto.DelFaceGroupUserDTO; import com.yida.data.user.dto.ListStaffDTO; import com.yida.data.user.dto.PageTeacherDTO; import com.yida.data.user.dto.StaffExportDTO; -import com.yida.data.user.dto.StaffImportDTO; -import com.yida.data.user.dto.WelcomeStudentImportDTO; -import com.yida.data.user.excel.StaffDataExcelListener; -import com.yida.data.user.excel.WelcomeStudentDataExcelListener; import com.yida.data.user.feign.RemoteUserDeptService; import com.yida.data.user.mapper.EduCourseMapper; import com.yida.data.user.mapper.EduStaffDeptMapper; @@ -58,23 +47,17 @@ import com.yida.data.user.mapper.EduTeacherDeptMapper; import com.yida.data.user.service.*; import com.yida.data.user.vo.*; import io.seata.spring.annotation.GlobalTransactional; -import java.io.InputStream; -import java.time.LocalDateTime; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.ehcache.impl.internal.concurrent.ConcurrentHashMap; import org.springframework.beans.BeanUtils; -import org.springframework.core.io.ClassPathResource; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import org.springframework.util.StopWatch; import javax.servlet.http.HttpServletResponse; @@ -85,7 +68,6 @@ import java.net.URLEncoder; import java.util.*; import java.util.Map.Entry; import java.util.stream.Collectors; -import org.springframework.web.multipart.MultipartFile; @Slf4j @Service @@ -111,7 +93,6 @@ public class EduStaffServiceImpl extends ServiceImpl i private final PasswordEncoder passwordEncoder; private final RedisService redisService; private final WxUtil wxUtil; - private final WxServiceProviderUtil wxServiceProviderUtil; private final EduTeacherDeptMapper eduTeacherDeptMapper; private final CommonService commonService; @@ -195,7 +176,7 @@ public class EduStaffServiceImpl extends ServiceImpl i @GlobalTransactional public void saveTeacher(Integer operation, EduStaff eduStaff) { List existDeptList = eduTeacherDeptService.list( - Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, eduStaff.getId())); + Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, eduStaff.getId())); if (operation == 0) { Asserts.isTrue(CollUtil.isEmpty(existDeptList), "该教师已存在"); } @@ -204,11 +185,6 @@ public class EduStaffServiceImpl extends ServiceImpl i Dept school = commonService.getDept(staff.getSchoolId()); // 绑定了微信 String accessToken = null; - // 明文userId - // 当代开发情况下,此处的职工(教师id)需要转换成明文才能调用 - String plainUserId = null; - EduApp appSelect = commonService.getAppContactUsedBySelect(staff.getSchoolId()); - if (school.getSchoolType().contains(Dept.TYPE_QYWX)) { EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT_SCHOOL, null, staff.getSchoolId()); accessToken = wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()); @@ -233,14 +209,9 @@ public class EduStaffServiceImpl extends ServiceImpl i break; } if (deptId != null) { - EduUserDept userDept = eduUserDeptService.getById(deptId); - if (Objects.nonNull(userDept)) { - // 删除企业微信已有关联部门数据 - eduTeacherDept.setDeptWxId(userDept.getWxId()); - plainUserId = commonService.getPlainUserId(staff.getWxId(), school.getDeptId(), appSelect); - eduTeacherDept.setTeacherWxId(plainUserId); - wxUtil.deleteSchoolDeptUser(accessToken, eduTeacherDept); - } + eduTeacherDept.setDeptWxId(eduUserDeptService.getById(deptId).getWxId()); + eduTeacherDept.setTeacherWxId(staff.getWxId()); + wxUtil.deleteSchoolDeptUser(accessToken, eduTeacherDept); } } } @@ -278,10 +249,7 @@ public class EduStaffServiceImpl extends ServiceImpl i break; } teacherDept.setDeptWxId(eduUserDeptService.getById(deptId).getWxId()); - if (StringUtils.isEmpty(plainUserId)) { - plainUserId = commonService.getPlainUserId(staff.getWxId(), school.getDeptId(), appSelect); - } - teacherDept.setTeacherWxId(plainUserId); + teacherDept.setTeacherWxId(staff.getWxId()); wxUtil.updateUserDeptTeacherInfo(accessToken, teacherDept); } teacherDept.setTeacherId(staff.getId()); @@ -354,166 +322,18 @@ public class EduStaffServiceImpl extends ServiceImpl i return teacherClassVOS; } - @Override - public List listClassIdByStaffId() { - CurrentUser currentUser = FebsUtil.getCurrentUser(); - List resultList = new ArrayList<>(); - List parentIdList = new ArrayList<>(); - //根据sysUserId查询staffId - EduStaff staff = this.getOne(Wrappers.lambdaQuery(new EduStaff()) - .eq(EduStaff::getSchoolId, FebsUtil.getTopDeptId()) - .eq(EduStaff::getSysUserId, currentUser.getUserId())); - - //任课老师 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_TEACHER.getValue())) { - resultList.addAll( - baseMapper.listDeptByTeacher(staff.getId(), 4).stream().map(TeacherDeptVO::getClassId) - .collect(Collectors.toList())); - } - //班主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_CLASS_PRINCIPAL.getValue())) { - resultList.addAll( - baseMapper.listDeptByTeacher(staff.getId(), 3).stream().map(TeacherDeptVO::getClassId) - .collect(Collectors.toList())); - } - //年级主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_GRADE_PRINCIPAL.getValue())) { - List gradeIdList = baseMapper.listDeptByTeacher(staff.getId(), 2).stream() - .map(TeacherDeptVO::getGradeId) - .collect(Collectors.toList()); - parentIdList.addAll(gradeIdList); - } - //学段主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_SECTION_PRINCIPAL.getValue())) { - List sectionIdList = baseMapper.listDeptByTeacher(staff.getId(), 5).stream() - .map(TeacherDeptVO::getSectionId) - .collect(Collectors.toList()); - parentIdList.addAll(sectionIdList); - - } - //学区主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_CAMPUS_PRINCIPAL.getValue())) { - List campusIdList = baseMapper.listDeptByTeacher(staff.getId(), 1).stream() - .map(TeacherDeptVO::getCampusId) - .collect(Collectors.toList()); - parentIdList.addAll(campusIdList); - } - - List resultDeptList = new ArrayList<>(); - if (CollUtil.isNotEmpty(parentIdList)) { - List childIdByParentAndType = eduUserDeptService - .findChildIdByParentAndType(parentIdList, 1, resultDeptList); - resultList.addAll(childIdByParentAndType.stream().map(EduUserDept::getDeptId).collect(Collectors.toList())); - } - return resultList; - } - - @Override - public List listStaffRolesByStaffId(Long staffId) { - return eduTeacherDeptMapper.findType(staffId); - } - - @Override - public List listDeptByStaffId(Long staffId) { - CurrentUser currentUser = FebsUtil.getCurrentUser(); - List resultList = new ArrayList<>(); - //班主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_CLASS_PRINCIPAL.getValue())) { - List classList = baseMapper.listDeptByTeacher(staffId, 3); - resultList.addAll(classList); - } - //年级主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_GRADE_PRINCIPAL.getValue())) { - List gradeList = baseMapper.listDeptByTeacher(staffId, 2); - resultList.addAll(gradeList); - } - //学段主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_SECTION_PRINCIPAL.getValue())) { - List sectionList = baseMapper.listDeptByTeacher(staffId, 5); - resultList.addAll(sectionList); - } - //学区主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_CAMPUS_PRINCIPAL.getValue())) { - List campusList = baseMapper.listDeptByTeacher(staffId, 1); - resultList.addAll(campusList); - } -// List teacherClassVOS = new ArrayList<>(); -// List teacherDeptVOS = baseMapper.listDeptByTeacher(staffId, type); - - resultList.forEach(teacherDeptVO -> { - Integer type = teacherDeptVO.getType(); - switch (type) { - case 1: - EduUserDept campus = remoteUserDeptService.getByDeptId(teacherDeptVO.getCampusId()).getData(); - teacherDeptVO.setCampusName(campus.getDeptName()); - break; - case 2: - EduUserDept campus_g = remoteUserDeptService.getByDeptId(teacherDeptVO.getCampusId()).getData(); - teacherDeptVO.setCampusName(campus_g.getDeptName()); - EduUserDept grade = remoteUserDeptService.getByDeptId(teacherDeptVO.getGradeId()).getData(); - teacherDeptVO.setGradeName(grade.getDeptName()); - break; - case 3: - EduUserDept campus_c = remoteUserDeptService.getByDeptId(teacherDeptVO.getCampusId()).getData(); - teacherDeptVO.setCampusName(campus_c.getDeptName()); - EduUserDept grade_c = remoteUserDeptService.getByDeptId(teacherDeptVO.getGradeId()).getData(); - teacherDeptVO.setGradeName(grade_c.getDeptName()); - EduUserDept clazz = remoteUserDeptService.getByDeptId(teacherDeptVO.getClassId()).getData(); - teacherDeptVO.setClassName(clazz.getDeptName()); - break; - case 5: - EduUserDept campus_s = remoteUserDeptService.getByDeptId(teacherDeptVO.getCampusId()).getData(); - teacherDeptVO.setCampusName(campus_s.getDeptName()); - -// EduUserDept campus_s = remoteUserDeptService.getByDeptId(teacherDeptVO.getCampusId()).getData(); -// teacherDeptVO.setCampusName(campus_s.getDeptName()); - - } - }); - - for (TeacherDeptVO dept : resultList) { -// TeacherClassVO teacherClassVO = new TeacherClassVO(); -// teacherClassVO.setType(dept.getType()); - Long deptId = null; - if (dept.getType() == 1) { - //校区 - deptId = dept.getCampusId(); - } else if (dept.getType() == 2) { - deptId = dept.getGradeId(); - } else if (dept.getType() == 3) { - deptId = dept.getClassId(); - } else if (dept.getType() == 5) { - deptId = dept.getSectionId(); - } -// EduUserDept eduUserDept = remoteUserDeptService.getByDeptId(deptId).getData(); -// teacherClassVO.setDeptId(eduUserDept.getDeptId()); -// teacherClassVO.setDeptName(eduUserDept.getDeptName()); -// teacherClassVOS.add(teacherClassVO); - } - return null; - } - @Override public void delStaffBatch(List staffIds) { List staffList = list(Wrappers.lambdaQuery(new EduStaff()).in(EduStaff::getId, staffIds)); // 删除人脸相关信息 List faceList = - eduFaceGroupUserService.list(Wrappers.lambdaQuery() - .eq(EduFaceGroupUser::getUserType, 1) - .in(EduFaceGroupUser::getUserId, staffIds)); + eduFaceGroupUserService.list(Wrappers.lambdaQuery() + .eq(EduFaceGroupUser::getUserType, 1) + .in(EduFaceGroupUser::getUserId, staffIds)); if (CollUtil.isNotEmpty(faceList)) { -// eduFaceGroupUserService.delUserBatch(DelFaceGroupUserDTO.builder() -// .faceIds(faceList.stream().map(EduFaceGroupUser::getId).collect(Collectors.toList())).build()); - // 分组处理数据 - Map> faceGroupMap = faceList.stream().collect( - Collectors.groupingBy(EduFaceGroupUser::getFaceGroupId)); - faceGroupMap.forEach((faceGroupId, userList) -> - eduFaceGroupUserService.delUserBatch(DelFaceGroupUserDTO.builder() - .faceGroupId(faceGroupId) - .faceIds(userList.stream().map(EduFaceGroupUser::getId).collect(Collectors.toList())) - .build()) - ); + eduFaceGroupUserService.delUserBatch(DelFaceGroupUserDTO.builder() + .faceIds(faceList.stream().map(EduFaceGroupUser::getId).collect(Collectors.toList())).build()); } removeByIds(staffIds); @@ -527,20 +347,18 @@ public class EduStaffServiceImpl extends ServiceImpl i // boolean containsDahua = school.getSchoolType().contains(Dept.TYPE_DAHUA); // 绑定了微信 if (containsWx) { - List staffWxIdList = staffList.stream().filter(x -> StrUtil.isNotBlank(x.getWxId()) && x.getWxPath() == 0) - .map(EduStaff::getWxId) - .collect(Collectors.toList()); - if (CollUtil.isNotEmpty(staffWxIdList)) { - String wxAccessToken = commonService.getAddressListToken(schoolId); - wxUtil.deleteUser(wxAccessToken, staffWxIdList); - } + EduApp eduApp = commonService.getAppByCodeAndSchool(AppConstant.CONTACT, null, schoolId); + String wxAccessToken = wxUtil.getAccessToken(eduApp.getWxCorpId(), eduApp.getWxSecret()); + wxUtil.deleteUser(wxAccessToken, + staffList.stream().filter(x -> StrUtil.isNotBlank(x.getWxId()) && x.getWxPath() == 0).map(EduStaff::getWxId) + .collect(Collectors.toList())); } // 绑定了易达app if (containsYida) { EduYidaApp yidaApp = commonService.getYidaApp(schoolId); EduYidaAppAccount yidaAppAccount = commonService.getYidaAppAccount(schoolId, 1); staffList.stream().map(EduStaff::getYidaAppUserId).filter(StrUtil::isNotBlank) - .forEach(x -> AppUtil.subscribeUnFollow(yidaAppAccount.getYidaAppAccountId(), x, yidaApp)); + .forEach(x -> AppUtil.subscribeUnFollow(yidaAppAccount.getYidaAppAccountId(), x, yidaApp)); } // // 绑定了大华 // if (containsDahua) { @@ -557,12 +375,10 @@ public class EduStaffServiceImpl extends ServiceImpl i eduTeacherDeptService.remove(Wrappers.lambdaQuery(new EduTeacherDept()).in(EduTeacherDept::getTeacherId, teacherIds)); for (EduStaff teacher : listByIds(teacherIds)) { remoteUserService.updateUserRoleByRoleName(teacher.getSysUserId(), - Collections.singletonList(RoleName.STAFF.getName())); + Collections.singletonList(RoleName.STAFF.getName())); } - + log.info("处理微信"); if (school.getSchoolType().contains(Dept.TYPE_QYWX) && CollUtil.isNotEmpty(teacherDepts)) { - log.info("处理企业微信删除教师信息"); - EduApp appSelect = commonService.getAppContactUsedBySelect(school.getDeptId()); // TODO: 2021/10/28 删除学校部门与教师关联信息 EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT_SCHOOL, null, schoolId); String accessToken = wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()); @@ -585,9 +401,6 @@ public class EduStaffServiceImpl extends ServiceImpl i default: break; } - String plainUserId = commonService.getPlainUserId(teacherDept.getTeacherWxId(), school.getDeptId(), appSelect); - teacherDept.setTeacherWxId(plainUserId); - EduUserDept userDept = eduUserDeptService.getById(deptId); teacherDept.setDeptWxId(userDept.getWxId()); wxUtil.deleteSchoolDeptUser(accessToken, teacherDept); @@ -599,98 +412,82 @@ public class EduStaffServiceImpl extends ServiceImpl i @Override public void dealWxTeacherChange(Long schoolId, Long campusId, Long sectionId, Long gradeId, Long classId, - List teacherList, Long deptWxId) { + List teacherList) { // 删除部门关联信息 if (CollUtil.isNotEmpty(teacherList)) { LambdaQueryWrapper delTeacherDeptCondition = Wrappers.lambdaQuery(new EduTeacherDept()); - // 删除单个部门负责人 if (classId != null) { delTeacherDeptCondition.eq(EduTeacherDept::getClassId, classId); } else if (gradeId != null) { delTeacherDeptCondition.eq(EduTeacherDept::getGradeId, gradeId); - delTeacherDeptCondition.isNull(EduTeacherDept::getClassId); } else if (sectionId != null) { delTeacherDeptCondition.eq(EduTeacherDept::getSectionId, sectionId); - delTeacherDeptCondition.isNull(EduTeacherDept::getGradeId); - delTeacherDeptCondition.isNull(EduTeacherDept::getClassId); } else if (campusId != null) { delTeacherDeptCondition.eq(EduTeacherDept::getCampusId, campusId); - delTeacherDeptCondition.isNull(EduTeacherDept::getSectionId); - delTeacherDeptCondition.isNull(EduTeacherDept::getGradeId); - delTeacherDeptCondition.isNull(EduTeacherDept::getClassId); } else { - // 未满足条件不删除关联关系 + // 为满足条件不删除关联关系 delTeacherDeptCondition.eq(EduTeacherDept::getSchoolId, -1L); } - eduTeacherDeptService.remove(delTeacherDeptCondition); List eduTeacherDeptList = new ArrayList<>(); for (Map teacher : teacherList) { - try { - EduTeacherDept eduTeacherDept = new EduTeacherDept(); - eduTeacherDept.setSchoolId(schoolId); - eduTeacherDept.setCampusId(campusId); - eduTeacherDept.setSectionId(sectionId); - eduTeacherDept.setGradeId(gradeId); - eduTeacherDept.setClassId(classId); + EduTeacherDept eduTeacherDept = new EduTeacherDept(); + eduTeacherDept.setSchoolId(schoolId); + eduTeacherDept.setCampusId(campusId); + eduTeacherDept.setSectionId(sectionId); + eduTeacherDept.setGradeId(gradeId); + eduTeacherDept.setClassId(classId); - String teacherWxId = (String) teacher.get("userid"); - // 根据通讯录应用情况获取对应用户密文id - teacherWxId = commonService.getSecretUserId(teacherWxId, schoolId); - int teacherType = Integer.parseInt(teacher.get("type").toString()); - String subject = ObjectUtil.toString(teacher.get("subject")); + String teacherWxId = (String) teacher.get("userid"); + int teacherType = Integer.parseInt(teacher.get("type").toString()); + String subject = ObjectUtil.toString(teacher.get("subject")); - EduStaff teacherInfo = getOne( - Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getWxId, teacherWxId) - .eq(EduStaff::getSchoolId, schoolId)); - if (teacherInfo == null) { - continue; - } - eduTeacherDept.setTeacherId(teacherInfo.getId()); - // 教师类型 - switch (teacherType) { - case 1: - eduTeacherDept.setType(1); - remoteUserService.bindRoleByUser(teacherInfo.getSysUserId(), "校区负责人"); - break; - case 2: - eduTeacherDept.setType(2); - remoteUserService.bindRoleByUser(teacherInfo.getSysUserId(), "年级负责人"); - break; - case 3: - remoteUserService.bindRoleByUser(teacherInfo.getSysUserId(), "班主任"); - eduTeacherDept.setType(3); - break; - case 4: - remoteUserService.bindRoleByUser(teacherInfo.getSysUserId(), "任课老师"); - eduTeacherDept.setType(4); - break; - case 5: - remoteUserService.bindRoleByUser(teacherInfo.getSysUserId(), "学段负责人"); - eduTeacherDept.setType(5); - break; - default: - break; - } - // 填充部门信息 - if (StrUtil.isNotBlank(subject) && !"null".equals(subject)) { - // 科目信息 - EduCourse course = eduCourseMapper.selectOne( - Wrappers.lambdaQuery(new EduCourse()).eq(EduCourse::getSchoolId, schoolId) - .eq(EduCourse::getCourseName, subject)); - if (course == null) { - course = new EduCourse(); - course.setCourseName(subject); - course.setSchoolId(schoolId); - eduCourseMapper.insert(course); - } - eduTeacherDept.setCourseId(course.getId()); - } - eduTeacherDeptList.add(eduTeacherDept); - } catch (Exception e) { - log.error("处理家校沟通教师数据失败: schoolId:{}, campusId: {}, sectionId:{}, gradeId:{}, classId:{}, teacher:{}", - schoolId, campusId, sectionId, gradeId, classId, teacher, e); + EduStaff teacherInfo = getOne( + Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getWxId, teacherWxId).eq(EduStaff::getSchoolId, schoolId)); + if (teacherInfo == null) { + continue; } + eduTeacherDept.setTeacherId(teacherInfo.getId()); + // 教师类型 + switch (teacherType) { + case 1: + eduTeacherDept.setType(1); + remoteUserService.bindRoleByUser(teacherInfo.getSysUserId(), "校区负责人"); + break; + case 2: + eduTeacherDept.setType(2); + remoteUserService.bindRoleByUser(teacherInfo.getSysUserId(), "年级负责人"); + break; + case 3: + remoteUserService.bindRoleByUser(teacherInfo.getSysUserId(), "班主任"); + eduTeacherDept.setType(3); + break; + case 4: + remoteUserService.bindRoleByUser(teacherInfo.getSysUserId(), "任课老师"); + eduTeacherDept.setType(4); + break; + case 5: + remoteUserService.bindRoleByUser(teacherInfo.getSysUserId(), "学段负责人"); + eduTeacherDept.setType(5); + break; + default: + break; + } + // 填充部门信息 + if (StrUtil.isNotBlank(subject) && !"null".equals(subject)) { + // 科目信息 + EduCourse course = eduCourseMapper.selectOne( + Wrappers.lambdaQuery(new EduCourse()).eq(EduCourse::getSchoolId, schoolId) + .eq(EduCourse::getCourseName, subject)); + if (course == null) { + course = new EduCourse(); + course.setCourseName(subject); + course.setSchoolId(schoolId); + eduCourseMapper.insert(course); + } + eduTeacherDept.setCourseId(course.getId()); + } + eduTeacherDeptList.add(eduTeacherDept); } eduTeacherDeptService.saveBatch(eduTeacherDeptList); } @@ -707,7 +504,7 @@ public class EduStaffServiceImpl extends ServiceImpl i String cardNum = DaHuaUtil.generateCardNum(); staff.setDahuaCode(staff.getMobile()); staff.setDahuaId( - DaHuaUtil.addUser(staff.getName(), staff.getDahuaCode(), 1, 1, cardNum, null, null, null, null, null, "")); + DaHuaUtil.addUser(staff.getName(), staff.getDahuaCode(), 1, 1, cardNum, null, null, null, null, null, "")); } List eduStaffDeptList = staff.getStaffDept(); if (CollUtil.isNotEmpty(eduStaffDeptList)) { @@ -724,211 +521,165 @@ public class EduStaffServiceImpl extends ServiceImpl i } @Override - public ResultBean> importStaff(MultipartFile file, Long schoolId, long timestamp) { - // 验证文件类型 - if (!FileUtil.checkMultipartFile(file, FebsConstant.EXCEL_FILE_TYPE)) { - return ResultBean.buildError(ResultMsgType.FILE_TYPE_ERROR.getValue()); - } - StopWatch stopWatch = new StopWatch(); - stopWatch.start(); - // 调用导入方法 - ConcurrentHashMap errorMap = new ConcurrentHashMap<>(16); + public void importStaff(String path, Long schoolId, CurrentUser currentUser, Long key, String fileName) { try { - EasyExcel.read(file.getInputStream(), StaffImportDTO.class, - new StaffDataExcelListener(this, errorMap, schoolId, timestamp)) - .sheet().headRowNumber(8).doRead(); - } catch (IOException exception) { - exception.printStackTrace(); - } - stopWatch.stop(); - log.info("导入职工数据总共耗时: {}", stopWatch.getTotalTimeSeconds() + "秒"); - // 判断是否有错误数据 - if (errorMap.size() > 0) { - return ResultBean - .buildError(ResultStatusType.IMPORT_FAIL.getValue(), ResultMsgType.IMPORT_EXCEL_FAIL.getValue(), errorMap); - } - return ResultBean.buildSuccess(ResultMsgType.IMPORT_EXCEL_SUCCESS.getValue(), null); - } + Dept school = commonService.getDept(schoolId); + // 解压文件到本地 + File zipFile = new File(path); + String zipPath = ZipUtil.unzip(zipFile, CharsetUtil.CHARSET_GBK).getAbsolutePath(); + Map cacheDept = new HashMap<>(); + // 循环拿到数据 + List face = FileUtil.loopFiles(zipPath, x -> { + String suffix = FileUtil.getSuffix(x); + return (!"txt".equals(suffix)) && (!"xlsx".equals(suffix)); + }); + List excel = FileUtil.loopFiles(zipPath, x -> { + String suffix = FileUtil.getSuffix(x); + return "xlsx".equals(suffix); + }); + int count = 0; + int complete = 0; + int percent = 0; + EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT, null, schoolId); + ; + String token = wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()); + for (File file : excel) { + Workbook workbook; + try { + workbook = com.yida.data.common.core.utils.ExcelUtil.readExcel(file, "xlsx"); + } catch (IOException e) { + e.printStackTrace(); + throw new FebsException("读取职工名单失败,请重新上传"); + } + Sheet campusSheet = workbook.getSheetAt(0); + List> staffList = ExcelUtil.readData(campusSheet, 9); +// Role staffRole = remoteRoleService.getRoleByNameNoPermission("职工").getData(); + count = face.size() + staffList.size(); + List> errorData = new ArrayList<>(); + for (int i = 0; i < staffList.size(); i++) { + Map staff = staffList.get(i); + String name = ExcelUtil.getCellValue(staff.get(1)); + if (StrUtil.isBlankIfStr(name)) { + continue; + } + String alias = ExcelUtil.getCellValue(staff.get(2)); + String sex = ExcelUtil.getCellValue(staff.get(3)); + String phone = ExcelUtil.getCellValue(staff.get(4)); + String landLine = ExcelUtil.getCellValue(staff.get(5)); + String email = ExcelUtil.getCellValue(staff.get(6)); + String addr = ExcelUtil.getCellValue(staff.get(7)); + String deptName = ExcelUtil.getCellValue(staff.get(8)); + String identity = ExcelUtil.getCellValue(staff.get(9)); + String position = ExcelUtil.getCellValue(staff.get(10)); + String companyAbbre = ExcelUtil.getCellValue(staff.get(11)); + String foreignPosition = ExcelUtil.getCellValue(staff.get(12)); -// @Override -// public void importStaff(String path, Long schoolId, CurrentUser currentUser, Long key, String fileName) { -// -// -// -//// try { -//// Dept school = commonService.getDept(schoolId); -//// // 解压文件到本地 -//// File zipFile = new File(path); -//// String zipPath = ZipUtil.unzip(zipFile, CharsetUtil.CHARSET_GBK).getAbsolutePath(); -//// Map cacheDept = new HashMap<>(); -//// // 循环拿到数据 -//// List face = FileUtil.loopFiles(zipPath, x -> { -//// String suffix = FileUtil.getSuffix(x); -//// return (!"txt".equals(suffix)) && (!"xlsx".equals(suffix)); -//// }); -//// List excel = FileUtil.loopFiles(zipPath, x -> { -//// String suffix = FileUtil.getSuffix(x); -//// return "xlsx".equals(suffix); -//// }); -//// int count = 0; -//// int complete = 0; -//// int percent = 0; -//// -//// String token = commonService.getAddressListToken(schoolId); -//// -//// for (File file : excel) { -//// Workbook workbook; -//// try { -//// workbook = com.yida.data.common.core.utils.ExcelUtil.readExcel(file, "xlsx"); -//// } catch (IOException e) { -//// e.printStackTrace(); -//// throw new FebsException("读取职工名单失败,请重新上传"); -//// } -//// Sheet campusSheet = workbook.getSheetAt(0); -//// List> staffList = ExcelUtil.readData(campusSheet, 9); -////// Role staffRole = remoteRoleService.getRoleByNameNoPermission("职工").getData(); -//// count = face.size() + staffList.size(); -//// List> errorData = new ArrayList<>(); -//// for (int i = 0; i < staffList.size(); i++) { -//// Map staff = staffList.get(i); -//// String name = ExcelUtil.getCellValue(staff.get(1)); -//// if (StrUtil.isBlankIfStr(name)) { -//// continue; -//// } -//// //别名 -//// String alias = ExcelUtil.getCellValue(staff.get(2)); -//// //性别 -//// String sex = ExcelUtil.getCellValue(staff.get(3)); -//// //联系电话 -//// String phone = ExcelUtil.getCellValue(staff.get(4)); -//// //座机 -//// String landLine = ExcelUtil.getCellValue(staff.get(5)); -//// //邮箱 -//// String email = ExcelUtil.getCellValue(staff.get(6)); -//// //地址 -//// String addr = ExcelUtil.getCellValue(staff.get(7)); -//// //部门名称 -//// String deptName = ExcelUtil.getCellValue(staff.get(8)); -//// //是否是上级 -//// String identity = ExcelUtil.getCellValue(staff.get(9)); -//// //职务 -//// String position = ExcelUtil.getCellValue(staff.get(10)); -//// //?? -//// String companyAbbre = ExcelUtil.getCellValue(staff.get(11)); -//// //?? -//// String foreignPosition = ExcelUtil.getCellValue(staff.get(12)); -//// //是否同步到企业微信 -//// String wxPath = ExcelUtil.getCellValue(staff.get(13)); -//// -//// try { -//// EduStaff eduStaff = new EduStaff(); -//// //职工已存在跳过 -//// EduStaff existStaff = getOne(Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getMobile, phone) -//// .eq(EduStaff::getSchoolId, schoolId)); -//// if (existStaff != null) { -//// eduStaff = existStaff; -//// } else { -//// Dept dept = cacheDept.containsKey(deptName) ? cacheDept.get(deptName) -//// : remoteDeptService.getDeptBySchoolAndName(schoolId, deptName).getData(); -//// cacheDept.put(deptName, dept); -//// eduStaff.setName(name); -//// eduStaff.setSex("男".equals(sex) ? "0" : "女".equals(sex) ? "1" : "2"); -//// eduStaff.setMobile(phone); -//// eduStaff.setSchoolId(school.getDeptId()); -//// eduStaff.setSchoolName(school.getDeptName()); -//// -//// eduStaff.setAlias(alias); -//// eduStaff.setLandLine(landLine); -//// eduStaff.setEmail(email); -//// eduStaff.setAddress(addr); -//// eduStaff.setPosition(position); -//// eduStaff.setIsLeader("上级".equals(identity) ? 1 : 0); -//// eduStaff.setCompanyAbbre(companyAbbre); -//// eduStaff.setForeignPosition(foreignPosition); -//// eduStaff.setWxPath(Integer.parseInt(wxPath)); -//// -//// eduStaff.setWxId(StrUtil.isNotBlank(phone) ? phone : StrUtil.uuid().replace("-", "")); -//// save(eduStaff); -//// -//// EduStaffDept staffDept = new EduStaffDept(); -//// staffDept.setStaffId(eduStaff.getId()); -//// staffDept.setStaffName(eduStaff.getName()); -//// staffDept.setDeptId(dept.getDeptId()); -//// staffDept.setDeptName(dept.getDeptName()); -//// staffDept.setDeptWxId(dept.getWxId()); -//// staffDept.setIsLeader("下级".equals(identity) ? 1 : 0); -//// staffDept.setIsMain(1); -//// eduStaffDeptService.save(staffDept); -//// -//// eduStaff.setStaffDept(Collections.singletonList(staffDept)); -//// // 微信教师信息新增 -//// if ("0".equals(wxPath)) { -//// wxUtil.createUser(token, eduStaff); -//// } -//// //添加系统账号 -//// saveSystemUser(eduStaff); -//// updateById(eduStaff); -//// } -//// } catch (Exception e) { -//// errorData.add(new HashMap() {{ -//// put("name", name); -//// put("alias", alias); -//// put("wxId", phone); -//// put("sex", sex); -//// put("phone", phone); -//// put("landLine", landLine); -//// put("email", email); -//// put("addr", addr); -//// put("deptName", deptName); -//// put("identity", identity); -//// put("position", position); -//// put("companyAbbre", companyAbbre); -//// put("foreignPosition", foreignPosition); -//// }}); -//// } -//// -//// complete++; -//// if (complete / count != percent) { -//// percent = complete / count; -//// redisService.hset(CachePrefixConstant.IMPORT_STAFF_KEY + currentUser.getUsername(), key.toString(), -//// percent); -//// } -//// } -//// // 新增通知 -//// Long noticeId = null; -//// -//// //EduNoticeSystem eduNoticeSystem = new EduNoticeSystem(); -//// //eduNoticeSystem.setContent("文档" + file.getName() + "已经上传完成,共上传" + staffList.size() + "条数据,其中错误" + errorData.size() + "条。"); -//// //noticeId = eduNoticeSystemService.insertNotice(eduNoticeSystem); -//// // -//// //EduNoticeSystemUser eduNoticeSystemUser = new EduNoticeSystemUser(); -//// //eduNoticeSystemUser.setNoticeId(noticeId); -//// //eduNoticeSystemUser.setUserId(currentUser.getUserId()); -//// //if (CollUtil.isNotEmpty(errorData)) { -//// // redisService.set(CachePrefixConstant.IMPORT_ERROR + noticeId.toString(), JSONUtil.toJsonStr(errorData), 3600L); -//// //} -//// } -//// -//// // 保存人脸 -//// for (File pic : face) { -//// String name = FileUtil.getName(pic); -//// String mobile = name.split("\\.")[0]; -//// EduStaff staff = getOne(Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getSchoolId, school.getDeptId()) -//// .eq(EduStaff::getMobile, mobile)); -//// if (staff != null) { -//// eduUserFaceService.uploadImage(pic, staff.getId(), staff.getName(), 1); -//// } -//// complete++; -//// if (complete / count != percent) { -//// percent = complete / count; -//// redisService.hset(CachePrefixConstant.IMPORT_STAFF_KEY + currentUser.getUsername(), key.toString(), percent); -//// } -//// } -//// } finally { -//// redisService.hdel(CachePrefixConstant.IMPORT_STAFF_KEY + currentUser.getUsername(), key.toString()); -//// redisService.hdel(CachePrefixConstant.IMPORT_STAFF_FILE + currentUser.getUsername(), key.toString()); -//// } -// } + try { + EduStaff eduStaff = new EduStaff(); + //职工已存在跳过 + EduStaff existStaff = getOne(Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getMobile, phone) + .eq(EduStaff::getSchoolId, schoolId)); + if (existStaff != null) { + eduStaff = existStaff; + } else { + Dept dept = cacheDept.containsKey(deptName) ? cacheDept.get(deptName) + : remoteDeptService.getDeptBySchoolAndName(schoolId, deptName).getData(); + cacheDept.put(deptName, dept); + eduStaff.setName(name); + eduStaff.setSex("男".equals(sex) ? "0" : "女".equals(sex) ? "1" : "2"); + eduStaff.setMobile(phone); + eduStaff.setSchoolId(school.getDeptId()); + eduStaff.setSchoolName(school.getDeptName()); + + eduStaff.setAlias(alias); + eduStaff.setLandLine(landLine); + eduStaff.setEmail(email); + eduStaff.setAddress(addr); + eduStaff.setPosition(position); + eduStaff.setIsLeader("上级".equals(identity) ? 1 : 0); + eduStaff.setCompanyAbbre(companyAbbre); + eduStaff.setForeignPosition(foreignPosition); + + eduStaff.setWxId(StrUtil.isNotBlank(phone) ? phone : StrUtil.uuid().replace("-", "")); + save(eduStaff); + + EduStaffDept staffDept = new EduStaffDept(); + staffDept.setStaffId(eduStaff.getId()); + staffDept.setStaffName(eduStaff.getName()); + staffDept.setDeptId(dept.getDeptId()); + staffDept.setDeptName(dept.getDeptName()); + staffDept.setDeptWxId(dept.getWxId()); + staffDept.setIsLeader("下级".equals(identity) ? 1 : 0); + staffDept.setIsMain(1); + eduStaffDeptService.save(staffDept); + + eduStaff.setStaffDept(Collections.singletonList(staffDept)); + // 微信教师信息新增 + wxUtil.createUser(token, eduStaff); + //添加系统账号 + saveSystemUser(eduStaff); + updateById(eduStaff); + } + } catch (Exception e) { + errorData.add(new HashMap() {{ + put("name", name); + put("alias", alias); + put("wxId", phone); + put("sex", sex); + put("phone", phone); + put("landLine", landLine); + put("email", email); + put("addr", addr); + put("deptName", deptName); + put("identity", identity); + put("position", position); + put("companyAbbre", companyAbbre); + put("foreignPosition", foreignPosition); + }}); + } + + complete++; + if (complete / count != percent) { + percent = complete / count; + redisService.hset(CachePrefixConstant.IMPORT_STAFF_KEY + currentUser.getUsername(), key.toString(), + percent); + } + } + // 新增通知 + Long noticeId = null; + + //EduNoticeSystem eduNoticeSystem = new EduNoticeSystem(); + //eduNoticeSystem.setContent("文档" + file.getName() + "已经上传完成,共上传" + staffList.size() + "条数据,其中错误" + errorData.size() + "条。"); + //noticeId = eduNoticeSystemService.insertNotice(eduNoticeSystem); + // + //EduNoticeSystemUser eduNoticeSystemUser = new EduNoticeSystemUser(); + //eduNoticeSystemUser.setNoticeId(noticeId); + //eduNoticeSystemUser.setUserId(currentUser.getUserId()); + //if (CollUtil.isNotEmpty(errorData)) { + // redisService.set(CachePrefixConstant.IMPORT_ERROR + noticeId.toString(), JSONUtil.toJsonStr(errorData), 3600L); + //} + } + + // 保存人脸 + for (File pic : face) { + String name = FileUtil.getName(pic); + String mobile = name.split("\\.")[0]; + EduStaff staff = getOne(Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getSchoolId, school.getDeptId()) + .eq(EduStaff::getMobile, mobile)); + if (staff != null) { + eduUserFaceService.uploadImage(pic, staff.getId(), staff.getName(), 1); + } + complete++; + if (complete / count != percent) { + percent = complete / count; + redisService.hset(CachePrefixConstant.IMPORT_STAFF_KEY + currentUser.getUsername(), key.toString(), percent); + } + } + } finally { + redisService.hdel(CachePrefixConstant.IMPORT_STAFF_KEY + currentUser.getUsername(), key.toString()); + redisService.hdel(CachePrefixConstant.IMPORT_STAFF_FILE + currentUser.getUsername(), key.toString()); + } + } @Override public Integer importTeacherHeartbeat(String username, Long key) { @@ -952,15 +703,15 @@ public class EduStaffServiceImpl extends ServiceImpl i public List> listImportKey(String username, Integer type) { List> list = new ArrayList<>(); Map keyList = redisService.hmget( - (type == 0 ? CachePrefixConstant.IMPORT_TEACHER_KEY : CachePrefixConstant.IMPORT_STAFF_KEY) + username); + (type == 0 ? CachePrefixConstant.IMPORT_TEACHER_KEY : CachePrefixConstant.IMPORT_STAFF_KEY) + username); if (CollUtil.isNotEmpty(keyList)) { for (Map.Entry objectEntry : keyList.entrySet()) { Map res = new HashMap<>(); Object key = objectEntry.getKey(); Object value = objectEntry.getValue(); Object filename = redisService.hget( - (type == 0 ? CachePrefixConstant.IMPORT_TEACHER_FILE : CachePrefixConstant.IMPORT_STAFF_FILE) + username, - key.toString()); + (type == 0 ? CachePrefixConstant.IMPORT_TEACHER_FILE : CachePrefixConstant.IMPORT_STAFF_FILE) + username, + key.toString()); if (filename != null && StrUtil.isNotBlank(filename.toString())) { res.put("percent", value.toString()); res.put("filename", filename.toString()); @@ -999,7 +750,7 @@ public class EduStaffServiceImpl extends ServiceImpl i @Override public void saveStaffBySchoolAndWx(EduStaff staff) { EduStaff exist = getOne(Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getSchoolId, staff.getSchoolId()) - .eq(EduStaff::getWxId, staff.getWxId())); + .eq(EduStaff::getWxId, staff.getWxId())); if (exist != null) { staff.setId(exist.getId()); eduStaffDeptService.remove(Wrappers.lambdaQuery(new EduStaffDept()).eq(EduStaffDept::getStaffId, staff.getId())); @@ -1016,10 +767,10 @@ public class EduStaffServiceImpl extends ServiceImpl i @Override public void dealWxUserDelete(String wxId, Long schoolId) { EduStaff staff = getOne( - Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getWxId, wxId).eq(EduStaff::getSchoolId, schoolId)); + Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getWxId, wxId).eq(EduStaff::getSchoolId, schoolId)); if (staff != null) { eduTeacherDeptService.remove( - Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, staff.getId())); + Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, staff.getId())); eduStaffDeptService.remove(Wrappers.lambdaQuery(new EduStaffDept()).eq(EduStaffDept::getStaffId, staff.getId())); removeById(staff.getId()); } @@ -1027,35 +778,24 @@ public class EduStaffServiceImpl extends ServiceImpl i @Override public void downloadTemplate(HttpServletResponse response, Integer type) { + // 根据树形结构建造文件夹 + String tempDir = StrUtil.uuid().replace("-", ""); + File dir = FileUtil.mkdir(tempDir); + FileWriter.create(FileUtil.newFile(dir.getAbsolutePath() + "\\" + "请阅读我!!!.txt")) + .writeFromStream(this.getClass().getClassLoader().getResourceAsStream("template/staff.txt"), true); + + FileWriter.create(FileUtil.newFile(dir.getAbsolutePath() + "\\" + "人员信息.xlsx")).writeFromStream( + this.getClass().getClassLoader().getResourceAsStream(type == 0 ? "template/teacher.xlsx" : "template/staff.xlsx"), + true); + File file = ZipUtil.zip(tempDir); + + System.out.println(file.getAbsolutePath()); try { - String fileName = "staff.xlsx"; - // 获取导入文件模板 - ClassPathResource classPathResource = new ClassPathResource("template/" + fileName); - InputStream inputStream = classPathResource.getInputStream(); - com.yida.data.common.core.utils.FileUtil - .download(com.yida.data.common.core.utils.FileUtil.inputStreamToFile(inputStream), fileName, false, response); + com.yida.data.common.core.utils.FileUtil.download(file, "导入模板.zip", true, response); } catch (Exception e) { - throw new FebsException("教职工信息导入模板失败"); + e.printStackTrace(); + log.error("student import template download fail,msg:[{}]", e.getMessage()); } -// -// // 根据树形结构建造文件夹 -// String tempDir = StrUtil.uuid().replace("-", ""); -// File dir = FileUtil.mkdir(tempDir); -// FileWriter.create(FileUtil.newFile(dir.getAbsolutePath() + "\\" + "请阅读我!!!.txt")) -// .writeFromStream(this.getClass().getClassLoader().getResourceAsStream("template/staff.txt"), true); -// -// FileWriter.create(FileUtil.newFile(dir.getAbsolutePath() + "\\" + "人员信息.xlsx")).writeFromStream( -// this.getClass().getClassLoader().getResourceAsStream(type == 0 ? "template/teacher.xlsx" : "template/staff.xlsx"), -// true); -// File file = ZipUtil.zip(tempDir); -// -// System.out.println(file.getAbsolutePath()); -// try { -// com.yida.data.common.core.utils.FileUtil.download(file, "导入模板.zip", true, response); -// } catch (Exception e) { -// e.printStackTrace(); -// log.error("student import template download fail,msg:[{}]", e.getMessage()); -// } } @Override @@ -1063,7 +803,7 @@ public class EduStaffServiceImpl extends ServiceImpl i Workbook workbook = null; try { workbook = new XSSFWorkbook(this.getClass().getClassLoader() - .getResourceAsStream("template" + (type == 0 ? "/老师信息上传表" + ".xlsx" : "/staff.xlsx"))); + .getResourceAsStream("template" + (type == 0 ? "/老师信息上传表" + ".xlsx" : "/staff.xlsx"))); } catch (Exception e) { e.printStackTrace(); log.error("eerror:{}", e.getMessage()); @@ -1233,8 +973,8 @@ public class EduStaffServiceImpl extends ServiceImpl i @Override public IPage listStaffPage(Page page, CurrentUser currentUser, Long areaId, Long schoolId, Long deptId, - Integer isLeader, String position, String name, String mobile, Integer sex, - Integer collectType) { + Integer isLeader, String position, String name, String mobile, Integer sex, + Integer collectType) { List schoolIds = new ArrayList<>(); if (DeptTypeEnum.COMPANY_TYPE.getValue().equals(currentUser.getDeptType())) { if (schoolId != null) { @@ -1249,18 +989,16 @@ public class EduStaffServiceImpl extends ServiceImpl i schoolIds.add(currentUser.getDeptId()); } IPage staffPage = baseMapper.listStaffPage(page, schoolIds, deptId, isLeader, - position, name, mobile, sex, collectType); + position, name, mobile, sex, collectType); if (CollUtil.isNotEmpty(staffPage.getRecords())) { // 查询系统用户 List sysUserIds = staffPage.getRecords().stream().map(StaffPageVO::getSysUserId).filter(Objects::nonNull) - .collect(Collectors.toList()); - List systemUsers = new ArrayList<>(); + .collect(Collectors.toList()); + List systemUsers = null; sysUserIds.addAll( - staffPage.getRecords().stream().map(StaffPageVO::getCreateId).filter(Objects::nonNull) - .collect(Collectors.toList())); + staffPage.getRecords().stream().map(StaffPageVO::getCreateId).filter(Objects::nonNull).collect(Collectors.toList())); if (CollUtil.isNotEmpty(sysUserIds)) { - // TODO: 2023/9/18 注释职工列表调用查询用户信息接口 -// systemUsers = remoteUserService.listInfoById(sysUserIds.toArray(new Long[sysUserIds.size()])).getData(); + systemUsers = remoteUserService.listInfoById(sysUserIds.toArray(new Long[sysUserIds.size()])).getData(); } for (StaffPageVO record : staffPage.getRecords()) { if (CollUtil.isNotEmpty(systemUsers)) { @@ -1285,7 +1023,7 @@ public class EduStaffServiceImpl extends ServiceImpl i Dept dept = commonService.getDept(staffDept.getDeptId()); if (dept != null) { sb.append(dept.getDeptName()).append("-").append(staffDept.getIsLeader() == 1 ? "上级" : "普通成员") - .append(","); + .append(","); } } if (sb.length() > 0) { @@ -1300,15 +1038,8 @@ public class EduStaffServiceImpl extends ServiceImpl i @Override public void saveStaff(EduStaff eduStaff, CurrentUser currentUser) { Dept school = commonService.getDept(eduStaff.getSchoolId()); - - EduStaff existStaff = null; - if (eduStaff.getId() != null) { - existStaff = getById(eduStaff.getId()); - } - log.info("保存前的职工数据==================before: {}", existStaff); - SystemUser systemUser = saveSystemUser(eduStaff); - // 判断是新增还是修改 + //判断是新增还是修改 if (eduStaff.getId() == null) { //新增 eduStaff.setWxId(StrUtil.uuid().replace("-", "")); @@ -1318,7 +1049,11 @@ public class EduStaffServiceImpl extends ServiceImpl i //修改 eduStaff.setUpdateId(currentUser.getUserId()); } - // 保存职工信息 + EduStaff existStaff = null; + if (eduStaff.getId() != null) { + existStaff = getById(eduStaff.getId()); + } + //保存职工信息 saveOrUpdate(eduStaff); // 保存教师人脸 @@ -1347,27 +1082,18 @@ public class EduStaffServiceImpl extends ServiceImpl i EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT, null, eduStaff.getSchoolId()); // 当前为要同步到企业微信 if (eduStaff.getWxPath() == 0) { - log.info("保存后的职工数据-------------------------after: {}", existStaff); // 之前已经创建进行修改 否则新增 if (existStaff != null && existStaff.getWxPath() == 0) { eduStaff.setWxId(existStaff.getWxId()); - wxUtil.updateUser(commonService.getAddressListToken(school.getDeptId()), eduStaff); + wxUtil.updateUser(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), eduStaff); } else { - wxUtil.createUser(commonService.getAddressListToken(school.getDeptId()), eduStaff); - // 判断是否需要转换成加密用户id - if (Objects.nonNull(app.getTemplateId())) { - // 转换用户id保存到数据库 - String convertUserId = commonService.getSecretUserId(eduStaff.getWxId(), school.getDeptId()); - eduStaff.setWxId(convertUserId); - } + wxUtil.createUser(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), eduStaff); } } else { // 之前同步现在不同步 删除在企业微信中的数据 if (existStaff != null && existStaff.getWxPath() == 0) { - wxUtil.deleteUser(commonService.getAddressListToken(school.getDeptId()), - Collections.singletonList(existStaff.getWxId())); - // 重新生成wxId - eduStaff.setWxId(StrUtil.uuid().replace("-", "")); + wxUtil.deleteUser(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), + Collections.singletonList(existStaff.getWxId())); } } } @@ -1384,13 +1110,13 @@ public class EduStaffServiceImpl extends ServiceImpl i sex = sex > 2 ? 1 : sex; if (existStaff != null) { DaHuaUtil.updateUser(eduStaff.getDahuaId(), eduStaff.getName(), eduStaff.getDahuaCode(), 1, sex, null, null, null, - null, null, eduStaff.getAvatar()); + null, null, eduStaff.getAvatar()); } else { String cardNum = DaHuaUtil.generateCardNum(); eduStaff.setDahuaCode(eduStaff.getMobile()); eduStaff.setDahuaId( - DaHuaUtil.addUser(eduStaff.getName(), eduStaff.getMobile(), 1, sex, cardNum, null, null, - null, null, null, eduStaff.getAvatar())); + DaHuaUtil.addUser(eduStaff.getName(), eduStaff.getMobile(), 1, sex, cardNum, null, null, + null, null, null, eduStaff.getAvatar())); } } updateById(eduStaff); @@ -1401,9 +1127,7 @@ public class EduStaffServiceImpl extends ServiceImpl i EduStaff staff = baseMapper.getStaffById(staffId); if (staff != null) { Dept dept = commonService.getDept(staff.getSchoolId()); - if (ObjectUtil.isNotNull(dept)) { - staff.setSchoolName(dept.getDeptName()); - } + staff.setSchoolName(dept.getDeptName()); if (CollUtil.isNotEmpty(staff.getStaffDept())) { for (EduStaffDept staffDept : staff.getStaffDept()) { Dept staffD = commonService.getDept(staffDept.getDeptId()); @@ -1418,93 +1142,54 @@ public class EduStaffServiceImpl extends ServiceImpl i } @Override - public List findTeacherRole(Long teacherId) { - List teacherDeptVOList = new ArrayList<>(); - //查询教师管理的部门, 班主任到班,其他角色到年级 + public List findTeacherRole(Long teacherId) { + List type = eduTeacherDeptMapper.findType(teacherId); - if (type.contains(1)) { //校区负责人 + if (type.contains(1)) { //查询教师对应年级 List deptType = new ArrayList<>(); List teacherDepts = eduTeacherDeptMapper.selectList( - Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, teacherId) - .eq(EduTeacherDept::getType, 1)); + Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, teacherId) + .eq(EduTeacherDept::getType, 1)); for (EduTeacherDept teacherDept : teacherDepts) { - EduUserDept campusDept = eduUserDeptService.getById(teacherDept.getCampusId()); List data = eduUserDeptService.findListByParent( - Collections.singletonList(teacherDept.getCampusId())); + Collections.singletonList(teacherDept.getCampusId())); for (EduUserDept datum : data) { - EduUserDept sectionDept = eduUserDeptService.getById(datum.getDeptId()); List data1 = eduUserDeptService.findListByParent(Collections.singletonList(datum.getDeptId())); for (EduUserDept dept : data1) { - TeacherDeptVO teacherDeptVO = new TeacherDeptVO(); - teacherDeptVO.setCampusId(teacherDept.getCampusId()); - teacherDeptVO.setCampusName(campusDept.getDeptName()); - teacherDeptVO.setSectionId(datum.getDeptId()); - teacherDeptVO.setSectionName(sectionDept.getDeptName()); - teacherDeptVO.setGradeId(dept.getDeptId()); - teacherDeptVO.setGradeName(dept.getDeptName()); - teacherDeptVO.setType(1); - teacherDeptVOList.add(teacherDeptVO); + List data2 = eduUserDeptService.findListByParent( + Collections.singletonList(dept.getDeptId())); + deptType.addAll(data2); } } } - } else if (type.contains(5)) { //学段负责人 + return deptType; + } else if (type.contains(5)) { List deptType = new ArrayList<>(); List teacherDepts = eduTeacherDeptMapper.selectList( - Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, teacherId) - .eq(EduTeacherDept::getType, 5)); + Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, teacherId) + .eq(EduTeacherDept::getType, 5)); for (EduTeacherDept teacherDept : teacherDepts) { - EduUserDept sectionDept = eduUserDeptService.getById(teacherDept.getSectionId()); - AllDeptInfoVO parentUp = eduUserDeptService.findParentUp(teacherDept.getSectionId(), 4); List data = eduUserDeptService.findListByParent( - Collections.singletonList(teacherDept.getSectionId())); + Collections.singletonList(teacherDept.getCampusId())); for (EduUserDept datum : data) { - TeacherDeptVO teacherDeptVO = new TeacherDeptVO(); - teacherDeptVO.setCampusId(parentUp.getCampusId()); - teacherDeptVO.setCampusName(parentUp.getCampusName()); - teacherDeptVO.setSectionId(teacherDept.getSectionId()); - teacherDeptVO.setSectionName(sectionDept.getDeptName()); - teacherDeptVO.setGradeId(datum.getDeptId()); - teacherDeptVO.setGradeName(datum.getDeptName()); - teacherDeptVO.setType(5); - teacherDeptVOList.add(teacherDeptVO); + List data1 = eduUserDeptService.findListByParent(Collections.singletonList(datum.getDeptId())); + deptType.addAll(data1); } } - } else if (type.contains(2)) { //年级负责人 + return deptType; + } else if (type.contains(2)) { List deptType = new ArrayList<>(); List teacherDepts = eduTeacherDeptMapper.selectList( - Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, teacherId) - .eq(EduTeacherDept::getType, 2)); + Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, teacherId) + .eq(EduTeacherDept::getType, 2)); for (EduTeacherDept teacherDept : teacherDepts) { - AllDeptInfoVO parentUp = eduUserDeptService.findParentUp(teacherDept.getSectionId(), 4); - log.info("上级部门信息:{}", parentUp); - TeacherDeptVO teacherDeptVO = new TeacherDeptVO(); - teacherDeptVO.setCampusId(parentUp.getCampusId()); - teacherDeptVO.setCampusName(parentUp.getCampusName()); - teacherDeptVO.setSectionId(parentUp.getSectionId()); - teacherDeptVO.setSectionName(parentUp.getSectionName()); - teacherDeptVO.setGradeId(teacherDept.getGradeId()); EduUserDept data = eduUserDeptService.getById(teacherDept.getGradeId()); - teacherDeptVO.setGradeName(data.getDeptName()); - teacherDeptVO.setType(2); - teacherDeptVOList.add(teacherDeptVO); + deptType.add(data); } - } else { - List deptList = eduTeacherDeptMapper.selectDeptList(teacherId); //班主任或者任课老师 - deptList.forEach(eduUserDept -> { - AllDeptInfoVO parentUp = eduUserDeptService.findParentUp(eduUserDept.getDeptId(), 4); - TeacherDeptVO teacherDeptVO = new TeacherDeptVO(); - teacherDeptVO.setCampusId(parentUp.getCampusId()); - teacherDeptVO.setCampusName(parentUp.getCampusName()); - teacherDeptVO.setSectionId(parentUp.getSectionId()); - teacherDeptVO.setSectionName(parentUp.getSectionName()); - teacherDeptVO.setGradeId(parentUp.getGradeId()); - teacherDeptVO.setGradeName(parentUp.getGradeName()); - teacherDeptVO.setType(3); - teacherDeptVOList.add(teacherDeptVO); - }); + return deptType; } - return teacherDeptVOList; + return eduTeacherDeptMapper.selectDeptList(teacherId); } @Override @@ -1520,7 +1205,7 @@ public class EduStaffServiceImpl extends ServiceImpl i @Override public List listTeacherDept(Long teacherId) { List teacherDeptList = eduTeacherDeptMapper.selectList( - Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, teacherId)); + Wrappers.lambdaQuery(new EduTeacherDept()).eq(EduTeacherDept::getTeacherId, teacherId)); if (CollUtil.isNotEmpty(teacherDeptList)) { for (EduTeacherDept teacherDept : teacherDeptList) { Long deptId = null; @@ -1540,11 +1225,7 @@ public class EduStaffServiceImpl extends ServiceImpl i break; } if (deptId != null) { - EduUserDept userDept = eduUserDeptService.getById(deptId); - if (Objects.nonNull(userDept)) { - teacherDept.setDeptWxId(userDept.getWxId()); - } - + teacherDept.setDeptWxId(eduUserDeptService.getById(deptId).getWxId()); } } } @@ -1566,30 +1247,6 @@ public class EduStaffServiceImpl extends ServiceImpl i return eduTeacherDeptMapper.listTeacherCourseByGrade(gradeId, classId); } - @Override - public List listClassByGradeIdAndTeacherId(Long gradeId, Long staffId) { - List type = eduTeacherDeptMapper.findType(staffId); - if (CollUtil.isEmpty(type)) { - return new ArrayList<>(); - } - if (type.contains(1) || type.contains(2) || type.contains(5)) { - return eduUserDeptService.findChildByParent(gradeId); - } else { - List typeList = new ArrayList(); - typeList.add(3); - typeList.add(4); - List teacherDepts = eduTeacherDeptMapper.selectList( - Wrappers.lambdaQuery(new EduTeacherDept()) - .eq(EduTeacherDept::getTeacherId, staffId) - .eq(EduTeacherDept::getGradeId, gradeId) - .in(EduTeacherDept::getType, typeList)); - List list = eduUserDeptService.list(Wrappers.lambdaQuery(new EduUserDept()) - .in(EduUserDept::getDeptId, teacherDepts.stream().map(EduTeacherDept::getClassId).collect( - Collectors.toList()))); - return list; - } - } - @Override public List listTeacherByClassAndName(Long classId, String name) { return eduTeacherDeptMapper.listTeacherByClassAndName(classId, name); @@ -1637,7 +1294,7 @@ public class EduStaffServiceImpl extends ServiceImpl i String staffWxId = staffJson.getStr("userid"); // 职工是否存在 EduStaff existStaff = getOne(Wrappers.lambdaQuery().eq(EduStaff::getWxId, staffWxId) - .eq(EduStaff::getSchoolId, school.getDeptId())); + .eq(EduStaff::getSchoolId, school.getDeptId())); EduStaff eduStaff = existStaff != null ? existStaff : new EduStaff(); eduStaff.setWxId(staffWxId); @@ -1663,16 +1320,14 @@ public class EduStaffServiceImpl extends ServiceImpl i int sex = Integer.parseInt(eduStaff.getSex()) + 1; sex = sex > 2 ? 1 : sex; if (Objects.nonNull(eduStaff.getDahuaId())) { - DaHuaUtil - .updateUser(eduStaff.getDahuaId(), eduStaff.getName(), eduStaff.getDahuaCode(), 1, sex, null, null, - null, + DaHuaUtil.updateUser(eduStaff.getDahuaId(), eduStaff.getName(), eduStaff.getDahuaCode(), 1, sex, null, null, null, null, null, ""); } else { String cardNum = DaHuaUtil.generateCardNum(); eduStaff.setDahuaCode(eduStaff.getMobile()); eduStaff.setDahuaId( - DaHuaUtil.addUser(eduStaff.getName(), eduStaff.getMobile(), 1, sex, cardNum, - null, null, null, null, null, "")); + DaHuaUtil.addUser(eduStaff.getName(), eduStaff.getMobile(), 1, sex, cardNum, + null, null, null, null, null, "")); } } saveOrUpdate(eduStaff); @@ -1682,7 +1337,7 @@ public class EduStaffServiceImpl extends ServiceImpl i JSONArray isLeader = staffJson.getJSONArray("is_leader_in_dept"); if (CollUtil.isNotEmpty(department)) { eduStaffDeptService.remove( - Wrappers.lambdaQuery().eq(EduStaffDept::getStaffId, eduStaff.getId())); + Wrappers.lambdaQuery().eq(EduStaffDept::getStaffId, eduStaff.getId())); List staffDeptList = new ArrayList<>(); for (int i = 0; i < department.size(); i++) { // 成员的每个部门信息 @@ -1691,7 +1346,7 @@ public class EduStaffServiceImpl extends ServiceImpl i staffDept.setStaffName(eduStaff.getName()); staffDept.setDeptWxId(Long.valueOf(department.get(i).toString())); Dept dept = deptCache.containsKey(staffDept.getDeptWxId()) ? deptCache.get(staffDept.getDeptWxId()) - : (department.getLong(i) == 1L ? school : remoteDeptService.getDeptBySchoolAndWxId(school.getDeptId(), + : (department.getLong(i) == 1L ? school : remoteDeptService.getDeptBySchoolAndWxId(school.getDeptId(), Long.valueOf(department.get(i).toString())).getData()); staffDept.setDeptId(dept.getDeptId()); staffDept.setDeptName(dept.getDeptName()); @@ -1735,15 +1390,15 @@ public class EduStaffServiceImpl extends ServiceImpl i NameValueVO male = new NameValueVO<>(); male.setName("男"); male.setValue( - (int) count(Wrappers.lambdaQuery().eq(EduStaff::getSex, 0).in(EduStaff::getSchoolId, schoolIds))); + (int) count(Wrappers.lambdaQuery().eq(EduStaff::getSex, 0).in(EduStaff::getSchoolId, schoolIds))); NameValueVO female = new NameValueVO<>(); female.setName("女"); female.setValue( - (int) count(Wrappers.lambdaQuery().eq(EduStaff::getSex, 1).in(EduStaff::getSchoolId, schoolIds))); + (int) count(Wrappers.lambdaQuery().eq(EduStaff::getSex, 1).in(EduStaff::getSchoolId, schoolIds))); NameValueVO secret = new NameValueVO<>(); secret.setName("未知"); secret.setValue( - (int) count(Wrappers.lambdaQuery().notIn(EduStaff::getSex, 0, 1).in(EduStaff::getSchoolId, schoolIds))); + (int) count(Wrappers.lambdaQuery().notIn(EduStaff::getSex, 0, 1).in(EduStaff::getSchoolId, schoolIds))); genderList.add(male); genderList.add(female); genderList.add(secret); @@ -1758,21 +1413,21 @@ public class EduStaffServiceImpl extends ServiceImpl i List deptList = teacher.getDeptVOList(); // 学段 Map> sectionName = deptList.stream() - .filter(x -> StrUtil.isNotBlank(x.getSectionName())) - .collect(Collectors.groupingBy(TeacherDeptVO::getSectionName)); + .filter(x -> StrUtil.isNotBlank(x.getSectionName())) + .collect(Collectors.groupingBy(TeacherDeptVO::getSectionName)); for (Entry> section : sectionName.entrySet()) { sectionCount.put(section.getKey(), sectionCount.getOrDefault(section.getKey(), 0) + 1); } // 科目 Map> courseName = deptList.stream() - .filter(x -> StrUtil.isNotBlank(x.getCourseName())) - .collect(Collectors.groupingBy(TeacherDeptVO::getCourseName)); + .filter(x -> StrUtil.isNotBlank(x.getCourseName())) + .collect(Collectors.groupingBy(TeacherDeptVO::getCourseName)); for (Entry> course : courseName.entrySet()) { courseCount.put(course.getKey(), courseCount.getOrDefault(course.getKey(), 0) + 1); } // 类型 List typeList = deptList.stream() - .map(TeacherDeptVO::getType).collect(Collectors.toList()); + .map(TeacherDeptVO::getType).collect(Collectors.toList()); for (Integer type : typeList) { String s = null; switch (type) { @@ -1802,8 +1457,8 @@ public class EduStaffServiceImpl extends ServiceImpl i List> sectionList = new ArrayList<>(); for (Entry section : sectionCount.entrySet()) { sectionList - .add(new NameValueVO(Optional.ofNullable(section.getKey()).orElse("未知"), - section.getValue())); + .add(new NameValueVO(Optional.ofNullable(section.getKey()).orElse("未知"), + section.getValue())); } vo.setSection(sectionList); } @@ -1812,8 +1467,8 @@ public class EduStaffServiceImpl extends ServiceImpl i List> courseList = new ArrayList<>(); for (Entry course : courseCount.entrySet()) { courseList.add( - new NameValueVO(course.getKey() == null ? "未知" : course.getKey(), - course.getValue())); + new NameValueVO(course.getKey() == null ? "未知" : course.getKey(), + course.getValue())); } vo.setCourse(courseList); } @@ -1822,7 +1477,7 @@ public class EduStaffServiceImpl extends ServiceImpl i List> typeList = new ArrayList<>(); for (Entry type : typeCount.entrySet()) { typeList - .add(new NameValueVO(type.getKey() == null ? "未知" : type.getKey(), type.getValue())); + .add(new NameValueVO(type.getKey() == null ? "未知" : type.getKey(), type.getValue())); } vo.setType(typeList); } @@ -1844,8 +1499,8 @@ public class EduStaffServiceImpl extends ServiceImpl i @Override public void exportStaff(Long areaId, Long schoolId, Long deptId, Integer isLeader, String position, - String name, String mobile, Integer sex, Integer collectType, - HttpServletResponse response) { + String name, String mobile, Integer sex, Integer collectType, + HttpServletResponse response) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); @@ -1865,7 +1520,7 @@ public class EduStaffServiceImpl extends ServiceImpl i } // 查询职工导出数据 List staffList = baseMapper.listExportStaff(schoolIds, deptId, isLeader, - position, name, mobile, sex, collectType); + position, name, mobile, sex, collectType); List list = new ArrayList<>(); if (CollUtil.isNotEmpty(staffList)) { for (StaffPageVO vo : staffList) { @@ -1881,7 +1536,7 @@ public class EduStaffServiceImpl extends ServiceImpl i Dept dept = commonService.getDept(staffDept.getDeptId()); if (dept != null) { sb.append(dept.getDeptName()).append("-").append(staffDept.getIsLeader() == 1 ? "上级" : "普通成员") - .append(","); + .append(","); } } if (sb.length() > 0) { @@ -1902,179 +1557,8 @@ public class EduStaffServiceImpl extends ServiceImpl i // 导出Excel EasyExcelUtil.exportExcelData(list, StaffExportDTO.class, "职工导出数据", - ExcelTypeEnum.XLS, response); + ExcelTypeEnum.XLS, response); stopWatch.stop(); log.info("导出职工数据总共耗时: {}", stopWatch.getTotalTimeSeconds() + "秒"); } - - @Override - public void getWxIdByStaffId(Long staffId) { - EduStaff eduStaff = getById(staffId); - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT_SELECT, null, eduStaff.getSchoolId()); - if (Objects.nonNull(app.getTemplateId())) { - // 转换用户id保存到数据库 - String convertUserId = wxServiceProviderUtil - .convertUserIdToSecret(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), eduStaff.getWxId()); - EduStaff changeStaff = new EduStaff(); - changeStaff.setId(eduStaff.getId()); - changeStaff.setWxId(convertUserId); - updateById(changeStaff); - } - } - - @Override - public void saveExcelData(ConcurrentHashMap concurrentHashMap, - ConcurrentHashMap errorMap, Long schoolId, long timestamp) { - - // 当前登录用户信息 - CurrentUser currentUser = FebsUtil.getCurrentUser(); - // 当前时间 - LocalDateTime now = LocalDateTime.now(); - - if (!CollectionUtils.isEmpty(concurrentHashMap)) { - // 保存前判断是否已存在 - for (Map.Entry entry : concurrentHashMap.entrySet()) { - // 获取对应key-value值 - Integer i = entry.getKey(); - StaffImportDTO staffImportDTO = entry.getValue(); - // 验证导入信息是否为空 -// if (!checkStudentImportInfo(errorMap, welcomeStudentDTO, i)) { -// continue; -// } - // 验证身份证号码在当前学校的迎新表中是否重复 -// List studentList = -// this.eduSchoolStudentInformationMapper.selectList(Wrappers.lambdaQuery(new EduSchoolStudentInformation()) -// .eq(EduSchoolStudentInformation::getStudentIdCard, welcomeStudentDTO.getStudentIdCard()) -// .eq(EduSchoolStudentInformation::getSchoolId, schoolId) -// ); -// if (!studentList.isEmpty()) { -// log.error("身份证号码已存在: {}", welcomeStudentDTO.toString()); -// errorMap.put(i, "第" + i + "行:" + ResultMsgType.ID_CARD_EXIST.getValue()); -// continue; -// } -// // 验证学区是否存在 -// EduUserDept campus = commonService.getUserDeptBySchoolIdAndNameAndType( -// welcomeStudentDTO.getCampusName(), UserDeptTypeEnum.CAMPUS_TYPE.getValue(), -// schoolId, String.valueOf(timestamp), schoolId); -// if (!Optional.ofNullable(campus).isPresent()) { -// log.error("学区名称错误: {}", welcomeStudentDTO.toString()); -// errorMap.put(i, "第" + i + "行:" + ResultMsgType.CAMPUS_NAME_ERROR.getValue()); -// continue; -// } -// // 验证学段是否存在 -// EduUserDept section = commonService.getUserDeptBySchoolIdAndNameAndType( -// welcomeStudentDTO.getSectionName(), UserDeptTypeEnum.SECTION_TYPE.getValue(), -// schoolId, String.valueOf(timestamp), campus.getDeptId()); -// if (!Optional.ofNullable(section).isPresent()) { -// log.error("学段名称错误: {}", welcomeStudentDTO.toString()); -// errorMap.put(i, "第" + i + "行:" + ResultMsgType.SECTION_NAME_ERROR.getValue()); -// continue; -// } -// // 验证年级是否存在 -// EduUserDept grade = commonService.getUserDeptBySchoolIdAndNameAndType( -// welcomeStudentDTO.getGradeName(), UserDeptTypeEnum.GRADE_TYPE.getValue(), -// schoolId, String.valueOf(timestamp), section.getDeptId()); -// if (!Optional.ofNullable(grade).isPresent()) { -// log.error("年级名称错误: {}", welcomeStudentDTO.toString()); -// errorMap.put(i, "第" + i + "行:" + ResultMsgType.GRADE_NAME_ERROR.getValue()); -// continue; -// } -// // 验证班级是否存在 -// EduUserDept classDept = commonService.getUserDeptBySchoolIdAndNameAndType( -// welcomeStudentDTO.getClassName(), UserDeptTypeEnum.CLASS_TYPE.getValue(), -// schoolId, String.valueOf(timestamp), grade.getDeptId()); -// if (!Optional.ofNullable(classDept).isPresent()) { -// log.error("班级名称错误: {}", welcomeStudentDTO.toString()); -// errorMap.put(i, "第" + i + "行:" + ResultMsgType.CLASS_NAME_ERROR.getValue()); -// continue; -// } - // 保存数据 - EduStaff saveInfo = new EduStaff(); - BeanUtils.copyProperties(staffImportDTO, saveInfo); - saveInfo.setWxPath(1); - saveInfo.setSchoolId(FebsUtil.getDeptId()); - if (StringUtils.isNotEmpty(saveInfo.getMobile())) { - saveStaff(saveInfo, FebsUtil.getCurrentUser()); - } - } - } - } - - @Override - public List getDeptManager(List deptIdList, Long ruleId) { - List teacherDeptList = eduTeacherDeptService.list(Wrappers.lambdaQuery(new EduTeacherDept()) - .eq(EduTeacherDept::getSchoolId, FebsUtil.getTopDeptId())); - List deptManagetVOList = new ArrayList<>(); - for (Long deptId : deptIdList) { - DeptManagetVO vo = new DeptManagetVO(); - vo.setDeptId(deptId); - //班级 - List classDept = teacherDeptList.stream().filter(t -> deptId.equals(t.getClassId())) - .collect(Collectors.toList()); - List managerVoList = new ArrayList<>(); - List staffIdList = new ArrayList<>(); - if (CollUtil.isEmpty(classDept)) { - List gradeDept = teacherDeptList.stream() - .filter(t -> deptId.equals(t.getGradeId()) && ObjectUtil.isNull(t.getClassId())) - .collect(Collectors.toList()); - if (CollUtil.isEmpty(gradeDept)) { - List sectionDept = teacherDeptList.stream().filter( - t -> deptId.equals(t.getSectionId()) && ObjectUtil.isNull(t.getGradeId()) && ObjectUtil - .isNull(t.getClassId())) - .collect(Collectors.toList()); - if (CollUtil.isEmpty(sectionDept)) { - List campusDept = teacherDeptList.stream().filter( - t -> deptId.equals(t.getCampusId()) && ObjectUtil.isNull(t.getSectionId()) && ObjectUtil - .isNull(t.getGradeId()) && ObjectUtil.isNull(t.getClassId())) - .collect(Collectors.toList()); - if (CollUtil.isEmpty(campusDept)) { - List schoolDept = teacherDeptList.stream() - .filter(t -> deptId.equals(-t.getSchoolId()) && ObjectUtil.isNull(t.getCampusId()) && ObjectUtil - .isNull(t.getSectionId()) && ObjectUtil - .isNull(t.getGradeId()) && ObjectUtil.isNull(t.getClassId())) - .collect(Collectors.toList()); - if (CollUtil.isNotEmpty(schoolDept)) { - staffIdList = schoolDept.stream().map(EduTeacherDept::getTeacherId).collect(Collectors.toList()); - } - } else { - staffIdList = campusDept.stream().map(EduTeacherDept::getTeacherId).collect(Collectors.toList()); - } - } else { - staffIdList = sectionDept.stream().map(EduTeacherDept::getTeacherId).collect(Collectors.toList()); - } - } else { - staffIdList = gradeDept.stream().map(EduTeacherDept::getTeacherId).collect(Collectors.toList()); - } - - } else { - staffIdList = classDept.stream().map(EduTeacherDept::getTeacherId).collect(Collectors.toList()); - } - for (Long staffId : staffIdList) { - ManagerVo managerVo = new ManagerVo(); - managerVo.setUserId(staffId); - managerVo.setUserName(commonService.getStaffById(staffId).getName()); - managerVoList.add(managerVo); - } - vo.setManagerVoList(managerVoList); - deptManagetVOList.add(vo); - } - return deptManagetVOList; - } - - @Override - public void updateStaffCache() { - log.info("开始更新教职工信息缓存"); - StopWatch stopWatch = new StopWatch(); - stopWatch.start(); - redisService.del(CachePrefixConstant.STAFF_DATA); - List staffList = list(); - for (EduStaff staff : staffList) { - EduStaff staffById = getStaffById(staff.getId()); - if (ObjectUtil.isNotNull(staffById)) { - redisService.hset(CachePrefixConstant.STAFF_DATA, staffById.getId().toString(), staffById); - } - } - stopWatch.stop(); - log.info("更新教职工信息缓存结束,总共耗时:[{}]", stopWatch.getTotalTimeSeconds() + "秒"); - } } \ No newline at end of file diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStudentDormServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStudentDormServiceImpl.java index ec8a082..3e25b32 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStudentDormServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStudentDormServiceImpl.java @@ -17,12 +17,9 @@ import com.yida.data.common.service.CommonService; import com.yida.data.school.dto.index.EditPersonNumDTO; import com.yida.data.school.dto.index.ListDormRoomDTO; import com.yida.data.school.feign.facility.RemoteDormitoryService; -import com.yida.data.user.config.ExportStudentDormClient; import com.yida.data.user.dto.ExchangeDormDTO; import com.yida.data.user.dto.ImportStudentDormDTO; import com.yida.data.user.dto.PageStudentDormDTO; -import com.yida.data.user.excel.SelectStudentDormExportData; -import com.yida.data.user.excel.SelectStudentExportData; import com.yida.data.user.listener.ImportStudentDormListener; import com.yida.data.user.mapper.EduStudentMapper; import com.yida.data.user.service.EduStudentDormService; @@ -30,35 +27,29 @@ import com.yida.data.user.service.EduUserDeptService; import com.yida.data.user.vo.StudentDormInfoVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; -import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; -import javax.annotation.Resource; import java.io.IOException; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; +@Transactional @Slf4j @Service @RequiredArgsConstructor -@Transactional(rollbackFor = Exception.class) public class EduStudentDormServiceImpl implements EduStudentDormService { private final EduStudentMapper eduStudentMapper; private final RemoteDormitoryService remoteDormitoryService; + private final CommonService commonService; private final RedisService redisService; private final EduUserDeptService eduUserDeptService; - @Lazy - @Resource - private ExportStudentDormClient exportStudentDormClient; - @Override public IPage listStudentDormPage(PageStudentDormDTO dto) { List dormIds = new ArrayList<>(); @@ -66,19 +57,18 @@ public class EduStudentDormServiceImpl implements EduStudentDormService { // 查询匹配的宿舍 if (dto.getDormRoomId() == null) { List dormRooms = remoteDormitoryService.listDormRoom(ListDormRoomDTO.builder() - .schoolId(dto.getSchoolId()) - .floor(dto.getFloor()) - .dormIds(dto.getDormId() != null ? Collections.singletonList(dto.getDormId()) : null).build()).getData(); + .schoolId(dto.getSchoolId()) + .floor(dto.getFloor()) + .dormIds(dto.getDormId() != null ? Arrays.asList(dto.getDormId()) : null).build()).getData(); if (CollUtil.isNotEmpty(dormRooms)) { dormRoomGroup = dormRooms.stream().collect(Collectors.groupingBy(EduDormitoryRoom::getDormId)); dormIds = dormRooms.stream().map(EduDormitoryRoom::getId).collect(Collectors.toList()); } } else { - dormIds = Collections.singletonList(dto.getDormRoomId()); + dormIds = Arrays.asList(dto.getDormRoomId()); } // 宿舍为空 不查询数据 if (CollUtil.isEmpty(dormIds)) { - dormIds = new ArrayList<>(); dormIds.add(-1L); } IPage page = eduStudentMapper.listStudentDormPage(dto.toPage(), dormIds, dto); @@ -103,15 +93,16 @@ public class EduStudentDormServiceImpl implements EduStudentDormService { } else { dormRoom = remoteDormitoryService.getDormRoom(record.getDormRoomId()).getData(); if (dormRoom != null) { - dormRoomGroup.put(dormRoom.getId(), Collections.singletonList(dormRoom)); + dormRoomGroup.put(dormRoom.getId(), Arrays.asList(dormRoom)); } } // 查询到了寝室信息 if (dormRoom != null) { - String dormRoomName = dormRoom.getDormName() + - dormRoom.getFloor() + "层" + - dormRoom.getName(); - record.setDormRoomName(dormRoomName); + StringBuilder dormRoomName = new StringBuilder(); + dormRoomName.append(dormRoom.getDormName()) + .append(dormRoom.getFloor()).append("层") + .append(dormRoom.getName()); + record.setDormRoomName(dormRoomName.toString()); } } } @@ -120,7 +111,7 @@ public class EduStudentDormServiceImpl implements EduStudentDormService { @Override public void saveStudentDorm(Long studentId, Long dormRoomId, Long dormId) { - EduDormitoryRoom dormRoom = remoteDormitoryService.getDormRoomNoPermission(dormRoomId).getData(); + EduDormitoryRoom dormRoom = remoteDormitoryService.getDormRoom(dormRoomId).getData(); // 满员 Asserts.isTrue(dormRoom.getCheckInNum() < dormRoom.getBedNum(), "该宿舍已满员"); EduStudent student = new EduStudent(); @@ -156,9 +147,9 @@ public class EduStudentDormServiceImpl implements EduStudentDormService { } //List roomIds = students.stream().map(x -> x.getDormRoomId()).collect(Collectors.toList()); eduStudentMapper.update(null, Wrappers.lambdaUpdate() - .in(EduStudent::getId, studentIds) - .set(EduStudent::getDormRoomId, null) - .set(EduStudent::getDormId, null)); + .in(EduStudent::getId, studentIds) + .set(EduStudent::getDormRoomId, null) + .set(EduStudent::getDormId, null)); // 添加 remoteDormitoryService.editPersonNum(dtoMap.values().stream().collect(Collectors.toList())); } @@ -171,21 +162,21 @@ public class EduStudentDormServiceImpl implements EduStudentDormService { EduStudent targetStudent = eduStudentMapper.selectById(dto.getTargetStudentId()); // 相互交换寝室 eduStudentMapper.update(null, Wrappers.lambdaUpdate() - .eq(EduStudent::getId, dto.getStudentId()) - .set(EduStudent::getDormRoomId, targetStudent.getDormRoomId()) - .set(EduStudent::getDormId, targetStudent.getDormId()) - .set(EduStudent::getCheckInTime, LocalDateTime.now())); + .eq(EduStudent::getId, dto.getStudentId()) + .set(EduStudent::getDormRoomId, targetStudent.getDormRoomId()) + .set(EduStudent::getDormId, targetStudent.getDormId()) + .set(EduStudent::getCheckInTime, LocalDateTime.now())); eduStudentMapper.update(null, Wrappers.lambdaUpdate() - .eq(EduStudent::getId, dto.getTargetStudentId()) - .set(EduStudent::getDormRoomId, student.getDormRoomId()) - .set(EduStudent::getDormId, student.getDormId()) - .set(EduStudent::getCheckInTime, LocalDateTime.now())); + .eq(EduStudent::getId, dto.getTargetStudentId()) + .set(EduStudent::getDormRoomId, student.getDormRoomId()) + .set(EduStudent::getDormId, student.getDormId()) + .set(EduStudent::getCheckInTime, LocalDateTime.now())); } else if (dto.getTargetDormId() != null) { eduStudentMapper.update(null, Wrappers.lambdaUpdate() - .eq(EduStudent::getId, dto.getStudentId()) - .set(EduStudent::getDormRoomId, dto.getTargetDormRoomId()) - .set(EduStudent::getDormId, dto.getTargetDormId()) - .set(EduStudent::getCheckInTime, LocalDateTime.now())); + .eq(EduStudent::getId, dto.getStudentId()) + .set(EduStudent::getDormRoomId, dto.getTargetDormRoomId()) + .set(EduStudent::getDormId, dto.getTargetDormId()) + .set(EduStudent::getCheckInTime, LocalDateTime.now())); // 添加新寝室 删除原寝室 EditPersonNumDTO editNew = new EditPersonNumDTO(); EditPersonNumDTO editOld = new EditPersonNumDTO(); @@ -200,33 +191,19 @@ public class EduStudentDormServiceImpl implements EduStudentDormService { @Override public void importDormRoom(MultipartFile file, Long schoolId, String key) { ImportPercentVO percent = - (ImportPercentVO) redisService.hget(CachePrefixConstant.IMPORT_STUDENT_DORM, key); + (ImportPercentVO) redisService.hget(CachePrefixConstant.IMPORT_STUDENT_DORM, key); Asserts.isTrue(percent == null || percent.getFinish() == 1, "有文件正在导入,请稍后重试"); try { int rowNum = ExcelUtil.readExcel(file.getInputStream(), "xlsx").getSheetAt(0).getLastRowNum(); ImportPercentVO percentVO = new ImportPercentVO(); percentVO.setTotal(Long.valueOf(rowNum)); EasyExcel.read(file.getInputStream(), ImportStudentDormDTO.class, - new ImportStudentDormListener(redisService, eduStudentMapper, remoteDormitoryService, percentVO, schoolId, - key)).sheet().doRead(); + new ImportStudentDormListener(redisService, eduStudentMapper, remoteDormitoryService, percentVO, schoolId, + key)).sheet().doRead(); } catch (IOException e) { log.error("导入失败", e); throw new FebsException("导入失败"); } } - - @Override - public void exportStudentDorm(PageStudentDormDTO dto, String key) { - SelectStudentDormExportData data = new SelectStudentDormExportData(); - BeanUtils.copyProperties(dto, data); - data.setKey(key); - data.setFunctionName("学生宿舍导出"); - exportStudentDormClient.exportExcelData(data); - } - - @Override - public Object getStudentDormExportInfo(String key) { - return exportStudentDormClient.selectExportInfo(key); - } } \ No newline at end of file diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStudentServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStudentServiceImpl.java index 3cc44b6..9fb63ff 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStudentServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduStudentServiceImpl.java @@ -6,14 +6,15 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.file.FileWriter; -import cn.hutool.core.lang.UUID; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.*; -import cn.hutool.extra.servlet.ServletUtil; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.ZipUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; -import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -29,37 +30,38 @@ import com.yida.data.common.core.entity.message.EduMessageStrategy; import com.yida.data.common.core.entity.notice.app.AppNotice; import com.yida.data.common.core.entity.notice.app.inside.PushMessage; import com.yida.data.common.core.entity.school.EduYidaAppAccount; -import com.yida.data.common.core.entity.system.*; -import com.yida.data.common.core.entity.system.enums.RoleEnum; -import com.yida.data.common.core.entity.system.enums.SysFunctionEnum; +import com.yida.data.common.core.entity.system.Dept; +import com.yida.data.common.core.entity.system.EduApp; +import com.yida.data.common.core.entity.system.EduYidaApp; import com.yida.data.common.core.entity.user.*; import com.yida.data.common.core.enums.DictType; -import com.yida.data.common.core.enums.UserTypeEnum; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.*; -import com.yida.data.common.core.vo.ImportPercentVO; import com.yida.data.common.core.vo.NameValueVO; import com.yida.data.common.service.CommonService; -import com.yida.data.school.dto.news.SysNoticeSaveDTO; import com.yida.data.school.dto.transaction.ListBuyStudentDTO; -import com.yida.data.school.feign.news.RemoteNoticeSystemService; import com.yida.data.system.feign.RemoteCommonService; import com.yida.data.system.feign.RemoteDeptService; import com.yida.data.system.vo.ClassInfoVO; -import com.yida.data.user.config.ExportStudentClient; -import com.yida.data.user.dto.*; +import com.yida.data.user.dto.DelFaceGroupUserDTO; +import com.yida.data.user.dto.ListStudentDTO; +import com.yida.data.user.dto.PageStudentDTO; +import com.yida.data.user.dto.StudentExportDTO; import com.yida.data.user.dto.h5.BindStudentDTO; -import com.yida.data.user.excel.CardDataDataExcelListener; -import com.yida.data.user.excel.SelectStudentDormExportData; -import com.yida.data.user.excel.SelectStudentExportData; -import com.yida.data.user.listener.ImportStudentTypeListener; import com.yida.data.user.mapper.EduParentMapper; import com.yida.data.user.mapper.EduParentStudentMapper; -import com.yida.data.user.mapper.EduStaffMapper; -import com.yida.data.user.mapper.EduStudentApplyMapper; import com.yida.data.user.mapper.EduStudentMapper; import com.yida.data.user.service.*; -import com.yida.data.user.vo.*; +import com.yida.data.user.vo.DownLoadPicVO; +import com.yida.data.user.vo.ListParentByStudentIdsVO; +import com.yida.data.user.vo.StaStudentVO; +import com.yida.data.user.vo.StudentClassInfoVO; +import java.io.FileOutputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -67,21 +69,16 @@ import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Lazy; -import org.springframework.core.io.ClassPathResource; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StopWatch; -import org.springframework.web.multipart.MultipartFile; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.*; -import java.net.HttpURLConnection; -import java.net.URL; -import java.time.LocalDateTime; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.util.*; import java.util.Map.Entry; import java.util.concurrent.ExecutorService; @@ -89,8 +86,6 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; @Slf4j @Service @@ -99,26 +94,17 @@ import java.util.zip.ZipOutputStream; public class EduStudentServiceImpl extends ServiceImpl implements EduStudentService { private final EduParentMapper eduParentMapper; + private final EduParentStudentMapper eduParentStudentMapper; private final EduUserFaceService eduUserFaceService; private final EduUserDeptService eduUserDeptService; private final EduParentTypeService eduParentTypeService; private final EduStudentDormService eduStudentDormService; private final EduFaceGroupUserService eduFaceGroupUserService; - private final EduParentStudentService eduParentStudentService; private final EduMessageStrategyService eduMessageStrategyService; - private final EduParentStudentMapper eduParentStudentMapper; - private final EduStudentApplyMapper eduStudentApplyMapper; - private final EduStaffService eduStaffService; - - @Lazy - @Resource - private ImportWelcomeStudentService importWelcomeStudentService; - private final RemoteDeptService remoteDeptService; private final RemoteCommonService remoteCommonService; - private final RemoteNoticeSystemService remoteNoticeSystemService; private final WxUtil wxUtil; private final CommonService commonService; @@ -127,28 +113,11 @@ public class EduStudentServiceImpl extends ServiceImpl()); @Override public IPage findStudentPage(PageStudentDTO dto) { - //查询后台用户身份 - CurrentUser currentUser = FebsUtil.getCurrentUser(); - String rolePerms = FebsUtil.getCurrentUser().getRolePerms(); - //学校管理员 - if (rolePerms.contains(RoleEnum.ROLE_SCHOOL_PRINCIPAL.getValue())) { - dto.setSchoolId(FebsUtil.getTopDeptId()); - } else { - if (ObjectUtil.isNull(dto.getClassId())) { - dto.setClassIdList(eduStaffService.listClassIdByStaffId()); - } else { - dto.setClassIdList(Collections.singletonList(dto.getClassId())); - } - } IPage studentPage = baseMapper.selectStudentPage(dto.toPage().setOptimizeCountSql(false), dto); if (CollUtil.isNotEmpty(studentPage.getRecords())) { studentPage.setRecords(fillStudentDept(studentPage.getRecords())); @@ -158,29 +127,19 @@ public class EduStudentServiceImpl extends ServiceImpl 0, "学号已存在"); - Dept school = commonService.getDept(student.getSchoolId()); EduStudent existStudent = null; if (student.getId() != null) { existStudent = getById(student.getId()); - //清除小程序url缓存链接 - if (!ObjectUtil.equals(student.getAvatar(), existStudent.getAvatar())) { - commonService.delUserGenerateUrlLinkCache(student.getSchoolId(), student.getId(), UserTypeEnum.PARENT_USER_TYPE - .getType()); - } } - + //判断学生是否已经存在 + Asserts.isFalse(student.getId() == null && + count(Wrappers.lambdaQuery(new EduStudent()) + .eq(EduStudent::getSchoolId, student.getSchoolId()) + .eq(EduStudent::getStuNumber, student.getStuNumber())) > 0, "学生已存在"); //只有当前孩子作为家长的家长 List lateParent = null; // 微信app与token @@ -249,7 +208,6 @@ public class EduStudentServiceImpl extends ServiceImpl> faceGroupMap = faceList.stream().collect( - Collectors.groupingBy(EduFaceGroupUser::getFaceGroupId)); - faceGroupMap.forEach((faceGroupId, userList) -> - eduFaceGroupUserService.delUserBatch(DelFaceGroupUserDTO.builder() - .faceGroupId(faceGroupId) - .faceIds(userList.stream().map(EduFaceGroupUser::getId).collect(Collectors.toList())) - .build()) - ); + eduFaceGroupUserService.delUserBatch(DelFaceGroupUserDTO.builder() + .faceIds(faceList.stream().map(EduFaceGroupUser::getId).collect(Collectors.toList())).build()); } // 所有学生的家长 List parentList = eduParentMapper.listParentByStudent(studentIds); @@ -484,15 +436,6 @@ public class EduStudentServiceImpl extends ServiceImpl { - log.info("删除class学生数据:{}", s); - redisService - .del(CachePrefixConstant.CLASS_STUDENT_DATA + s.getClassId()); - - //删除学生缓存小程序链接 - commonService.delUserGenerateUrlLinkCache(s.getSchoolId(), s.getId(), UserTypeEnum.PARENT_USER_TYPE.getType()); - }); } @Override @@ -696,57 +639,6 @@ public class EduStudentServiceImpl extends ServiceImpl errorList = new ArrayList<>(); - EasyExcel.read(new File(path), CardImportDTO.class, - new CardDataDataExcelListener(importWelcomeStudentService, errorList, schoolId, currentUser)) - .sheet().headRowNumber(1).doRead(); - stopWatch.stop(); - log.info("导入校园卡号数据总共耗时: {}", stopWatch.getTotalTimeSeconds() + "秒"); - // 判断是否有错误数据 - if (CollUtil.isNotEmpty(errorList)) { - // 错误信息文件名称 - String fileName = com.yida.data.common.core.utils.FileUtil.getLocalUploadAddress() + UUID.randomUUID() + ".xlsx"; - EasyExcel.write(fileName, CardErrorExportDTO.class) - .sheet("错误信息") - .doWrite(errorList); - // 上传到媒资 - String url = com.yida.data.common.core.utils.FileUtil.uploadFileToMediaServer(uploadUrl, new File(fileName)); - // 保存导入不成功的数据和原因 - remoteNoticeSystemService.sendNotice( - SysNoticeSaveDTO.builder() - .userId(Collections.singletonList(currentUser.getUserId())) - .content("校园卡号部分数据导入失败. 详情信息请点击下载 错误信息.xlsx") - .createDate(LocalDateTime.now()) - .build()); - } else { - remoteNoticeSystemService.sendNotice( - SysNoticeSaveDTO.builder() - .userId(Collections.singletonList(currentUser.getUserId())) - .content("校园卡号导入成功") - .createDate(LocalDateTime.now()) - .build()); - } - } catch (Exception e) { - log.error("导入校园卡号数据失败: {}", e.getMessage(), e); - remoteNoticeSystemService.sendNotice( - SysNoticeSaveDTO.builder() - .userId(Collections.singletonList(currentUser.getUserId())) - .content("校园卡号导入失败") - .createDate(LocalDateTime.now()) - .build()); - } finally { - // 清空当前导入的redis学校数据 - redisService.hdel(CachePrefixConstant.IMPORT_STUDENT_KEY + currentUser.getUsername(), key.toString()); - FileUtil.del(path); - } - } - @Override public Integer importStaffHeartbeat(String username, Long key) { Object value = redisService.hget(CachePrefixConstant.IMPORT_STUDENT_KEY + username, key.toString()); @@ -756,25 +648,6 @@ public class EduStudentServiceImpl extends ServiceImpl> listImportKey(String username) { List> list = new ArrayList<>(); @@ -903,20 +776,6 @@ public class EduStudentServiceImpl extends ServiceImpl getParentByPhoneAndSchoolId(List phone, Long schoolId) { return baseMapper.getParentByPhoneAndSchoolId(phone, schoolId); @@ -1217,17 +1076,28 @@ public class EduStudentServiceImpl extends ServiceImpl studentList = baseMapper.selectStudent(dto); + List list = new ArrayList<>(); + for (EduStudent eduStudent : studentList) { + StudentExportDTO exportDTO = new StudentExportDTO(); + BeanUtils.copyProperties(eduStudent, exportDTO); - @Override - public Object getStudentExportInfo(String key) { - return exportStudentClient.selectExportInfo(key); + String collectStatus = "未采集"; + if (Objects.nonNull(eduStudent.getCollectType()) && eduStudent.getCollectType() == 1) { + collectStatus = "已采集"; + } + exportDTO.setCollectStatus(collectStatus); + list.add(exportDTO); + } + // 导出Excel + EasyExcelUtil.exportExcelData(list, StudentExportDTO.class, "学生导出数据", + ExcelTypeEnum.XLS, response); + stopWatch.stop(); + log.info("导出学生数据总共耗时: {}", stopWatch.getTotalTimeSeconds() + "秒"); } @Override @@ -1498,64 +1368,5 @@ public class EduStudentServiceImpl extends ServiceImpl listStudentOutPage(OutPageStudentDTO dto, HttpServletRequest request) { - // 判断是否在白名单 - WhiteList whiteList = commonService.getWhiteList(SysFunctionEnum.HAI_PU_TIAN.getValue()); - // 当前请求ip地址 -// String ipAddress = FebsUtil.getHttpServletRequestIpAddress(); - String ipAddress = ServletUtil.getClientIP(request, ""); - log.info("当前ip地址: {}", ipAddress); - if (Objects.isNull(whiteList) || StrUtil.isEmpty(whiteList.getRequestIp()) - || !whiteList.getRequestIp().contains(ipAddress)) { - throw new FebsException("非法ip地址"); - } - // 判断当前学校是否开通了此功能 - EduDeptFunction function = commonService.getDeptFunction(SysFunctionEnum.HAI_PU_TIAN.getValue(), dto.getSchoolId()); - if (Objects.isNull(function)) { - throw new FebsException("当前学校暂不支持此功能"); - } - // TODO 2023/3/8 需要处理请求次数 - - Dict dict = commonService.getDictByTypeAndValueOrLabel("apply_type", null, "食堂消费"); - if (Objects.isNull(dict)) { - throw new FebsException("当前学校暂不支持此功能"); - } - IPage page = baseMapper.listStudentOutPage(new Page<>(dto.getPageNum(), dto.getPageSize()), dto); - page.getRecords().forEach(outPageStudentVO -> { - // 查询是否是会员 - EduStudentApply studentApply = eduStudentApplyMapper - .getStudentApply(outPageStudentVO.getStudentId(), dict.getValue()); - if (Objects.isNull(studentApply)) { - // 非会员需要设备头像为空 - outPageStudentVO.setAvatar(""); - } - }); - return page; - } - - @Override - public void updateStudentCache() { - log.info("开始更新学生信息缓存"); - StopWatch stopWatch = new StopWatch(); - stopWatch.start(); - redisService.del(CachePrefixConstant.STUDENT_DATA); - List studentList = baseMapper.getStudentListWithParent(null, null, null); - for (EduStudent student : studentList) { - redisService.hset(CachePrefixConstant.STUDENT_DATA, student.getId().toString(), student); - } - stopWatch.stop(); - log.info("更新学生信息缓存结束,总共耗时:[{}]", stopWatch.getTotalTimeSeconds() + "秒"); - } - - @Override - public List selectStudent(PageStudentDTO dto) { - return baseMapper.selectStudent(dto); - } - - @Override - public List listStudentDorm(List dormRoomIds, SelectStudentDormExportData selectStudentDormExportData) { - return baseMapper.listStudentDorm(dormRoomIds, selectStudentDormExportData); - } } \ No newline at end of file diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduTeachDeptServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduTeachDeptServiceImpl.java index 5d554d4..e0dbc11 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduTeachDeptServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduTeachDeptServiceImpl.java @@ -59,13 +59,10 @@ public class EduTeachDeptServiceImpl extends ServiceImpl listTeacherDept(Long deptId, String type) { List teacherDeptList = list(Wrappers.lambdaQuery(new EduTeacherDept()) - // 教师类型 1表示校区负责人,2表示年级负责人,3表示班主任,4表示任课老师,5表示学段负责人,6表示学校负责人 - .eq(EduTeacherDept::getType, type) - .eq("3".equals(type), EduTeacherDept::getClassId, deptId) - .eq("2".equals(type), EduTeacherDept::getGradeId, deptId) - .eq("1".equals(type), EduTeacherDept::getCampusId, deptId) - .eq("5".equals(type), EduTeacherDept::getSectionId, deptId) - .eq("6".equals(type), EduTeacherDept::getSchoolId, deptId) + // 教师类型 1表示校区负责人,2表示年级负责人,3表示班主任,4表示任课老师,5表示学段负责人 + .eq(EduTeacherDept::getType, type) + .eq("3".equals(type), EduTeacherDept::getClassId, deptId) + .eq("2".equals(type), EduTeacherDept::getGradeId, deptId) ); if (CollUtil.isEmpty(teacherDeptList)) { return new ArrayList<>(); @@ -74,9 +71,4 @@ public class EduTeachDeptServiceImpl extends ServiceImpl staffIds = teacherDeptList.stream().map(EduTeacherDept::getTeacherId).distinct().collect(Collectors.toList()); return eduStaffMapper.selectList(Wrappers.lambdaQuery(new EduStaff()).in(EduStaff::getId, staffIds)); } - - @Override - public long countTeacherNumber(Long schoolId) { - return baseMapper.countTeacherNumber(schoolId); - } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserDeptServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserDeptServiceImpl.java index 480320b..15d7c2c 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserDeptServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserDeptServiceImpl.java @@ -1,39 +1,28 @@ package com.yida.data.user.service.impl; -import static com.yida.data.common.core.entity.constant.CachePrefixConstant.STAFF_DATA; - import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONUtil; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -//import com.yida.data.attendance.feign.RemoteAttendanceResultService; -//import com.yida.data.attendance.vo.AttendanceRuleCacheVO; -//import com.yida.data.attendance.vo.RuleListVO; import com.yida.data.common.core.common.ResultMsgType; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.QueryRequest; import com.yida.data.common.core.entity.Tree; import com.yida.data.common.core.entity.UserDeptTree; -import com.yida.data.common.core.entity.attendance.EduAttendanceRuleTime; import com.yida.data.common.core.entity.constant.AppConstant; import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.entity.constant.FebsConstant; import com.yida.data.common.core.entity.constant.PageConstant; -import com.yida.data.common.core.entity.school.EduDormitory; import com.yida.data.common.core.entity.system.Dept; import com.yida.data.common.core.entity.system.EduApp; import com.yida.data.common.core.entity.system.enums.DeptTypeEnum; import com.yida.data.common.core.entity.system.enums.RoleEnum; -import com.yida.data.common.core.entity.user.EduStaff; +import com.yida.data.common.core.entity.user.EduCollectData; +import com.yida.data.common.core.entity.user.EduCollectData.EduCollectDataBuilder; import com.yida.data.common.core.entity.user.EduStaffWork; import com.yida.data.common.core.entity.user.EduStudent; import com.yida.data.common.core.entity.user.EduUserDept; @@ -45,31 +34,31 @@ import com.yida.data.common.core.entity.user.enums.UserDeptTypeEnum; import com.yida.data.common.core.enums.IncludeTypeEnum; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.*; -import com.yida.data.school.feign.facility.RemoteDormitoryService; import com.yida.data.system.feign.RemoteDeptService; import com.yida.data.system.vo.ClassInfoVO; import com.yida.data.system.vo.SchoolClassInfoVO; import com.yida.data.user.dto.*; -import com.yida.data.user.mapper.*; +import com.yida.data.user.mapper.EduStaffMapper; +import com.yida.data.user.mapper.EduStudentMapper; +import com.yida.data.user.mapper.EduUserDeptMapper; +import com.yida.data.user.mapper.EduUserDeptStandardGradeMapper; +import com.yida.data.user.mapper.QywxAppMapper; import com.yida.data.user.service.EduStaffService; import com.yida.data.user.service.EduStaffWorkService; import com.yida.data.user.service.EduUserDeptService; import com.yida.data.user.vo.AllDeptInfoVO; -import com.yida.data.user.vo.ClassAttendanceDataVO; import com.yida.data.user.vo.CollectDataVO; +import com.yida.data.user.vo.TeacherClassVO; import com.yida.data.user.vo.TeacherDeptVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; -import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StopWatch; -import javax.annotation.Resource; -import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -87,22 +76,21 @@ import java.util.stream.Collectors; public class EduUserDeptServiceImpl extends ServiceImpl implements EduUserDeptService { - @Lazy - @Resource - private EduStaffService eduStaffService; - private final EduStaffWorkService eduStaffWorkService; + private final RemoteDeptService remoteDeptService; private final QywxAppMapper appMapper; - private final EduStaffMapper eduStaffMapper; - private final EduStudentMapper eduStudentMapper; private final EduUserDeptStandardGradeMapper eduUserDeptStandardGradeMapper; - private final RemoteDeptService remoteDeptService; - private final RemoteDormitoryService remoteDormitoryService; - private final WxUtil wxUtil; private final RedisService redisService; + private final EduStaffWorkService eduStaffWorkService; + + private final EduStaffMapper eduStaffMapper; + + private final EduStudentMapper eduStudentMapper; + + /** * 查询所有子节点 * @@ -192,6 +180,15 @@ public class EduUserDeptServiceImpl extends ServiceImpl EduUserDept eduUserDeptGrade = this .getOne(Wrappers.lambdaQuery(new EduUserDept()).eq(EduUserDept::getDeptId, teacherDeptVO.getGradeId())); + //查询当前班级学生采集人数 +// Long totalNum = eduStudentMapper.selectCount(Wrappers.lambdaQuery(new EduStudent()) +// .eq(EduStudent::getSchoolId, currentUser.getDeptId()) +// .eq(EduStudent::getClassId, teacherDeptVO.getClassId())); +// +// Long collectNum = eduStudentMapper.selectCount(Wrappers.lambdaQuery(new EduStudent()) +// .eq(EduStudent::getSchoolId, currentUser.getDeptId()) +// .eq(EduStudent::getClassId, teacherDeptVO.getClassId()) +// .eq(EduStudent::getCollectType, 1)); //根据班级查询学生信息 List studentList = eduStudentMapper.selectList( Wrappers.lambdaQuery(new EduStudent()).eq(EduStudent::getClassId, teacherDeptVO.getClassId()) @@ -199,31 +196,37 @@ public class EduUserDeptServiceImpl extends ServiceImpl collectDataVO.add(CollectDataVO.builder().classId(eduUserDeptClass.getDeptId()) .className(eduUserDeptClass.getDeptName()).gradeName(eduUserDeptGrade.getDeptName()) - .totalNum((long) studentList.size()) + .totalNum(new Long(studentList.size())) .collectNum(studentList.stream().filter(student -> - ObjectUtil.isNotNull(student.getAvatar()) && student.getAvatar().contains("zbz.yd-data.com") + student.getCollectType() == 1 ).count()).studentList(studentList).build()); }); } } else { //包含年级 List gradeList = findChildByParentAndType(Collections.singletonList(one.getPDeptId()), 2); + log.info("user:[{}]", gradeList); gradeList.forEach(eduUserDept -> { List childByParent = findChildByParent(eduUserDept.getDeptId()); childByParent.forEach(eduUserDeptClass -> { + //查询当前班级学生采集人数 +// Long totalNum = eduStudentMapper.selectCount(Wrappers.lambdaQuery(new EduStudent()) +// .eq(EduStudent::getSchoolId, currentUser.getDeptId()) +// .eq(EduStudent::getClassId, eduUserDeptClass.getDeptId())); +// +// Long collectNum = eduStudentMapper.selectCount(Wrappers.lambdaQuery(new EduStudent()) +// .eq(EduStudent::getSchoolId, currentUser.getDeptId()) +// .eq(EduStudent::getClassId, eduUserDeptClass.getDeptId()) +// .eq(EduStudent::getCollectType, 1)); //根据班级查询学生信息 List studentList = eduStudentMapper.selectList( Wrappers.lambdaQuery(new EduStudent()).eq(EduStudent::getClassId, eduUserDeptClass.getDeptId()) .orderByAsc(EduStudent::getCollectType)); + collectDataVO.add(CollectDataVO.builder().classId(eduUserDeptClass.getDeptId()) .className(eduUserDeptClass.getDeptName()) - .gradeName(eduUserDept.getDeptName()) - .totalNum((long) studentList.size()) - .collectNum( - studentList.stream().filter( - student -> ObjectUtil.isNotNull(student.getAvatar()) && student.getAvatar() - .contains("zbz.yd-data.com")) - .count()) + .gradeName(eduUserDept.getDeptName()).totalNum(new Long(studentList.size())) + .collectNum(studentList.stream().filter(student -> student.getCollectType() == 1).count()) .studentList(studentList) .build()); }); @@ -232,312 +235,11 @@ public class EduUserDeptServiceImpl extends ServiceImpl return collectDataVO; } - @Override - public List findClassAttendanceByUserId(Long staffId, LocalDate date) { - - List returnList = new ArrayList<>(); - //判断当前用户角色 - CurrentUser currentUser = FebsUtil.getCurrentUser(); - //取缓存 - List classAttendanceDataVOList = redisService - .lGet(CachePrefixConstant.STAFF_MANGE_DEPT + staffId, 0L, -1L); - -// log.info("缓存数据【{}】", classAttendanceDataVOList); - - if (CollUtil.isEmpty(classAttendanceDataVOList)) { - classAttendanceDataVOList = new ArrayList<>(); - //宿管 - List eduDormitoryList = remoteDormitoryService.listDormByMaster(staffId) - .getData(); - if (CollUtil.isNotEmpty(eduDormitoryList)) { - for (EduDormitory dormitory : eduDormitoryList) { - classAttendanceDataVOList.add( - ClassAttendanceDataVO.builder().classId(dormitory.getId()).name(dormitory.getName()).type(1).build()); - } - } - //班主任、年级主任、学段主任、学区主任 - //班主任 - List totalClassDeptList = new ArrayList<>(); - log.info("用户【{}】角色【{}】", staffId, currentUser.getRolePerms()); - - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_CLASS_PRINCIPAL.getValue())) { - List teacherDeptVOS = eduStaffMapper.listDeptByTeacher(staffId, 3); - for (TeacherDeptVO teacherDeptVO : teacherDeptVOS) { - teacherDeptVO.setClassName(this.getById(teacherDeptVO.getClassId()).getDeptName()); - teacherDeptVO.setGradeName(this.getById(teacherDeptVO.getGradeId()).getDeptName()); - teacherDeptVO - .setCampusName(this.getById(teacherDeptVO.getCampusId()).getDeptName()); - totalClassDeptList.add(teacherDeptVO); - } - } - //年级主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_GRADE_PRINCIPAL.getValue())) { - List teacherDeptVOS = eduStaffMapper.listDeptByTeacher(staffId, 2); - teacherDeptVOS.forEach(teacherDeptVO -> { - String gradeName = this.getById(teacherDeptVO.getGradeId()).getDeptName(); - String campusName = this.getById(teacherDeptVO.getCampusId()).getDeptName(); - List childByParent = findChildByParent(teacherDeptVO.getGradeId()); - childByParent.forEach(eduUserDept -> { - TeacherDeptVO teacherDeptVO1 = new TeacherDeptVO(); - teacherDeptVO1.setGradeId(teacherDeptVO.getGradeId()); - teacherDeptVO1.setClassId(eduUserDept.getDeptId()); - teacherDeptVO1 - .setClassName(this.getById(eduUserDept.getDeptId()).getDeptName()); - teacherDeptVO1.setGradeName(gradeName); - teacherDeptVO1.setCampusName(campusName); - totalClassDeptList.add(teacherDeptVO1); - }); - }); - } - - //学段主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_SECTION_PRINCIPAL.getValue())) { - List sectionList = eduStaffMapper.listDeptByTeacher(staffId, 5); - sectionList.forEach(section -> { - String campusName = this.getById(section.getCampusId()).getDeptName(); - List gradeList = findChildByParentAndType(Collections.singletonList(section.getSectionId()), 2); - gradeList.forEach(grade -> { - String gradeName = this.getById(grade.getDeptId()).getDeptName(); - List classList = findChildByParent(grade.getDeptId()); - classList.forEach(clazz -> { - TeacherDeptVO teacherDeptVO = new TeacherDeptVO(); - teacherDeptVO.setGradeId(grade.getDeptId()); - teacherDeptVO.setClassId(clazz.getDeptId()); - teacherDeptVO - .setClassName(this.getById(clazz.getDeptId()).getDeptName()); - teacherDeptVO.setGradeName(gradeName); - teacherDeptVO.setCampusName(campusName); - totalClassDeptList.add(teacherDeptVO); - }); - }); - }); - } - - //学区主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_CAMPUS_PRINCIPAL.getValue())) { - List campusList = eduStaffMapper.listDeptByTeacher(staffId, 1); - campusList.forEach(campus -> { - String campusName = this.getById(campus.getCampusId()).getDeptName(); - List gradeList = findChildByParentAndType(Collections.singletonList(campus.getCampusId()), 2); - gradeList.forEach(grade -> { - String gradeName = this.getById(grade.getDeptId()).getDeptName(); - List classList = findChildByParent(grade.getDeptId()); - classList.forEach(clazz -> { - TeacherDeptVO teacherDeptVO = new TeacherDeptVO(); - teacherDeptVO.setGradeId(grade.getDeptId()); - teacherDeptVO.setClassId(clazz.getDeptId()); - teacherDeptVO - .setClassName(this.getById(clazz.getDeptId()).getDeptName()); - teacherDeptVO.setGradeName(gradeName); - teacherDeptVO.setCampusName(campusName); - totalClassDeptList.add(teacherDeptVO); - }); - }); - }); - } - //查询学校负责人,即校领导 - List schoolList = eduStaffMapper.listDeptByTeacher(staffId, 6); - if (CollUtil.isNotEmpty(schoolList)) { - schoolList.forEach(school -> { - List campusList = findChildByParentAndType( - Collections.singletonList(-school.getSchoolId()), 4); - campusList.forEach(campus -> { - String campusName = this.getById(campus.getDeptId()).getDeptName(); - List gradeList = findChildByParentAndType(Collections.singletonList(campus.getDeptId()), - 2); - gradeList.forEach(grade -> { - String gradeName = this.getById(grade.getDeptId()).getDeptName(); - List classList = findChildByParent(grade.getDeptId()); - classList.forEach(clazz -> { - TeacherDeptVO teacherDeptVO = new TeacherDeptVO(); - teacherDeptVO.setGradeId(grade.getDeptId()); - teacherDeptVO.setClassId(clazz.getDeptId()); - teacherDeptVO - .setClassName(this.getById(clazz.getDeptId()).getDeptName()); - teacherDeptVO.setGradeName(gradeName); - teacherDeptVO.setCampusName(campusName); - totalClassDeptList.add(teacherDeptVO); - }); - }); - }); - }); - } - -// log.info("去重前用户所有班级:【{}】", classAttendanceDataVOList); - if (CollUtil.isNotEmpty(totalClassDeptList)) { - for (TeacherDeptVO teacherDeptVO : totalClassDeptList) { - classAttendanceDataVOList - .add(ClassAttendanceDataVO.builder().classId(teacherDeptVO.getClassId()).name( - teacherDeptVO.getCampusName() + "/" + teacherDeptVO.getGradeName() + "/" + teacherDeptVO - .getClassName()).type(0).build()); - } - } - //去重 - classAttendanceDataVOList = classAttendanceDataVOList.stream().distinct().collect(Collectors.toList()); - -// log.info("去重后用户所有班级:【{}】", classAttendanceDataVOList); - - if (CollUtil.isNotEmpty(classAttendanceDataVOList)) { - redisService.llSet(CachePrefixConstant.STAFF_MANGE_DEPT + staffId, classAttendanceDataVOList); - } - } - EduStaff staff = (EduStaff) redisService.hget(STAFF_DATA, staffId.toString()); - if (ObjectUtil.isEmpty(staff)) { - staff = eduStaffMapper.getStaff(staffId); - } - -// AttendanceRuleCacheVO attendanceRuleCacheVO = (AttendanceRuleCacheVO) redisService -// .hget(CachePrefixConstant.SCHOOL_RULE_DATA, staff.getSchoolId().toString()); -// if (ObjectUtil.isNull(attendanceRuleCacheVO) || CollUtil.isEmpty(attendanceRuleCacheVO.getRuleListVOList())) { -// return new ArrayList<>(); -// } -// RuleListVO ruleListVO = attendanceRuleCacheVO.getRuleListVOList().get(0); -// -// List todayRuleTimeList = ruleListVO.getTimeList().stream() -// .filter(r -> r.getDayOfWeek() == LocalDate.now().getDayOfWeek().getValue()).collect( -// Collectors.toList()); - -// Long ruleTimeId = todayRuleTimeList.get(0).getId(); - - String ruleTimeId = ""; - -// log.info("今日考勤时段ruleTimeID:【{}】", ruleTimeId); - for (Object o : classAttendanceDataVOList) { - //统计数据 - //默认一个规则,一个考勤时段 - ClassAttendanceDataVO classAttendanceDataVO = (ClassAttendanceDataVO) o; - ClassAttendanceDataVO redisData = new ClassAttendanceDataVO(); - if (classAttendanceDataVO.getType() == 0) { - redisData = (ClassAttendanceDataVO) redisService - .hget(CachePrefixConstant.ATTENDANCE_DORMITORY_CLASS + date, - classAttendanceDataVO.getClassId().toString() + ruleTimeId); - } else { - redisData = (ClassAttendanceDataVO) redisService - .hget(CachePrefixConstant.ATTENDANCE_DORMITORY_DORM + date, - classAttendanceDataVO.getClassId().toString() + ruleTimeId); - } -// -// Integer type = classAttendanceDataVO.getType(); -// List studentList = new ArrayList<>(); -// if (type == 0) { -// //班级 -// //根据班级查询学生信息 -// studentList = eduStudentMapper.selectList( -// Wrappers.lambdaQuery(new EduStudent()).eq(EduStudent::getClassId, classAttendanceDataVO.getClassId()) -// .eq(EduStudent::getType, 1)); -// } else { -// //宿舍 -// //查询宿舍总人数、异常人数 -// ListStudentDTO dto = new ListStudentDTO(); -// dto.setDormIds(Collections.singletonList(classAttendanceDataVO.getClassId())); -// dto.setType(1); -// studentList = eduStudentMapper.listStudent(dto); -// } -// -// ListResultDTO paramDto = new ListResultDTO(); -// paramDto.setDate(date); -// paramDto.setStudentIdList(studentList.stream().map(EduStudent::getId).collect(Collectors.toList())); -// paramDto.setType(1); //类型:0异常,1正常 -// Integer abnormalNum = 0; -// if (CollUtil.isNotEmpty(studentList)) { -// abnormalNum = remoteAttendanceResultService -// .getAbnormalStudentList(paramDto) -// .getData().size(); -// } -// classAttendanceDataVO.setTotalNum(studentList.size()); -// classAttendanceDataVO.setAbnormalNum(studentList.size() - abnormalNum); - if (ObjectUtil.isNotNull(redisData)) { - returnList.add(redisData); - } - } - return returnList; - } @Override - public List findClassAttendanceDetailByDeptId(Long deptId, Integer type, LocalDate date) { - if (type == 0) { - ClassAttendanceDataVO redisData = (ClassAttendanceDataVO) redisService - .hget(CachePrefixConstant.ATTENDANCE_DORMITORY_DORM + date, - deptId.toString()); - if (ObjectUtil.isNull(redisData)) { - return new ArrayList<>(); - } else { - return redisData.getStudentList(); - } - } else { - ClassAttendanceDataVO redisData = (ClassAttendanceDataVO) redisService - .hget(CachePrefixConstant.ATTENDANCE_DORMITORY_CLASS + date, - deptId.toString()); - if (ObjectUtil.isNull(redisData)) { - return new ArrayList<>(); - } else { - return redisData.getStudentList(); - } - } - -// -// List studentList = new ArrayList<>(); -// if (type == 0) { -// //班级 -// //根据班级查询学生信息 -// ListStudentDTO dto = new ListStudentDTO(); -// dto.setClassId(deptId); -// dto.setType(1); -// studentList = eduStudentMapper.listStudentByCondition(dto); -//// studentList = eduStudentMapper.selectList( -//// Wrappers.lambdaQuery(new EduStudent()).eq(EduStudent::getClassId, deptId).eq(EduStudent::getType, 1) -//// .orderByAsc(EduStudent::getCollectType)); -// } else { -// //宿舍 -// //查询宿舍总人数、异常人数 -// ListStudentDTO dto = new ListStudentDTO(); -// dto.setDormIds(Collections.singletonList(deptId)); -// dto.setIsQueryUserDept(true); -// dto.setType(1); -// studentList = eduStudentMapper.listStudent(dto); -// } -// -// ListResultDTO paramDto = new ListResultDTO(); -// paramDto.setDate(date); -// paramDto.setStudentIdList(studentList.stream().map(EduStudent::getId).collect(Collectors.toList())); -// paramDto.setType(0); //类型:0异常,1正常 -// -// List abnormalStudentList = remoteAttendanceResultService -// .getAbnormalStudentList(paramDto) -// .getData(); -// -// log.info("异常数据【{}】", abnormalStudentList); -// -// Map> listMap = abnormalStudentList.stream() -// .collect(Collectors.groupingBy(EduAttendanceResult::getStudentId)); -// -// for (EduStudent student : studentList) { -// List eduAttendanceResultList = listMap.get(student.getId()); -// log.info("eduAttendanceResultList========【{}】", eduAttendanceResultList); -// -// if (CollUtil.isEmpty(eduAttendanceResultList)) { -// student.setDormAttStatus(0); -// } else { -// EduAttendanceResult eduAttendanceResult = listMap.get(student.getId()).get(0); -// if (ObjectUtil.isNotNull(eduAttendanceResult)) { -// if (ObjectUtil.isNull(eduAttendanceResult.getBeginStatus())) { -// student.setDormAttStatus(4); -// } else { -// student.setDormAttStatus(eduAttendanceResult.getBeginStatus()); -// } -// } else { -// student.setDormAttStatus(0); -// } -// } -// } -// return studentList; - } - - - @Override - public List findChildIdByParentAndType(List userDeptIdList, Integer type, List resultList) { + public List findChildIdByParentAndType(List userDeptIdList, Integer type) { List result = list(Wrappers.lambdaQuery().in(EduUserDept::getParentId, userDeptIdList) - .eq(ObjectUtil.isNotNull(type), EduUserDept::getDeptType, type) + .eq(EduUserDept::getDeptType, type) .eq(EduUserDept::getVisible, DeptVisibleTypeEnum.VISIBLE_TYPE.getValue()) .eq(EduUserDept::getGraduatedStatus, GraduatedStatusEnum.UNDERGRADUATE_STATUS.getValue()) .orderByDesc(EduUserDept::getOrderNum)); @@ -548,12 +250,10 @@ public class EduUserDeptServiceImpl extends ServiceImpl .orderByDesc(EduUserDept::getOrderNum)) .stream().map(EduUserDept::getDeptId).collect(Collectors.toList()); if (CollUtil.isNotEmpty(child)) { - findChildIdByParentAndType(child, type, resultList); + result = findChildIdByParentAndType(child, type); } - } else { - resultList.addAll(result); } - return resultList; + return result; } /** @@ -763,34 +463,6 @@ public class EduUserDeptServiceImpl extends ServiceImpl return TreeUtil.build(trees); } - @Override - public List getUserDeptTree(List deptIds) { - // 返回的树结构 - List allDeptList = new ArrayList<>(); - // 根节点集合 - List rootIdList = new ArrayList<>(); - - if (CollUtil.isNotEmpty(deptIds)) { - for (Long deptId : deptIds) { - // 添加根节点 - EduUserDept root = this.getById(deptId); - if (ObjectUtil.isNotNull(root)) { - if (root.getParentId() != null) { - root.setParentId(null); - root.setParentWxId(null); - } - allDeptList.add(root); - rootIdList.add(deptId); - } - } - } - // 循环查询子节点 - allDeptList.addAll(findListByParent(rootIdList)); - List trees = new ArrayList<>(); - buildTrees(trees, allDeptList, false); - return TreeUtil.build(trees); - } - /** * 根据各层名称查询班级信息 * @@ -878,7 +550,7 @@ public class EduUserDeptServiceImpl extends ServiceImpl if (school.getSchoolType().contains(Dept.TYPE_QYWX)) { bindFlag = true; eduApp = appMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, - school.getDeptId()).eq(EduApp::getCode, AppConstant.CONTACT_SCHOOL)); + school.getDeptId()).eq(EduApp::getName, AppConstant.CONTACT_SCHOOL)); if (eduApp != null) { Long wxId = wxUtil.createUserDept(wxUtil.getAccessToken(eduApp.getWxCorpId(), eduApp.getWxSecret()), campus); @@ -956,7 +628,7 @@ public class EduUserDeptServiceImpl extends ServiceImpl if (school.getSchoolType().contains(Dept.TYPE_QYWX)) { bindFlag = true; eduApp = appMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, - school.getDeptId()).eq(EduApp::getCode, AppConstant.CONTACT_SCHOOL)); + school.getDeptId()).eq(EduApp::getName, AppConstant.CONTACT_SCHOOL)); } // 学校绑定了大华 if (school.getSchoolType().contains(Dept.TYPE_DAHUA)) { @@ -1037,8 +709,6 @@ public class EduUserDeptServiceImpl extends ServiceImpl this.save(classDept); } }); - - updateSchoolClassData(sectionDTO.getSchoolId()); } /** @@ -1083,7 +753,7 @@ public class EduUserDeptServiceImpl extends ServiceImpl if (school.getSchoolType().contains(Dept.TYPE_QYWX)) { bindFlag = true; eduApp = appMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, - school.getDeptId()).eq(EduApp::getCode, AppConstant.CONTACT_SCHOOL)); + school.getDeptId()).eq(EduApp::getName, AppConstant.CONTACT_SCHOOL)); if (eduApp != null) { Long wxId = wxUtil.createUserDept(wxUtil.getAccessToken(eduApp.getWxCorpId(), eduApp.getWxSecret()), grade); @@ -1126,8 +796,6 @@ public class EduUserDeptServiceImpl extends ServiceImpl } // 批量保存班级数据 this.saveBatch(classList); - - updateSchoolClassData(saveGradeDTO.getSchoolId()); } /** @@ -1181,7 +849,7 @@ public class EduUserDeptServiceImpl extends ServiceImpl // 学校绑定了企业微信 if (school.getSchoolType().contains(Dept.TYPE_QYWX)) { EduApp eduApp = appMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, - school.getDeptId()).eq(EduApp::getCode, AppConstant.CONTACT_SCHOOL)); + school.getDeptId()).eq(EduApp::getName, AppConstant.CONTACT_SCHOOL)); if (eduApp != null) { Long wxId = wxUtil.createUserDept(wxUtil.getAccessToken(eduApp.getWxCorpId(), eduApp.getWxSecret()), eduUserDept); @@ -1200,8 +868,6 @@ public class EduUserDeptServiceImpl extends ServiceImpl } } this.save(eduUserDept); - - updateSchoolClassData(addUserDeptDTO.getSchoolId()); } /** @@ -1234,7 +900,7 @@ public class EduUserDeptServiceImpl extends ServiceImpl // 学校绑定了企业微信 if (school.getSchoolType().contains(Dept.TYPE_QYWX)) { EduApp eduApp = appMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, - school.getDeptId()).eq(EduApp::getCode, AppConstant.CONTACT_SCHOOL)); + school.getDeptId()).eq(EduApp::getName, AppConstant.CONTACT_SCHOOL)); if (eduApp != null) { wxUtil.updateUserDept(wxUtil.getAccessToken(eduApp.getWxCorpId(), eduApp.getWxSecret()), eduUserDept); } @@ -1254,8 +920,6 @@ public class EduUserDeptServiceImpl extends ServiceImpl } } this.saveOrUpdate(eduUserDept); - - updateSchoolClassData(editUserDeptDTO.getSchoolId()); } /** @@ -1281,7 +945,7 @@ public class EduUserDeptServiceImpl extends ServiceImpl if (school.getSchoolType().contains(Dept.TYPE_QYWX)) { bindFlag = true; eduApp = appMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, - school.getDeptId()).eq(EduApp::getCode, AppConstant.CONTACT_SCHOOL)); + school.getDeptId()).eq(EduApp::getName, AppConstant.CONTACT_SCHOOL)); } // 学校绑定了大华 if (school.getSchoolType().contains(Dept.TYPE_DAHUA)) { @@ -1311,8 +975,6 @@ public class EduUserDeptServiceImpl extends ServiceImpl } // 删除部门缓存 redisService.hdel(CachePrefixConstant.USER_DEPT_DATA, ids); - - updateSchoolClassData(schoolId); } /** @@ -1406,26 +1068,7 @@ public class EduUserDeptServiceImpl extends ServiceImpl @Override public EduUserDept getParentByDeptId(Long deptId) { EduUserDept eduUserDept = this.getById(deptId); - if (ObjectUtil.isNotNull(eduUserDept.getParentId())) { - return this.getById(eduUserDept.getParentId()); - } else { - return null; - } - } - - @Override - public List getParentListByDeptId(Long deptId) { - List result = new ArrayList<>(); - if (ObjectUtil.isNotNull(deptId)) { - EduUserDept currentDept = getById(deptId); - result.add(currentDept); - if (ObjectUtil.isNotNull(currentDept) && ObjectUtil.isNotNull(currentDept.getParentId())) { - result.addAll(getParentListByDeptId(currentDept.getParentId())); - } - return result; - } else { - return null; - } + return this.getById(eduUserDept.getParentId()); } /** @@ -1469,7 +1112,7 @@ public class EduUserDeptServiceImpl extends ServiceImpl } this.removeByIds(deptIdList); // 删除家校部门缓存 - redisService.hdel(CachePrefixConstant.USER_DEPT_DATA, deptIdList.stream().map(Object::toString).toArray(String[]::new)); + redisService.hdel(CachePrefixConstant.USER_DEPT_DATA, deptIdList.stream().map(x -> x.toString()).toArray(String[]::new)); } /** @@ -1480,28 +1123,20 @@ public class EduUserDeptServiceImpl extends ServiceImpl */ @Override @Transactional - public void syncUserDept(Long schoolId) { + public void syncUserDept() { // 查询所有和企业微信关联的学校信息 - List schoolList = new ArrayList<>(); - if (Objects.isNull(schoolId)) { - // 查询所有绑定了企业微信的学校信息 - schoolList = remoteDeptService.listSchoolBySchoolType(Dept.TYPE_QYWX).getData(); - } else { - Dept school = remoteDeptService.getInfoByIdNoPermission(schoolId).getData(); - schoolList.add(school); - } - + List schoolList = this.remoteDeptService.listSchoolBySchoolType(Dept.TYPE_QYWX).getData(); if (CollectionUtils.isNotEmpty(schoolList)) { for (Dept school : schoolList) { log.info("[{}], schoolId:[{}]开始同步家校部门", school.getDeptName(), school.getDeptId()); log.info("当前学校信息: {}", school); EduApp contactSchoolApp = appMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, - school.getDeptId()).eq(EduApp::getCode, AppConstant.CONTACT_SCHOOL)); + school.getDeptId()).eq(EduApp::getName, AppConstant.CONTACT_SCHOOL)); // 判断学校是否绑定了大华 boolean bindDaHuaFlag = false; -// if (school.getSchoolType().contains(Dept.TYPE_DAHUA)) { -// bindDaHuaFlag = true; -// } + if (school.getSchoolType().contains(Dept.TYPE_DAHUA)) { + bindDaHuaFlag = true; + } // 查询家校部门列表 List schoolDeptList = wxUtil.listSchoolDept(wxUtil.getAccessToken(contactSchoolApp.getWxCorpId(), contactSchoolApp.getWxSecret()), null); @@ -1525,22 +1160,11 @@ public class EduUserDeptServiceImpl extends ServiceImpl if (wxId == 1) { continue; } - // 判断错误数据. 放在根节点下的非校区数据不同步 - if (parentWxId == 1 && !UserDeptTypeEnum.CAMPUS_TYPE.getValue().equals(type)) { - continue; - } + Long parentId = wxIdAndDeptIdCache.get(parentWxId); - EduUserDept existParent = this.getOne(Wrappers.lambdaQuery() - .eq(EduUserDept::getWxId, parentWxId) - .eq(EduUserDept::getSchoolId, school.getDeptId())); - if (Objects.isNull(existParent) && parentWxId != 1) { - log.error("没有父级部门数据: {}", parentWxId); - continue; - } // 查询已存在的数据 log.info("家校部门查询已存在的数据, wxId: {}, parentWxId: {}, schoolId: {}", wxId, parentWxId, school.getDeptId()); - Long parentId = wxIdAndDeptIdCache.get(parentWxId); EduUserDept exist = this.getOne(Wrappers.lambdaQuery() .eq(EduUserDept::getWxId, wxId) .eq(EduUserDept::getParentWxId, parentWxId) @@ -1566,7 +1190,6 @@ public class EduUserDeptServiceImpl extends ServiceImpl exist.setVisible(DeptVisibleTypeEnum.VISIBLE_TYPE.getValue()); exist.setUpdateDate(LocalDateTime.now()); } - // 设置排序 Integer oldOrder = wxIdAndOrderCache.get(parentWxId); if (Objects.isNull(order) && Objects.isNull(exist.getOrderNum())) { order = SortUtil.getOrderNumber(oldOrder, -1000); @@ -1595,47 +1218,6 @@ public class EduUserDeptServiceImpl extends ServiceImpl wxIdAndOrderCache.put(wxId, 0); wxIdAndOrderCache.put(parentWxId, oldOrder + 1); - Long campusId = null; - Long sectionId = null; - Long gradeId = null; - Long classId = null; - switch (exist.getDeptType()) { - case 1: - /// 班级 - classId = exist.getDeptId(); - gradeId = exist.getParentId(); - // 查询学段信息 - EduUserDept section = getParentByDeptId(gradeId); - sectionId = section.getDeptId(); - campusId = section.getParentId(); - break; - case 2: - // 年级 - gradeId = exist.getDeptId(); - sectionId = exist.getParentId(); - campusId = getById(sectionId).getParentId(); - break; - case 3: - // 学段 - sectionId = exist.getDeptId(); - campusId = exist.getParentId(); - break; - case 4: - // 学区 - campusId = exist.getDeptId(); - break; - default: - log.error("家校部门类型错误, 部门信息:{}", dept); - break; - } - // 获取老师列表 - List teacherList = (List) dept.get("department_admins"); - log.info("teachers:{},dept:{}", teacherList, dept); - if (CollUtil.isNotEmpty(teacherList)) { - eduStaffService.dealWxTeacherChange(school.getDeptId(), campusId, sectionId, gradeId, classId, - teacherList, wxId); - } - // 判断是否调用大华接口 if (bindDaHuaFlag) { // 查询当前部门 @@ -1810,230 +1392,4 @@ public class EduUserDeptServiceImpl extends ServiceImpl } return vo; } - - @Override - public List listClassByStaffId(Long staffId) { - CurrentUser currentUser = FebsUtil.getCurrentUser(); - //取缓存 - String staffMangeClassData = (String) redisService - .get(CachePrefixConstant.STAFF_MANGE_CLASS + staffId); - - if (ObjectUtil.isNull(staffMangeClassData)) { - //任课老师、班主任、年级主任、学段主任、学区主任 - List totalClassDeptList = new ArrayList<>(); - //任课老师 - List teacherDeptVOS = eduStaffMapper.listDeptByTeacher(currentUser.getIdentityId(), 4); - //班主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_CLASS_PRINCIPAL.getValue())) { - List teacherDeptVOList = eduStaffMapper.listDeptByTeacher(staffId, 3); - teacherDeptVOS.addAll(teacherDeptVOList); - } - for (TeacherDeptVO teacherDeptVO : teacherDeptVOS) { - teacherDeptVO.setClassName(this.getById(teacherDeptVO.getClassId()).getDeptName()); - teacherDeptVO.setGradeName(this.getById(teacherDeptVO.getGradeId()).getDeptName()); - teacherDeptVO.setSectionName(this.getById(teacherDeptVO.getSectionId()).getDeptName()); - teacherDeptVO.setCampusName(this.getById(teacherDeptVO.getCampusId()).getDeptName()); - Long studentNum = eduStudentMapper.selectCount(Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getClassId, teacherDeptVO.getClassId())); - //班级人数 - teacherDeptVO.setClassStudentNum(studentNum); - totalClassDeptList.add(teacherDeptVO); - } - - //年级主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_GRADE_PRINCIPAL.getValue())) { - List teacherDeptVOList_grade = eduStaffMapper.listDeptByTeacher(staffId, 2); - for (TeacherDeptVO teacherDeptVO : teacherDeptVOList_grade) { - String gradeName = this.getById(teacherDeptVO.getGradeId()).getDeptName(); - String sectionName = this.getById(teacherDeptVO.getSectionId()).getDeptName(); - String campusName = this.getById(teacherDeptVO.getCampusId()).getDeptName(); - List childByParent = findChildByParent(teacherDeptVO.getGradeId()); - for (EduUserDept eduUserDept : childByParent) { - TeacherDeptVO teacherDeptVO1 = new TeacherDeptVO(); - teacherDeptVO1.setGradeId(teacherDeptVO.getGradeId()); - teacherDeptVO1.setClassId(eduUserDept.getDeptId()); - teacherDeptVO1 - .setClassName(this.getById(eduUserDept.getDeptId()).getDeptName()); - teacherDeptVO1.setGradeName(gradeName); - teacherDeptVO1.setSectionName(sectionName); - teacherDeptVO1.setCampusName(campusName); - - Long studentNum = eduStudentMapper.selectCount(Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getClassId, eduUserDept.getDeptId())); - //班级人数 - teacherDeptVO1.setClassStudentNum(studentNum); - totalClassDeptList.add(teacherDeptVO1); - } - } - } - - //学段主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_SECTION_PRINCIPAL.getValue())) { - List sectionList = eduStaffMapper.listDeptByTeacher(staffId, 5); - for (TeacherDeptVO section : sectionList) { - String campusName = this.getById(section.getCampusId()).getDeptName(); - String sectionName = this.getById(section.getSectionId()).getDeptName(); - List gradeList = findChildByParentAndType(Collections.singletonList(section.getSectionId()), 2); - for (EduUserDept grade : gradeList) { - String gradeName = this.getById(grade.getDeptId()).getDeptName(); - List classList = findChildByParent(grade.getDeptId()); - for (EduUserDept clazz : classList) { - TeacherDeptVO teacherDeptVO = new TeacherDeptVO(); - teacherDeptVO.setGradeId(grade.getDeptId()); - teacherDeptVO.setClassId(clazz.getDeptId()); - teacherDeptVO - .setClassName(this.getById(clazz.getDeptId()).getDeptName()); - teacherDeptVO.setGradeName(gradeName); - teacherDeptVO.setCampusName(campusName); - Long studentNum = eduStudentMapper.selectCount(Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getClassId, clazz.getDeptId())); - //班级人数 - teacherDeptVO.setClassStudentNum(studentNum); - totalClassDeptList.add(teacherDeptVO); - } - } - } - } - //学区主任 - if (currentUser.getRolePerms().contains(RoleEnum.ROLE_CAMPUS_PRINCIPAL.getValue())) { - List campusList = eduStaffMapper.listDeptByTeacher(staffId, 1); - for (TeacherDeptVO campus : campusList) { - String campusName = this.getById(campus.getCampusId()).getDeptName(); - List gradeList = findChildByParentAndType(Collections.singletonList(campus.getCampusId()), 2); - for (EduUserDept grade : gradeList) { - String gradeName = this.getById(grade.getDeptId()).getDeptName(); - List classList = findChildByParent(grade.getDeptId()); - for (EduUserDept clazz : classList) { - TeacherDeptVO teacherDeptVO = new TeacherDeptVO(); - teacherDeptVO.setGradeId(grade.getDeptId()); - teacherDeptVO.setClassId(clazz.getDeptId()); - teacherDeptVO - .setClassName(this.getById(clazz.getDeptId()).getDeptName()); - teacherDeptVO.setGradeName(gradeName); - teacherDeptVO.setCampusName(campusName); - - Long studentNum = eduStudentMapper.selectCount(Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getClassId, clazz.getDeptId())); - //班级人数 - teacherDeptVO.setClassStudentNum(studentNum); - - totalClassDeptList.add(teacherDeptVO); - } - } - } - } - //查询学校负责人,即校领导 - List schoolList = eduStaffMapper.listDeptByTeacher(staffId, 6); - if (CollUtil.isNotEmpty(schoolList)) { - for (TeacherDeptVO school : schoolList) { - List campusList = findChildByParentAndType( - Collections.singletonList(-school.getSchoolId()), 4); - for (EduUserDept campus : campusList) { - String campusName = this.getById(campus.getDeptId()).getDeptName(); - List gradeList = findChildByParentAndType(Collections.singletonList(campus.getDeptId()), - 2); - for (EduUserDept grade : gradeList) { - String gradeName = this.getById(grade.getDeptId()).getDeptName(); - List classList = findChildByParent(grade.getDeptId()); - for (EduUserDept clazz : classList) { - TeacherDeptVO teacherDeptVO = new TeacherDeptVO(); - teacherDeptVO.setGradeId(grade.getDeptId()); - teacherDeptVO.setClassId(clazz.getDeptId()); - teacherDeptVO - .setClassName(this.getById(clazz.getDeptId()).getDeptName()); - teacherDeptVO.setGradeName(gradeName); - teacherDeptVO.setCampusName(campusName); - Long studentNum = eduStudentMapper.selectCount(Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getClassId, clazz.getDeptId())); - //班级人数 - teacherDeptVO.setClassStudentNum(studentNum); - totalClassDeptList.add(teacherDeptVO); - } - } - } - } - } - //去重 - totalClassDeptList = totalClassDeptList.stream().distinct().collect(Collectors.toList()); - - if (CollUtil.isNotEmpty(totalClassDeptList)) { - redisService - .set(CachePrefixConstant.STAFF_MANGE_CLASS + staffId, JSONUtil.toJsonStr(totalClassDeptList)); - } - return totalClassDeptList; - } else { - List teacherDeptVOList = JSONUtil.toList(staffMangeClassData, TeacherDeptVO.class); - return teacherDeptVOList; - } - } - - - /** - * 更新学校缓存班级数据信息 - * - * @param schoolId - */ - public void updateSchoolClassData(Long schoolId) { - if (ObjectUtil.isNull(schoolId)) { - return; - } - //查询学校下的所有班级 -// List classList = new ArrayList<>(); -// List campusList = this.findChildByParentAndType(Collections.singletonList(-schoolId), 4); -// for (EduUserDept campus : campusList) { -// List gradeList = this.findChildByParentAndType(Collections.singletonList(campus.getDeptId()), 2); -// for (EduUserDept grade : gradeList) { -// List nowList = this.findChildByParentAndType(Collections.singletonList(grade.getDeptId()), 1); -// for (EduUserDept classDept : nowList) { -// classList.add(ClassAttendanceDataVO.builder().type(0).classId(classDept.getDeptId()) -// .name(campus.getDeptName() + "/" + grade.getDeptName() + "/" + classDept -// .getDeptName()).build()); -// } -// } -// } - redisService - .del(CachePrefixConstant.SCHOOL_CLASS_DATA + schoolId); - } - - @Override - public JSONArray getGradeDistribution(Long schoolId) { - JSONArray jsonArray = JSONUtil.createArray(); - // 查询学校总人数 - long studentNum = eduStudentMapper.selectCount(Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getSchoolId, schoolId)); - // 查询年级信息 - List gradeList = list(Wrappers.lambdaQuery(new EduUserDept()) - .eq(EduUserDept::getDeptType, UserDeptTypeEnum.GRADE_TYPE.getValue()) - .eq(EduUserDept::getVisible, DeptVisibleTypeEnum.VISIBLE_TYPE.getValue()) - .eq(EduUserDept::getGraduatedStatus, GraduatedStatusEnum.UNDERGRADUATE_STATUS.getValue()) - .eq(EduUserDept::getSchoolId, schoolId) - ); - for (EduUserDept grade : gradeList) { - JSONObject jsonObject = JSONUtil.createObj() - .set("gardeName", grade.getDeptName()); - // 查询学段名称 - EduUserDept section = getById(grade.getParentId()); - jsonObject.set("sectionName", section.getDeptName()); - // 查询学区名称 - EduUserDept campus = getById(section.getParentId()); - jsonObject.set("campusName", campus.getDeptName()); - if (studentNum == 0) { - jsonObject.set("gradeStudentNumber", 0); - jsonObject.set("percentage", "0%"); - } else { - // 查询年级人数 - long gradeStudentNumber = eduStudentMapper.selectGradeStudentNumber(grade.getDeptId()); - if (gradeStudentNumber == 0) { - jsonObject.set("gradeStudentNumber", 0); - jsonObject.set("percentage", "0%"); - } else { - jsonObject.set("gradeStudentNumber", gradeStudentNumber); - jsonObject.set("percentage", NumberUtil.div(gradeStudentNumber * 100, studentNum, 2) + "%"); - } - } - - jsonArray.add(jsonObject); - } - return jsonArray; - } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserDeviceFactoryServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserDeviceFactoryServiceImpl.java index 1fe2bbb..5a10c8e 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserDeviceFactoryServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserDeviceFactoryServiceImpl.java @@ -8,13 +8,15 @@ import com.yida.data.user.mapper.EduStudentMapper; import com.yida.data.user.mapper.EduUserDeviceFactoryMapper; import com.yida.data.user.service.EduUserDeviceFactoryService; import com.yida.data.user.vo.UserDeviceInfoVO; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; + import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + @RequiredArgsConstructor @Slf4j @Service @@ -26,7 +28,7 @@ public class EduUserDeviceFactoryServiceImpl extends ServiceImpl userDeviceFactoryList) { List exist = baseMapper.existUserDeviceFactory(userDeviceFactoryList); List res = - userDeviceFactoryList.stream().filter(x -> !exist.contains(x.getTypeFlag())).collect(Collectors.toList()); + userDeviceFactoryList.stream().filter(x -> !exist.contains(x.getUserId().toString() + x.getUserType().toString())).collect(Collectors.toList()); saveBatch(res); } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserFaceServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserFaceServiceImpl.java index c1242a1..d0f996d 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserFaceServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/EduUserFaceServiceImpl.java @@ -11,7 +11,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yida.data.attendance.dto.IssuedFaceDTO; import com.yida.data.attendance.feign.RemoteAttendanceDeviceService; import com.yida.data.common.core.entity.constant.CachePrefixConstant; -import com.yida.data.common.core.entity.user.*; +import com.yida.data.common.core.entity.user.EduStaff; +import com.yida.data.common.core.entity.user.EduStudent; +import com.yida.data.common.core.entity.user.EduUserDevice; +import com.yida.data.common.core.entity.user.EduUserFace; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.Asserts; import com.yida.data.common.core.utils.FileUtil; @@ -36,7 +39,10 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.File; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -50,7 +56,7 @@ import java.util.stream.Collectors; @RequiredArgsConstructor @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) public class EduUserFaceServiceImpl extends ServiceImpl - implements EduUserFaceService { + implements EduUserFaceService { private final EduStudentMapper eduStudentMapper; private final EduStaffMapper eduStaffMapper; @@ -64,7 +70,7 @@ public class EduUserFaceServiceImpl extends ServiceImpl @Override public String uploadUserFace(MultipartFile file, Long id, String name, - Long schoolId, Integer type) { + Long schoolId, Integer type) { //处理图片到100k String path; try { @@ -98,7 +104,7 @@ public class EduUserFaceServiceImpl extends ServiceImpl public void updateUserUpLoadFace(String picPath, Long id, String name, Integer type) { // 新增更新人脸 EduUserFace userFace = getOne( - Wrappers.lambdaQuery(new EduUserFace()).eq(EduUserFace::getUserId, id).eq(EduUserFace::getUserType, type)); + Wrappers.lambdaQuery(new EduUserFace()).eq(EduUserFace::getUserId, id).eq(EduUserFace::getUserType, type)); if (userFace == null) { userFace = new EduUserFace(); userFace.setUserId(id); @@ -122,26 +128,19 @@ public class EduUserFaceServiceImpl extends ServiceImpl eduStaffMapper.updateById(staff); } List userDeviceList = eduUserDeviceMapper.selectList( - Wrappers.lambdaQuery(new EduUserDevice()).eq(EduUserDevice::getUserId, id).eq(EduUserDevice::getUserType, type)); + Wrappers.lambdaQuery(new EduUserDevice()).eq(EduUserDevice::getUserId, id).eq(EduUserDevice::getUserType, type)); if (CollUtil.isNotEmpty(userDeviceList)) { // 用户已经被下发到设备,更新设备上的图像 - Map> userDeviceMap = userDeviceList.stream().collect( - Collectors.groupingBy(EduUserDevice::getFaceGroupId)); - for (Map.Entry> entry : userDeviceMap.entrySet()) { - Long faceGroupId = entry.getKey(); - List eduUserDevices = entry.getValue(); - // 设备id - List deviceIds = eduUserDevices.stream().map(EduUserDevice::getDeviceId).distinct() - .collect(Collectors.toList()); - IssuedFaceDTO dto = new IssuedFaceDTO(); -// dto.setType(1); - dto.setDeviceList(deviceIds); - dto.setGroupId(faceGroupId); - dto.setUserFaceList(Collections.singletonList(userFace)); - remoteAttendanceDeviceService.issuedFace(dto); - } + List deviceIds = userDeviceList.stream().map(x -> x.getDeviceId()).distinct().collect(Collectors.toList()); + IssuedFaceDTO dto = new IssuedFaceDTO(); + dto.setType(1); + dto.setDeviceList(deviceIds); + dto.setUserFaceList(Arrays.asList(userFace)); + remoteAttendanceDeviceService.issuedFace(dto); } - // TODO 2023/3/1 异步同步大华 + //异步同步大华 + + } @Override @@ -174,28 +173,28 @@ public class EduUserFaceServiceImpl extends ServiceImpl if (importType == 0) { if (type == 0) { EduStudent student = eduStudentMapper.selectOne( - Wrappers.lambdaQuery(new EduStudent()).eq(EduStudent::getStuNumber, userFlag) - .eq(EduStudent::getSchoolId, schoolId)); + Wrappers.lambdaQuery(new EduStudent()).eq(EduStudent::getStuNumber, userFlag) + .eq(EduStudent::getSchoolId, schoolId)); userId = student != null ? student.getId() : null; userName = student != null ? student.getStuName() : null; } else { EduStaff staff = - eduStaffMapper.selectOne(Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getMobile, userFlag) - .eq(EduStaff::getSchoolId, schoolId)); + eduStaffMapper.selectOne(Wrappers.lambdaQuery(new EduStaff()).eq(EduStaff::getMobile, userFlag) + .eq(EduStaff::getSchoolId, schoolId)); userId = staff != null ? staff.getId() : null; userName = staff != null ? staff.getName() : null; } } else { // 按名称导入 if (type == 0) { List studentList = eduStudentMapper.selectList(Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getStuName, userFlag) - .eq(EduStudent::getSchoolId, schoolId)); + .eq(EduStudent::getStuName, userFlag) + .eq(EduStudent::getSchoolId, schoolId)); userId = CollUtil.isNotEmpty(studentList) && studentList.size() == 1 ? studentList.get(0).getId() : null; userName = userId != null ? studentList.get(0).getStuName() : null; } else { List staffList = eduStaffMapper.selectList(Wrappers.lambdaQuery(new EduStaff()) - .eq(EduStaff::getMobile, userFlag) - .eq(EduStaff::getSchoolId, schoolId)); + .eq(EduStaff::getMobile, userFlag) + .eq(EduStaff::getSchoolId, schoolId)); userId = CollUtil.isNotEmpty(staffList) && staffList.size() == 1 ? staffList.get(0).getId() : null; userName = userId != null ? staffList.get(0).getName() : null; } @@ -208,20 +207,12 @@ public class EduUserFaceServiceImpl extends ServiceImpl // 压缩图片至1000KB File compressImg = null; try { - compressImg = FileUtil.compressImg(img, 100L); + compressImg = FileUtil.compressImg(img, 1000L); } catch (Exception e) { log.error("压缩图片失败", e); - errorFiles.add(img); - continue; } imgPath = FileUtil.uploadFileToMediaServer(uploadUrl, compressImg); - try { - updateUserFace(imgPath, userId, userName, type); - } catch (Exception e) { - log.error("人脸识别失败, 图片名称: {}", img.getName(), e); - errorFiles.add(img); - continue; - } + updateUserFace(imgPath, userId, userName, type); // 进度增加更新进度 if (finish * 100 / total > percent) { faceVO.setPercent(finish * 100 / total); @@ -253,79 +244,46 @@ public class EduUserFaceServiceImpl extends ServiceImpl Integer total = (Integer) redisService.get(CachePrefixConstant.ISSUE_FACE_TOTAL + faceGroupId); Integer error = (Integer) redisService.get(CachePrefixConstant.ISSUE_FACE_ERROR + faceGroupId); Integer finish = (Integer) redisService.get(CachePrefixConstant.ISSUE_FACE_FINISH + faceGroupId); - // 错误信息 - List objects = new ArrayList<>(); - // 错误信息键值集合 - Set keys = redisService.keys(CachePrefixConstant.ISSUE_FACE_ERROR_MSG + faceGroupId); - if (CollUtil.isNotEmpty(keys)) { - keys.forEach(key -> objects.addAll(redisService.lGet(key, 0L, -1L))); - } - + List objects = redisService.lGet(CachePrefixConstant.ISSUE_FACE_ERROR_MSG + faceGroupId, 0L, -1L); IssueFacePercentVO vo = null; if (total != null) { vo = new IssueFacePercentVO(); vo.setErrorNum(error); - // TODO: 2023/9/18 后续优化百分比信息,此处修改为最大100 - int percent = 0; - if (Objects.nonNull(finish)) { - if (total <= finish) { - percent = 100; - } else { - percent = finish * 100 / total; - } - } -// vo.setPercent(total != null && finish != null ? finish * 100 / total : 100); - vo.setPercent(percent); + vo.setPercent(total != null && finish != null ? finish * 100 / total : 100); vo.setFinish(vo.getPercent() < 100 ? 0 : 1); if (CollUtil.isNotEmpty(objects)) { List msgList = new ArrayList<>(); Map> userGroup = objects.stream().map(x -> (EduUserFace) x) - .collect(Collectors.groupingBy(EduUserFace::getUserType)); + .collect(Collectors.groupingBy(EduUserFace::getUserType)); // 查询学生信息 if (userGroup.containsKey(0)) { - // 学生人脸信息 - List studentFaces = userGroup.get(0); - // 学生信息 + List studentIds = userGroup.get(0).stream().map(x -> x.getUserId()).collect(Collectors.toList()); List studentList = eduStudentMapper - .listStudent(ListStudentDTO.builder().studentIds( - studentFaces.stream().map(EduUserFace::getUserId).collect(Collectors.toList())) - .build()); + .listStudent(ListStudentDTO.builder().studentIds(studentIds).build()); msgList.addAll(studentList.stream().map(x -> { UserInfoVO infoVO = new UserInfoVO(); infoVO.setName(x.getStuName()); infoVO.setDept(x.getGradeName() + x.getClassName()); infoVO.setNumber(x.getStuNumber()); - infoVO.setDeviceName(studentFaces.stream() - .filter(userFace -> userFace.getUserId().equals(x.getId())) - .collect(Collectors.toList()) - .get(0).getDeviceName()); return infoVO; }).collect(Collectors.toList())); } // 查询职工信息 if (userGroup.containsKey(1)) { - // 职工人脸信息 - List staffFaces = userGroup.get(1); - // 职工信息 - List staffList = eduStaffMapper.listStaff(ListStaffDTO.builder().ids( - staffFaces.stream().map(EduUserFace::getUserId).collect(Collectors.toList())) - .build()); + List staffIds = userGroup.get(1).stream().map(x -> x.getUserId()).collect(Collectors.toList()); + List staffList = eduStaffMapper.listStaff(ListStaffDTO.builder().ids(staffIds).build()); msgList.addAll(staffList.stream().map(x -> { UserInfoVO infoVO = new UserInfoVO(); infoVO.setName(x.getName()); infoVO.setDept(CollUtil.isNotEmpty(x.getStaffDept()) - ? x.getStaffDept().stream().map(EduStaffDept::getDeptName).collect(Collectors.joining(",")) - : null); + ? x.getStaffDept().stream().map(y -> y.getDeptName()).collect(Collectors.joining(",")) + : null); infoVO.setNumber(x.getMobile()); - infoVO.setDeviceName(staffFaces.stream() - .filter(userFace -> userFace.getUserId().equals(x.getId())) - .collect(Collectors.toList()) - .get(0).getDeviceName()); return infoVO; }).collect(Collectors.toList())); } - vo.setMsgList(msgList.stream().distinct().collect(Collectors.toList())); + vo.setMsgList(msgList); } } return vo; @@ -342,7 +300,7 @@ public class EduUserFaceServiceImpl extends ServiceImpl Asserts.isTrue(containsFace, "未检测到人脸,请重新上传图片"); // 新增更新人脸 EduUserFace userFace = getOne( - Wrappers.lambdaQuery(new EduUserFace()).eq(EduUserFace::getUserId, id).eq(EduUserFace::getUserType, type)); + Wrappers.lambdaQuery(new EduUserFace()).eq(EduUserFace::getUserId, id).eq(EduUserFace::getUserType, type)); if (userFace == null) { userFace = new EduUserFace(); userFace.setUserId(id); @@ -366,24 +324,15 @@ public class EduUserFaceServiceImpl extends ServiceImpl eduStaffMapper.updateById(staff); } List userDeviceList = eduUserDeviceMapper.selectList( - Wrappers.lambdaQuery(new EduUserDevice()).eq(EduUserDevice::getUserId, id).eq(EduUserDevice::getUserType, type)); + Wrappers.lambdaQuery(new EduUserDevice()).eq(EduUserDevice::getUserId, id).eq(EduUserDevice::getUserType, type)); if (CollUtil.isNotEmpty(userDeviceList)) { // 用户已经被下发到设备,更新设备上的图像 - Map> userDeviceMap = userDeviceList.stream().collect( - Collectors.groupingBy(EduUserDevice::getFaceGroupId)); - for (Map.Entry> entry : userDeviceMap.entrySet()) { - Long faceGroupId = entry.getKey(); - List eduUserDevices = entry.getValue(); - // 设备id - List deviceIds = eduUserDevices.stream().map(EduUserDevice::getDeviceId).distinct() - .collect(Collectors.toList()); - IssuedFaceDTO dto = new IssuedFaceDTO(); -// dto.setType(1); - dto.setDeviceList(deviceIds); - dto.setGroupId(faceGroupId); - dto.setUserFaceList(Collections.singletonList(userFace)); - remoteAttendanceDeviceService.issuedFace(dto); - } + List deviceIds = userDeviceList.stream().map(x -> x.getDeviceId()).distinct().collect(Collectors.toList()); + IssuedFaceDTO dto = new IssuedFaceDTO(); + dto.setType(1); + dto.setDeviceList(deviceIds); + dto.setUserFaceList(Arrays.asList(userFace)); + remoteAttendanceDeviceService.issuedFace(dto); } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/ImportWelcomeStudentServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/ImportWelcomeStudentServiceImpl.java index eb0f947..d8dad64 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/ImportWelcomeStudentServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/ImportWelcomeStudentServiceImpl.java @@ -1,32 +1,28 @@ package com.yida.data.user.service.impl; -import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.LocalDateTimeUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.common.ResultMsgType; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.Dict; import com.yida.data.common.core.entity.constant.StringConstant; -import com.yida.data.common.core.entity.consume.EduStudentConsumeCard; import com.yida.data.common.core.entity.school.EduSchoolStudentInformation; import com.yida.data.common.core.entity.user.EduParent; +import com.yida.data.common.core.entity.user.EduParentStudent; import com.yida.data.common.core.entity.user.EduStudent; import com.yida.data.common.core.entity.user.EduUserDept; -import com.yida.data.common.core.entity.user.enums.StudentTypeEnum; import com.yida.data.common.core.entity.user.enums.UserDeptTypeEnum; import com.yida.data.common.core.enums.DictType; -import com.yida.data.common.core.utils.EasyExcelUtil; import com.yida.data.common.core.utils.FebsUtil; +import com.yida.data.common.core.utils.WxUtil; import com.yida.data.common.service.CommonService; -import com.yida.data.device.feign.consume.RemoteConsumeCardService; import com.yida.data.system.feign.RemoteCommonService; -import com.yida.data.user.dto.*; +import com.yida.data.user.dto.StudentErrorExportDTO; +import com.yida.data.user.dto.WelcomeInviteImportDTO; +import com.yida.data.user.dto.WelcomeStudentImportDTO; +import com.yida.data.user.feign.RemoteStudentService; import com.yida.data.user.mapper.EduSchoolStudentInformationMapper; -import com.yida.data.user.service.EduStudentService; -import com.yida.data.user.service.ImportWelcomeStudentService; +import com.yida.data.user.service.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -35,7 +31,6 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; @@ -52,14 +47,16 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentService { - private final EduStudentService eduStudentService; private final EduSchoolStudentInformationMapper eduSchoolStudentInformationMapper; - - private final CommonService commonService; + private final EduStudentService eduStudentService; + private final EduParentService eduParentService; + private final EduParentStudentService eduParentStudentService; + private final EduUserDeptService eduUserDeptService; + private final RemoteStudentService remoteStudentService; private final RemoteCommonService remoteCommonService; - @Resource - private RemoteConsumeCardService remoteConsumeCardService; + private final WxUtil wxUtil; + private final CommonService commonService; /** @@ -74,9 +71,9 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ */ @Override public void saveExcelData(ConcurrentHashMap concurrentHashMap, - ConcurrentHashMap errorMap, - Long schoolId, - long timestamp) { + ConcurrentHashMap errorMap, + Long schoolId, + long timestamp) { // 当前登录用户信息 CurrentUser currentUser = FebsUtil.getCurrentUser(); // 当前时间 @@ -94,10 +91,10 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ } // 验证身份证号码在当前学校的迎新表中是否重复 List studentList = - this.eduSchoolStudentInformationMapper.selectList(Wrappers.lambdaQuery(new EduSchoolStudentInformation()) - .eq(EduSchoolStudentInformation::getStudentIdCard, welcomeStudentDTO.getStudentIdCard()) - .eq(EduSchoolStudentInformation::getSchoolId, schoolId) - ); + this.eduSchoolStudentInformationMapper.selectList(Wrappers.lambdaQuery(new EduSchoolStudentInformation()) + .eq(EduSchoolStudentInformation::getStudentIdCard, welcomeStudentDTO.getStudentIdCard()) + .eq(EduSchoolStudentInformation::getSchoolId, schoolId) + ); if (!studentList.isEmpty()) { log.error("身份证号码已存在: {}", welcomeStudentDTO.toString()); errorMap.put(i, "第" + i + "行:" + ResultMsgType.ID_CARD_EXIST.getValue()); @@ -105,8 +102,8 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ } // 验证学区是否存在 EduUserDept campus = commonService.getUserDeptBySchoolIdAndNameAndType( - welcomeStudentDTO.getCampusName(), UserDeptTypeEnum.CAMPUS_TYPE.getValue(), - schoolId, String.valueOf(timestamp), schoolId); + welcomeStudentDTO.getCampusName(), UserDeptTypeEnum.CAMPUS_TYPE.getValue(), + schoolId, String.valueOf(timestamp), schoolId); if (!Optional.ofNullable(campus).isPresent()) { log.error("学区名称错误: {}", welcomeStudentDTO.toString()); errorMap.put(i, "第" + i + "行:" + ResultMsgType.CAMPUS_NAME_ERROR.getValue()); @@ -114,8 +111,8 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ } // 验证学段是否存在 EduUserDept section = commonService.getUserDeptBySchoolIdAndNameAndType( - welcomeStudentDTO.getSectionName(), UserDeptTypeEnum.SECTION_TYPE.getValue(), - schoolId, String.valueOf(timestamp), campus.getDeptId()); + welcomeStudentDTO.getSectionName(), UserDeptTypeEnum.SECTION_TYPE.getValue(), + schoolId, String.valueOf(timestamp), campus.getDeptId()); if (!Optional.ofNullable(section).isPresent()) { log.error("学段名称错误: {}", welcomeStudentDTO.toString()); errorMap.put(i, "第" + i + "行:" + ResultMsgType.SECTION_NAME_ERROR.getValue()); @@ -123,8 +120,8 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ } // 验证年级是否存在 EduUserDept grade = commonService.getUserDeptBySchoolIdAndNameAndType( - welcomeStudentDTO.getGradeName(), UserDeptTypeEnum.GRADE_TYPE.getValue(), - schoolId, String.valueOf(timestamp), section.getDeptId()); + welcomeStudentDTO.getGradeName(), UserDeptTypeEnum.GRADE_TYPE.getValue(), + schoolId, String.valueOf(timestamp), section.getDeptId()); if (!Optional.ofNullable(grade).isPresent()) { log.error("年级名称错误: {}", welcomeStudentDTO.toString()); errorMap.put(i, "第" + i + "行:" + ResultMsgType.GRADE_NAME_ERROR.getValue()); @@ -132,8 +129,8 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ } // 验证班级是否存在 EduUserDept classDept = commonService.getUserDeptBySchoolIdAndNameAndType( - welcomeStudentDTO.getClassName(), UserDeptTypeEnum.CLASS_TYPE.getValue(), - schoolId, String.valueOf(timestamp), grade.getDeptId()); + welcomeStudentDTO.getClassName(), UserDeptTypeEnum.CLASS_TYPE.getValue(), + schoolId, String.valueOf(timestamp), grade.getDeptId()); if (!Optional.ofNullable(classDept).isPresent()) { log.error("班级名称错误: {}", welcomeStudentDTO.toString()); errorMap.put(i, "第" + i + "行:" + ResultMsgType.CLASS_NAME_ERROR.getValue()); @@ -172,7 +169,7 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ * @date 2021/8/23 17:30 */ private boolean checkStudentImportInfo(ConcurrentHashMap errorMap, - WelcomeStudentImportDTO welcomeStudentDTO, Integer i) { + WelcomeStudentImportDTO welcomeStudentDTO, Integer i) { // 判断学生名称是否为空 if (!StringUtils.isNotBlank(welcomeStudentDTO.getStudentName())) { errorMap.put(i, "第" + i + "行:学生姓名为空"); @@ -219,8 +216,8 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ */ @Override public void saveInviteExcelData(ConcurrentHashMap concurrentHashMap, - List errorList, - Long schoolId, String uuid, CurrentUser currentUser) { + List errorList, + Long schoolId, String uuid, CurrentUser currentUser) { if (!CollectionUtils.isEmpty(concurrentHashMap)) { // 保存前判断是否已存在 for (Map.Entry entry : concurrentHashMap.entrySet()) { @@ -237,12 +234,12 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ } // 验证学号在当前学校的学生表中是否重复 EduStudent studentNumberEntity = eduStudentService.getOne( - Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getStuNumber, welcomeInviteImportDTO.getStudentNumber()) - .eq(EduStudent::getSchoolId, schoolId)); + Wrappers.lambdaQuery(new EduStudent()) + .eq(EduStudent::getStuNumber, welcomeInviteImportDTO.getStudentNumber()) + .eq(EduStudent::getSchoolId, schoolId)); if (Objects.nonNull(studentNumberEntity)) { - log.error("学号已存在: {}", JSONUtil.toJsonStr(welcomeInviteImportDTO)); + log.error("学号已存在: {}", welcomeInviteImportDTO.toString()); dto.setErrorMessage(ResultMsgType.STUDENT_NUMBER_EXIST.getValue()); errorList.add(dto); continue; @@ -257,11 +254,10 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ // 整理家长数据 List parentList = setParentInfo(welcomeInviteImportDTO, schoolId); eduStudent.setParents(parentList); - // 保存学生信息 eduStudentService.saveStudent(eduStudent, currentUser, false); } catch (Exception e) { - log.error("导入学生信息失败: {}", JSONUtil.toJsonStr(welcomeInviteImportDTO), e); + log.error("导入学生信息失败: {}", welcomeInviteImportDTO.toString(), e); dto.setErrorMessage("数据异常!"); errorList.add(dto); } @@ -335,52 +331,40 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ * @date 2021/8/25 15:39 */ private EduStudent checkDeptInfo(StudentErrorExportDTO dto, WelcomeInviteImportDTO welcomeInviteImportDTO, - Long schoolId, String uuid) { + Long schoolId, String uuid) { // 验证学区是否存在 EduUserDept campus = this.commonService.getUserDeptBySchoolIdAndNameAndType( - welcomeInviteImportDTO.getCampusName(), UserDeptTypeEnum.CAMPUS_TYPE.getValue(), schoolId, uuid, schoolId); + welcomeInviteImportDTO.getCampusName(), UserDeptTypeEnum.CAMPUS_TYPE.getValue(), schoolId, uuid, schoolId); if (!Optional.ofNullable(campus).isPresent()) { - log.error("学区名称错误: {}", JSONUtil.toJsonStr(welcomeInviteImportDTO)); + log.error("学区名称错误: {}", welcomeInviteImportDTO.toString()); dto.setErrorMessage(ResultMsgType.CAMPUS_NAME_ERROR.getValue()); return null; } // 验证学段是否存在 EduUserDept section = this.commonService.getUserDeptBySchoolIdAndNameAndType( - welcomeInviteImportDTO.getSectionName(), UserDeptTypeEnum.SECTION_TYPE.getValue(), schoolId, uuid, - campus.getDeptId()); + welcomeInviteImportDTO.getSectionName(), UserDeptTypeEnum.SECTION_TYPE.getValue(), schoolId, uuid, + campus.getDeptId()); if (!Optional.ofNullable(section).isPresent()) { - log.error("学段名称错误: {}", JSONUtil.toJsonStr(welcomeInviteImportDTO)); + log.error("学段名称错误: {}", welcomeInviteImportDTO.toString()); dto.setErrorMessage(ResultMsgType.SECTION_NAME_ERROR.getValue()); return null; } // 验证年级是否存在 EduUserDept grade = this.commonService.getUserDeptBySchoolIdAndNameAndType( - welcomeInviteImportDTO.getGradeName(), UserDeptTypeEnum.GRADE_TYPE.getValue(), schoolId, uuid, section.getDeptId()); + welcomeInviteImportDTO.getGradeName(), UserDeptTypeEnum.GRADE_TYPE.getValue(), schoolId, uuid, section.getDeptId()); if (!Optional.ofNullable(grade).isPresent()) { - log.error("年级名称错误: {}", JSONUtil.toJsonStr(welcomeInviteImportDTO)); + log.error("年级名称错误: {}", welcomeInviteImportDTO.toString()); dto.setErrorMessage(ResultMsgType.GRADE_NAME_ERROR.getValue()); return null; } // 验证班级是否存在 EduUserDept classDept = this.commonService.getUserDeptBySchoolIdAndNameAndType( - welcomeInviteImportDTO.getClassName(), UserDeptTypeEnum.CLASS_TYPE.getValue(), schoolId, uuid, grade.getDeptId()); + welcomeInviteImportDTO.getClassName(), UserDeptTypeEnum.CLASS_TYPE.getValue(), schoolId, uuid, grade.getDeptId()); if (!Optional.ofNullable(classDept).isPresent()) { - log.error("班级名称错误: {}", JSONUtil.toJsonStr(welcomeInviteImportDTO)); + log.error("班级名称错误: {}", welcomeInviteImportDTO.toString()); dto.setErrorMessage(ResultMsgType.CLASS_NAME_ERROR.getValue()); return null; } - LocalDate startDate = null; - // 处理入学时间 - if (StrUtil.isNotBlank(welcomeInviteImportDTO.getStartDate())) { - try { - startDate = LocalDateTimeUtil.parseDate(welcomeInviteImportDTO.getStartDate(), DatePattern.NORM_DATE_PATTERN); - } catch (Exception e) { - log.error("时间格式错误: {}", JSONUtil.toJsonStr(welcomeInviteImportDTO)); - dto.setErrorMessage(ResultMsgType.START_DATE_ERROR.getValue()); - return null; - } - } - String familyType; // 判断家庭类型 if (StringUtils.isNotBlank(welcomeInviteImportDTO.getFamilyName())) { @@ -388,51 +372,11 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ } else { familyType = "0"; } - // 判断政治面貌 - if (StrUtil.isNotBlank(welcomeInviteImportDTO.getPoliticsStatus())) { - Dict dict = commonService.getDictByTypeAndValueOrLabel("politics_status", null, welcomeInviteImportDTO.getPoliticsStatus()); - if (Objects.nonNull(dict)) { - welcomeInviteImportDTO.setPoliticsStatus(dict.getValue()); - } else { - welcomeInviteImportDTO.setPoliticsStatus(""); - } - } - // 判断性别 - if (StrUtil.isNotBlank(welcomeInviteImportDTO.getStuSex())) { - Dict dict = commonService.getDictByTypeAndValueOrLabel("gender", null, welcomeInviteImportDTO.getStuSex()); - if (Objects.nonNull(dict)) { - welcomeInviteImportDTO.setStuSex(dict.getValue()); - } else { - welcomeInviteImportDTO.setStuSex(""); - } - } - // 判断民族 - if (StrUtil.isNotBlank(welcomeInviteImportDTO.getNation())) { - Dict dict = commonService.getDictByTypeAndValueOrLabel("nation", null, welcomeInviteImportDTO.getNation()); - if (Objects.nonNull(dict)) { - welcomeInviteImportDTO.setNation(dict.getValue()); - } else { - welcomeInviteImportDTO.setNation(""); - } - } - // 判断学籍 - if (StrUtil.isNotBlank(welcomeInviteImportDTO.getStudentStatus())) { - Dict dict = commonService.getDictByTypeAndValueOrLabel("student_status", null, welcomeInviteImportDTO.getStudentStatus()); - if (Objects.nonNull(dict)) { - welcomeInviteImportDTO.setStudentStatus(dict.getValue()); - } else { - welcomeInviteImportDTO.setStudentStatus("zaidu"); - } - } - // 保存数据 EduStudent eduStudent = new EduStudent(); BeanUtils.copyProperties(welcomeInviteImportDTO, eduStudent); // 设置无法拷贝属性 eduStudent.setFamilyType(familyType); - if (Objects.nonNull(startDate)) { - eduStudent.setStartDate(startDate); - } eduStudent.setStuName(welcomeInviteImportDTO.getStudentName()); eduStudent.setSchoolId(schoolId); eduStudent.setSchoolName(commonService.getDept(schoolId).getDeptName()); @@ -443,15 +387,7 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ // 设置学号和企业微信id eduStudent.setStuNumber(welcomeInviteImportDTO.getStudentNumber()); // 设置创建信息 -// eduStudent.setStartDate(LocalDate.now()); - - // 设置住宿类型 - if (ObjectUtil.isNotNull(welcomeInviteImportDTO.getType()) && ObjectUtil.equal(StudentTypeEnum.DORM_TYPE.getName(), welcomeInviteImportDTO.getType())) { - eduStudent.setType(StudentTypeEnum.DORM_TYPE.getValue()); - } else { - eduStudent.setType(StudentTypeEnum.SCHOOL_TYPE.getValue()); - } - + eduStudent.setStartDate(LocalDate.now()); return eduStudent; } @@ -487,129 +423,61 @@ public class ImportWelcomeStudentServiceImpl implements ImportWelcomeStudentServ List list = new ArrayList<>(); // 设置家长一数据 list.add(EduParent.builder() - .mobile(welcomeInviteImportDTO.getParentTelephone()) - .parentType(welcomeInviteImportDTO.getParentTypeName()) - .schoolId(schoolId) - .build()); + .mobile(welcomeInviteImportDTO.getParentTelephone()) + .parentType(welcomeInviteImportDTO.getParentTypeName()) + .schoolId(schoolId) + .build()); // 判断家长二数据是否存在 if (StringUtils.isNotBlank(welcomeInviteImportDTO.getParentTypeNameSecond()) - && StringUtils.isNotBlank(welcomeInviteImportDTO.getParentTelephoneSecond())) { + && StringUtils.isNotBlank(welcomeInviteImportDTO.getParentTelephoneSecond())) { list.add(EduParent.builder() - .mobile(welcomeInviteImportDTO.getParentTelephoneSecond()) - .parentType(welcomeInviteImportDTO.getParentTypeNameSecond()) - .schoolId(schoolId) - .build()); + .mobile(welcomeInviteImportDTO.getParentTelephoneSecond()) + .parentType(welcomeInviteImportDTO.getParentTypeNameSecond()) + .schoolId(schoolId) + .build()); } // 判断家长三数据是否存在 if (StringUtils.isNotBlank(welcomeInviteImportDTO.getParentTypeNameThird()) - && StringUtils.isNotBlank(welcomeInviteImportDTO.getParentTelephoneThird())) { + && StringUtils.isNotBlank(welcomeInviteImportDTO.getParentTelephoneThird())) { list.add(EduParent.builder() - .mobile(welcomeInviteImportDTO.getParentTelephoneThird()) - .parentType(welcomeInviteImportDTO.getParentTypeNameThird()) - .schoolId(schoolId) - .build()); + .mobile(welcomeInviteImportDTO.getParentTelephoneThird()) + .parentType(welcomeInviteImportDTO.getParentTypeNameThird()) + .schoolId(schoolId) + .build()); } // 判断家长四数据是否存在 if (StringUtils.isNotBlank(welcomeInviteImportDTO.getParentTypeNameFourth()) - && StringUtils.isNotBlank(welcomeInviteImportDTO.getParentTelephoneFourth())) { + && StringUtils.isNotBlank(welcomeInviteImportDTO.getParentTelephoneFourth())) { list.add(EduParent.builder() - .mobile(welcomeInviteImportDTO.getParentTelephoneFourth()) - .parentType(welcomeInviteImportDTO.getParentTypeNameFourth()) - .schoolId(schoolId) - .build()); + .mobile(welcomeInviteImportDTO.getParentTelephoneFourth()) + .parentType(welcomeInviteImportDTO.getParentTypeNameFourth()) + .schoolId(schoolId) + .build()); } return list; } /** - * 保存校园卡号导入数据 + * 保存家长和学生关系数据 * - * @param concurrentHashMap 需要保存的用户数据 - * @param errorList 导入错误数据集合 - * @param schoolId 学校id - * @param currentUser 当前登录用户信息 + * @param eduParent 家长信息 + * @param eduStudent 学生信息 * @author ZYJ - * @date 2023/2/19 14:45 + * @date 2021/8/25 16:55 */ - @Override - public void saveCardExcelData(ConcurrentHashMap concurrentHashMap, - List errorList, Long schoolId, CurrentUser currentUser) { - if (!CollectionUtils.isEmpty(concurrentHashMap)) { - // 保存前判断是否已存在 - for (Map.Entry entry : concurrentHashMap.entrySet()) { - CardErrorExportDTO dto = new CardErrorExportDTO(); - CardImportDTO cardImportDTO = new CardImportDTO(); - try { - cardImportDTO = entry.getValue(); - BeanUtils.copyProperties(cardImportDTO, dto); - // 验证导入信息是否为空 - if (!checkCardImportInfo(dto, cardImportDTO)) { - errorList.add(dto); - continue; - } - // 验证学号在当前学校的学生表中是否存在 - EduStudent studentNumberEntity = eduStudentService.getOne( - Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getStuNumber, cardImportDTO.getStuNumber().trim()) - .eq(EduStudent::getSchoolId, schoolId)); - - if (Objects.isNull(studentNumberEntity)) { - log.error("学号不存在: {}", cardImportDTO.toString()); - dto.setErrorMessage(ResultMsgType.STUDENT_NUMBER_NOT_EXIST.getValue()); - errorList.add(dto); - continue; - } - // 验证部门信息是否重复 - EduStudent eduStudent = eduStudentService.getOne( - Wrappers.lambdaQuery(new EduStudent()) - .eq(EduStudent::getStuCardNumber, cardImportDTO.getStuCardNumber().trim()) - .eq(EduStudent::getSchoolId, schoolId)); - if (Objects.nonNull(eduStudent)) { - log.error("校园卡号已存在: {}", cardImportDTO.toString()); - dto.setErrorMessage(ResultMsgType.STUDENT_CARD_NUMBER_EXIST.getValue()); - errorList.add(dto); - continue; - } - // 保存校园卡号 - studentNumberEntity.setStuCardNumber(cardImportDTO.getStuCardNumber().trim()); - eduStudentService.saveOrUpdate(studentNumberEntity); - // 保存学生消费机信息管理 - remoteConsumeCardService.saveConsumeCard( - EduStudentConsumeCard.builder() - .deptId(schoolId) - .studentId(studentNumberEntity.getId()) - .build()); - - } catch (Exception e) { - log.error("导入校园卡号信息失败: {}", cardImportDTO.toString(), e); - dto.setErrorMessage("数据异常!"); - errorList.add(dto); - } - } + private void saveParentStudent(EduParent eduParent, EduStudent eduStudent) { + // 查询学生和家长是否存在关系数据 + EduParentStudent eduParentStudent = eduParentStudentService.getOne(Wrappers.lambdaQuery(new EduParentStudent()) + .eq(EduParentStudent::getParentId, eduParent.getId()) + .eq(EduParentStudent::getStudentId, eduStudent.getId())); + if (!Optional.ofNullable(eduParentStudent).isPresent()) { + eduParentStudent = new EduParentStudent(); + eduParentStudent.setParentId(eduParent.getId()); + eduParentStudent.setStudentId(eduStudent.getId()); + eduParentStudent.setParentTypeId(eduParent.getParentTypeId()); + // 保存本地家长和学生类型关系数据 + this.eduParentStudentService.save(eduParentStudent); } } - /** - * 验证校园卡好导入信息是否为空 - * - * @param dto 返回的错误信息实体类 - * @param cardImportDTO 当前行导入数据 - * @return boolean - * @author ZYJ - * @date 2023/2/19 14:53 - */ - private boolean checkCardImportInfo(CardErrorExportDTO dto, CardImportDTO cardImportDTO) { - BeanUtils.copyProperties(cardImportDTO, dto); - // 判断学生学号是否为空 - if (!StringUtils.isNotBlank(cardImportDTO.getStuNumber())) { - dto.setErrorMessage("学生学号为空"); - return false; - } - // 判断校园卡号是否为空 - if (!StringUtils.isNotBlank(cardImportDTO.getStuCardNumber())) { - dto.setErrorMessage("校园卡号为空"); - return false; - } - return true; - } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/QywxSyncServiceImpl.java b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/QywxSyncServiceImpl.java index bdf6bdf..9449cc5 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/QywxSyncServiceImpl.java +++ b/febs-server/edu-user/edu-user-biz/src/main/java/com/yida/data/user/service/impl/QywxSyncServiceImpl.java @@ -4,17 +4,13 @@ import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.lang.UUID; -import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.entity.constant.AppConstant; import com.yida.data.common.core.entity.constant.CachePrefixConstant; -import com.yida.data.common.core.entity.notice.qywx.BaseStaffNotice; -import com.yida.data.common.core.entity.notice.qywx.inside.Text; import com.yida.data.common.core.entity.school.EduYidaAppAccount; import com.yida.data.common.core.entity.system.Dept; import com.yida.data.common.core.entity.system.EduApp; @@ -60,8 +56,8 @@ public class QywxSyncServiceImpl implements QywxSyncService { private final EduParentStudentMapper eduParentStudentMapper; private final EduStaffService eduStaffService; - private final EduUserDeptService eduUserDeptService; private final EduStaffDeptService eduStaffDeptService; + private final EduUserDeptService eduUserDeptService; private final EduParentTypeService eduParentTypeService; private final EduParentStudentService eduParentStudentService; @@ -75,9 +71,6 @@ public class QywxSyncServiceImpl implements QywxSyncService { @Value("${febs.uploadUrl}") private String uploadUrl; - @Value("${febs.authRedirectUrl}") - private String authRedirectUrl; - /** * 同步企业微信学生数据 */ @@ -104,9 +97,9 @@ public class QywxSyncServiceImpl implements QywxSyncService { String accessToken = wxUtil.getAccessToken(qywxApp.getWxCorpId(), qywxApp.getWxSecret()); // 判断学校是否绑定了大华 boolean bindDaHuaFlag = false; -// if (school.getSchoolType().contains(Dept.TYPE_DAHUA)) { -// bindDaHuaFlag = true; -// } + if (school.getSchoolType().contains(Dept.TYPE_DAHUA)) { + bindDaHuaFlag = true; + } // 所有的学生 JSONArray studentList = wxUtil.getStudentList(accessToken, school.getWxId()); Set studentWxIds = new HashSet<>(); @@ -363,19 +356,19 @@ public class QywxSyncServiceImpl implements QywxSyncService { } @Override - public void syncQywxStaff(Long schoolId) { + public void syncQywxStaff() { log.info("开始同步职工数据"); - List schoolList = new ArrayList<>(); - if (Objects.isNull(schoolId)) { - // 查询所有绑定了企业微信的学校信息 - schoolList = remoteDeptService.listSchoolBySchoolType(Dept.TYPE_QYWX).getData(); - } else { - Dept school = remoteDeptService.getInfoByIdNoPermission(schoolId).getData(); - schoolList.add(school); - } - + // 查询所有绑定了企业微信的学校 + List schoolList = remoteDeptService.listSchoolBySchoolType(Dept.TYPE_QYWX).getData(); for (Dept school : schoolList) { log.info("[{}], schoolId:[{}]开始同步职工数据", school.getDeptName(), school.getDeptId()); + EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT, null, school.getDeptId()); + String accessToken = wxUtil.getAccessToken(school.getCorpId(), app.getWxSecret()); + // 判断学校是否绑定了大华 + boolean bindDaHuaFlag = false; + if (school.getSchoolType().contains(Dept.TYPE_DAHUA)) { + bindDaHuaFlag = true; + } // 判断学校是否绑定了app boolean bindAppFlag = false; EduYidaAppAccount yidaAppAccount = commonService.getYidaAppAccount(school.getDeptId(), 1); @@ -384,68 +377,78 @@ public class QywxSyncServiceImpl implements QywxSyncService { bindAppFlag = true; } - String accessToken = commonService.getAddressListToken(school.getDeptId()); - // 获取学校通讯录应用 - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT, null, school.getDeptId()); - if (Objects.isNull(app.getTemplateId())) { - // 自建应用, 查询企业通讯录的成员列表 - JSONArray userList = wxUtil.getUserList(accessToken, 1L); - for (Object staff : userList) { - Map deptCache = new HashMap<>(); - // 遍历企业微信成员 - JSONObject staffJson = (JSONObject) staff; - String staffWxId = staffJson.getStr("userid"); - // 职工是否存在 - EduStaff existStaff = eduStaffService.getOne(Wrappers.lambdaQuery().eq(EduStaff::getWxId, staffWxId) - .eq(EduStaff::getSchoolId, school.getDeptId())); - EduStaff eduStaff = existStaff != null ? existStaff : new EduStaff(); + JSONArray userList = wxUtil.getUserList(accessToken, 1L); + for (Object staff : userList) { + Map deptCache = new HashMap<>(); + // 遍历企业微信成员 + JSONObject staffJson = (JSONObject) staff; + String staffWxId = staffJson.getStr("userid"); + // 职工是否存在 + EduStaff existStaff = eduStaffService.getOne(Wrappers.lambdaQuery().eq(EduStaff::getWxId, staffWxId) + .eq(EduStaff::getSchoolId, school.getDeptId())); + EduStaff eduStaff = existStaff != null ? existStaff : new EduStaff(); - eduStaff.setWxId(staffWxId); - eduStaff.setName(staffJson.get("name").toString()); - eduStaff.setMobile(staffJson.get("mobile").toString()); - // 教师性别 0:男, 1:女, 2:保密 - String sexStr = staffJson.getStr("gender"); - eduStaff.setSex("1".equals(sexStr) ? "0" : "2".equals(sexStr) ? "1" : "2"); - eduStaff.setSchoolId(school.getDeptId()); - eduStaff.setSchoolName(school.getDeptName()); -// eduStaff.setAvatar(eduStaff.getAvatar() == null ? staffJson.getStr("avatar") : null); - eduStaff.setPosition(staffJson.getStr("position")); - eduStaff.setEmail(staffJson.getStr("email")); - eduStaff.setAddress(staffJson.getStr("address")); + eduStaff.setWxId(staffWxId); + eduStaff.setName(staffJson.get("name").toString()); + eduStaff.setMobile(staffJson.get("mobile").toString()); + // 教师性别 0:男, 1:女, 2:保密 + String sexStr = staffJson.getStr("gender"); + eduStaff.setSex("1".equals(sexStr) ? "0" : "2".equals(sexStr) ? "1" : "2"); + eduStaff.setSchoolId(school.getDeptId()); + eduStaff.setSchoolName(school.getDeptName()); + eduStaff.setAvatar(eduStaff.getAvatar() == null ? staffJson.getStr("avatar") : null); + eduStaff.setPosition(staffJson.getStr("position")); + eduStaff.setEmail(staffJson.getStr("email")); + eduStaff.setAddress(staffJson.getStr("address")); - // 学校绑定了易达app - if (bindAppFlag) { - eduStaff.setYidaAppUserId(AppUtil.userSave(eduStaff.getMobile(), eduStaff.getName(), yidaApp)); - AppUtil.subscribeFollow(yidaAppAccount.getYidaAppAccountId(), eduStaff.getYidaAppUserId(), yidaApp); + // 学校绑定了易达app + if (bindAppFlag) { + eduStaff.setYidaAppUserId(AppUtil.userSave(eduStaff.getMobile(), eduStaff.getName(), yidaApp)); + AppUtil.subscribeFollow(yidaAppAccount.getYidaAppAccountId(), eduStaff.getYidaAppUserId(), yidaApp); + } + // 绑定了大华 + if (bindDaHuaFlag) { + int sex = Integer.parseInt(eduStaff.getSex()) + 1; + sex = sex > 2 ? 1 : sex; + if (Objects.nonNull(eduStaff.getDahuaId())) { + DaHuaUtil.updateUser(eduStaff.getDahuaId(), eduStaff.getName(), eduStaff.getDahuaCode(), 1, sex, null, null, null, + null, null, ""); + } else { + String cardNum = DaHuaUtil.generateCardNum(); + eduStaff.setDahuaCode(eduStaff.getMobile()); + eduStaff.setDahuaId( + DaHuaUtil.addUser(eduStaff.getName(), eduStaff.getMobile(), 1, sex, cardNum, null, + null, null, null, null, "")); } - eduStaffService.saveOrUpdate(eduStaff); + } + eduStaffService.saveOrUpdate(eduStaff); - // 成员部门信息 - JSONArray department = staffJson.getJSONArray("department"); - JSONArray isLeader = staffJson.getJSONArray("is_leader_in_dept"); - if (CollUtil.isNotEmpty(department)) { - eduStaffDeptService.remove( - Wrappers.lambdaQuery().eq(EduStaffDept::getStaffId, eduStaff.getId())); - List staffDeptList = new ArrayList<>(); - for (int i = 0; i < department.size(); i++) { - // 成员的每个部门信息 - EduStaffDept staffDept = new EduStaffDept(); - staffDept.setStaffId(eduStaff.getId()); - staffDept.setStaffName(eduStaff.getName()); - staffDept.setDeptWxId(Long.valueOf(department.get(i).toString())); - Dept dept = deptCache.containsKey(staffDept.getDeptWxId()) ? deptCache.get(staffDept.getDeptWxId()) - : (department.getLong(i) == 1L ? school : remoteDeptService.getDeptBySchoolAndWxId(school.getDeptId(), - Long.valueOf(department.get(i).toString())).getData()); - staffDept.setDeptId(dept.getDeptId()); - staffDept.setDeptName(dept.getDeptName()); - staffDept.setIsLeader(isLeader.getInt(i)); - staffDept.setIsMain(ObjectUtil.equal(staffJson.get("main_department"), department.get(i)) ? 0 : 1); - staffDeptList.add(staffDept); - } - eduStaffDeptService.saveBatch(staffDeptList); + // 成员部门信息 + JSONArray department = staffJson.getJSONArray("department"); + JSONArray isLeader = staffJson.getJSONArray("is_leader_in_dept"); + if (CollUtil.isNotEmpty(department)) { + eduStaffDeptService.remove( + Wrappers.lambdaQuery().eq(EduStaffDept::getStaffId, eduStaff.getId())); + List staffDeptList = new ArrayList<>(); + for (int i = 0; i < department.size(); i++) { + // 成员的每个部门信息 + EduStaffDept staffDept = new EduStaffDept(); + staffDept.setStaffId(eduStaff.getId()); + staffDept.setStaffName(eduStaff.getName()); + staffDept.setDeptWxId(Long.valueOf(department.get(i).toString())); + Dept dept = deptCache.containsKey(staffDept.getDeptWxId()) ? deptCache.get(staffDept.getDeptWxId()) + : (department.getLong(i) == 1L ? school : remoteDeptService.getDeptBySchoolAndWxId(school.getDeptId(), + Long.valueOf(department.get(i).toString())).getData()); + staffDept.setDeptId(dept.getDeptId()); + staffDept.setDeptName(dept.getDeptName()); + staffDept.setIsLeader(isLeader.getInt(i)); + staffDept.setIsMain(ObjectUtil.equal(staffJson.get("main_department"), department.get(i)) ? 0 : 1); + staffDeptList.add(staffDept); } - // 保存系统用户信息 - eduStaffService.saveSystemUser(eduStaff); + eduStaffDeptService.saveBatch(staffDeptList); + } + // 保存系统用户信息 + eduStaffService.saveSystemUser(eduStaff); // SystemUser systemUser = remoteUserService.getInfoByUsernameNoPermission(eduStaff.getMobile()).getData(); // if (ObjectUtil.isNull(systemUser)) { // systemUser = saveSystemUser(eduStaff); @@ -453,79 +456,7 @@ public class QywxSyncServiceImpl implements QywxSyncService { // } // eduStaff.setSysUserId(systemUser.getUserId()); // saveOrUpdate(eduStaff); - } - } else { - // 代开发应用调用获取成员ID列表接口 - JSONArray jsonArray = JSONUtil.createArray(); - JSONArray userIdList = wxUtil.getUserIdList(accessToken, "", "100", jsonArray); - log.info("成员id列表数据====================: {}", userIdList); - - if (CollUtil.isNotEmpty(userIdList)) { - // 此处获取对应学校通讯录(人力资源)应用 - EduApp contactSelectApp = commonService.getAppByCodeAndSchool(AppConstant.CONTACT_SELECT, null, school.getDeptId()); - - for (int x = 0; x < userIdList.size(); x++) { - JSONObject wxUser = JSONUtil.parseObj(userIdList.get(x)); - String userId = wxUser.getStr("open_userid"); - // 查询是否有职工数据 - EduStaff eduStaff = eduStaffService.getOne(Wrappers.lambdaQuery(new EduStaff()) - .eq(EduStaff::getWxId, userId)); - if (Objects.isNull(eduStaff)) { - // 新增职工 - String authUrl = commonService.setAuthUrl(school.getCorpId(), authRedirectUrl + "?schoolId=" + school.getDeptId(), contactSelectApp.getWxAgentId()); - // 发送授权消息给创建人员 - BaseStaffNotice textSchoolNotice = new BaseStaffNotice(); - Text text = new Text(); - textSchoolNotice.setText(text); - textSchoolNotice.setAgentid(contactSelectApp.getWxAgentId()); - text.setContent("智慧校园系统信息授权:请点击授权(请务必授权手机号!)"); - textSchoolNotice.setTouser(userId); - // 此处获取对应学校通讯录(人力资源)应用 - wxUtil.pushStaffNotice(wxUtil.getAccessToken(contactSelectApp.getWxCorpId(), contactSelectApp.getWxSecret()), textSchoolNotice); - } else { - // 编辑职工 - // 查询用户详细信息 - JSONObject userDetail = wxUtil.getUserDetail( - wxUtil.getAccessToken(contactSelectApp.getWxCorpId(), contactSelectApp.getWxSecret()), userId); - // 姓名 - String name = userDetail.getStr("name"); - eduStaff.setName(name); - // 职位 - eduStaff.setPosition(userDetail.getStr("position")); - - // 成员部门信息 - JSONArray departmentList = userDetail.getJSONArray("department"); - JSONArray leaderInDept = userDetail.getJSONArray("is_leader_in_dept"); - // 主部门信息 - String mainDepartment = userDetail.getStr("main_department"); - if (ArrayUtil.isNotEmpty(departmentList)) { - List staffDeptList = new ArrayList<>(); - for (int i = 0; i < departmentList.size(); i++) { - // 部门id - String deptId = String.valueOf(departmentList.get(i)); - // 成员的每个部门信息 - EduStaffDept staffDept = new EduStaffDept(); - staffDept.setStaffName(eduStaff.getName()); - staffDept.setDeptWxId(Long.valueOf(deptId)); - Dept sysDept = ("1".equals(deptId) - ? school - : remoteDeptService.getDeptBySchoolAndWxId(school.getDeptId(), staffDept.getDeptWxId()).getData()); - staffDept.setDeptId(sysDept.getDeptId()); - staffDept.setDeptName(sysDept.getDeptName()); - staffDept.setIsLeader(Integer.valueOf(String.valueOf(leaderInDept.get(i)))); - staffDept.setIsMain(ObjectUtil.equal(mainDepartment, deptId) ? 0 : 1); - staffDeptList.add(staffDept); - } - eduStaff.setStaffDept(staffDeptList); - } - eduStaffService.saveStaffBySchoolAndWx(eduStaff); - // 保存系统用户信息 - eduStaffService.saveSystemUser(eduStaff); - } - } - } } } - log.info("结束同步职工数据"); } } diff --git a/febs-server/edu-user/edu-user-biz/src/main/resources/bootstrap.yml b/febs-server/edu-user/edu-user-biz/src/main/resources/bootstrap.yml index 63280df..40de55a 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/resources/bootstrap.yml +++ b/febs-server/edu-user/edu-user-biz/src/main/resources/bootstrap.yml @@ -6,7 +6,6 @@ spring: connection-timeout: 100 profiles: active: "@env-name@" - # active: "dev" cloud: nacos: config: diff --git a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduFaceGroupMapper.xml b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduFaceGroupMapper.xml index 28c2f80..95f52d5 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduFaceGroupMapper.xml +++ b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduFaceGroupMapper.xml @@ -8,16 +8,6 @@ - - - - - - @@ -28,93 +18,18 @@ where face_group_id=#{id} - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduFaceGroupUserMapper.xml b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduFaceGroupUserMapper.xml index f99b468..554fa9c 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduFaceGroupUserMapper.xml +++ b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduFaceGroupUserMapper.xml @@ -1,58 +1,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -63,141 +63,126 @@ - + + javaType="java.lang.String" jdbcType="VARCHAR" + column="{userId=user_id,userType=user_type}" /> - + - + select a.* from edu_staff a - where a.del_flag = 0 - and a.school_id = #{schoolId} - and a.id not in (select IFNULL(b.user_id, 0) - from edu_face_group_user b - inner join edu_face_group c on b.face_group_id = c.id - where c.id = #{groupId}) + where a.del_flag = 0 + and a.school_id = #{schoolId} + and a.id not in (select IFNULL(b.user_id, 0) + from edu_face_group_user b + inner join edu_face_group c on b.face_group_id = c.id + where c.id = #{groupId}) and ( - (a.name like concat('%', #{keyword}, '%')) - or (a.mobile like concat('%', #{keyword}, '%')) - ) + (a.name like concat('%', #{keyword}, '%')) + or (a.mobile like concat('%', #{keyword}, '%')) + ) and a.sex = #{sex} @@ -237,12 +222,12 @@ @@ -262,13 +247,13 @@ update edu_face_group_user set status=#{status} - where + where ( - user_id = #{item.userId} - and user_type = #{item.userType} - and face_group_id = #{item.faceGroupId} - ) + user_id = #{item.userId} + and user_type = #{item.userType} + and face_group_id = #{item.faceGroupId} + ) diff --git a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStaffDeptMapper.xml b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStaffDeptMapper.xml index d1b4d95..8080d53 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStaffDeptMapper.xml +++ b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStaffDeptMapper.xml @@ -33,7 +33,6 @@ GROUP_CONCAT(a.dept_name) as dept_name, a.staff_id, a.staff_name, - b.avatar, b.mobile FROM edu_staff_dept a diff --git a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStaffMapper.xml b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStaffMapper.xml index ea44754..8a4c330 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStaffMapper.xml +++ b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStaffMapper.xml @@ -1,401 +1,386 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - + SELECT et.id AS id, + et.avatar, + et.name, + et.sex, + et.mobile, + et.school_name, + etd.course_name, + etd.type, + concat(etd.grade_name, etd.class_name) grade_class + FROM edu_staff et + LEFT JOIN edu_teacher_dept etd ON et.id = etd.teacher_id - where et.del_flag = 0 - and (etd.del_flag = 0 or etd.del_flag is null) - and et.id = #{teacherId} - + where et.del_flag = 0 + and (etd.del_flag = 0 or etd.del_flag is null) + and et.id = #{teacherId} + - - + + - - SELECT DISTINCT etd.class_id classId, - concat(td.DEPT_NAME, td2.DEPT_NAME) className - FROM edu_teacher_dept etd - LEFT JOIN edu_user_dept td ON etd.grade_id = td.DEPT_ID - LEFT JOIN edu_user_dept td2 ON etd.class_id = td2.DEPT_ID - WHERE etd.teacher_id = #{teacherId} - AND etd.type = 3 - AND etd.del_flag = 0 - + SELECT DISTINCT etd.class_id classId, + concat(td.DEPT_NAME, td2.DEPT_NAME) className + FROM edu_teacher_dept etd + LEFT JOIN edu_user_dept td ON etd.grade_id = td.DEPT_ID + LEFT JOIN edu_user_dept td2 ON etd.class_id = td2.DEPT_ID + WHERE etd.teacher_id = #{teacherId} + AND etd.type = 3 + AND etd.del_flag = 0 + - + - - select distinct es.id, - es.school_id, - es.school_name, - es.name, - es.sex, - es.position, - es.create_date, - es.create_id, - es.sys_user_id, - es.mobile, - es.avatar, - es.collect_type - from edu_staff es - left join edu_staff_dept esd on es.id = esd.staff_id - where es.del_flag = 0 - - and es.school_id in - - #{item} - - - - and esd.dept_id = #{deptId} - - - and esd.is_leader = #{isLeader} - - - and es.mobile = #{mobile} - - - and es.name like concat('%', #{name}, '%') - - - and es.position like concat('%', #{position}, '%') - - - and es.sex = #{sex} - - - and es.collect_type = #{collectType} - - group by es.id, es.school_name, es.name, es.sex, es.position, es.create_date, es.sys_user_id, es.avatar - order by es.create_date desc - + + select distinct es.id, + es.school_id, + es.school_name, + es.name, + es.sex, + es.position, + es.create_date, + es.create_id, + es.sys_user_id, + es.mobile, + es.avatar, + es.collect_type + from edu_staff es + left join edu_staff_dept esd on es.id = esd.staff_id + where es.del_flag = 0 + + and es.school_id in + + #{item} + + + + and esd.dept_id = #{deptId} + + + and esd.is_leader = #{isLeader} + + + and es.mobile = #{mobile} + + + and es.name like concat('%', #{name}, '%') + + + and es.position like concat('%', #{position}, '%') + + + and es.sex = #{sex} + + + and es.collect_type = #{collectType} + + group by es.id, es.school_name, es.name, es.sex, es.position, es.create_date, es.sys_user_id, es.avatar + order by es.create_date desc + - + - + - + - + + + + - select distinct a.* - from edu_staff a - left join edu_staff_dept b on a.id = b.staff_id - where del_flag = 0 - - and a.school_id = #{dto.schoolId} - - - and b.dept_id = #{dto.deptId} - - - and a.id in - - #{item} - - - - and a.name like concat('%', #{dto.name}, '%') - - - and a.name = #{dto.accurateName} - - - and a.mobile = #{dto.mobile} - - - and a.wx_path = #{dto.wxPath} - - ORDER BY CONVERT(a.name using gbk) - - - - + WHERE teacher_id = #{teacherId} + AND type IN (3, 4) + AND del_flag = 0 + \ No newline at end of file diff --git a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStudentMapper.xml b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStudentMapper.xml index eb9e0fd..5967b1a 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStudentMapper.xml +++ b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduStudentMapper.xml @@ -4,24 +4,11 @@ - - - - - - - - - - - - - @@ -31,9 +18,7 @@ - - @@ -41,7 +26,6 @@ - @@ -80,12 +64,6 @@ and es.class_id=#{dto.classId} - - AND es.class_id IN - - #{item} - - and es.stu_number like concat('%',#{dto.stuNumber},'%') @@ -98,10 +76,10 @@ and es.type =#{dto.type} - + and es.avatar is not null and es.avatar != '' - + and (es.avatar is null or es.avatar = '') @@ -132,9 +110,7 @@ campus.DEPT_NAME campus_name, section.DEPT_NAME section_name, grade.DEPT_NAME grade_name, - class.DEPT_NAME class_name, - dorm.name dorm_name, - dormRoom.name dorm_room_name + class.DEPT_NAME class_name from edu_student es left join edu_parent_student eps on es.id = eps.student_id left join edu_parent ep on eps.parent_id = ep.id @@ -143,8 +119,6 @@ left join edu_user_dept section on es.section_id = section.DEPT_ID left join edu_user_dept grade on es.grade_id = grade.DEPT_ID left join edu_user_dept class on es.class_id = class.DEPT_ID - left join edu_dormitory dorm on es.dorm_id = dorm.id - left join edu_dormitory_room dormRoom on es.dorm_room_id = dormRoom.id where es.del_flag = 0 and es.id = #{studentId} @@ -157,49 +131,6 @@ - - - - - SELECT es.id, - es.type, - es.avatar, - es.stu_name stuName, - ed.`name` dormName, - edr.`name` dormRoomName + es.type, + es.stu_name stuName, + ed.`name` dormName, + edr.`name` dormRoomName FROM edu_student es - LEFT JOIN edu_dormitory ed ON es.dorm_id = ed.id - LEFT JOIN edu_dormitory_room edr ON es.dorm_room_id = edr.id + LEFT JOIN edu_dormitory ed ON es.dorm_id = ed.id + LEFT JOIN edu_dormitory_room edr ON es.dorm_room_id = edr.id WHERE es.del_flag = 0 - - and es.type=#{type} - - AND es.class_id = #{classId} + AND es.class_id = #{classId} + @@ -695,28 +589,4 @@ - - - - - - - \ No newline at end of file diff --git a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduTeacherDeptMapper.xml b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduTeacherDeptMapper.xml index e3a9ffc..2c44676 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduTeacherDeptMapper.xml +++ b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduTeacherDeptMapper.xml @@ -146,16 +146,4 @@ #{item} - - - - \ No newline at end of file diff --git a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduUserDeviceFactoryMapper.xml b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduUserDeviceFactoryMapper.xml index 655fb5f..a23f6fe 100644 --- a/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduUserDeviceFactoryMapper.xml +++ b/febs-server/edu-user/edu-user-biz/src/main/resources/mapper/EduUserDeviceFactoryMapper.xml @@ -3,12 +3,12 @@ \ No newline at end of file diff --git a/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/controller/GeneratorController.java b/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/controller/GeneratorController.java index 44d14ff..c367307 100644 --- a/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/controller/GeneratorController.java +++ b/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/controller/GeneratorController.java @@ -7,7 +7,6 @@ import com.yida.data.common.core.entity.QueryRequest; import com.yida.data.common.core.entity.constant.GeneratorConstant; import com.yida.data.common.core.entity.system.Column; import com.yida.data.common.core.entity.system.GeneratorConfig; -import com.yida.data.common.core.entity.system.Table; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.FebsUtil; import com.yida.data.common.core.utils.FileUtil; @@ -25,7 +24,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Objects; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotBlank; @@ -89,8 +87,7 @@ public class GeneratorController { generatorConfig.setTableName(name1); generatorConfig.setClassName(FebsUtil.underscoreToCamel(className)); - Table table = generatorService.getTable(GeneratorConstant.DATABASE_TYPE, datasource, name1); - generatorConfig.setTableComment(Objects.nonNull(table) ? table.getRemark() : remark); + generatorConfig.setTableComment(remark); // 生成代码到临时目录 List columns = generatorService.getColumns(GeneratorConstant.DATABASE_TYPE, datasource, name1); generatorHelper.generateEntityFile(columns, generatorConfig); diff --git a/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/mapper/GeneratorMapper.java b/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/mapper/GeneratorMapper.java index deb2c6d..c520ed5 100644 --- a/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/mapper/GeneratorMapper.java +++ b/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/mapper/GeneratorMapper.java @@ -43,18 +43,4 @@ public interface GeneratorMapper { * @return 数据表列信息 */ List getColumns(@Param("databaseType") String databaseType, @Param("schemaName") String schemaName, @Param("tableName") String tableName); - - /** - * 获取单个数据表 - * - * @param databaseType databaseType - * @param schemaName schemaName - * @param tableName tableName - * @return com.yida.data.common.core.entity.system.Table - * @author ZYJ - * @date 2023/5/19 11:12 - */ - Table getTable(@Param("databaseType") String databaseType, - @Param("schemaName") String schemaName, - @Param("tableName") String tableName); } diff --git a/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/service/GeneratorService.java b/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/service/GeneratorService.java index 056ba8f..1dd8ba7 100644 --- a/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/service/GeneratorService.java +++ b/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/service/GeneratorService.java @@ -41,15 +41,4 @@ public interface GeneratorService { */ List getColumns(String databaseType, String schemaName, String tableName); - /** - * 获取单个数据表 - * - * @param databaseType databaseType - * @param schemaName schemaName - * @param tableName tableName - * @return com.yida.data.common.core.entity.system.Table - * @author ZYJ - * @date 2023/5/19 11:18 - */ - Table getTable(String databaseType, String schemaName, String tableName); } diff --git a/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/service/impl/GeneratorServiceImpl.java b/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/service/impl/GeneratorServiceImpl.java index 795724a..0e7bd37 100644 --- a/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/service/impl/GeneratorServiceImpl.java +++ b/febs-server/febs-server-generator/src/main/java/cc/mrbird/febs/server/generator/service/impl/GeneratorServiceImpl.java @@ -41,9 +41,4 @@ public class GeneratorServiceImpl implements GeneratorService { public List getColumns(String databaseType, String schemaName, String tableName) { return generatorMapper.getColumns(databaseType, schemaName, tableName); } - - @Override - public Table getTable(String databaseType, String schemaName, String tableName) { - return generatorMapper.getTable(databaseType, schemaName, tableName); - } } diff --git a/febs-server/febs-server-generator/src/main/resources/generator/templates/serviceImpl.ftl b/febs-server/febs-server-generator/src/main/resources/generator/templates/serviceImpl.ftl index 2e1009e..3fa3d0b 100644 --- a/febs-server/febs-server-generator/src/main/resources/generator/templates/serviceImpl.ftl +++ b/febs-server/febs-server-generator/src/main/resources/generator/templates/serviceImpl.ftl @@ -27,6 +27,6 @@ import java.util.List; public class ${className}ServiceImpl extends ServiceImpl <${className}Mapper, ${className}> implements ${className}Service { - +private final ${className}Mapper ${className?uncap_first}Mapper; } diff --git a/febs-server/febs-server-generator/src/main/resources/mapper/GeneratorMapper.xml b/febs-server/febs-server-generator/src/main/resources/mapper/GeneratorMapper.xml index 8facccd..34cd0df 100644 --- a/febs-server/febs-server-generator/src/main/resources/mapper/GeneratorMapper.xml +++ b/febs-server/febs-server-generator/src/main/resources/mapper/GeneratorMapper.xml @@ -38,21 +38,4 @@ FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = #{schemaName} AND TABLE_NAME = #{tableName} - - - \ No newline at end of file diff --git a/febs-server/febs-server-job/febs-server-job-biz/pom.xml b/febs-server/febs-server-job/febs-server-job-biz/pom.xml index 32724d6..51b2f1c 100644 --- a/febs-server/febs-server-job/febs-server-job-biz/pom.xml +++ b/febs-server/febs-server-job/febs-server-job-biz/pom.xml @@ -41,7 +41,7 @@ com.yida.data.attendance - attendance-api + edu-attendance-api ${febs-cloud.version} compile diff --git a/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/AttendanceTask.java b/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/AttendanceTask.java index 3412d60..264dd01 100644 --- a/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/AttendanceTask.java +++ b/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/AttendanceTask.java @@ -3,7 +3,7 @@ package com.yida.data.job.task; import com.yida.data.attendance.feign.RemoteAttendanceDeviceService; import com.yida.data.attendance.feign.RemoteAttendanceResultService; -import com.yida.data.attendance.feign.RemoteUserStrategyService; +import com.yida.data.attendance.feign.RemoteAttendanceRuleService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -16,9 +16,23 @@ import org.springframework.stereotype.Component; @RequiredArgsConstructor public class AttendanceTask { - private final RemoteUserStrategyService remoteUserStrategyService; private final RemoteAttendanceResultService remoteAttendanceResultService; private final RemoteAttendanceDeviceService remoteAttendanceDeviceService; + private final RemoteAttendanceRuleService remoteAttendanceRuleService; + + /** + * 定时推送未到消息 + */ + public void pushNotArriveMsg() { + remoteAttendanceResultService.pushNotArriveMsg(); + } + + /** + * 定时保存未到记录 + */ + public void dealResult() { + remoteAttendanceResultService.dealAttendanceResult(); + } /** * 更新设备在线状态 @@ -27,6 +41,26 @@ public class AttendanceTask { remoteAttendanceDeviceService.updateDeviceStatus(); } + /** + * 更新规则状态 + */ + public void updateRuleStatus() { + remoteAttendanceRuleService.updateRuleStatus(); + } + + /** + * 提醒打卡 + */ + public void remindStaff() { + remoteAttendanceRuleService.remindStaff(); + } + + /** + * 处理记录到结果表 + */ + public void staffRecord() { + remoteAttendanceRuleService.staffRecord(); + } /** * 校时所有设备 @@ -34,27 +68,4 @@ public class AttendanceTask { public void timingAllDevice() { remoteAttendanceDeviceService.timingAllDevice(); } - - - /** - * 初始化考勤结果 - */ - public void initAttendanceData() { - remoteAttendanceResultService.initAttendanceResult(); - } - - - /** - * 考勤报告推送 - */ - public void attendanceNotice() { - remoteAttendanceResultService.attendanceNotice(); - } - - /** - * 处理超时用户策略 - */ - public void checkOverTimeUserStrategy() { - remoteUserStrategyService.checkOverTimeUserStrategy(); - } } diff --git a/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/BillTask.java b/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/BillTask.java index db3843c..b0cd880 100644 --- a/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/BillTask.java +++ b/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/BillTask.java @@ -9,7 +9,7 @@ import org.springframework.stereotype.Component; * 账单模块相关定时任务 * * @author ZYJ - * @date 2022/4/14 + * @date 2023/4/14 */ @Component @AllArgsConstructor diff --git a/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/ProductUpdateTask.java b/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/ProductUpdateTask.java index 6540f62..20f64e2 100644 --- a/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/ProductUpdateTask.java +++ b/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/ProductUpdateTask.java @@ -13,7 +13,6 @@ import org.springframework.stereotype.Component; @Slf4j @RequiredArgsConstructor public class ProductUpdateTask { - private final RemoteProductService remoteProductService; public void productUpdate(String id) { @@ -29,7 +28,6 @@ public class ProductUpdateTask { /** * 监测商品是否失效任务 - * * @param */ public void productMonitor() { diff --git a/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/UserTask.java b/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/UserTask.java index a4fc352..11236cd 100644 --- a/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/UserTask.java +++ b/febs-server/febs-server-job/febs-server-job-biz/src/main/java/com/yida/data/job/task/UserTask.java @@ -15,7 +15,6 @@ import org.springframework.stereotype.Component; @Component @AllArgsConstructor public class UserTask { - private final RemoteStudentService remoteStudentService; private final RemoteStaffService remoteStaffService; private final RemoteUserDeptService remoteUserDeptService; @@ -47,21 +46,4 @@ public class UserTask { public void dealNoParentUserDept() { remoteUserDeptService.dealNoParentUserDept(); } - - - /** - * 定时更新学生数据缓存 - */ - public void updateStudentCache() { - remoteStudentService.updateStudentCache(); - } - - - /** - * 定时更新教职工数据缓存 - */ - public void updateStaffCache() { - remoteStaffService.updateStaffCache(); - } - } diff --git a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/dto/ListLogDTO.java b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/dto/ListLogDTO.java index 0747a81..e44605a 100644 --- a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/dto/ListLogDTO.java +++ b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/dto/ListLogDTO.java @@ -18,11 +18,6 @@ public class ListLogDTO extends BaseDTO { private String method; - /** - * 操作时请求参数 - */ - private String operateParams; - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime startTime; diff --git a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/dto/SchoolInformationDTO.java b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/dto/SchoolInformationDTO.java index 3d7b7bb..69057ae 100644 --- a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/dto/SchoolInformationDTO.java +++ b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/dto/SchoolInformationDTO.java @@ -12,7 +12,7 @@ import java.util.List; @Data public class SchoolInformationDTO { - @ApiModelProperty("") + @ApiModelProperty("主键id") private Long id; @ApiModelProperty("学校id") diff --git a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/fallback/RemoteAppServiceFallback.java b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/fallback/RemoteAppServiceFallback.java index af39386..8462dcc 100644 --- a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/fallback/RemoteAppServiceFallback.java +++ b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/fallback/RemoteAppServiceFallback.java @@ -3,8 +3,6 @@ package com.yida.data.system.fallback; import com.yida.data.common.core.annotation.Fallback; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.system.EduApp; -import com.yida.data.common.core.entity.system.EduAppTemplate; -import com.yida.data.common.core.entity.system.EduQywxServiceProvider; import com.yida.data.system.feign.RemoteAppService; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; @@ -28,16 +26,6 @@ public class RemoteAppServiceFallback implements FallbackFactory getAppBySchoolOrCorpIdAndCode(Long schoolId, String corpId, String code) { return null; } - - @Override - public ResultBean getAppTemplateByTemplateId(String templateId, String serviceCorpId) { - return null; - } - - @Override - public ResultBean getServiceProviderByServiceCorpId(String serviceCorpId) { - return null; - } }; } } diff --git a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/fallback/RemoteDeptUserviceFallback.java b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/fallback/RemoteDeptUserviceFallback.java index 715b680..088d3a5 100644 --- a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/fallback/RemoteDeptUserviceFallback.java +++ b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/fallback/RemoteDeptUserviceFallback.java @@ -122,16 +122,6 @@ public class RemoteDeptUserviceFallback implements FallbackFactory> listDept(List ids) { return null; } - - @Override - public ResultBean> listParentDeptByChild(List ids) { - return null; - } - - @Override - public ResultBean getDeptTree(List deptIds) { - return null; - } }; } } diff --git a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/feign/RemoteAppService.java b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/feign/RemoteAppService.java index 1b11842..4e5d20c 100644 --- a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/feign/RemoteAppService.java +++ b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/feign/RemoteAppService.java @@ -3,8 +3,6 @@ package com.yida.data.system.feign; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.constant.FebsServerConstant; import com.yida.data.common.core.entity.system.EduApp; -import com.yida.data.common.core.entity.system.EduAppTemplate; -import com.yida.data.common.core.entity.system.EduQywxServiceProvider; import com.yida.data.system.fallback.RemoteAppServiceFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @@ -18,11 +16,4 @@ public interface RemoteAppService { ResultBean getAppBySchoolOrCorpIdAndCode(@RequestParam("schoolId") Long schoolId, @RequestParam("corpId") String corpId, @RequestParam("code") String code); - - @GetMapping("/in/app/getAppTemplateByTemplateId") - ResultBean getAppTemplateByTemplateId(@RequestParam("templateId") String templateId, - @RequestParam("serviceCorpId") String serviceCorpId); - - @GetMapping("/in/app/getServiceProviderByServiceCorpId") - ResultBean getServiceProviderByServiceCorpId(@RequestParam("serviceCorpId") String serviceCorpId); } diff --git a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/feign/RemoteDeptService.java b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/feign/RemoteDeptService.java index 8c45bca..03850f4 100644 --- a/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/feign/RemoteDeptService.java +++ b/febs-server/febs-server-system/febs-server-system-api/src/main/java/com/yida/data/system/feign/RemoteDeptService.java @@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @FeignClient(value = FebsServerConstant.FEBS_SERVER_SYSTEM, contextId = "deptServiceClient", fallbackFactory = - RemoteDeptUserviceFallback.class) + RemoteDeptUserviceFallback.class) public interface RemoteDeptService { /** @@ -50,7 +50,7 @@ public interface RemoteDeptService { */ @GetMapping("/dept/getSchoolByArea") ResultBean> getSchoolByArea(@RequestParam("areaId") Long areaId, - @RequestParam("schoolName") String schoolName); + @RequestParam("schoolName") String schoolName); /** * 根据corpid获取学校 @@ -78,7 +78,7 @@ public interface RemoteDeptService { */ @GetMapping("/in/dept/getDeptBySchoolAndName") ResultBean getDeptBySchoolAndName(@RequestParam("schoolId") Long schoolId, - @RequestParam("deptName") String deptName); + @RequestParam("deptName") String deptName); /** * 获取学校和区域信息 @@ -91,9 +91,9 @@ public interface RemoteDeptService { */ @GetMapping("/dept/getPageSchoolByArea") ResultBean> getPageSchoolByArea(@ApiParam("类型") @RequestParam(required = false) Long areaId, - @ApiParam("搜索关键词 学校名") @RequestParam(required = false) String schoolName, - @ApiParam("当前页码") @RequestParam(defaultValue = "1") Integer pageNum, - @ApiParam("页面大小") @RequestParam(defaultValue = "10") Integer pageSize); + @ApiParam("搜索关键词 学校名") @RequestParam(required = false) String schoolName, + @ApiParam("当前页码") @RequestParam(defaultValue = "1") Integer pageNum, + @ApiParam("页面大小") @RequestParam(defaultValue = "10") Integer pageSize); /** * 获取学校地区 @@ -106,7 +106,7 @@ public interface RemoteDeptService { @GetMapping("/dept/findChildByParent") ResultBean> findChildByParent(@RequestParam("deptId") Long deptId, - @RequestParam("type") Integer type); + @RequestParam("type") Integer type); /** * 根据学校类型查询学校 @@ -135,7 +135,7 @@ public interface RemoteDeptService { */ @GetMapping("/in/dept/getDeptBySchoolAndWxId") ResultBean getDeptBySchoolAndWxId(@RequestParam("schoolId") Long schoolId, - @RequestParam("wxId") Long wxId); + @RequestParam("wxId") Long wxId); /** * 查询部门列表 @@ -145,17 +145,4 @@ public interface RemoteDeptService { */ @PostMapping("/in/dept/listDept") ResultBean> listDept(@RequestBody List ids); - - /** - * 向上查询父级部门集合,包含子部门 - * - * @param ids - * @return - */ - @PostMapping("/in/dept/findParentDeptByChilds") - ResultBean> listParentDeptByChild(@RequestBody List ids); - - - @PostMapping("/in/dept/getDeptTree") - ResultBean getDeptTree(@RequestBody List deptIds); } diff --git a/febs-server/febs-server-system/febs-server-system-api/src/main/resources/META-INF/spring.factories b/febs-server/febs-server-system/febs-server-system-api/src/main/resources/META-INF/spring.factories index dfa3e8b..792b375 100644 --- a/febs-server/febs-server-system/febs-server-system-api/src/main/resources/META-INF/spring.factories +++ b/febs-server/febs-server-system/febs-server-system-api/src/main/resources/META-INF/spring.factories @@ -11,12 +11,5 @@ com.yida.data.system.fallback.RemotePayWxConfigServiceFallback,\ com.yida.data.system.fallback.RemoteRoleServiceFallback,\ com.yida.data.system.fallback.RemoteUnionPayConfigServiceFallback,\ com.yida.data.system.fallback.RemoteUserUserviceFallback,\ -com.yida.data.system.fallback.RemoteWhiteListServiceFallback,\ com.yida.data.system.fallback.RemoteYidaAppAccountServiceFallback,\ -com.yida.data.system.fallback.RemoteYidaAppServiceFallback,\ -com.yida.data.system.fallback.RemoteDeptFunctionServiceFallback,\ -com.yida.data.system.fallback.RemoteUPayConfigServiceFallback,\ -com.yida.data.system.fallback.RemoteConsumeConfigServiceFallback,\ -com.yida.data.system.fallback.RemoteConstructionPayConfigServiceFallback,\ -com.yida.data.system.fallback.RemoteBaiDuApiConfigServiceFallback,\ -com.yida.data.system.fallback.RemoteQywxServiceFallback \ No newline at end of file +com.yida.data.system.fallback.RemoteYidaAppServiceFallback \ No newline at end of file diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/aes/WXBizMsgCrypt.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/aes/WXBizMsgCrypt.java index 564e5dd..3a2436e 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/aes/WXBizMsgCrypt.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/aes/WXBizMsgCrypt.java @@ -86,10 +86,6 @@ * 针对org.apache.commons.codec.binary.Base64, * 需要导入架包commons-codec-1.9(或commons-codec-1.8等其他版本) * 官方下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi - *

- * 针对org.apache.commons.codec.binary.Base64, - * 需要导入架包commons-codec-1.9(或commons-codec-1.8等其他版本) - * 官方下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi */ // ------------------------------------------------------------------------ @@ -153,11 +149,11 @@ public class WXBizMsgCrypt { } public static void main(String[] args) { -// WXBizMsgCrypt wxcpt = new WXBizMsgCrypt("yta6ad", "n0KuvcacrFw761RqgNTsN3UwHFw3KYptFij2XWrWW4s", "wxfc7961cd4039bc6d"); -// wxcpt.DecryptMsg("dd57e9c2b26b073d5777497e8dd43f940d90d8e2", "1635322300", "203081013", "\n" + -// " \n" + -// " \n" + -// ""); + WXBizMsgCrypt wxcpt = new WXBizMsgCrypt("yta6ad", "n0KuvcacrFw761RqgNTsN3UwHFw3KYptFij2XWrWW4s", "wxfc7961cd4039bc6d"); + wxcpt.DecryptMsg("dd57e9c2b26b073d5777497e8dd43f940d90d8e2", "1635322300", "203081013", "\n" + + " \n" + + " \n" + + ""); } // 生成4个字节的网络字节序 @@ -239,10 +235,6 @@ public class WXBizMsgCrypt { } } - String decrypt(String text) throws AesException { - return decrypt(text, true); - } - /** * 对密文进行解密. * 应用消息回调时receiveid应该为corpid,应对比receiveid与corpid是否一致 @@ -256,7 +248,7 @@ public class WXBizMsgCrypt { * @return 解密得到的明文 * @throws AesException aes解密失败 */ - String decrypt(String text, boolean flag) throws AesException { + String decrypt(String text) throws AesException { byte[] original; try { // 设置解密模式为AES的CBC模式 @@ -292,14 +284,12 @@ public class WXBizMsgCrypt { e.printStackTrace(); throw new AesException(AesException.IllegalBuffer); } + log.info("解密后的密文, encrypt: {}", xmlContent); log.info("解密后的from_receiveid: {}", from_receiveid); - // 判断是否对比receiveid - if (flag) { - // receiveid不相同的情况 - if (!from_receiveid.equals(receiveid)) { - throw new AesException(AesException.ValidateCorpidError); - } + // receiveid不相同的情况 + if (!from_receiveid.equals(receiveid) && !xmlContent.contains("SuiteId")) { + throw new AesException(AesException.ValidateCorpidError); } return xmlContent; @@ -337,12 +327,7 @@ public class WXBizMsgCrypt { return result; } - public String DecryptMsg(String msgSignature, String timeStamp, String nonce, String postData) { - return DecryptMsg(msgSignature, timeStamp, nonce, postData, true); - } - /** - * 服务商待开发应用回调验证 * 检验消息的真实性,并且获取解密后的明文. *

    *
  1. 利用收到的密文生成安全签名,进行签名验证
  2. @@ -358,7 +343,7 @@ public class WXBizMsgCrypt { * @return 解密后的原文 * @throws AesException 执行失败,请查看该异常的错误码和具体的错误信息 */ - public String DecryptMsg(String msgSignature, String timeStamp, String nonce, String postData, boolean flag) + public String DecryptMsg(String msgSignature, String timeStamp, String nonce, String postData) throws AesException { // 密钥,公众账号的app secret @@ -376,16 +361,11 @@ public class WXBizMsgCrypt { } // 解密 - return decrypt(encrypt[1].toString(), flag); - } - - public String VerifyURL(String msgSignature, String timeStamp, String nonce, String echoStr) - throws AesException { - return VerifyURL(msgSignature, timeStamp, nonce, echoStr, true); + String result = decrypt(encrypt[1].toString()); + return result; } /** - * 服务商待开发应用回调验证 * 验证URL * @param msgSignature 签名串,对应URL参数的msg_signature * @param timeStamp 时间戳,对应URL参数的timestamp @@ -395,7 +375,7 @@ public class WXBizMsgCrypt { * @return 解密之后的echostr * @throws AesException 执行失败,请查看该异常的错误码和具体的错误信息 */ - public String VerifyURL(String msgSignature, String timeStamp, String nonce, String echoStr, boolean flag) + public String VerifyURL(String msgSignature, String timeStamp, String nonce, String echoStr) throws AesException { String signature = SHA1.getSHA1(token, timeStamp, nonce, echoStr); @@ -403,7 +383,8 @@ public class WXBizMsgCrypt { throw new AesException(AesException.ValidateSignatureError); } - return decrypt(echoStr, flag); + String result = decrypt(echoStr); + return result; } } \ No newline at end of file diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/InitializeRunner.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/InitializeRunner.java index 3469cc5..12e3728 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/InitializeRunner.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/InitializeRunner.java @@ -1,21 +1,9 @@ package com.yida.data.system.configure; -import cc.mrbird.febs.common.redis.service.RedisService; -import cn.hutool.core.collection.CollUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.entity.constant.CachePrefixConstant; -import com.yida.data.common.core.entity.constant.QywxServiceProviderConstant; import com.yida.data.common.core.entity.system.Dept; -import com.yida.data.common.core.entity.system.EduQywxServiceProvider; -import com.yida.data.common.core.entity.system.EduQywxServiceProviderSchool; -import com.yida.data.common.core.utils.WxServiceProviderUtil; -import com.yida.data.common.service.CommonService; -import com.yida.data.system.service.EduQywxServiceProviderSchoolService; -import com.yida.data.system.service.EduQywxServiceProviderService; import com.yida.data.system.service.IDeptService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; + import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.annotation.Order; @@ -24,7 +12,10 @@ import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Objects; + +import cc.mrbird.febs.common.redis.service.RedisService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; @RequiredArgsConstructor @Component @@ -33,14 +24,10 @@ import java.util.Objects; public class InitializeRunner implements ApplicationRunner { private final RedisService redisService; - private final WxServiceProviderUtil wxServiceProviderUtil; - private final IDeptService deptService; - private final EduQywxServiceProviderService eduQywxServiceProviderService; - private final EduQywxServiceProviderSchoolService eduQywxServiceProviderSchoolService; @Override - public void run(ApplicationArguments args) { + public void run(ApplicationArguments args) throws Exception { log.info("初始化部门缓存"); List allDept = deptService.list(); Map items = new HashMap<>(); @@ -49,54 +36,5 @@ public class InitializeRunner implements ApplicationRunner { items.put(dept.getDeptId().toString(), dept); } redisService.hmset(CachePrefixConstant.SYS_DEPT_DATA, items); -// initProviderSchool(); } - - /** - * 初始化服务商对应学校加密corpId - * - * @author ZYJ - * @date 2022/11/10 9:13 - */ -// public void initProviderSchool() { -// // 查询所有服务商 -// List providerList = eduQywxServiceProviderService.list(); -// // 查询所有企业微信学校 -// List deptList = deptService.list(Wrappers.lambdaQuery(new Dept()).eq(Dept::getSchoolType, Dept.TYPE_QYWX)); -// // 加密key缓存map -// Map items = new HashMap<>(16); -// // 原始key缓存map -// Map originalItems = new HashMap<>(16); -// -// // 处理关联数据 -// for (EduQywxServiceProvider provider : providerList) { -// for (Dept dept : deptList) { -// // 查询是否有关联数据 -// EduQywxServiceProviderSchool providerSchool = eduQywxServiceProviderSchoolService -// .getOne(Wrappers.lambdaQuery(new EduQywxServiceProviderSchool()) -// .eq(EduQywxServiceProviderSchool::getProviderCorpId, provider.getCorpId()) -// .eq(EduQywxServiceProviderSchool::getDeptOriginalCorpId, dept.getCorpId())); -// if (Objects.isNull(providerSchool)) { -// continue; -// } -// if (StringUtils.isNotBlank(providerSchool.getDeptEncryptionCorpId())) { -// providerSchool = new EduQywxServiceProviderSchool(); -// providerSchool.setProviderCorpId(provider.getCorpId()); -// providerSchool.setDeptOriginalCorpId(dept.getCorpId()); -// // 转换corpId -// String providerToken = wxServiceProviderUtil -// .getProviderToken(provider.getCorpId(), provider.getServiceProviderSecret()); -// String convertCorpId = wxServiceProviderUtil.convertCorpId(providerToken, dept.getCorpId()); -// providerSchool.setDeptEncryptionCorpId(convertCorpId); -// eduQywxServiceProviderSchoolService.save(providerSchool); -// } -// items.put(provider.getCorpId() + "." + providerSchool.getDeptEncryptionCorpId(), providerSchool); -// originalItems.put(provider.getCorpId() + "." + providerSchool.getDeptOriginalCorpId(), providerSchool); -// } -// } -// if (CollUtil.isNotEmpty(items)) { -// redisService.hmset(QywxServiceProviderConstant.PROVIDER_SCHOOL_CORP_DATA, items); -// redisService.hmset(QywxServiceProviderConstant.PROVIDER_SCHOOL_CORP_ORIGINAL_DATA, originalItems); -// } -// } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/RabbitConfig.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/RabbitConfig.java index 336a219..c5f9815 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/RabbitConfig.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/RabbitConfig.java @@ -9,9 +9,6 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import java.util.HashMap; -import java.util.Map; - @Configuration public class RabbitConfig { @@ -40,7 +37,7 @@ public class RabbitConfig { */ @Bean public Binding agentReceiveMsgBinding(@Qualifier("agentReceiveMsgQueue") Queue queue, - @Qualifier("wxPublicQrExchange") DirectExchange exchange) { + @Qualifier("wxPublicQrExchange") DirectExchange exchange) { return BindingBuilder.bind(queue).to(exchange).with(RabbitConstant.AGENT_RECEIVE_MSG_KEY); } @@ -59,26 +56,7 @@ public class RabbitConfig { */ @Bean public Binding visitorInviteCodeBinding(@Qualifier("visitorInviteCodeQueue") Queue queue, - @Qualifier("wxPublicQrExchange") DirectExchange exchange) { + @Qualifier("wxPublicQrExchange") DirectExchange exchange) { return BindingBuilder.bind(queue).to(exchange).with(RabbitConstant.VISITOR_INVITE_CODE_KEY); } - - @Bean - public DirectExchange qywxHandleExchange() { - return new DirectExchange(RabbitConstant.QYWX_HANDLE_EXCHANGE); - } - - @Bean - public Queue qywxHandleQueue() { - Map args = new HashMap<>(); - // 设置同时只能一个消费者进行消费 - args.put("x-single-active-consumer", true); - return new Queue(RabbitConstant.QYWX_HANDLE_QUEUE, true, false, false, args); - } - - @Bean - public Binding qywxHandleBinding(@Qualifier("qywxHandleQueue") Queue queue, - @Qualifier("qywxHandleExchange") DirectExchange exchange) { - return BindingBuilder.bind(queue).to(exchange).with(RabbitConstant.QYWX_HANDLE_KEY); - } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/SysRabbitReceiver.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/SysRabbitReceiver.java index dd1f867..8a835a9 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/SysRabbitReceiver.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/configure/SysRabbitReceiver.java @@ -23,6 +23,10 @@ public class SysRabbitReceiver { /** * 区域后台消息接收者 + * + * @param wxPublicQr + * @param channel + * @param message */ @RabbitListener(bindings = @QueueBinding( value = @Queue(RabbitConstant.AGENT_RECEIVE_MSG_QUEUE), diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/CommonController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/CommonController.java index 5e3dac0..2d90953 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/CommonController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/CommonController.java @@ -6,14 +6,15 @@ import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.system.EduSysFile; import com.yida.data.common.core.exception.FebsException; import com.yida.data.log.annotation.OperationLog; -import com.yida.data.school.vo.smart.WxConfigVO; import com.yida.data.system.service.CommonService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import javax.annotation.Resource; - -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @Api(tags = "通用接口") @@ -42,20 +43,4 @@ public class CommonController { } return ResultBean.buildSuccess(stringBuilder.toString()); } - - @GetMapping("/getWxJsConfig") - @ApiOperation("获取企业微信JS-SDK配置") - ResultBean getWxJsConfig( - @RequestParam @ApiParam(value = "部门id", required = true) Long deptId, - @RequestParam @ApiParam(value = "当前网页的URL,不包含#及其后面部分", required = true) String url) { - return ResultBean.buildSuccess(commonService.getWxJsConfig(deptId, url)); - } - - @GetMapping("/getWxPublicJsConfig") - @ApiOperation("获取微信JS-SDK配置") - ResultBean getWxPublicJsConfig( - @RequestParam @ApiParam(value = "部门id", required = true) Long deptId, - @RequestParam @ApiParam(value = "当前网页的URL,不包含#及其后面部分", required = true) String url) { - return ResultBean.buildSuccess(commonService.getWxPublicJsConfig(deptId, url)); - } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/DeptController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/DeptController.java index 45b0606..41fc665 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/DeptController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/DeptController.java @@ -57,45 +57,52 @@ public class DeptController { */ @ApiOperation("查询父级部门") @GetMapping("/getParent") + @OperationLog(module = ModuleName.SYSTEM, methods = "查询父级部门") public ResultBean getParent(@ApiParam("部门id") Long deptId) { return ResultBean.buildSuccess(deptService.getById(deptService.getById(deptId).getParentId())); } @ApiOperation("向上查询父级部门") @GetMapping("/findParentUp") + @OperationLog(module = ModuleName.SYSTEM, methods = "向上查询父级部门") public ResultBean findParentUp(@ApiParam("部门id") Long deptId, - @ApiParam("最上级部门类型,0表示学校,1表示班级,2表示年级,3表示学段,4表示校区,5公司,6" + - "学校部门") Integer type) { + @ApiParam("最上级部门类型,0表示学校,1表示班级,2表示年级,3表示学段,4表示校区,5公司,6" + + "学校部门") Integer type) { return ResultBean.buildSuccess(deptService.findParentUp(deptId, type)); } @GetMapping("/findListByParent") @ApiOperation("查询所有子节点") + @OperationLog(module = ModuleName.SYSTEM, methods = "查询所有子节点") public ResultBean> findListByParent(Long deptId) { return ResultBean.buildSuccess(deptService.findListByParent(Arrays.asList(deptId), 0)); } @ApiOperation("查询直接子节点") @GetMapping("/findChildByParent") + @OperationLog(module = ModuleName.SYSTEM, methods = "查询子节点") public ResultBean findChildByParent(@ApiParam("父节点id,不能为空") @RequestParam Long deptId, - @ApiParam("子节点类型,0表示学校,5公司,6部门,7教育局,默认所有直接子节点") Integer type) { + @ApiParam("子节点类型,0表示学校,5公司,6部门,7教育局,默认所有直接子节点") Integer type) { return ResultBean.buildSuccess(deptService.findChildByParent(deptId, type)); } @ApiOperation("向下查询到要查询的部门类别的子部门(可查询非直接子部门)") @GetMapping("/findChildByParentAndType") + @OperationLog(module = ModuleName.SYSTEM, methods = "向下查询到要查询的部门类别的子部门") public ResultBean> findChildByParentAndType(@ApiParam("父节点id,不能为空") Long parentId, - @ApiParam("子节点类型,0表示学校,5公司,6部门,7教育局,默认所有直接子节点") Integer type) { + @ApiParam("子节点类型,0表示学校,5公司,6部门,7教育局,默认所有直接子节点") Integer type) { return ResultBean.buildSuccess(deptService.findChildByParentAndType(Arrays.asList(parentId), type)); } @ApiOperation("根据部门id查询所属学校") @GetMapping("findSchoolByDept") + @OperationLog(module = ModuleName.SYSTEM, methods = "根据部门id查询所属学校") public ResultBean findSchoolByDept(Long deptId) { return ResultBean.buildSuccess(deptService.findSchooleByDept(deptId)); } @GetMapping + @OperationLog(module = ModuleName.SYSTEM, methods = "查询部门") public FebsResponse deptList(QueryRequest request, Dept dept) { Map depts = this.deptService.findDepts(request, dept); return new FebsResponse().data(depts); @@ -103,14 +110,14 @@ public class DeptController { @PostMapping @PreAuthorize("hasAuthority('dept:add')") - @OperationLog(module = ModuleName.DEPT, methods = "新增部门", type = OperationLogTypeEnum.INSERT) + @OperationLog(module = ModuleName.SYSTEM, methods = "新增部门", type = OperationLogTypeEnum.INSERT) public void addDept(@Valid Dept dept) { this.deptService.createDept(dept); } @DeleteMapping("/{deptIds}") @PreAuthorize("hasAuthority('dept:delete')") - @OperationLog(module = ModuleName.DEPT, methods = "删除部门", type = OperationLogTypeEnum.DELETE) + @OperationLog(module = ModuleName.SYSTEM, methods = "删除部门", type = OperationLogTypeEnum.DELETE) public void deleteDepts(@NotBlank(message = "{required}") @PathVariable String deptIds) { String[] ids = deptIds.split(StringConstant.COMMA); this.deptService.deleteDepts(ids); @@ -118,13 +125,14 @@ public class DeptController { @PutMapping @PreAuthorize("hasAuthority('dept:update')") - @OperationLog(module = ModuleName.DEPT, methods = "修改部门", type = OperationLogTypeEnum.UPDATE) + @OperationLog(module = ModuleName.SYSTEM, methods = "修改部门", type = OperationLogTypeEnum.UPDATE) public void updateDept(@Valid Dept dept) { this.deptService.updateDept(dept); } @PostMapping("excel") @PreAuthorize("hasAuthority('dept:export')") + @ControllerLog(operation = "导出部门数据", exceptionMessage = "导出Excel失败") public void export(Dept dept, QueryRequest request, HttpServletResponse response) { List depts = this.deptService.findDepts(dept, request); //ExcelKit.$Export(Dept.class, response).downXlsx(depts, false); @@ -138,17 +146,19 @@ public class DeptController { @ApiOperation("根据区域查询学校列表") @GetMapping("/getSchoolByArea") + @OperationLog(module = ModuleName.SYSTEM, methods = "根据区域查询学校列表") public ResultBean> getSchoolByArea(@ApiParam("区域id") @RequestParam(required = false) Long areaId, - @ApiParam("搜索关键词 学校名") @RequestParam(required = false) String schoolName) throws NoSuchMethodException { + @ApiParam("搜索关键词 学校名") @RequestParam(required = false) String schoolName) throws NoSuchMethodException { return ResultBean.buildSuccess(deptService.getSchoolByArea(areaId, schoolName)); } @ApiOperation("分页查询学校列表") @GetMapping("/getPageSchoolByArea") + @OperationLog(module = ModuleName.SYSTEM, methods = "分页查询学校列表") public ResultBean> getPageSchoolByArea(@ApiParam("类型") @RequestParam(required = false) Long areaId, - @ApiParam("搜索关键词 学校名") @RequestParam(required = false) String schoolName, - @ApiParam("当前页码") @RequestParam(defaultValue = "1") Integer pageNum, - @ApiParam("页面大小") @RequestParam(defaultValue = "10") Integer pageSize) { + @ApiParam("搜索关键词 学校名") @RequestParam(required = false) String schoolName, + @ApiParam("当前页码") @RequestParam(defaultValue = "1") Integer pageNum, + @ApiParam("页面大小") @RequestParam(defaultValue = "10") Integer pageSize) { Page page = new Page<>(); page.setSize(pageSize); page.setCurrent(pageNum); @@ -157,9 +167,10 @@ public class DeptController { @ApiOperation("部门树") @GetMapping("/getDeptTree") + @OperationLog(module = ModuleName.SYSTEM, methods = "部门树") public ResultBean getDeptTree(@ApiParam("根节点Id") Long deptId, - @ApiParam("0-包含学校的企业部门(后勤部等)与学校部门(校区学段等),1-仅学校部门,2-仅企业部门,默认0") @RequestParam(defaultValue = - "0") Integer type) { + @ApiParam("0-包含学校的企业部门(后勤部等)与学校部门(校区学段等),1-仅学校部门,2-仅企业部门,默认0") @RequestParam(defaultValue = + "0") Integer type) { if (deptId == null) { deptId = FebsUtil.getCurrentUser().getDeptId(); } @@ -174,6 +185,7 @@ public class DeptController { @ApiOperation("查询部门区域") @GetMapping("/findAreaById") + @OperationLog(module = ModuleName.SYSTEM, methods = "查询部门区域") public ResultBean findAreaById(@RequestParam Long id) { Long byId = deptService.getById(id).getAreaId(); return ResultBean.buildSuccess(eduAreaMapper.findAreaById(byId)); @@ -183,15 +195,14 @@ public class DeptController { * 查询代理商管理的学校列表数据 * * @param agentSchoolSelectPageDTO 查询代理商管理的学校列表数据请求类 - * @return com.yida.data.common.core.common.ResultBean> + * @return com.yida.data.common.core.common.ResultBean> * @author ZYJ * @date 2021/9/27 17:03 */ @GetMapping(value = "/listAgentSchoolPage") @ApiOperation(value = "查询代理商管理的学校列表数据", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) public ResultBean> listAgentSchoolPage( - @Valid AgentSchoolSelectPageDTO agentSchoolSelectPageDTO) { + @Valid AgentSchoolSelectPageDTO agentSchoolSelectPageDTO) { return this.deptService.listAgentSchoolPage(agentSchoolSelectPageDTO); } @@ -207,7 +218,7 @@ public class DeptController { @PostMapping(value = "/saveAgentSchool", consumes = MediaType.APPLICATION_JSON_VALUE) @ApiOperation(value = "代理商保存学校数据", consumes = MediaType.APPLICATION_JSON_VALUE) public ResultBean saveAgentSchool( - @Valid @RequestBody AgentSchoolSaveDTO agentSchoolSaveDTO) { + @Valid @RequestBody AgentSchoolSaveDTO agentSchoolSaveDTO) { return this.deptService.saveAgentSchool(agentSchoolSaveDTO); } @@ -223,7 +234,7 @@ public class DeptController { @PostMapping(value = "/getAgentSchoolInfo") @ApiOperation(value = "查询学校信息", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) public ResultBean getAgentSchoolInfo( - @ApiParam(value = "学校id", required = true) @RequestParam Long schoolId) { + @ApiParam(value = "学校id", required = true) @RequestParam Long schoolId) { return this.deptService.getAgentSchoolInfo(schoolId); } @@ -239,10 +250,9 @@ public class DeptController { // @PreAuthorize("hasRole('role:agent:admin')") @PostMapping(value = "/updateEnableStatus") @ApiOperation(value = "启用或停用学校", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) - @OperationLog(module = ModuleName.DEPT, methods = "启用或停用学校", type = OperationLogTypeEnum.UPDATE) public ResultBean updateEnableStatus( - @ApiParam(value = "学校id", required = true) @RequestParam Long schoolId, - @ApiParam(value = "需要设置的启用或停用状态. 启用: 1, 停用: 0", required = true) @RequestParam Integer enableStatus) { + @ApiParam(value = "学校id", required = true) @RequestParam Long schoolId, + @ApiParam(value = "需要设置的启用或停用状态. 启用: 1, 停用: 0", required = true) @RequestParam Integer enableStatus) { return this.deptService.updateEnableStatus(schoolId, enableStatus); } @@ -252,15 +262,14 @@ public class DeptController { * 代理商查询学校管理员账号列表数据 * * @param schoolAdminAccountSelectPageDTO 代理商查询学校管理员账号列表数据请求类 - * @return com.yida.data.common.core.common.ResultBean> + * @return com.yida.data.common.core.common.ResultBean> * @author ZYJ * @date 2021/9/29 17:34 */ @PostMapping(value = "/listSchoolAdminAccountPage") @ApiOperation(value = "查询学校管理员账号列表数据", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) public ResultBean> listSchoolAdminAccountPage( - @Valid SchoolAdminAccountSelectPageDTO schoolAdminAccountSelectPageDTO) { + @Valid SchoolAdminAccountSelectPageDTO schoolAdminAccountSelectPageDTO) { return ResultBean.buildSuccess(this.userService.listSchoolAdminAccountPage(schoolAdminAccountSelectPageDTO)); } @@ -275,9 +284,8 @@ public class DeptController { // @PreAuthorize("hasRole('role:agent:admin')") @PostMapping(value = "/saveSchoolAdminAccount", consumes = MediaType.APPLICATION_JSON_VALUE) @ApiOperation(value = "保存学校负责人账号", consumes = MediaType.APPLICATION_JSON_VALUE) - @OperationLog(module = ModuleName.DEPT, methods = "保存学校负责人账号", type = OperationLogTypeEnum.UPDATE) public ResultBean saveSchoolAdminAccount( - @Valid @RequestBody SchoolAdminAccountSaveDTO schoolAdminAccountSaveDTO) { + @Valid @RequestBody SchoolAdminAccountSaveDTO schoolAdminAccountSaveDTO) { return this.userService.saveSchoolAdminAccount(schoolAdminAccountSaveDTO); } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/DictController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/DictController.java index 08da446..2bf929d 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/DictController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/DictController.java @@ -1,6 +1,5 @@ package com.yida.data.system.controller; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.common.ModuleName; @@ -46,8 +45,8 @@ public class DictController { @ApiOperation("分页查询字典类型") @GetMapping("/listDictTypePage") public ResultBean> listDictGroup(@RequestParam(required = false) String typeName, - @RequestParam(defaultValue = "1") Integer pageNum, - @RequestParam(defaultValue = "10") Integer pageSize) { + @RequestParam(defaultValue = "1") Integer pageNum, + @RequestParam(defaultValue = "10") Integer pageSize) { return ResultBean.buildSuccess(dictService.listDictTypePage(typeName, pageNum, pageSize)); } @@ -56,7 +55,7 @@ public class DictController { @OperationLog(module = ModuleName.SYSTEM, methods = "查询字典") public ResultBean> selectDict(@ApiParam("类型") @RequestParam String type) { return ResultBean.buildSuccess(dictService.list(Wrappers.lambdaQuery(new Dict()) - .eq(Dict::getType, type).orderByAsc(Dict::getSort))); + .eq(Dict::getType, type).orderByAsc(Dict::getSort))); } @PostMapping("/insertDict") @@ -77,22 +76,7 @@ public class DictController { @GetMapping("/delDictByType") public ResultBean delDictByType(String type) { dictService.remove(Wrappers.lambdaQuery() - .eq(Dict::getType, type)); - return ResultBean.buildSuccess(); - } - - @GetMapping("/getDictByTypeAndValueOrLabel") - public ResultBean getDictCode(String type, String value, String Label) { - if (ObjectUtil.isNotNull(value)) { - return ResultBean - .buildSuccess( - dictService.getOne(Wrappers.lambdaQuery(new Dict()).eq(Dict::getType, type).eq(Dict::getValue, value))); - } - if (ObjectUtil.isNotNull(Label)) { - return ResultBean - .buildSuccess( - dictService.getOne(Wrappers.lambdaQuery(new Dict()).eq(Dict::getType, type).eq(Dict::getLabel, Label))); - } + .eq(Dict::getType, type)); return ResultBean.buildSuccess(); } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/EduInstructionsContentController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/EduInstructionsContentController.java index 5d7574a..9da3b4a 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/EduInstructionsContentController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/EduInstructionsContentController.java @@ -3,13 +3,10 @@ package com.yida.data.system.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.common.ResultMsgType; import com.yida.data.common.core.entity.instructions.EduInstructionsContent; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.system.service.EduInstructionsContentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -40,15 +37,15 @@ public class EduInstructionsContentController { @ApiOperation("分页获取系统指南内容LIST") @GetMapping("/findPageList") + @ControllerLog(operation = "分页获取系统指南内容LIST") public ResultBean> findPageList( - @ApiParam("指南类型") @RequestParam(required = false) String typeCode, - @ApiParam("指南标题") @RequestParam(required = false) String title, - @ApiParam("当前页码,默认1") @RequestParam(defaultValue = "1") Integer pageNum, - @ApiParam("分页大小,默认10") @RequestParam(defaultValue = "10") Integer pageSize + @ApiParam("指南类型") @RequestParam(required = false) String typeCode, + @ApiParam("指南标题") @RequestParam(required = false) String title, + @ApiParam("当前页码,默认1") @RequestParam(defaultValue = "1") Integer pageNum, + @ApiParam("分页大小,默认10") @RequestParam(defaultValue = "10") Integer pageSize ) { try { - return ResultBean.buildSuccess( - eduInstructionsContentService.listPageEduInstructionsContent(new Page(pageNum, pageSize), typeCode, title)); + return ResultBean.buildSuccess(eduInstructionsContentService.listPageEduInstructionsContent(new Page(pageNum, pageSize), typeCode, title)); } catch (Exception e) { log.error("分页获取系统指南内容LIST失败: {}", e.getMessage(), e); return ResultBean.buildError(ResultMsgType.QUERY_FAIL.getValue()); @@ -57,8 +54,9 @@ public class EduInstructionsContentController { @ApiOperation("根据typeCode或者Id获取单条指南内容") @PostMapping("/getOneEduInstructionsContent") + @ControllerLog(operation = "根据typeCode或者Id获取单条指南内容") public ResultBean getOneEduInstructionsContent(@RequestParam(required = false) String typeCode, - @RequestParam(required = false) Integer id + @RequestParam(required = false) Integer id ) { try { return ResultBean.buildSuccess(eduInstructionsContentService.getOneEduInstructionsContent(typeCode, id)); @@ -71,7 +69,7 @@ public class EduInstructionsContentController { @ApiOperation("新增或修改系统指南内容") @PostMapping("/saveOrUpdateInstructions") - @OperationLog(module = ModuleName.INSTRUCTION, methods = "新增或修改系统指南内容", type = OperationLogTypeEnum.SAVE) + @ControllerLog(operation = "新增或修改系统指南内容") public ResultBean saveOrUpdateInstructions(@RequestBody EduInstructionsContent eduInstructionsContent) { try { boolean b = eduInstructionsContentService.saveInstructionsContent(eduInstructionsContent, FebsUtil.getCurrentUser()); @@ -89,7 +87,7 @@ public class EduInstructionsContentController { @ApiOperation("删除系统指南内容") @PostMapping("/removeBatch") - @OperationLog(module = ModuleName.INSTRUCTION, methods = "删除系统指南内容", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除系统指南内容") public ResultBean selectProduct(@ApiParam("系统指南内容id") @RequestBody List ids) { try { eduInstructionsContentService.deleteByIds(ids); diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/EduInstructionsTypeController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/EduInstructionsTypeController.java index 07c37bb..5c891c8 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/EduInstructionsTypeController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/EduInstructionsTypeController.java @@ -1,13 +1,10 @@ package com.yida.data.system.controller; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.common.ResultMsgType; import com.yida.data.common.core.entity.instructions.EduInstructionsType; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.system.service.EduInstructionsTypeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -38,6 +35,7 @@ public class EduInstructionsTypeController { @ApiOperation("系统指南类型列表") @GetMapping("/findList") + @ControllerLog(operation = "系统指南类型列表") public ResultBean> selectInstructionsList() { try { return ResultBean.buildSuccess(eduInstructionsTypeService.selectInstructionsTypeList()); @@ -50,7 +48,7 @@ public class EduInstructionsTypeController { @ApiOperation("新增或修改系统指南类型") @PostMapping("/save") - @OperationLog(module = ModuleName.INSTRUCTION, methods = "新增或修改系统指南类型", type = OperationLogTypeEnum.SAVE) + @ControllerLog(operation = "新增或修改系统指南类型") public ResultBean insertInstructionsList(@RequestBody EduInstructionsType eduInstructionsType) { try { eduInstructionsTypeService.saveData(eduInstructionsType, FebsUtil.getCurrentUser()); @@ -64,7 +62,7 @@ public class EduInstructionsTypeController { @ApiOperation("删除系统指南类型") @PostMapping("/removeBatch") - @OperationLog(module = ModuleName.INSTRUCTION, methods = "删除系统指南类型", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除系统指南类型") public ResultBean removeBatch(@ApiParam("系统指南类型id") @RequestBody List ids) { try { eduInstructionsTypeService.removeByIds(ids); diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InDeptController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InDeptController.java index e5652f5..06edd06 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InDeptController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InDeptController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yida.data.common.core.common.ResultBean; +import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.entity.system.Dept; import com.yida.data.common.core.entity.system.EduDeptWxPublic; import com.yida.data.common.core.entity.system.EduHotWord; @@ -20,6 +21,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.Cacheable; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -67,7 +69,7 @@ public class InDeptController { @GetMapping("/getSchoolByName") public ResultBean getSchoolByName(String schoolName) { return ResultBean.buildSuccess(deptService - .getOne(Wrappers.lambdaQuery(new Dept()).eq(Dept::getDeptName, schoolName))); + .getOne(Wrappers.lambdaQuery(new Dept()).eq(Dept::getDeptName, schoolName).eq(Dept::getDeptType, 0))); } /** @@ -97,15 +99,7 @@ public class InDeptController { @GetMapping("/syncQywxDept") public ResultBean syncQywxDept() { log.info("进入同步企业微信"); - deptService.syncQywxDept(null); - return ResultBean.buildSuccess(); - } - - @ApiOperation("同步指定学校企业微信部门") - @GetMapping("/syncSchoolDept") - public ResultBean syncSchoolDept(@RequestParam Long schoolId) { - log.info("同步企业微信部门数据: schoolId: [{}]", schoolId); - deptService.syncQywxDept(schoolId); + deptService.syncQywxDept(); return ResultBean.buildSuccess(); } @@ -183,12 +177,29 @@ public class InDeptController { @ApiOperation("根据名称和类型查询教育局学校列表") @PostMapping("/listSchoolPage") -// @Cacheable(value = CachePrefixConstant.SCHOOL_LIST_SEARCH, key = "#dto.deptId + '-' + #dto.schoolName") public ResultBean> listSchoolPage(@RequestBody SchoolPageDTO dto) { IPage page = deptService.listSchoolPage(dto); return ResultBean.buildSuccess(page); } + @ApiOperation("根据名称查询教育局缴费学校列表") + @GetMapping("/listPaySchool") + public ResultBean> listPaySchool( + @ApiParam(value = "教育局或代理商id", required = true) @RequestParam Long deptId, + @ApiParam(value = "学校名称") String schoolName) { + List list = deptService.listPaySchool(deptId, schoolName); + return ResultBean.buildSuccess(list); + } + + @ApiOperation("查询:1幼儿园,2小学,3初中,4高中,5大学") + @PostMapping("/listSchoolPageByNature") + @Cacheable(value = CachePrefixConstant.SCHOOL_LIST_SEARCH, key = "#dto.deptId + '-' + #dto.natureType + '-' + #dto.schoolName") + public ResultBean> listSchoolPageByNature(@RequestBody SchoolPageDTO dto) { + IPage page = deptService.listSchoolPage(dto); + return ResultBean.buildSuccess(page); + } + + @ApiOperation("根据住所查询对应可读学校") @GetMapping("/findSchoolByAddress") public ResultBean> findSchoolByAddress( @@ -246,20 +257,4 @@ public class InDeptController { return ResultBean.buildSuccess(deptService.findHotWord(num, type, deptId)); } - - - @ApiOperation("查询父级部门集合") - @PostMapping("/findParentDeptByChilds") - public ResultBean> findParentDeptByChilds(@RequestBody List deptIds) { - return ResultBean.buildSuccess(deptService.findParentDeptByChild(deptIds)); - } - - - @ApiOperation("获取部门树") - @PostMapping("/getDeptTree") - public ResultBean getDeptTree(@RequestBody List deptIds) { - return ResultBean.buildSuccess(deptService.getDeptTree(deptIds)); - } - - } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InEduAppController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InEduAppController.java index 97e5811..5ef69b6 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InEduAppController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InEduAppController.java @@ -1,14 +1,9 @@ package com.yida.data.system.controller; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.system.EduApp; -import com.yida.data.common.core.entity.system.EduAppTemplate; -import com.yida.data.common.core.entity.system.EduQywxServiceProvider; import com.yida.data.system.service.EduAppService; -import com.yida.data.system.service.EduAppTemplateService; -import com.yida.data.system.service.EduQywxServiceProviderService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -22,26 +17,9 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class InEduAppController { private final EduAppService eduAppService; - private final EduAppTemplateService eduAppTemplateService; - private final EduQywxServiceProviderService eduQywxServiceProviderService; @GetMapping("/getAppBySchoolOrCorpIdAndCode") public ResultBean getAppBySchoolOrCorpIdAndCode(Long schoolId, String corpId, String code) { return ResultBean.buildSuccess(eduAppService.getAppBySchoolOrCorpIdAndCode(schoolId, corpId, code)); } - - @GetMapping("/getAppTemplateByTemplateId") - public ResultBean getAppTemplateByTemplateId(String templateId, String serviceCorpId) { - return ResultBean.buildSuccess(eduAppTemplateService.getOne(Wrappers.lambdaQuery(new EduAppTemplate()) - .eq(EduAppTemplate::getTemplateId, templateId) - .eq(EduAppTemplate::getServiceCorpId, serviceCorpId) - )); - } - - @GetMapping("/getServiceProviderByServiceCorpId") - public ResultBean getServiceProviderByServiceCorpId(String serviceCorpId) { - return ResultBean.buildSuccess(eduQywxServiceProviderService.getOne(Wrappers.lambdaQuery(new EduQywxServiceProvider()) - .eq(EduQywxServiceProvider::getCorpId, serviceCorpId) - )); - } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InQywxController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InQywxController.java index 066b19c..c962dd8 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InQywxController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InQywxController.java @@ -1,17 +1,19 @@ package com.yida.data.system.controller; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.common.ResultBean; -import com.yida.data.common.core.entity.system.EduQywxServiceProviderSchool; -import com.yida.data.system.service.EduQywxServiceProviderSchoolService; import com.yida.data.system.service.QywxCallbackService; -import com.yida.data.system.service.QywxServiceProviderService; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.*; -@Slf4j @Api(tags = "企业微信同步") @RestController @RequiredArgsConstructor @@ -19,8 +21,6 @@ import org.springframework.web.bind.annotation.*; public class InQywxController { private final QywxCallbackService qywxCallbackService; - private final QywxServiceProviderService qywxServiceProviderService; - private final EduQywxServiceProviderSchoolService eduQywxServiceProviderSchoolService; @GetMapping("/callback/{corpId}") public String get(@PathVariable String corpId, @@ -33,124 +33,13 @@ public class InQywxController { } @PostMapping("/callback/{corpId}") - public String post(@PathVariable String corpId, + public Object post(@PathVariable String corpId, @RequestParam("msg_signature") String msgSignature, @RequestParam("timestamp") String timestamp, @RequestParam("nonce") String nonce, @RequestBody String body) { - return qywxCallbackService.post(corpId, msgSignature, timestamp, nonce, body); - } - - /** - * 服务商代开发应用模板验证URL回调 - */ - @GetMapping("/normal/callback/{corpId}") - public String getNormal(@PathVariable String corpId, - @RequestParam("msg_signature") String msgSignature, - @RequestParam("timestamp") String timestamp, - @RequestParam("nonce") String nonce, - @RequestParam("echostr") String echostr) { - return qywxCallbackService.getNormal(corpId, msgSignature, timestamp, nonce, echostr); - } - - /** - * 服务商代开发应用模板接口回调 - */ - @PostMapping("/normal/callback/{corpId}") - public String postNormal(@PathVariable String corpId, - @RequestParam("msg_signature") String msgSignature, - @RequestParam("timestamp") String timestamp, - @RequestParam("nonce") String nonce, - @RequestBody String body) { - return qywxCallbackService.postNormal(corpId, msgSignature, timestamp, nonce, body); - } - - /** - * 服务商代开发应用客户验证URL回调 - */ - @GetMapping("/normal/customer/callback/{providerCorpId}/{corpId}") - public String getNormalCustomer(@PathVariable String providerCorpId, - @PathVariable String corpId, - @RequestParam("msg_signature") String msgSignature, - @RequestParam("timestamp") String timestamp, - @RequestParam("nonce") String nonce, - @RequestParam("echostr") String echostr) { - return qywxCallbackService.getNormalCustomer(providerCorpId, corpId, msgSignature, timestamp, nonce, echostr); - } - - /** - * 服务商代开发应用客户接口回调 - * 此回调暂不做任何处理 - */ - @PostMapping("/normal/customer/callback/{providerCorpId}/{corpId}") - public String postNormalCustomer( - @PathVariable String providerCorpId, - @PathVariable String corpId, - @RequestParam("msg_signature") String msgSignature, - @RequestParam("timestamp") String timestamp, - @RequestParam("nonce") String nonce, - @RequestBody String body) { - return qywxCallbackService.postNormalCustomer(providerCorpId, corpId, msgSignature, timestamp, nonce, body); - } - - /** - * 服务商代开发应用验证URL回调 - */ - @GetMapping("/event/callback/{providerCorpId}/{corpId}") - public String getEvent(@PathVariable String providerCorpId, - @PathVariable String corpId, - @RequestParam("msg_signature") String msgSignature, - @RequestParam("timestamp") String timestamp, - @RequestParam("nonce") String nonce, - @RequestParam("echostr") String echostr) { - return qywxCallbackService.getEvent(providerCorpId, corpId, msgSignature, timestamp, nonce, echostr); - } - - /** - * 服务商代开发应用回调 - */ - @PostMapping("/event/callback/{providerCorpId}/{corpId}") - public String postEvent( - @PathVariable String providerCorpId, - @PathVariable String corpId, - @RequestParam("msg_signature") String msgSignature, - @RequestParam("timestamp") String timestamp, - @RequestParam("nonce") String nonce, - @RequestBody String body) { - return qywxCallbackService.postEvent(providerCorpId, corpId, msgSignature, timestamp, nonce, body); - } - - /** - * 加密对应服务商的学校corpId - */ - @GetMapping("/changeCorpId/{providerCorpId}/{corpId}") - public ResultBean changeCorpId(@PathVariable String providerCorpId, @PathVariable String corpId) { - qywxServiceProviderService.changeCorpId(providerCorpId, corpId); + qywxCallbackService.post(corpId, msgSignature, timestamp, nonce, body); return ResultBean.buildSuccess(); } - /** - * 服务商对应学校加密corpId数据(原始值为key) - */ - @GetMapping("/getCorpByOriginalData") - public ResultBean getCorpByOriginalData(@RequestParam String providerCorpId, - @RequestParam String deptOriginalCorpId) { - EduQywxServiceProviderSchool providerSchool = eduQywxServiceProviderSchoolService.getOne(Wrappers.lambdaQuery(new EduQywxServiceProviderSchool()) - .eq(EduQywxServiceProviderSchool::getProviderCorpId, providerCorpId) - .eq(EduQywxServiceProviderSchool::getDeptOriginalCorpId, deptOriginalCorpId)); - return ResultBean.buildSuccess(providerSchool); - } - - /** - * 服务商对应学校加密corpId数据(加密值为key) - */ - @GetMapping("/getCorpByEncryptionData") - public ResultBean getCorpByEncryptionData(@RequestParam String providerCorpId, - @RequestParam String deptEncryptionCorpId) { - EduQywxServiceProviderSchool providerSchool = eduQywxServiceProviderSchoolService.getOne(Wrappers.lambdaQuery(new EduQywxServiceProviderSchool()) - .eq(EduQywxServiceProviderSchool::getProviderCorpId, providerCorpId) - .eq(EduQywxServiceProviderSchool::getDeptEncryptionCorpId, deptEncryptionCorpId)); - return ResultBean.buildSuccess(providerSchool); - } - } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InUserController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InUserController.java index 2eb14f5..88e8f3d 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InUserController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/InUserController.java @@ -6,12 +6,16 @@ import com.yida.data.system.service.IUserRoleService; import com.yida.data.system.service.IUserService; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; @Slf4j @Validated @@ -64,12 +68,4 @@ public class InUserController { userService.updateUserRoleByRoleName(userId, roleNames); return ResultBean.buildSuccess(); } - - @ApiOperation("获取企业微信用户授权后创建职工用户信息") - @GetMapping("createStaff") - public ResultBean createStaff(@ApiParam("学校Id") Long schoolId, - @ApiParam("通过成员授权获取到的code") String code) { - userService.createStaff(schoolId, code); - return ResultBean.buildSuccess(); - } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/LoginLogController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/LoginLogController.java index 8019807..c80b0d7 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/LoginLogController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/LoginLogController.java @@ -1,14 +1,11 @@ package com.yida.data.system.controller; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.entity.FebsResponse; import com.yida.data.common.core.entity.QueryRequest; import com.yida.data.common.core.entity.constant.StringConstant; import com.yida.data.common.core.entity.system.LoginLog; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.system.service.ILoginLogService; import org.springframework.security.access.prepost.PreAuthorize; @@ -54,7 +51,7 @@ public class LoginLogController { @DeleteMapping("{ids}") @PreAuthorize("hasAuthority('loginlog:delete')") - @OperationLog(module = ModuleName.SYSTEM, methods = "删除登录日志", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除登录日志", exceptionMessage = "删除登录日志失败") public void deleteLogs(@NotBlank(message = "{required}") @PathVariable String ids) { String[] loginLogIds = ids.split(StringConstant.COMMA); this.loginLogService.deleteLoginLogs(loginLogIds); @@ -62,6 +59,7 @@ public class LoginLogController { @PostMapping("excel") @PreAuthorize("hasAuthority('loginlog:export')") + @ControllerLog(operation = "导出登录日志数据", exceptionMessage = "导出Excel失败") public void export(QueryRequest request, LoginLog loginLog, HttpServletResponse response) { List loginLogs = this.loginLogService.findLoginLogs(loginLog, request).getRecords(); //ExcelKit.$Export(LoginLog.class, response).downXlsx(loginLogs, false); diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/MenuController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/MenuController.java index 229abc7..bd0e581 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/MenuController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/MenuController.java @@ -1,14 +1,11 @@ package com.yida.data.system.controller; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.entity.FebsResponse; import com.yida.data.common.core.entity.constant.StringConstant; import com.yida.data.common.core.entity.router.VueRouter; import com.yida.data.common.core.entity.system.Menu; import com.yida.data.common.core.entity.system.Role; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.system.service.IMenuService; import com.yida.data.system.service.IRoleService; import io.swagger.annotations.ApiOperation; @@ -42,7 +39,6 @@ public class MenuController { private final IMenuService menuService; private final IRoleService roleService; - @GetMapping("/{username}") public FebsResponse getUserRouters(@NotBlank(message = "{required}") @PathVariable String username) { Map result = new HashMap<>(4); @@ -60,9 +56,9 @@ public class MenuController { String[] roleArray = new String[0]; if (!CollectionUtils.isEmpty(userRoleList)) { String userRoles = userRoleList.stream() - .filter(role -> Objects.nonNull(role) && StringUtils.isNotBlank(role.getRolePerms())) - .map(Role::getRolePerms) - .collect(Collectors.joining(StringConstant.COMMA)); + .filter(role -> Objects.nonNull(role) && StringUtils.isNotBlank(role.getRolePerms())) + .map(Role::getRolePerms) + .collect(Collectors.joining(StringConstant.COMMA)); if (StringUtils.isNoneBlank(userPermissions)) { roleArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(userRoles, StringConstant.COMMA); } @@ -71,9 +67,9 @@ public class MenuController { String[] mainRoleArray = new String[0]; if (!CollectionUtils.isEmpty(mainRoleList)) { String mainRoles = mainRoleList.stream() - .filter(role -> Objects.nonNull(role) && StringUtils.isNotBlank(role.getRolePerms())) - .map(Role::getRolePerms) - .collect(Collectors.joining(StringConstant.COMMA)); + .filter(role -> Objects.nonNull(role) && StringUtils.isNotBlank(role.getRolePerms())) + .map(Role::getRolePerms) + .collect(Collectors.joining(StringConstant.COMMA)); if (StringUtils.isNoneBlank(mainRoles)) { mainRoleArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(mainRoles, StringConstant.COMMA); } @@ -99,14 +95,14 @@ public class MenuController { @PostMapping @PreAuthorize("hasAuthority('menu:add')") - @OperationLog(module = ModuleName.SYSTEM, methods = "新增菜单/按钮", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "新增菜单/按钮", exceptionMessage = "新增菜单/按钮失败") public void addMenu(@Valid Menu menu) { this.menuService.createMenu(menu); } @DeleteMapping("/{menuIds}") @PreAuthorize("hasAuthority('menu:delete')") - @OperationLog(module = ModuleName.SYSTEM, methods = "删除菜单/按钮", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除菜单/按钮", exceptionMessage = "删除菜单/按钮失败") public void deleteMenus(@NotBlank(message = "{required}") @PathVariable String menuIds) { String[] ids = menuIds.split(StringConstant.COMMA); this.menuService.deleteMeuns(ids); @@ -114,13 +110,14 @@ public class MenuController { @PutMapping @PreAuthorize("hasAuthority('menu:update')") - @OperationLog(module = ModuleName.SYSTEM, methods = "修改菜单/按钮", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改菜单/按钮", exceptionMessage = "修改菜单/按钮失败") public void updateMenu(@Valid Menu menu) { this.menuService.updateMenu(menu); } @PostMapping("excel") @PreAuthorize("hasAuthority('menu:export')") + @ControllerLog(operation = "导出菜单数据", exceptionMessage = "导出Excel失败") public void export(Menu menu, HttpServletResponse response) { List menus = this.menuService.findMenuList(menu); //ExcelKit.$Export(Menu.class, response).downXlsx(menus, false); diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/OutDeptController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/OutDeptController.java index 9a1193c..3b38379 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/OutDeptController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/OutDeptController.java @@ -4,17 +4,22 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.system.Dept; import com.yida.data.common.core.entity.system.EduDeptWxPublic; +import com.yida.data.system.dto.SchoolInformationDTO; import com.yida.data.system.mapper.EduDeptWxPublicMapper; import com.yida.data.system.service.IDeptService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @Slf4j @Validated @Api(tags = "部门管理(无鉴权 外部使用)") @@ -37,4 +42,13 @@ public class OutDeptController { } return ResultBean.buildSuccess(school); } + + @ApiOperation("根据名称查询教育局缴费学校列表") + @GetMapping("/listPaySchool") + public ResultBean> listPaySchool( + @ApiParam(value = "教育局或代理商id", required = true) @RequestParam Long deptId, + @ApiParam(value = "学校名称") String schoolName) { + List list = deptService.listPaySchool(deptId, schoolName); + return ResultBean.buildSuccess(list); + } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/RoleController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/RoleController.java index 285cf77..2dd62f1 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/RoleController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/RoleController.java @@ -1,15 +1,12 @@ package com.yida.data.system.controller; import com.yida.data.common.core.annotation.ControllerLog; -import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.FebsResponse; import com.yida.data.common.core.entity.QueryRequest; import com.yida.data.common.core.entity.constant.StringConstant; import com.yida.data.common.core.entity.system.Role; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.utils.FebsUtil; -import com.yida.data.log.annotation.OperationLog; import com.yida.data.system.service.IRoleService; import org.springframework.security.access.prepost.PreAuthorize; @@ -67,14 +64,14 @@ public class RoleController { @PostMapping @PreAuthorize("hasAuthority('role:add')") - @OperationLog(module = ModuleName.SYSTEM, methods = "新增角色", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "新增角色", exceptionMessage = "新增角色失败") public void addRole(@Valid Role role) { this.roleService.createRole(role); } @DeleteMapping("/{roleIds}") @PreAuthorize("hasAuthority('role:delete')") - @OperationLog(module = ModuleName.SYSTEM, methods = "删除角色失败", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除角色", exceptionMessage = "删除角色失败") public void deleteRoles(@NotBlank(message = "{required}") @PathVariable String roleIds) { String[] ids = roleIds.split(StringConstant.COMMA); this.roleService.deleteRoles(ids); @@ -82,13 +79,14 @@ public class RoleController { @PutMapping @PreAuthorize("hasAuthority('role:update')") - @OperationLog(module = ModuleName.SYSTEM, methods = "修改角色", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改角色", exceptionMessage = "修改角色失败") public void updateRole(@Valid Role role) { this.roleService.updateRole(role); } @PostMapping("excel") @PreAuthorize("hasAuthority('role:export')") + @ControllerLog(operation = "导出角色数据", exceptionMessage = "导出Excel失败") public void export(QueryRequest queryRequest, Role role, HttpServletResponse response) { List roles = this.roleService.findRoles(role, queryRequest).getRecords(); //ExcelKit.$Export(Role.class, response).downXlsx(roles, false); diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/UserController.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/UserController.java index f751823..5aeb28e 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/UserController.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/controller/UserController.java @@ -1,6 +1,7 @@ package com.yida.data.system.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.yida.data.common.core.annotation.ControllerLog; import com.yida.data.common.core.common.ModuleName; import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.entity.FebsResponse; @@ -11,7 +12,6 @@ import com.yida.data.common.core.entity.system.LoginLog; import com.yida.data.common.core.entity.system.SystemUser; import com.yida.data.common.core.entity.system.SystemUserMenu; import com.yida.data.common.core.entity.system.UserRole; -import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.ExcelUtil; import com.yida.data.common.core.utils.FebsUtil; @@ -116,14 +116,14 @@ public class UserController { @PostMapping @PreAuthorize("hasAuthority('user:add')") - @OperationLog(module = ModuleName.USER, methods = "新增用户", type = OperationLogTypeEnum.INSERT) + @ControllerLog(operation = "新增用户", exceptionMessage = "新增用户失败") public void addUser(@Valid SystemUser user) { userService.createUser(user); } @PutMapping @PreAuthorize("hasAuthority('user:update')") - @OperationLog(module = ModuleName.USER, methods = "修改用户", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改用户", exceptionMessage = "修改用户失败") public void updateUser(@Valid SystemUser user) { userService.updateUser(user); } @@ -137,32 +137,33 @@ public class UserController { @DeleteMapping("/{userIds}") @PreAuthorize("hasAuthority('user:delete')") - @OperationLog(module = ModuleName.USER, methods = "删除用户", type = OperationLogTypeEnum.DELETE) + @ControllerLog(operation = "删除用户", exceptionMessage = "删除用户失败") public void deleteUsers(@NotBlank(message = "{required}") @PathVariable String userIds) { String[] ids = userIds.split(StringConstant.COMMA); userService.deleteUsers(ids); } @GetMapping("/updatePassword") - @OperationLog(module = ModuleName.USER, methods = "修改密码", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改密码", exceptionMessage = "修改密码失败") public void updatePassword(String password, String newPassword, String repeatPassword) { userService.updatePassword(password, newPassword, repeatPassword, FebsUtil.getCurrentUsername()); } @GetMapping("/validatePassword") + @ControllerLog(operation = "校验密码", exceptionMessage = "密码校验失败") public ResultBean validatePassword(String password) { userService.validatePassword(password, FebsUtil.getCurrentUsername()); return ResultBean.buildSuccess(); } @PutMapping("profile") - @OperationLog(module = ModuleName.USER, methods = "修改个人信息", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(exceptionMessage = "修改个人信息失败") public void updateProfile(@Valid SystemUser user) throws FebsException { userService.updateProfile(user); } @PutMapping("avatar") - @OperationLog(module = ModuleName.USER, methods = "修改头像", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(exceptionMessage = "修改头像失败") public void updateAvatar(@NotBlank(message = "{required}") String avatar) { userService.updateAvatar(avatar); } @@ -175,14 +176,14 @@ public class UserController { } @PutMapping("password") - @OperationLog(module = ModuleName.USER, methods = "修改密码", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(exceptionMessage = "修改密码失败") public void updatePassword(@NotBlank(message = "{required}") String password) { userService.updatePassword(password); } @PutMapping("password/reset") @PreAuthorize("hasAuthority('user:reset')") - @OperationLog(module = ModuleName.USER, methods = "重置用户密码", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(exceptionMessage = "重置用户密码失败") public void resetPassword(@NotBlank(message = "{required}") String usernames) { String[] usernameArr = usernames.split(StringConstant.COMMA); userService.resetPassword(usernameArr); @@ -190,6 +191,8 @@ public class UserController { @PostMapping("excel") @PreAuthorize("hasAuthority('user:export')") + @ControllerLog(operation = "导出用户数据", exceptionMessage = "导出Excel失败") + @OperationLog(module = ModuleName.SYSTEM, methods = "导出用户数据") public void export(QueryRequest queryRequest, SystemUser user, HttpServletResponse response) { List users = userService.findUserDetailList(user, queryRequest).getRecords(); List userInfoVOS = users.stream().map(x -> { @@ -219,7 +222,6 @@ public class UserController { @ApiOperation("锁定或解锁用户") @GetMapping("/lockUser") - @OperationLog(module = ModuleName.USER, methods = "锁定或解锁用户", type = OperationLogTypeEnum.UPDATE) public ResultBean lockUser(Long id) { userService.lockUser(id); return ResultBean.buildSuccess(); @@ -227,7 +229,6 @@ public class UserController { @ApiOperation("重置密码") @GetMapping("/resetPwd") - @OperationLog(module = ModuleName.USER, methods = "重置密码", type = OperationLogTypeEnum.UPDATE) public ResultBean resetPwd(Long id) { userService.resetPwd(id); return ResultBean.buildSuccess(); @@ -235,13 +236,12 @@ public class UserController { @ApiOperation("添加用户") @PostMapping("/add") - @OperationLog(module = ModuleName.USER, methods = "添加用户", type = OperationLogTypeEnum.INSERT) public ResultBean add(@RequestBody SystemUser systemUser) { return ResultBean.buildSuccess(userService.createUser(systemUser)); } @PostMapping("/update") - @OperationLog(module = ModuleName.USER, methods = "修改用户", type = OperationLogTypeEnum.UPDATE) + @ControllerLog(operation = "修改用户", exceptionMessage = "修改用户失败") public ResultBean updateUserWithName(@RequestBody SystemUser user) { userService.updateUserWithName(user); return ResultBean.buildSuccess(); @@ -249,7 +249,6 @@ public class UserController { @ApiOperation("批量删除用户") @PostMapping("/delUser") - @OperationLog(module = ModuleName.USER, methods = "批量删除用户", type = OperationLogTypeEnum.DELETE) public ResultBean delUser(@RequestBody String[] ids) { userService.deleteUsers(ids); return ResultBean.buildSuccess(); @@ -257,7 +256,6 @@ public class UserController { @ApiOperation("添加用户角色") @PostMapping("/addUserRole") - @OperationLog(module = ModuleName.USER, methods = "添加用户角色", type = OperationLogTypeEnum.UPDATE) public ResultBean addUserRole(@RequestBody UserRole[] userRole) { userRoleService.bindRoleByRoleName(userRole); return ResultBean.buildSuccess(); @@ -276,7 +274,6 @@ public class UserController { @ApiOperation("新增用户对应菜单") @PostMapping("/saveUserMenu") - @OperationLog(module = ModuleName.USER, methods = "新增用户对应菜单", type = OperationLogTypeEnum.UPDATE) public ResultBean saveUserMenu(@RequestBody MenuForUserDTO menuForUserDTO) { systemUserMenuService.saveUserMenu(menuForUserDTO); return ResultBean.buildSuccess(); @@ -284,7 +281,6 @@ public class UserController { @ApiOperation("修改用户对应菜单") @PostMapping("/updateUserMenu") - @OperationLog(module = ModuleName.USER, methods = "修改用户对应菜单", type = OperationLogTypeEnum.UPDATE) public ResultBean updateUserMenu(@RequestBody MenuForUserDTO menuForUserDTO) { systemUserMenuService.updateUserMenu(menuForUserDTO); return ResultBean.buildSuccess(); @@ -292,7 +288,6 @@ public class UserController { @ApiOperation("删除用户对应菜单") @GetMapping("/removeUserMenu") - @OperationLog(module = ModuleName.USER, methods = "删除用户对应菜单", type = OperationLogTypeEnum.UPDATE) public ResultBean removeUserMenu(@ApiParam("用户id") @RequestParam Long userId) { systemUserMenuService.remove(Wrappers.lambdaQuery(new SystemUserMenu()) .eq(SystemUserMenu::getUserId, userId)); @@ -313,7 +308,6 @@ public class UserController { @ApiOperation("保存logo") @PostMapping("/saveLogo") - @OperationLog(module = ModuleName.USER, methods = "保存logo", type = OperationLogTypeEnum.INSERT) public ResultBean saveLogo(@RequestBody EduUserLogo logo) { eduUserLogoService.saveOrUpdate(logo); return ResultBean.buildSuccess(); diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/DeptSchoolInformationMapper.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/DeptSchoolInformationMapper.java index 2b31fa0..824a944 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/DeptSchoolInformationMapper.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/DeptSchoolInformationMapper.java @@ -18,12 +18,13 @@ public interface DeptSchoolInformationMapper extends BaseMapper findSchoolListByDeptId(@Param("deptId") Long deptId, @Param("schoolName") String schoolName, @@ -41,4 +42,16 @@ public interface DeptSchoolInformationMapper extends BaseMapper findDeptSchoolId(@Param("tags") String[] tags); IPage listSchoolPage(Page page, @Param("dto") SchoolPageDTO dto); + + /** + * 根据名称查询教育局缴费学校列表 + * + * @param deptId 教育局或代理商id + * @param schoolName 学校名称 + * @return java.util.List + * @author ZYJ + * @date 2023/8/30 14:23 + */ + List listPaySchool(@Param("deptId") Long deptId, + @Param("schoolName") String schoolName); } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/MenuMapper.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/MenuMapper.java index 9838b37..749133d 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/MenuMapper.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/MenuMapper.java @@ -28,15 +28,4 @@ public interface MenuMapper extends BaseMapper { */ List findUserRealMenus(@Param("username") String username, @Param("selectType") Integer selectType); - - - /** - * 查询用户绑定权限数据 - * - * @param username 用户名 - * @param selectType 查询类型 0菜单,1按钮,空查询所有 - * @return 用户菜单 - */ - List findUserMenus(@Param("username") String username, - @Param("selectType") Integer selectType); } \ No newline at end of file diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/UserMapper.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/UserMapper.java index 9ba7e0e..3e865b6 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/UserMapper.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/mapper/UserMapper.java @@ -38,8 +38,6 @@ public interface UserMapper extends BaseMapper { SystemUser findUserByUsername(String username); - SystemUser findUserByMobile(String mobile); - /** * 获取代理商管理员账号详情 * diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/CommonService.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/CommonService.java index dfc804d..a986fa1 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/CommonService.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/CommonService.java @@ -1,7 +1,6 @@ package com.yida.data.system.service; import com.yida.data.common.core.entity.system.EduSysFile; -import com.yida.data.school.vo.smart.WxConfigVO; import org.springframework.web.multipart.MultipartFile; public interface CommonService { @@ -11,24 +10,4 @@ public interface CommonService { String uploadImg(String code); void saveReceiveMsg(); - - /** - * 获取企业微信配置唤起扫码功能 - * - * @param deptId 部门id - * @param url 当前网页的URL,不包含#及其后面部分 - * @return com.yida.data.school.vo.smart.WxConfigVO - * @author ZYJ - * @date 2023/6/5 14:24 - */ - WxConfigVO getWxJsConfig(Long deptId, String url); - - /** - * 获取微信配置唤起扫码功能 - * - * @param deptId - * @param url - * @return - */ - WxConfigVO getWxPublicJsConfig(Long deptId, String url); } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IDeptService.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IDeptService.java index 7313944..0139fdb 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IDeptService.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IDeptService.java @@ -108,8 +108,6 @@ public interface IDeptService extends IService { List getDeptTree(Long deptId, Integer type); - List getDeptTree(List deptIds); - Dept getParentById(Long deptId); List listClassByDept(List ids); @@ -143,7 +141,7 @@ public interface IDeptService extends IService { * 同步企业微信部门 */ @Async(FebsConstant.ASYNC_POOL) - void syncQywxDept(Long schoolId); + void syncQywxDept(); /** * 处理挂在学校下的部门 @@ -155,7 +153,7 @@ public interface IDeptService extends IService { * * @param agentSchoolSelectPageDTO 查询代理商管理的学校列表数据请求类 * @return com.yida.data.common.core.common.ResultBean> + * com.yida.data.system.vo.AgentSchoolVO>> * @author ZYJ * @date 2021/9/27 17:05 */ @@ -195,10 +193,9 @@ public interface IDeptService extends IService { void saveOrUpdateDeptSchool(SchoolInformationDTO information); Page findSchoolListByDeptId(Long deptId, String schoolName, Integer schoolType, - Integer natureType, String address, String tag, Page page, Integer schoolOwnership); + Integer natureType, String address, String tag, Page page, Integer schoolOwnership); - Page findSchoolPageList(String schoolName, List schoolType, List natureType, - Page page, String tag, Long deptId, List schoolOwnership); + Page findSchoolPageList(String schoolName, List schoolType, List natureType, Page page, String tag, Long deptId, List schoolOwnership); Page findSchoolByAddress(Page page, String address, Long deptId); @@ -220,12 +217,14 @@ public interface IDeptService extends IService { */ IPage listSchoolPage(SchoolPageDTO dto); - /** - * 根据子部门查询父级IDList + * 根据名称查询教育局缴费学校列表 * - * @param deptIds - * @return + * @param deptId 教育局或代理商id + * @param schoolName 学校名称 + * @return java.util.List + * @author ZYJ + * @date 2023/8/30 14:21 */ - List findParentDeptByChild(List deptIds); + List listPaySchool(Long deptId, String schoolName); } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IMenuService.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IMenuService.java index 2119fc4..a4fcdec 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IMenuService.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IMenuService.java @@ -75,7 +75,8 @@ public interface IMenuService extends IService { void deleteMeuns(String[] menuIds); /** - * 根据登录账号查询菜单数 角色相关菜单数据 + * 根据登录账号查询菜单数 + * 角色相关菜单数据 * * @param username 登录账号 * @return java.util.Map diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IUserService.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IUserService.java index 9c3e29a..ca2a494 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IUserService.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/IUserService.java @@ -25,14 +25,6 @@ public interface IUserService extends IService { */ SystemUser findByName(String username); - /** - * 通过手机号查找用户 - * - * @param mobile 手机号 - * @return 用户 - */ - SystemUser findByMobile(String mobile); - /** * 查找用户详细信息 * @@ -147,9 +139,4 @@ public interface IUserService extends IService { * 更新用户的角色 */ void updateUserRoleByRoleName(Long userId, List roleNames); - - /** - * 获取企业微信用户授权后创建职工用户信息 - */ - void createStaff(Long schoolId, String code); } \ No newline at end of file diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/LogService.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/LogService.java index 5ef4ded..95c8924 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/LogService.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/LogService.java @@ -5,7 +5,6 @@ import com.yida.data.system.dto.ListLogDTO; import com.yida.data.system.repository.LogEsRepository; import org.apache.commons.lang3.StringUtils; -import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; @@ -65,9 +64,8 @@ public class LogService { Pageable pageable = PageRequest.of(dto.getPageNum() - 1, dto.getPageSize()); //封装查询条件 NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder() - .withPageable(pageable) - .withSort(SortBuilders.fieldSort("createDate").order(SortOrder.DESC)); - + .withPageable(pageable) + .withSort(SortBuilders.fieldSort("createDate").order(SortOrder.DESC)); //日志类型 String logType = dto.getLogType(); if (StringUtils.isNotBlank(logType)) { @@ -83,24 +81,19 @@ public class LogService { if (StringUtils.isNotBlank(method)) { queryBuilder.withQuery(QueryBuilders.matchQuery("method", method)); } - - //操作参数 - String operateParams = dto.getOperateParams(); - if (StringUtils.isNotBlank(operateParams)) { - queryBuilder.withQuery(QueryBuilders.matchQuery("operateParams", operateParams)); - } //操作开始时间 LocalDateTime startTime = dto.getStartTime(); //操作结束时间 LocalDateTime endTime = dto.getEndTime(); if (Optional.ofNullable(startTime).isPresent()) { queryBuilder.withQuery(QueryBuilders.rangeQuery("createDate").gte(startTime.toInstant( - ZoneOffset.of("+8") + ZoneOffset.of("+8") ).toEpochMilli()).lte(endTime.toInstant( - ZoneOffset.of("+8") + ZoneOffset.of("+8") ).toEpochMilli())); } //查询列表数据 - return logEsRepository.search(queryBuilder.build()); + Page page = logEsRepository.search(queryBuilder.build().getQuery(), pageable); + return page; } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/QywxCallbackService.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/QywxCallbackService.java index 778312f..1ed8da4 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/QywxCallbackService.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/QywxCallbackService.java @@ -8,17 +8,6 @@ public interface QywxCallbackService { String get(String corpId, String msgSignature, String timestamp, String nonce, String echostr); - String post(String corpId, String msgSignature, String timestamp, String nonce, String body); - - String getNormal(String corpId, String msgSignature, String timestamp, String nonce, String echostr); - - String postNormal(String corpId, String msgSignature, String timestamp, String nonce, String body); - - String getNormalCustomer(String providerCorpId, String corpId, String msgSignature, String timestamp, String nonce, String echostr); - - String postNormalCustomer(String providerCorpId, String corpId, String msgSignature, String timestamp, String nonce, String body); - - String getEvent(String providerCorpId, String corpId, String msgSignature, String timestamp, String nonce, String echostr); - - String postEvent(String providerCorpId, String corpId, String msgSignature, String timestamp, String nonce, String body); + @Async(PoolConstant.QYWX_CALL_POOL) + void post(String corpId, String msgSignature, String timestamp, String nonce, String body); } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/QywxService.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/QywxService.java index 326d90b..be169c3 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/QywxService.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/QywxService.java @@ -4,7 +4,6 @@ import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.constant.FebsConstant; import com.yida.data.common.core.entity.system.Dept; -import com.yida.data.common.core.entity.system.EduApp; import org.springframework.scheduling.annotation.Async; public interface QywxService { @@ -42,7 +41,6 @@ public interface QywxService { * @param deptId * @param school */ -// @Async(FebsConstant.ASYNC_POOL) void createSchoolDept(String corpId, String accessToken, Long deptId, Dept school); /** @@ -52,7 +50,6 @@ public interface QywxService { * @param deptId * @param school */ -// @Async(FebsConstant.ASYNC_POOL) void updateSchoolDept(String accessToken, Long deptId, Dept school); /** @@ -72,7 +69,6 @@ public interface QywxService { * @param order * @param school */ -// @Async(FebsConstant.ASYNC_POOL) void createDept(String deptId, String deptName, String parentId, String order, Dept school); /** @@ -83,7 +79,6 @@ public interface QywxService { * @param parentId * @param schoolId */ -// @Async(FebsConstant.ASYNC_POOL) void updateDept(String deptId, String deptName, String parentId, Long schoolId); /** @@ -176,9 +171,4 @@ public interface QywxService { * 家长关注事件 */ void sendParentSubscribeMessage(String parentId, Long schoolId); - - /** - * 修改职工部门信息 - */ - void updateUserInfo(String userId, Dept school, EduApp app); } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/CommonServiceImpl.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/CommonServiceImpl.java index 7fd1a55..6a5df4a 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/CommonServiceImpl.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/CommonServiceImpl.java @@ -1,45 +1,27 @@ package com.yida.data.system.service.impl; import cc.mrbird.febs.common.redis.service.RedisService; -import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.CharsetUtil; -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.google.common.base.Joiner; import com.yida.data.common.core.entity.ReceiveMsg; -import com.yida.data.common.core.entity.constant.AppConstant; import com.yida.data.common.core.entity.constant.CachePrefixConstant; -import com.yida.data.common.core.entity.system.*; -import com.yida.data.common.core.exception.FebsException; +import com.yida.data.common.core.entity.system.EduSysFile; import com.yida.data.common.core.utils.FileUtil; -import com.yida.data.common.core.utils.WxPublicUtil; -import com.yida.data.common.core.utils.WxUtil; -import com.yida.data.school.vo.smart.WxConfigVO; import com.yida.data.system.mapper.EduSysFileMapper; import com.yida.data.system.repository.ReceiveMsgRepository; import com.yida.data.system.service.CommonService; -import com.yida.data.system.service.IDeptService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.coobird.thumbnailator.Thumbnails; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.File; -import java.math.BigDecimal; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.TreeMap; @Service @RefreshScope @@ -47,14 +29,8 @@ import java.util.TreeMap; @RequiredArgsConstructor public class CommonServiceImpl implements CommonService { - private final IDeptService deptService; - private final EduSysFileMapper eduSysFileMapper; private final ReceiveMsgRepository receiveMsgRepository; - private final com.yida.data.common.service.CommonService commonService; - - private final WxUtil wxUtil; - private final WxPublicUtil wxPublicUtil; private final RedisService redisService; @Value("${febs.uploadUrl}") @@ -147,69 +123,4 @@ public class CommonServiceImpl implements CommonService { log.info("保存{}条接收数据", saveSize); } } - - @Override - public WxConfigVO getWxJsConfig(Long deptId, String url) { - Dept dept = deptService.getById(deptId); - if (Objects.isNull(dept)) { - throw new FebsException("当前学校配置信息错误!"); - } - // 获取应用信息 - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT_SELECT, null, deptId); - String jsApiTicket = wxUtil.getJsApiTicket(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), deptId); - // 时间戳 - String timestamp = String.valueOf(System.currentTimeMillis() / 1000); - // 随机字符串 - String nonceStr = RandomUtil.randomString(32); - - // 请求参数 - JSONObject jsonObject = JSONUtil.createObj() - .set("jsapi_ticket", jsApiTicket) - .set("timestamp", timestamp) - .set("noncestr", nonceStr) - .set("url", url); - TreeMap paramMap = MapUtil.sort(jsonObject); - // 处理请求参数 - String paramsStr = Joiner.on("&").withKeyValueSeparator("=").join(paramMap); - // 签名 - String signature = SecureUtil.sha1(paramsStr); - return WxConfigVO.builder() - .appId(dept.getCorpId()) - .timestamp(timestamp) - .nonceStr(nonceStr) - .signature(signature) - .build(); - } - - @Override - public WxConfigVO getWxPublicJsConfig(Long deptId, String url) { - - Dept dept = deptService.getById(deptId); - if (Objects.isNull(dept)) { - throw new FebsException("当前学校配置信息错误!"); - } - String jsApiTicket = wxPublicUtil.getJsApiTicket(dept.getWxPublicAppId(), dept.getWxPublicSecret()); - // 时间戳 - String timestamp = String.valueOf(System.currentTimeMillis() / 1000); - // 随机字符串 - String nonceStr = RandomUtil.randomString(32); - - // 请求参数 - JSONObject jsonObject = JSONUtil.createObj() - .set("jsapi_ticket", jsApiTicket) - .set("timestamp", timestamp) - .set("noncestr", nonceStr) - .set("url", url); - TreeMap paramMap = MapUtil.sort(jsonObject); - // 处理请求参数 - String paramsStr = Joiner.on("&").withKeyValueSeparator("=").join(paramMap); - // 签名 - String signature = SecureUtil.sha1(paramsStr); - return WxConfigVO.builder() - .appId(dept.getWxPublicAppId()) - .timestamp(timestamp) - .nonceStr(nonceStr) - .signature(signature) - .build(); - } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/DeptSchoolInformationServiceImpl.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/DeptSchoolInformationServiceImpl.java index 9852efb..6b4c68a 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/DeptSchoolInformationServiceImpl.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/DeptSchoolInformationServiceImpl.java @@ -29,18 +29,20 @@ import java.util.List; @RequiredArgsConstructor @Transactional(rollbackFor = Exception.class) public class DeptSchoolInformationServiceImpl extends ServiceImpl - implements DeptSchoolInformationService { + implements DeptSchoolInformationService { private final DeptSchoolLabelService labelService; private final CommonService commonService; @Override public Page findSchoolListByDeptId(Long deptId, String schoolName, Integer schoolType, - Integer natureType, String address, String tag, Page page, - Integer schoolOwnership) { - Page schoolListByDeptId = baseMapper.findSchoolListByDeptId(deptId, schoolName, schoolType, natureType, address, tag, page, schoolOwnership); + Integer natureType, String address, String tag, Page page, + Integer schoolOwnership) { + Page schoolListByDeptId = baseMapper + .findSchoolListByDeptId(deptId, schoolName, schoolType, natureType, address, tag, page, schoolOwnership); for (SchoolInformationDTO record : schoolListByDeptId.getRecords()) { - List list = labelService.list(Wrappers.query(new DeptSchoolLabel()).lambda().eq(DeptSchoolLabel::getDeptSchoolId, record.getId())); + List list = labelService + .list(Wrappers.query(new DeptSchoolLabel()).lambda().eq(DeptSchoolLabel::getDeptSchoolId, record.getId())); List tagList = new ArrayList<>(); for (DeptSchoolLabel deptSchoolLabel : list) { tagList.add(deptSchoolLabel.getLabel()); @@ -51,8 +53,9 @@ public class DeptSchoolInformationServiceImpl extends ServiceImpl findSchoolPageList(String schoolName, List schoolType, List natureType, Page page, - String[] tags, Long deptId, List schoolOwnership) { + public Page findSchoolPageList(String schoolName, List schoolType, List natureType, + Page page, + String[] tags, Long deptId, List schoolOwnership) { List deptSchoolId = new ArrayList<>(); if (tags != null && tags.length > 0) { deptSchoolId = baseMapper.findDeptSchoolId(tags); @@ -65,7 +68,6 @@ public class DeptSchoolInformationServiceImpl extends ServiceImpl findSchoolByAddress(Page page, String address, Long deptId) { - return baseMapper.findSchoolByAddress(page, address, deptId); } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/DeptServiceImpl.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/DeptServiceImpl.java index 9d4762c..e0f644e 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/DeptServiceImpl.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/DeptServiceImpl.java @@ -24,7 +24,6 @@ import com.yida.data.common.core.entity.system.*; import com.yida.data.common.core.entity.system.enums.DeptTypeEnum; import com.yida.data.common.core.entity.system.enums.RoleEnum; import com.yida.data.common.core.entity.system.enums.UserStatusEnum; -import com.yida.data.common.core.entity.user.enums.DeptVisibleTypeEnum; import com.yida.data.common.core.enums.EnableStatusEnum; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.*; @@ -34,6 +33,7 @@ import com.yida.data.system.dto.AgentSchoolSelectPageDTO; import com.yida.data.system.dto.SchoolInformationDTO; import com.yida.data.system.dto.SchoolPageDTO; import com.yida.data.system.mapper.DeptMapper; +import com.yida.data.system.mapper.DeptSchoolInformationMapper; import com.yida.data.system.mapper.DeptSchoolRelateMapper; import com.yida.data.system.mapper.EduAppMapper; import com.yida.data.system.service.*; @@ -70,7 +70,6 @@ public class DeptServiceImpl extends ServiceImpl implements ID private final EduAppAccountService eduAppAccountService; private final CommonService commonService; private final EduPayWxConfigService eduPayWxConfigService; - private final EduAgentSchoolRelateService eduAgentSchoolRelateService; private final IUserService userService; private final RedisService redisService; private final DeptSchoolRelateMapper deptSchoolRelateMapper; @@ -82,13 +81,15 @@ public class DeptServiceImpl extends ServiceImpl implements ID private final DeptSchoolInformationService schoolInformationService; private final DeptSchoolInformationNatureService natureService; + private final DeptSchoolInformationMapper deptSchoolInformationMapper; + @Override public Dept getSchoolDeptByDeptAndWx(List deptId, Long wxId) { Dept exist = getOne(Wrappers.lambdaQuery(new Dept()).in(Dept::getParentId, deptId).eq(Dept::getWxId, - wxId).ne(Dept::getDeptType, 6)); + wxId).ne(Dept::getDeptType, 6)); if (exist == null) { List deptList = - list(Wrappers.lambdaQuery(new Dept()).in(Dept::getParentId, deptId).ne(Dept::getDeptType, 6)); + list(Wrappers.lambdaQuery(new Dept()).in(Dept::getParentId, deptId).ne(Dept::getDeptType, 6)); if (CollUtil.isNotEmpty(deptList)) { List deptIds = deptList.stream().map(x -> x.getDeptId()).collect(Collectors.toList()); exist = getSchoolDeptByDeptAndWx(deptIds, wxId); @@ -100,13 +101,12 @@ public class DeptServiceImpl extends ServiceImpl implements ID @Override public Dept getSysDeptByDeptAndWx(List deptId, Long wxId) { Dept exist = getOne(Wrappers.lambdaQuery(new Dept()).in(Dept::getParentId, deptId).eq(Dept::getWxId, - wxId).eq(Dept::getDeptType, DeptTypeEnum.DEPARTMENT_TYPE.getValue())); + wxId).eq(Dept::getDeptType, 6)); if (exist == null) { List deptList = - list(Wrappers.lambdaQuery(new Dept()).in(Dept::getParentId, deptId) - .eq(Dept::getDeptType, DeptTypeEnum.DEPARTMENT_TYPE.getValue())); + list(Wrappers.lambdaQuery(new Dept()).in(Dept::getParentId, deptId).eq(Dept::getDeptType, 6)); if (CollUtil.isNotEmpty(deptList)) { - List deptIds = deptList.stream().map(Dept::getDeptId).collect(Collectors.toList()); + List deptIds = deptList.stream().map(x -> x.getDeptId()).collect(Collectors.toList()); exist = getSysDeptByDeptAndWx(deptIds, wxId); } } @@ -135,9 +135,9 @@ public class DeptServiceImpl extends ServiceImpl implements ID } else { // 查询下级部门信息 List childIdList = findListByParent(Collections.singletonList(currentUser.getDeptId()), 0) - .stream().map(Dept::getDeptId).collect(Collectors.toList()); + .stream().map(Dept::getDeptId).collect(Collectors.toList()); if (RoleEnum.ROLE_EDUCATION_PRINCIPAL.equals(roleEnum) || - RoleEnum.ROLE_AGENT_ADMIN.equals(roleEnum)) { + RoleEnum.ROLE_AGENT_ADMIN.equals(roleEnum)) { childIdList.add(currentUser.getDeptId()); } // 具有创建账号的数据 自己创建的账号+当前登陆账号部门以下的账号 @@ -155,7 +155,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID List res = new ArrayList<>(); // 查询直接子部门 LambdaQueryWrapper condition = Wrappers.lambdaQuery(new Dept()).in(Dept::getParentId, deptId) - .orderByDesc(Dept::getOrderNum); + .orderByDesc(Dept::getOrderNum); // if (type != null) { // if (type == 1) { // condition.ne(Dept::getDeptType, 6); @@ -187,12 +187,12 @@ public class DeptServiceImpl extends ServiceImpl implements ID @Override public List findChildByParentAndType(List deptId, Integer type) { List res = list(Wrappers.lambdaQuery().in(Dept::getParentId, deptId).eq(Dept::getDeptType, type) - .orderByDesc(Dept::getOrderNum)); + .orderByDesc(Dept::getOrderNum)); if (CollUtil.isEmpty(res)) { List child = list(Wrappers.lambdaQuery().in(Dept::getParentId, deptId)); if (CollUtil.isNotEmpty(child)) { res = findChildByParentAndType(child.stream().map(x -> x.getDeptId()).collect(Collectors.toList()), - type); + type); } } return res; @@ -220,8 +220,8 @@ public class DeptServiceImpl extends ServiceImpl implements ID private Dept findSchoolOrEducationByDept(Long deptId) { Dept now = this.baseMapper.selectById(deptId); if (now != null && - (DeptTypeEnum.SCHOOL_TYPE.getValue().equals(now.getDeptType()) - || DeptTypeEnum.EDUCATION_DEPT_TYPE.getValue().equals(now.getDeptType()))) { + (DeptTypeEnum.SCHOOL_TYPE.getValue().equals(now.getDeptType()) + || DeptTypeEnum.EDUCATION_DEPT_TYPE.getValue().equals(now.getDeptType()))) { return now; } else if (now != null) { return findSchoolOrEducationByDept(now.getParentId()); @@ -275,10 +275,10 @@ public class DeptServiceImpl extends ServiceImpl implements ID deptList.forEach(x -> { // 教育局、代理商查询对应的关联学校信息 if (DeptTypeEnum.EDUCATION_DEPT_TYPE.getValue().equals(x.getDeptType()) || - DeptTypeEnum.AGENT_TYPE.getValue().equals(x.getDeptType())) { + DeptTypeEnum.AGENT_TYPE.getValue().equals(x.getDeptType())) { x.setRelationSchoolList(this.deptSchoolRelateMapper.selectList(Wrappers.lambdaQuery(new DeptSchoolRelate()) - .eq(DeptSchoolRelate::getDeptId, x.getDeptId())).stream().map(DeptSchoolRelate::getSchoolId) - .collect(Collectors.toList())); + .eq(DeptSchoolRelate::getDeptId, x.getDeptId())).stream().map(DeptSchoolRelate::getSchoolId) + .collect(Collectors.toList())); } }); return deptList; @@ -322,11 +322,13 @@ public class DeptServiceImpl extends ServiceImpl implements ID Dept parent = findSchoolOrEducationByDept(dept.getParentId()); // 挂在学校的部门需要同步企业微信 if (parent != null && DeptTypeEnum.SCHOOL_TYPE.getValue().equals(parent.getDeptType()) - && parent.getSchoolType().contains(Dept.TYPE_QYWX) - && dept.getWxId() == null) { - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT, null, parent.getDeptId()); + && parent.getSchoolType().contains(Dept.TYPE_QYWX) + && dept.getWxId() == null) { + EduApp app = eduAppMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, + parent.getDeptId()).eq(EduApp::getName, AppConstant.CONTACT)); if (app != null) { - Long wxId = wxUtil.createDept(commonService.getAddressListToken(app.getDeptId()), dept); + Long wxId = wxUtil.createDept(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), + dept); dept.setWxId(wxId); } } @@ -339,19 +341,19 @@ public class DeptServiceImpl extends ServiceImpl implements ID dept.setYidaAppColId(colId); } } else if (DeptTypeEnum.EDUCATION_DEPT_TYPE.getValue().equals(dept.getDeptType()) && - StrUtil.isNotBlank(dept.getSchoolType()) && dept.getSchoolType().contains(Dept.TYPE_YIDA_APP)) { + StrUtil.isNotBlank(dept.getSchoolType()) && dept.getSchoolType().contains(Dept.TYPE_YIDA_APP)) { dept.setYidaAppColId(yidaApp.getAppColId()); } this.save(dept); // 创建绑定易达的学校 if (DeptTypeEnum.SCHOOL_TYPE.getValue().equals(dept.getDeptType()) - && StrUtil.isNotBlank(dept.getSchoolType()) - && dept.getSchoolType().contains(Dept.TYPE_YIDA_APP)) { + && StrUtil.isNotBlank(dept.getSchoolType()) + && dept.getSchoolType().contains(Dept.TYPE_YIDA_APP)) { // 保存学校栏目到区域位下 List list = list(Wrappers.lambdaQuery(new Dept()) - .eq(Dept::getDeptType, 0) - .eq(Dept::getYidaAppId, yidaApp.getId()) - .like(Dept::getSchoolType, Dept.TYPE_YIDA_APP)); + .eq(Dept::getDeptType, 0) + .eq(Dept::getYidaAppId, yidaApp.getId()) + .like(Dept::getSchoolType, Dept.TYPE_YIDA_APP)); if (CollUtil.isNotEmpty(list)) { JSONArray content = new JSONArray(); for (Dept col : list) { @@ -363,8 +365,8 @@ public class DeptServiceImpl extends ServiceImpl implements ID }}); } String regionId = AppUtil.regionUpdate(yidaApp.getAppSchoolRegionId(), "热门学校", 0, - yidaApp.getAppColId(), - AppUtil.REGION_TYPE_HOT, content, yidaApp); + yidaApp.getAppColId(), + AppUtil.REGION_TYPE_HOT, content, yidaApp); if (StrUtil.isBlank(yidaApp.getAppSchoolRegionId())) { yidaApp.setAppSchoolRegionId(regionId); eduYidaAppService.updateById(yidaApp); @@ -382,22 +384,20 @@ public class DeptServiceImpl extends ServiceImpl implements ID eduAppAccountService.save(appAccount); } } else if (DeptTypeEnum.EDUCATION_DEPT_TYPE.getValue().equals(dept.getDeptType()) || - DeptTypeEnum.AGENT_TYPE.getValue().equals(dept.getDeptType())) { + DeptTypeEnum.AGENT_TYPE.getValue().equals(dept.getDeptType())) { CurrentUser currentUser = FebsUtil.getCurrentUser(); if (CollUtil.isNotEmpty(dept.getRelationSchoolList())) { // 处理关联学校数据 dept.getRelationSchoolList().forEach(schoolId -> { DeptSchoolRelate deptSchoolRelate = DeptSchoolRelate.builder() - .deptId(dept.getDeptId()) - .createDeptId(currentUser.getDeptId()) - .createId(currentUser.getUserId()) - .createDate(LocalDateTime.now()) - .schoolId(schoolId) - .build(); + .deptId(dept.getDeptId()) + .createDeptId(currentUser.getDeptId()) + .createId(currentUser.getUserId()) + .createDate(LocalDateTime.now()) + .schoolId(schoolId) + .build(); this.deptSchoolRelateMapper.insert(deptSchoolRelate); - List list = schoolInformationService.list( - Wrappers.query(new DeptSchoolInformation()).lambda() - .eq(DeptSchoolInformation::getSchoolId, deptSchoolRelate.getSchoolId())); + List list = schoolInformationService.list(Wrappers.query(new DeptSchoolInformation()).lambda().eq(DeptSchoolInformation::getSchoolId, deptSchoolRelate.getSchoolId())); if (CollectionUtil.isEmpty(list)) { DeptSchoolInformation deptSchoolInformation = new DeptSchoolInformation(); @@ -457,9 +457,9 @@ public class DeptServiceImpl extends ServiceImpl implements ID dept.setYidaAppColId(colId); // 保存栏目到订阅号下 List list = list(Wrappers.lambdaQuery(new Dept()) - .eq(Dept::getDeptType, 0) - .like(Dept::getSchoolType, Dept.TYPE_YIDA_APP) - .eq(Dept::getYidaAppId, original.getYidaAppId())); + .eq(Dept::getDeptType, 0) + .like(Dept::getSchoolType, Dept.TYPE_YIDA_APP) + .eq(Dept::getYidaAppId, original.getYidaAppId())); if (CollUtil.isNotEmpty(list)) { JSONArray content = new JSONArray(); for (Dept col : list) { @@ -471,8 +471,8 @@ public class DeptServiceImpl extends ServiceImpl implements ID }}); } String regionId = AppUtil.regionUpdate(yidaApp.getAppSchoolRegionId(), "热门学校", 0, - yidaApp.getAppColId(), - AppUtil.REGION_TYPE_HOT, content, yidaApp); + yidaApp.getAppColId(), + AppUtil.REGION_TYPE_HOT, content, yidaApp); if (StrUtil.isBlank(yidaApp.getAppSchoolRegionId())) { yidaApp.setAppSchoolRegionId(regionId); @@ -492,9 +492,9 @@ public class DeptServiceImpl extends ServiceImpl implements ID // } for (int i = 0; i < 2; i++) { EduYidaAppAccount appAccount = eduAppAccountService - .getOne(Wrappers.lambdaQuery(new EduYidaAppAccount()) - .eq(EduYidaAppAccount::getSchoolId, dept.getDeptId()) - .eq(EduYidaAppAccount::getType, i)); + .getOne(Wrappers.lambdaQuery(new EduYidaAppAccount()) + .eq(EduYidaAppAccount::getSchoolId, dept.getDeptId()) + .eq(EduYidaAppAccount::getType, i)); if (appAccount == null) { appAccount = new EduYidaAppAccount(); } @@ -512,23 +512,24 @@ public class DeptServiceImpl extends ServiceImpl implements ID Dept parent = findSchoolOrEducationByDept(dept.getParentId()); // 挂在学校的部门需要同步企业微信 if (Objects.nonNull(parent) && DeptTypeEnum.SCHOOL_TYPE.getValue().equals(parent.getDeptType()) - && parent.getSchoolType().contains(Dept.TYPE_QYWX)) { - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT, null, parent.getDeptId()); + && parent.getSchoolType().contains(Dept.TYPE_QYWX)) { + EduApp app = eduAppMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, + parent.getDeptId()).eq(EduApp::getName, AppConstant.CONTACT)); if (app != null) { dept.setWxId(original.getWxId()); - wxUtil.updateDept(commonService.getAddressListToken(app.getDeptId()), dept); + wxUtil.updateDept(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), dept); } } } else if (DeptTypeEnum.EDUCATION_DEPT_TYPE.getValue().equals(dept.getDeptType()) || - DeptTypeEnum.AGENT_TYPE.getValue().equals(dept.getDeptType())) { + DeptTypeEnum.AGENT_TYPE.getValue().equals(dept.getDeptType())) { // 教育局、代理商 if (DeptTypeEnum.AGENT_TYPE.getValue().equals(dept.getDeptType()) && - CollectionUtils.isEmpty(dept.getRelationSchoolList())) { + CollectionUtils.isEmpty(dept.getRelationSchoolList())) { throw new FebsException("请选择关联的学校"); } // 删除关联学校数据 this.deptSchoolRelateMapper.delete(Wrappers.lambdaQuery(new DeptSchoolRelate()) - .eq(DeptSchoolRelate::getDeptId, dept.getDeptId())); + .eq(DeptSchoolRelate::getDeptId, dept.getDeptId())); // 绑定了易达app if (StrUtil.isNotBlank(dept.getSchoolType()) && dept.getSchoolType().contains(Dept.TYPE_YIDA_APP)) { // 设置教育局栏目id @@ -539,17 +540,15 @@ public class DeptServiceImpl extends ServiceImpl implements ID // 处理关联学校数据 dept.getRelationSchoolList().forEach(schoolId -> { DeptSchoolRelate deptSchoolRelate = DeptSchoolRelate.builder() - .deptId(original.getDeptId()) - .createDeptId(currentUser.getDeptId()) - .createId(currentUser.getUserId()) - .createDate(LocalDateTime.now()) - .schoolId(schoolId) - .build(); + .deptId(original.getDeptId()) + .createDeptId(currentUser.getDeptId()) + .createId(currentUser.getUserId()) + .createDate(LocalDateTime.now()) + .schoolId(schoolId) + .build(); this.deptSchoolRelateMapper.insert(deptSchoolRelate); //关联关系表学校放入学校信息表 - List list = schoolInformationService.list( - Wrappers.query(new DeptSchoolInformation()).lambda() - .eq(DeptSchoolInformation::getSchoolId, deptSchoolRelate.getSchoolId())); + List list = schoolInformationService.list(Wrappers.query(new DeptSchoolInformation()).lambda().eq(DeptSchoolInformation::getSchoolId, deptSchoolRelate.getSchoolId())); if (CollectionUtil.isEmpty(list)) { DeptSchoolInformation deptSchoolInformation = new DeptSchoolInformation(); deptSchoolInformation.setSchoolName(getById(schoolId).getDeptName()); @@ -569,60 +568,60 @@ public class DeptServiceImpl extends ServiceImpl implements ID public void deleteDepts(String[] deptIds) { // 删除企业微信部门信息 List deptList = - list(Wrappers.lambdaQuery(new Dept()).in(Dept::getDeptId, deptIds).notIn(Dept::getDeptType - , 0, 5)); + list(Wrappers.lambdaQuery(new Dept()).in(Dept::getDeptId, deptIds).notIn(Dept::getDeptType + , 0, 5)); for (Dept dept : deptList) { Dept school = findSchooleByDept(dept.getDeptId()); // 绑定了微信 if (Objects.nonNull(school) && school.getSchoolType().contains(Dept.TYPE_QYWX)) { - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT, null, - school.getDeptId()); + EduApp app = commonService.getAppByCodeAndSchool(dept.getDeptType() == 6 ? "通讯录" : "家校沟通", null, + school.getDeptId()); // 同步删除企业微信部门 if (dept.getDeptType() == 6) { - wxUtil.deleteDept(commonService.getAddressListToken(school.getDeptId()), dept.getWxId()); + wxUtil.deleteDept(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), dept.getWxId()); } } // 绑定了大华 if (Objects.nonNull(school) && school.getSchoolType().contains(Dept.TYPE_DAHUA)) { - DaHuaUtil.delDept(Collections.singletonList(dept.getDahuaId())); + DaHuaUtil.delDept(Arrays.asList(dept.getDahuaId())); } // 教育局、代理商 if (DeptTypeEnum.EDUCATION_DEPT_TYPE.getValue().equals(dept.getDeptType()) || - DeptTypeEnum.AGENT_TYPE.getValue().equals(dept.getDeptType())) { + DeptTypeEnum.AGENT_TYPE.getValue().equals(dept.getDeptType())) { // 删除关联学校数据 this.deptSchoolRelateMapper.delete(Wrappers.lambdaQuery(new DeptSchoolRelate()) - .eq(DeptSchoolRelate::getDeptId, dept.getDeptId())); + .eq(DeptSchoolRelate::getDeptId, dept.getDeptId())); } } List delYidaSchool = - list(Wrappers.lambdaQuery().in(Dept::getDeptId, deptIds).eq(Dept::getDeptType, 0) - .like(Dept::getSchoolType, "1")); + list(Wrappers.lambdaQuery().in(Dept::getDeptId, deptIds).eq(Dept::getDeptType, 0) + .like(Dept::getSchoolType, "1")); this.delete(Arrays.asList(deptIds)); // 更新学校列表 if (CollUtil.isNotEmpty(delYidaSchool)) { List yidaAppIds = - delYidaSchool.stream().map(Dept::getYidaAppId).distinct().collect(Collectors.toList()); + delYidaSchool.stream().map(x -> x.getYidaAppId()).distinct().collect(Collectors.toList()); for (Long yidaAppId : yidaAppIds) { EduYidaApp yidaApp = eduYidaAppService.getById(yidaAppId); List schoolList = list(Wrappers.lambdaQuery() - .eq(Dept::getYidaAppId, yidaAppId) - .eq(Dept::getDeptType, 0) - .like(Dept::getSchoolType, "1")); + .eq(Dept::getYidaAppId, yidaAppId) + .eq(Dept::getDeptType, 0) + .like(Dept::getSchoolType, "1")); AppUtil.regionUpdate(yidaApp.getAppSchoolRegionId(), "热门学校", 0, yidaApp.getAppColId(), - AppUtil.REGION_TYPE_HOT, - new JSONArray() {{ - for (Dept dept : schoolList) { - add( - new JSONObject() {{ - set("id", dept.getYidaAppColId()); - if (StrUtil.isNotBlank(dept.getIcon())) { - set("img", dept.getIcon()); - } - }}); - } - }} - , yidaApp); + AppUtil.REGION_TYPE_HOT, + new JSONArray() {{ + for (Dept dept : schoolList) { + add( + new JSONObject() {{ + set("id", dept.getYidaAppColId()); + if (StrUtil.isNotBlank(dept.getIcon())) { + set("img", dept.getIcon()); + } + }}); + } + }} + , yidaApp); } } @@ -645,7 +644,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID removeByIds(deptId); // 删除部门缓存 redisService - .hdel(CachePrefixConstant.SYS_DEPT_DATA, deptId.stream().map(x -> x.toString()).toArray(String[]::new)); + .hdel(CachePrefixConstant.SYS_DEPT_DATA, deptId.stream().map(x -> x.toString()).toArray(String[]::new)); } private void buildTrees(List trees, List depts) { @@ -674,7 +673,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID removeByIds(deptIds); userDataPermissionService.deleteByDeptIds(deptIds); this.deptSchoolRelateMapper.delete(Wrappers.lambdaQuery(new DeptSchoolRelate()) - .in(DeptSchoolRelate::getSchoolId, deptIds)); + .in(DeptSchoolRelate::getSchoolId, deptIds)); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(Dept::getParentId, deptIds); List depts = baseMapper.selectList(queryWrapper); @@ -710,41 +709,15 @@ public class DeptServiceImpl extends ServiceImpl implements ID return deptTree; } - @Override - public List getDeptTree(List deptIds) { - List allDepts = new ArrayList<>(); - List rootIdList = new ArrayList<>(); - if (CollUtil.isNotEmpty(deptIds)) { - for (Long deptId : deptIds) { - // 添加根节点 - Dept root = getById(deptId); - if (ObjectUtil.isNotNull(root)) { - if (root.getParentId() != null) { - root.setParentId(null); - root.setParentWxId(null); - } - allDepts.add(root); - rootIdList.add(deptId); - } - } - } - // 循环查询子节点 - allDepts.addAll(findListByParent(rootIdList, 2)); - List trees = new ArrayList<>(); - buildTrees(trees, allDepts); - List> deptTree = TreeUtil.build(trees); - return deptTree; - } - @Override public List listClassByDept(List ids) { List res = new ArrayList<>(); if (CollUtil.isNotEmpty(ids)) { List child = list(Wrappers.lambdaQuery(new Dept()).in(Dept::getParentId, ids)); res.addAll( - child.stream().filter(x -> x.getDeptType() == 1).map(x -> x.getDeptId()).collect(Collectors.toList())); + child.stream().filter(x -> x.getDeptType() == 1).map(x -> x.getDeptId()).collect(Collectors.toList())); res.addAll(listClassByDept( - child.stream().filter(x -> x.getDeptType() != 1).map(x -> x.getDeptId()).collect(Collectors.toList()))); + child.stream().filter(x -> x.getDeptType() != 1).map(x -> x.getDeptId()).collect(Collectors.toList()))); } return res; } @@ -752,12 +725,12 @@ public class DeptServiceImpl extends ServiceImpl implements ID @Override public Dept getDeptBySchoolAndName(List deptId, String deptName) { List deptList = list(Wrappers.lambdaQuery(new Dept()).eq(Dept::getDeptName, deptName).in(Dept - ::getParentId, deptId).eq(Dept::getDeptType, 6)); + ::getParentId, deptId).eq(Dept::getDeptType, 6)); if (CollUtil.isEmpty(deptList)) { List child = list(Wrappers.lambdaQuery(new Dept()).in(Dept::getParentId, deptId)); if (CollUtil.isNotEmpty(child)) { return getDeptBySchoolAndName(child.stream().map(x -> x.getDeptId()).collect(Collectors.toList()), - deptName); + deptName); } return null; } else { @@ -851,67 +824,56 @@ public class DeptServiceImpl extends ServiceImpl implements ID public Dept getClassBySchoolAndWx(Long schoolId, Long classWxId) { // 查询到学校年级层 List campusList = list( - Wrappers.lambdaQuery().eq(Dept::getParentId, schoolId).eq(Dept::getDeptType, 4)); + Wrappers.lambdaQuery().eq(Dept::getParentId, schoolId).eq(Dept::getDeptType, 4)); List sectionList = - list(Wrappers.lambdaQuery() - .in(Dept::getParentId, campusList.stream().map(x -> x.getDeptId()).collect(Collectors.toList())) - .eq(Dept::getDeptType, 3)); + list(Wrappers.lambdaQuery() + .in(Dept::getParentId, campusList.stream().map(x -> x.getDeptId()).collect(Collectors.toList())) + .eq(Dept::getDeptType, 3)); List gradeList = - list(Wrappers.lambdaQuery() - .in(Dept::getParentId, sectionList.stream().map(x -> x.getDeptId()).collect(Collectors.toList())) - .eq(Dept::getDeptType, 2)); + list(Wrappers.lambdaQuery() + .in(Dept::getParentId, sectionList.stream().map(x -> x.getDeptId()).collect(Collectors.toList())) + .eq(Dept::getDeptType, 2)); return getOne(Wrappers.lambdaQuery() - .in(Dept::getParentId, gradeList.stream().map(x -> x.getDeptId()).collect(Collectors.toList())) - .eq(Dept::getWxId, - classWxId)); + .in(Dept::getParentId, gradeList.stream().map(x -> x.getDeptId()).collect(Collectors.toList())) + .eq(Dept::getWxId, + classWxId)); } @Override - public void syncQywxDept(Long schoolId) { - // 查询所有和企业微信关联的学校信息 - List schoolList = new ArrayList<>(); - if (Objects.isNull(schoolId)) { - // 查询所有绑定了企业微信的学校信息 - schoolList = list(Wrappers.lambdaQuery() - .eq(Dept::getDeptType, DeptTypeEnum.SCHOOL_TYPE.getValue()) + public void syncQywxDept() { + // 绑定了企业微信的学校 + log.info("开始同步企业微信部门"); + List schoolList = list(Wrappers.lambdaQuery() + .eq(Dept::getDeptType, 0) .like(Dept::getSchoolType, Dept.TYPE_QYWX)); - } else { - Dept school = getById(schoolId); - schoolList.add(school); - } - if (CollUtil.isNotEmpty(schoolList)) { for (Dept school : schoolList) { - EduApp contactApp = commonService.getAppContactUsedBySelect(school.getDeptId()); + EduApp contactApp = commonService.getAppByCodeAndSchool(AppConstant.CONTACT, null, school.getDeptId()); // 获取办公部门 log.info("[{}]开始同步办公部门", school.getDeptName()); List deptList = wxUtil - .listSimpleDept(wxUtil.getAccessToken(contactApp.getWxCorpId(), contactApp.getWxSecret()), - school.getWxId()); + .listDept(wxUtil.getAccessToken(contactApp.getWxCorpId(), contactApp.getWxSecret()), + school.getWxId()); // 保存办公部门 Map idCache = new HashMap<>(); idCache.put(1L, school.getDeptId()); for (Map map : deptList) { Long wxId = Long.valueOf(map.get("id").toString()); Long parentWxId = Long.valueOf(map.get("parentid").toString()); -// String deptName = map.get("name").toString(); + String deptName = map.get("name").toString(); Integer order = Integer.valueOf(map.get("order").toString()); Long parentId = idCache.get(parentWxId); if (wxId == 1) { continue; } - // 获取单个部门详情 - JSONObject deptInfo = wxUtil.getDeptInfo( - wxUtil.getAccessToken(contactApp.getWxCorpId(), contactApp.getWxSecret()), String.valueOf(wxId)); - String deptName = deptInfo.get("name").toString(); Dept exist = getOne(Wrappers.lambdaQuery().eq(Dept::getParentId, parentId) - .eq(Dept::getWxId, wxId).eq(Dept::getDeptType, 6)); + .eq(Dept::getWxId, wxId).eq(Dept::getDeptType, 6)); if (exist == null) { exist = new Dept(); } exist.setParentId(parentId); exist.setDeptName(deptName); - exist.setDeptType(DeptTypeEnum.DEPARTMENT_TYPE.getValue()); + exist.setDeptType(6); exist.setAreaId(school.getAreaId()); exist.setWxId(wxId); exist.setParentWxId(parentWxId); @@ -927,22 +889,23 @@ public class DeptServiceImpl extends ServiceImpl implements ID @Override public void dealNoParentDept() { List schools = list(Wrappers.lambdaQuery(new Dept()) - .eq(Dept::getDeptType, DeptTypeEnum.SCHOOL_TYPE.getValue())); + .eq(Dept::getDeptType, 0)); if (CollUtil.isNotEmpty(schools)) { List schoolIds = schools.stream().map(Dept::getDeptId).collect(Collectors.toList()); schoolIds.forEach(schoolId -> { List depts = list(Wrappers.lambdaQuery(new Dept()) - .eq(Dept::getVisible, DeptVisibleTypeEnum.INVISIBLE_TYPE.getValue()) - .eq(Dept::getParentId, schoolId) - .ne(Dept::getDeptType, DeptTypeEnum.COMPANY_TYPE.getValue())); + .eq(Dept::getVisible, 1) + .eq(Dept::getParentId, schoolId) + .ne(Dept::getDeptType, 4) + .ne(Dept::getDeptType, 5)); for (Dept dept : depts) { if (StrUtil.isNotBlank(dept.getCorpId())) { Dept parent = getOne(Wrappers.lambdaQuery(new Dept()) - .eq(Dept::getCorpId, dept.getCorpId()) - .eq(Dept::getWxId, dept.getParentWxId())); + .eq(Dept::getCorpId, dept.getCorpId()) + .eq(Dept::getWxId, dept.getParentWxId())); if (parent != null) { dept.setParentId(parent.getDeptId()); - dept.setVisible(DeptVisibleTypeEnum.VISIBLE_TYPE.getValue()); + dept.setVisible(0); updateById(dept); } } @@ -972,25 +935,25 @@ public class DeptServiceImpl extends ServiceImpl implements ID * * @param agentSchoolSelectPageDTO 查询代理商管理的学校列表数据请求类 * @return com.yida.data.common.core.common.ResultBean> + * com.yida.data.system.vo.AgentSchoolVO>> * @author ZYJ * @date 2021/9/27 17:05 */ @Override public ResultBean> listAgentSchoolPage( - AgentSchoolSelectPageDTO agentSchoolSelectPageDTO) { + AgentSchoolSelectPageDTO agentSchoolSelectPageDTO) { CurrentUser currentUser = FebsUtil.getCurrentUser(); // 查询下级部门信息 List childIdList = findListByParent(Collections.singletonList(currentUser.getDeptId()), 0) - .stream().map(Dept::getDeptId).collect(Collectors.toList()); + .stream().map(Dept::getDeptId).collect(Collectors.toList()); // 代理商管理员查询当前代理商所有数据 if (RoleEnum.ROLE_AGENT_ADMIN.equals(RoleUtil.getMaxRole(currentUser))) { childIdList.add(currentUser.getDeptId()); } // 具有创建学校列表的数据 自己创建的学校+当前登陆账号部门以下的学校 IPage iPage = this.baseMapper - .listAgentSchoolPage(agentSchoolSelectPageDTO.toPage(), agentSchoolSelectPageDTO, - childIdList, currentUser); + .listAgentSchoolPage(agentSchoolSelectPageDTO.toPage(), agentSchoolSelectPageDTO, + childIdList, currentUser); return ResultBean.buildSuccess(iPage); } @@ -1027,7 +990,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID } // 查询学校已有微信支付配置信息 EduPayWxConfig payWxConfig = this.eduPayWxConfigService.getOne(Wrappers.lambdaQuery(new EduPayWxConfig()) - .eq(EduPayWxConfig::getSchoolId, dept.getDeptId())); + .eq(EduPayWxConfig::getSchoolId, dept.getDeptId())); if (Objects.isNull(payWxConfig)) { payWxConfig = new EduPayWxConfig(); } @@ -1055,7 +1018,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID BeanUtils.copyProperties(dept, agentSchoolDetailVO); // 查询支付配置信息 EduPayWxConfig payWxConfig = this.eduPayWxConfigService.getOne(Wrappers.lambdaQuery(new EduPayWxConfig()) - .eq(EduPayWxConfig::getSchoolId, dept.getDeptId())); + .eq(EduPayWxConfig::getSchoolId, dept.getDeptId())); if (Objects.nonNull(payWxConfig)) { // 配置支付数据 agentSchoolDetailVO.setWxPublicId(payWxConfig.getWxPublicId()); @@ -1087,7 +1050,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID // 修改学校状态 this.deptSchoolRelateMapper.update(deptSchoolRelate, - Wrappers.lambdaUpdate(new DeptSchoolRelate()).eq(DeptSchoolRelate::getSchoolId, schoolId)); + Wrappers.lambdaUpdate(new DeptSchoolRelate()).eq(DeptSchoolRelate::getSchoolId, schoolId)); // 修改相关登陆账号信息 SystemUser systemUser = new SystemUser(); systemUser.setUpdateDate(LocalDateTime.now()); @@ -1100,7 +1063,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID } // 修改学校相关账号状态 this.userService.update(systemUser, - Wrappers.lambdaUpdate(new SystemUser()).eq(SystemUser::getDeptId, schoolId)); + Wrappers.lambdaUpdate(new SystemUser()).eq(SystemUser::getDeptId, schoolId)); return ResultBean.buildSuccess(); } @@ -1171,8 +1134,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID deptSchoolInformationNature.setNature(integer); list.add(deptSchoolInformationNature); } - natureService.remove(Wrappers.query(new DeptSchoolInformationNature()).lambda() - .eq(DeptSchoolInformationNature::getInformationId, deptSchoolInformation.getId())); + natureService.remove(Wrappers.query(new DeptSchoolInformationNature()).lambda().eq(DeptSchoolInformationNature::getInformationId, deptSchoolInformation.getId())); natureService.saveBatch(list); } @@ -1184,11 +1146,11 @@ public class DeptServiceImpl extends ServiceImpl implements ID schoolLabel.setDeptSchoolId(deptSchoolInformation.getId()); schoolLabelList.add(schoolLabel); } - schoolLabelService.remove(Wrappers.query(new DeptSchoolLabel()).lambda() - .eq(DeptSchoolLabel::getDeptSchoolId, deptSchoolInformation.getId())); + schoolLabelService.remove(Wrappers.query(new DeptSchoolLabel()).lambda().eq(DeptSchoolLabel::getDeptSchoolId, deptSchoolInformation.getId())); schoolLabelService.saveBatch(schoolLabelList); } + String studentRange = information.getStudentRange(); List list = new ArrayList<>(); //分割招生范围 @@ -1205,8 +1167,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID range.setDeptSchoolId(deptSchoolInformation.getId()); list.add(range); } - rangeService.remove(Wrappers.query(new DeptSchoolStudentRange()).lambda() - .eq(DeptSchoolStudentRange::getDeptSchoolId, deptSchoolInformation.getId())); + rangeService.remove(Wrappers.query(new DeptSchoolStudentRange()).lambda().eq(DeptSchoolStudentRange::getDeptSchoolId, deptSchoolInformation.getId())); rangeService.saveBatch(list); } @@ -1214,16 +1175,15 @@ public class DeptServiceImpl extends ServiceImpl implements ID @Override public Page findSchoolListByDeptId(Long deptId, String schoolName, Integer schoolType, - Integer natureType, String address, String tag, Page page, - Integer schoolOwnership) { + Integer natureType, String address, String tag, Page page, + Integer schoolOwnership) { - return informationService - .findSchoolListByDeptId(deptId, schoolName, schoolType, natureType, address, tag, page, schoolOwnership); + return informationService.findSchoolListByDeptId(deptId, schoolName, schoolType, natureType, address, tag, page, schoolOwnership); } @Override - public Page findSchoolPageList(String schoolName, List schoolType, List natureType, - Page page, String tag, Long deptId, List schoolOwnership) { + public Page findSchoolPageList(String schoolName, List schoolType, List natureType, Page page, String tag, Long deptId, List schoolOwnership) { + String[] tags = null; if (ObjectUtil.isNotEmpty(tag)) { @@ -1285,23 +1245,17 @@ public class DeptServiceImpl extends ServiceImpl implements ID } @Override - public List findParentDeptByChild(List deptIds) { - List childList = list(Wrappers.lambdaQuery(new Dept()).in(Dept::getDeptId, deptIds)); - List allDeptList = list(); - List parentDeptList = new ArrayList<>(); - return getParentDeptList(allDeptList, childList, parentDeptList); - } - - - private List getParentDeptList(List depts, List childrenDeptList, List parentDeptList) { - if (CollectionUtils.isEmpty(childrenDeptList)) { - return parentDeptList; - } - parentDeptList.addAll(childrenDeptList); - List parentIds = childrenDeptList.stream().map(Dept::getParentId).filter(Objects::nonNull) - .collect(Collectors.toList()); - //查询父级部门 - List parentDepts = depts.stream().filter(x -> parentIds.contains(x.getDeptId())).collect(Collectors.toList()); - return getParentDeptList(depts, parentDepts, parentDeptList); + public List listPaySchool(Long deptId, String schoolName) { + List list = deptSchoolInformationMapper.listPaySchool(deptId, schoolName); +// // 返回数据 +// List returnList = new ArrayList<>(); +// // 判断是否包含缴费信息 +// list.forEach(schoolInformationDTO -> { +// EduDeptPayType deptPayType = commonService.getDeptPayWay(schoolInformationDTO.getSchoolId()); +// if (Objects.nonNull(deptPayType)) { +// returnList.add(schoolInformationDTO); +// } +// }); + return list; } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/MenuServiceImpl.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/MenuServiceImpl.java index 3d26174..fad8e00 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/MenuServiceImpl.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/MenuServiceImpl.java @@ -54,25 +54,7 @@ public class MenuServiceImpl extends ServiceImpl implements IM @Override public List findUserRealMenus(String username, Integer selectType) { checkUser(username); - List permissions = baseMapper.findUserPermissions(username); - List userRealMenus = baseMapper.findUserMenus(username, selectType); - permissions.addAll(userRealMenus.stream().filter(x -> x.getUserMenuType() == 0).collect(Collectors.toList())); - Iterator iterator = permissions.iterator(); - while (iterator.hasNext()) { - Menu next = iterator.next(); - for (Menu realMenu : userRealMenus) { - if (realMenu.getUserMenuType() == 1 && realMenu.getMenuId().equals(next.getMenuId())) { - iterator.remove(); - } - } - } - if (Objects.nonNull(selectType)) { - permissions = permissions.stream().filter(x -> x.getType().equals(selectType.toString())) - .peek(x->x.setUserMenuType(null)) - .distinct() - .collect(Collectors.toList()); - } - return permissions; + return this.baseMapper.findUserRealMenus(username, selectType); } @Override diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/QywxCallbackServiceImpl.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/QywxCallbackServiceImpl.java index d9e669e..f589f85 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/QywxCallbackServiceImpl.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/QywxCallbackServiceImpl.java @@ -1,68 +1,67 @@ package com.yida.data.system.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.yida.data.common.core.entity.constant.AppConstant; +import com.yida.data.common.core.entity.constant.QywxConstant; import com.yida.data.common.core.entity.system.Dept; -import com.yida.data.common.core.entity.system.EduQywxServiceProvider; -import com.yida.data.common.core.entity.system.EduQywxServiceProviderSchool; -import com.yida.data.common.core.entity.system.enums.DeptTypeEnum; -import com.yida.data.common.core.enums.QywxCallbackTypeEnum; -import com.yida.data.rabbit.constant.RabbitConstant; -import com.yida.data.rabbit.util.RabbitUtil; +import com.yida.data.common.core.entity.system.EduApp; +import com.yida.data.common.core.utils.WxUtil; +import com.yida.data.common.service.CommonService; import com.yida.data.system.aes.WXBizMsgCrypt; -import com.yida.data.system.dto.QywxCallbackHandleDTO; -import com.yida.data.system.service.*; +import com.yida.data.system.service.IDeptService; +import com.yida.data.system.service.IUserService; +import com.yida.data.system.service.QywxCallbackService; +import com.yida.data.system.service.QywxService; +import com.yida.data.user.feign.RemoteStudentService; +import com.yida.data.user.feign.RemoteTeacherService; import io.seata.spring.annotation.GlobalTransactional; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.w3c.dom.Document; import org.w3c.dom.Element; +import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.StringReader; -/** - * 企业微信回调类 - * - * @author ZYJ - * @date 2023/10/27 17:15 - */ @Slf4j @Service @RequiredArgsConstructor public class QywxCallbackServiceImpl implements QywxCallbackService { private final IDeptService deptService; - private final EduQywxServiceProviderService eduQywxServiceProviderService; - private final EduQywxServiceProviderSchoolService eduQywxServiceProviderSchoolService; + private final IUserService userService; + private final QywxService qywxService; - private final RabbitUtil rabbitUtil; + private final WxUtil wxUtil; + private final CommonService commonService; + private final RemoteTeacherService remoteTeacherService; + private final RemoteStudentService remoteStudentService; @Override public String get(String corpId, String msgSignature, String timestamp, String nonce, String echostr) { Dept school = - deptService.getOne(Wrappers.lambdaQuery(new Dept()).eq(Dept::getCorpId, corpId).eq(Dept::getDeptType, DeptTypeEnum.SCHOOL_TYPE.getValue())); - log.info("部门验证url回调params:{},{},{},{},{}", corpId, msgSignature, timestamp, nonce, echostr); - WXBizMsgCrypt wxCpt = new WXBizMsgCrypt(school.getWxCallToken(), school.getWxAesKey(), + deptService.getOne(Wrappers.lambdaQuery(new Dept()).eq(Dept::getCorpId, corpId).eq(Dept::getDeptType, 0)); + log.info("params:{},{},{},{},{}", corpId, msgSignature, timestamp, nonce, echostr); + WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(school.getWxCallToken(), school.getWxAesKey(), school.getCorpId()); - String result = wxCpt.VerifyURL(msgSignature, timestamp, nonce, echostr); - log.info("部门验证url回调call valid result:{}", result); + String result = wxcpt.VerifyURL(msgSignature, timestamp, nonce, echostr); + log.info("call valid result:{}", result); return result; } @Override @GlobalTransactional - public String post(String corpId, String msgSignature, String timestamp, String nonce, String body) { - Dept school = deptService.getOne(Wrappers.lambdaQuery(new Dept()) - .eq(Dept::getCorpId, corpId) - .eq(Dept::getDeptType, DeptTypeEnum.SCHOOL_TYPE.getValue()) - ); - log.info("部门回调params:{},{},{},{},{}", corpId, msgSignature, timestamp, nonce, body); - WXBizMsgCrypt wxCpt = new WXBizMsgCrypt(school.getWxCallToken(), school.getWxAesKey(), + public void post(String corpId, String msgSignature, String timestamp, String nonce, String body) { + Dept school = + deptService.getOne(Wrappers.lambdaQuery(new Dept()).eq(Dept::getCorpId, corpId).eq(Dept::getDeptType, 0)); + log.info("params:{},{},{},{},{}", corpId, msgSignature, timestamp, nonce, body); + WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(school.getWxCallToken(), school.getWxAesKey(), school.getCorpId()); - String msg = wxCpt.DecryptMsg(msgSignature, timestamp, nonce, body); + String msg = wxcpt.DecryptMsg(msgSignature, timestamp, nonce, body); log.info("msg:{}", msg); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); StringReader sr = new StringReader(msg); @@ -74,155 +73,135 @@ public class QywxCallbackServiceImpl implements QywxCallbackService { document = db.parse(is); } catch (Exception e) { log.error("解析微信回调信息失败,msg:{}", e.getMessage()); - return "fail"; - } - // 发送消息给rabbitmq - rabbitUtil.convertAndSendMsg(RabbitConstant.QYWX_HANDLE_EXCHANGE, RabbitConstant.QYWX_HANDLE_KEY, - QywxCallbackHandleDTO.builder() - .root(document.getDocumentElement()) - .corpId(corpId) - .school(school) - .qywxCallbackTypeEnum(QywxCallbackTypeEnum.POST) - .build() - ); - return "success"; - } - - @Override - public String getNormal(String corpId, String msgSignature, String timestamp, String nonce, String echostr) { - EduQywxServiceProvider serviceProvider = - eduQywxServiceProviderService.getOne(Wrappers.lambdaQuery(new EduQywxServiceProvider()) - .eq(EduQywxServiceProvider::getCorpId, corpId)); - log.info("服务商验证url回调params:{},{},{},{},{}", corpId, msgSignature, timestamp, nonce, echostr); - WXBizMsgCrypt wxCpt = new WXBizMsgCrypt(serviceProvider.getWxCallToken(), serviceProvider.getWxAesKey(), - serviceProvider.getCorpId()); - String result = wxCpt.VerifyURL(msgSignature, timestamp, nonce, echostr, false); - log.info("服务商验证url回调call valid result:{}", result); - return result; - } - - @Override - public String postNormal(String corpId, String msgSignature, String timestamp, String nonce, String body) { - EduQywxServiceProvider serviceProvider = - eduQywxServiceProviderService.getOne(Wrappers.lambdaQuery(new EduQywxServiceProvider()) - .eq(EduQywxServiceProvider::getCorpId, corpId)); - log.info("服务商代开发应用模板接口回调params:{},{},{},{},{}", corpId, msgSignature, timestamp, nonce, body); - WXBizMsgCrypt wxCpt = new WXBizMsgCrypt(serviceProvider.getWxCallToken(), serviceProvider.getWxAesKey(), - serviceProvider.getCorpId()); - String msg = wxCpt.DecryptMsg(msgSignature, timestamp, nonce, body, false); - log.info("msg:{}", msg); - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - StringReader sr = new StringReader(msg); - InputSource is = new InputSource(sr); - DocumentBuilder db = null; - Document document = null; - try { - db = dbf.newDocumentBuilder(); - document = db.parse(is); - } catch (Exception e) { - log.error("服务商代开发应用模板接口回调信息失败,msg:{}", e.getMessage()); - return "fail"; - } - - // 发送消息给rabbitmq - rabbitUtil.convertAndSendMsg(RabbitConstant.QYWX_HANDLE_EXCHANGE, RabbitConstant.QYWX_HANDLE_KEY, - QywxCallbackHandleDTO.builder() - .root(document.getDocumentElement()) - .eduQywxServiceProvider(serviceProvider) - .qywxCallbackTypeEnum(QywxCallbackTypeEnum.POST_NORMAL) - .build() - ); - return "success"; - } - - @Override - public String getNormalCustomer(String providerCorpId, String corpId, String msgSignature, String timestamp, - String nonce, String echostr) { - Dept school = deptService.getOne(Wrappers.lambdaQuery(new Dept()).eq(Dept::getCorpId, corpId).eq(Dept::getDeptType, 0)); - log.info("服务商代开发应用客户验证url回调params:{},{},{},{},{},{}", providerCorpId, corpId, msgSignature, timestamp, nonce, echostr); - - EduQywxServiceProviderSchool providerSchool = eduQywxServiceProviderSchoolService.getOne(Wrappers.lambdaQuery(new EduQywxServiceProviderSchool()) - .eq(EduQywxServiceProviderSchool::getProviderCorpId, providerCorpId) - .eq(EduQywxServiceProviderSchool::getDeptOriginalCorpId, corpId)); - - WXBizMsgCrypt wxCpt = new WXBizMsgCrypt(school.getWxCallToken(), school.getWxAesKey(), - providerSchool.getDeptEncryptionCorpId()); - String result = wxCpt.VerifyURL(msgSignature, timestamp, nonce, echostr); - log.info("服务商代开发应用客户验证url回调call valid result:{}", result); - return result; - } - - @Override - public String postNormalCustomer(String providerCorpId, String corpId, String msgSignature, String timestamp, String nonce, String body) { - Dept school = - deptService.getOne(Wrappers.lambdaQuery(new Dept()).eq(Dept::getCorpId, corpId).eq(Dept::getDeptType, DeptTypeEnum.SCHOOL_TYPE.getValue())); - log.info("服务商代开发应用客户接口回调params: {},{},{},{},{},{}", providerCorpId, corpId, msgSignature, timestamp, nonce, body); - EduQywxServiceProviderSchool providerSchool = eduQywxServiceProviderSchoolService.getOne(Wrappers.lambdaQuery(new EduQywxServiceProviderSchool()) - .eq(EduQywxServiceProviderSchool::getProviderCorpId, providerCorpId) - .eq(EduQywxServiceProviderSchool::getDeptOriginalCorpId, corpId)); - - WXBizMsgCrypt wxCpt = new WXBizMsgCrypt(school.getWxCallToken(), school.getWxAesKey(), - providerSchool.getDeptEncryptionCorpId()); - String msg = wxCpt.DecryptMsg(msgSignature, timestamp, nonce, body); - log.info("msg:{}", msg); - return "success"; - } - - @Override - public String getEvent(String providerCorpId, String corpId, String msgSignature, String timestamp, String nonce, String echostr) { - Dept school = deptService.getOne(Wrappers.lambdaQuery(new Dept()).eq(Dept::getCorpId, corpId).eq(Dept::getDeptType, DeptTypeEnum.SCHOOL_TYPE.getValue())); - log.info("服务商代开发家校沟通验证url回调params:{},{},{},{},{},{}", providerCorpId, corpId, msgSignature, timestamp, nonce, echostr); - - EduQywxServiceProviderSchool providerSchool = eduQywxServiceProviderSchoolService.getOne(Wrappers.lambdaQuery(new EduQywxServiceProviderSchool()) - .eq(EduQywxServiceProviderSchool::getProviderCorpId, providerCorpId) - .eq(EduQywxServiceProviderSchool::getDeptOriginalCorpId, corpId)); - - WXBizMsgCrypt wxCpt = new WXBizMsgCrypt(school.getWxCallToken(), school.getWxAesKey(), - providerSchool.getDeptEncryptionCorpId()); - String result = wxCpt.VerifyURL(msgSignature, timestamp, nonce, echostr); - log.info("服务商代开发应用家校沟通验证url回调call valid result:{}", result); - return result; - } - - @Override - public String postEvent(String providerCorpId, String corpId, String msgSignature, String timestamp, String nonce, String body) { - Dept school = deptService.getOne(Wrappers.lambdaQuery(new Dept()).eq(Dept::getCorpId, corpId).eq(Dept::getDeptType, DeptTypeEnum.SCHOOL_TYPE.getValue())); - log.info("服务商代开发家校沟通回调params: {},{},{},{},{},{}", providerCorpId, corpId, msgSignature, timestamp, nonce, body); - EduQywxServiceProviderSchool providerSchool = eduQywxServiceProviderSchoolService.getOne(Wrappers.lambdaQuery(new EduQywxServiceProviderSchool()) - .eq(EduQywxServiceProviderSchool::getProviderCorpId, providerCorpId) - .eq(EduQywxServiceProviderSchool::getDeptOriginalCorpId, corpId)); - - WXBizMsgCrypt wxCpt = new WXBizMsgCrypt(school.getWxCallToken(), school.getWxAesKey(), - providerSchool.getDeptEncryptionCorpId()); - String msg = wxCpt.DecryptMsg(msgSignature, timestamp, nonce, body); - log.info("msg:{}", msg); - - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - StringReader sr = new StringReader(msg); - InputSource is = new InputSource(sr); - DocumentBuilder db = null; - Document document = null; - try { - db = dbf.newDocumentBuilder(); - document = db.parse(is); - } catch (Exception e) { - log.error("解析服务商代开发家校沟通回调信息失败,msg:{}", e.getMessage()); - return "false"; } Element root = document.getDocumentElement(); - if (root.getElementsByTagName("Event").getLength() == 0) { - log.info("暂不处理当前回调数据"); - return "success"; + + NodeList nodelist1 = root.getElementsByTagName("ChangeType"); + String changeType = nodelist1.item(0).getTextContent(); + + NodeList nodelist2 = root.getElementsByTagName("Event"); + String event = nodelist2.item(0).getTextContent(); + + if (QywxConstant.SCHOOL_CONTACT_EVENT.equals(event)) { + + EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT_SCHOOL, null, school.getDeptId()); + String id = root.getElementsByTagName("Id").item(0).getTextContent(); + + switch (changeType) { + case QywxConstant.SCHOOL_DEPT_CREATE_TYPE: + qywxService.createSchoolDept(corpId, wxUtil.getAccessToken(app.getWxCorpId(), + app.getWxSecret()), Long.valueOf(id), school); + break; + case QywxConstant.SCHOOL_DEPT_UPDATE_TYPE: + qywxService.updateSchoolDept(wxUtil.getAccessToken(app.getWxCorpId(), + app.getWxSecret()), Long.valueOf(id), school); + break; + case QywxConstant.SCHOOL_DEPT_DELETE_TYPE: + qywxService.deleteSchoolDept(Long.valueOf(id), school); + break; + case QywxConstant.STUDENT_CREATE_TYPE: + case QywxConstant.STUDENT_UPDATE_TYPE: + qywxService.changeStudent(wxUtil.getAccessToken(app.getWxCorpId(), + app.getWxSecret()), id, school); + break; + case QywxConstant.STUDENT_DELETE_TYPE: + qywxService.deleteStudent(id, school.getDeptId()); + break; + case QywxConstant.PARENT_CREATE_TYPE: + // 新增家长可能是创建学生时创建,等待2s确保学生创建完成 + try { + Thread.sleep(2000); + } catch (Exception e) { + + } + case QywxConstant.PARENT_UPDATE_TYPE: + qywxService.updateParent(wxUtil.getAccessToken(app.getWxCorpId(), + app.getWxSecret()), id, school.getDeptId()); + break; + case QywxConstant.PARENT_DELETE_TYPE: + qywxService.deleteParent(id, school.getDeptId()); + break; + case QywxConstant.PARENT_SUBSCRIBE_TYPE: + log.info("进入家长关注事件回调"); + // 调用家长关注发送通知方法 + qywxService.sendParentSubscribeMessage(id, school.getDeptId()); + break; + case QywxConstant.PARENT_UNSUBSCRIBE_TYPE: + log.info("进入家长取消关注事件回调"); + break; + default: + break; + } + } + + if (QywxConstant.CONTACT_EVENT.equals(event)) { + String userid = null, phone = null, name = null, gender = null, avatar = null, department = null, + isLeader = null, mainDepartment = null, email = null; + if (root.getElementsByTagName("UserID").getLength() != 0) { + userid = root.getElementsByTagName("UserID").item(0).getTextContent(); + } + if (root.getElementsByTagName("Mobile").getLength() != 0) { + phone = root.getElementsByTagName("Mobile").item(0).getTextContent(); + } + if (root.getElementsByTagName("Name").getLength() != 0) { + name = root.getElementsByTagName("Name").item(0).getTextContent(); + } + if (root.getElementsByTagName("Gender").getLength() != 0) { + gender = root.getElementsByTagName("Gender").item(0).getTextContent(); + } + if (root.getElementsByTagName("Avatar").getLength() != 0) { + avatar = root.getElementsByTagName("Avatar").item(0).getTextContent(); + } + if (root.getElementsByTagName("Department").getLength() != 0) { + department = root.getElementsByTagName("Department").item(0).getTextContent(); + } + if (root.getElementsByTagName("IsLeaderInDept").getLength() != 0) { + isLeader = root.getElementsByTagName("IsLeaderInDept").item(0).getTextContent(); + } + if (root.getElementsByTagName("MainDepartment").getLength() != 0) { + mainDepartment = root.getElementsByTagName("MainDepartment").item(0).getTextContent(); + } + if (root.getElementsByTagName("Email").getLength() != 0) { + email = root.getElementsByTagName("Email").item(0).getTextContent(); + } + + + String deptId = null, deptName = null, deptParentId = null, order = null; + if (root.getElementsByTagName("Id").getLength() != 0) { + deptId = root.getElementsByTagName("Id").item(0).getTextContent(); + } + if (root.getElementsByTagName("Name").getLength() != 0) { + deptName = root.getElementsByTagName("Name").item(0).getTextContent(); + } + if (root.getElementsByTagName("ParentId").getLength() != 0) { + deptParentId = root.getElementsByTagName("ParentId").item(0).getTextContent(); + } + if (root.getElementsByTagName("Order").getLength() != 0) { + order = root.getElementsByTagName("Order").item(0).getTextContent(); + } + + switch (changeType) { + case QywxConstant.USER_CREATE_TYPE: + qywxService.createUser(name, userid, phone, email, gender, avatar, department, isLeader, + mainDepartment, school); + break; + case QywxConstant.USER_UPDATE_TYPE: + qywxService.updateUser(name, userid, phone, email, gender, avatar, department, isLeader, + mainDepartment, school); + break; + case QywxConstant.USER_DELETE_TYPE: + qywxService.deleteUser(userid, school.getDeptId()); + break; + case QywxConstant.DEPT_CREATE_TYPE: + qywxService.createDept(deptId, deptName, deptParentId, order, school); + break; + case QywxConstant.DEPT_UPDATE_TYPE: + qywxService.updateDept(deptId, deptName, deptParentId, school.getDeptId()); + break; + case QywxConstant.DEPT_DELETE_TYPE: + qywxService.deleteDept(deptId, school.getDeptId()); + break; + } } - // 发送消息给rabbitmq - rabbitUtil.convertAndSendMsg(RabbitConstant.QYWX_HANDLE_EXCHANGE, RabbitConstant.QYWX_HANDLE_KEY, - QywxCallbackHandleDTO.builder() - .root(root) - .school(school) - .providerSchool(providerSchool) - .qywxCallbackTypeEnum(QywxCallbackTypeEnum.POST_EVENT) - .build() - ); - return "success"; } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/QywxServiceImpl.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/QywxServiceImpl.java index 9a0cb35..700d239 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/QywxServiceImpl.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/QywxServiceImpl.java @@ -95,7 +95,7 @@ public class QywxServiceImpl implements QywxService { } EduApp app = eduAppMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, - schoolId).eq(EduApp::getCode, AppConstant.CONTACT_SCHOOL)); + schoolId).eq(EduApp::getName, AppConstant.CONTACT_SCHOOL)); List deptList = wxUtil.listSchoolDept(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), null); List camps = new ArrayList<>(); List section = new ArrayList<>(); @@ -113,7 +113,7 @@ public class QywxServiceImpl implements QywxService { dept.setDeptType(Integer.valueOf(map.get("type").toString())); dept.setDeptName(map.get("name").toString()); dept.setSchoolId(schoolId); - dept.setParentId(-schoolId); + dept.setParentId(schoolId); switch (dept.getDeptType()) { case 1: // 班级 @@ -164,8 +164,7 @@ public class QywxServiceImpl implements QywxService { wxIdAndDaHuaId.put(dept.getWxId(), dept.getDaHuaId()); } if (CollUtil.isNotEmpty(teacherList.get(dept.getWxId()))) { - remoteTeacherService.dealWxTeacherChange(schoolId, dept.getDeptId(), null, null, null, - teacherList.get(dept.getWxId()), dept.getWxId()); + remoteTeacherService.dealWxTeacherChange(schoolId, dept.getDeptId(), null, null, null, teacherList.get(dept.getWxId())); } } for (EduUserDept dept : section) { @@ -182,8 +181,7 @@ public class QywxServiceImpl implements QywxService { for (EduUserDept dept : section) { wxIdAndId.put(dept.getWxId(), dept.getDeptId()); if (CollUtil.isNotEmpty(teacherList.get(dept.getWxId()))) { - remoteTeacherService.dealWxTeacherChange(schoolId, dept.getParentId(), dept.getDeptId(), null, null, - teacherList.get(dept.getWxId()), dept.getWxId()); + remoteTeacherService.dealWxTeacherChange(schoolId, dept.getParentId(), dept.getDeptId(), null, null, teacherList.get(dept.getWxId())); } } for (EduUserDept dept : grade) { @@ -206,7 +204,7 @@ public class QywxServiceImpl implements QywxService { dept.getParentId(), dept.getDeptId(), null, - teacherList.get(dept.getWxId()), dept.getWxId()); + teacherList.get(dept.getWxId())); } } for (EduUserDept dept : clazz) { @@ -226,7 +224,7 @@ public class QywxServiceImpl implements QywxService { deptParent.get(dept.getParentId()), dept.getParentId(), dept.getDeptId(), - teacherList.get(dept.getWxId()), dept.getWxId()); + teacherList.get(dept.getWxId())); } } } @@ -356,7 +354,7 @@ public class QywxServiceImpl implements QywxService { public void initUser(Long schoolId, CurrentUser currentUser) { Dept school = deptService.getById(schoolId); EduApp app = eduAppMapper.selectOne(Wrappers.lambdaQuery(new EduApp()).eq(EduApp::getDeptId, - schoolId).eq(EduApp::getCode, AppConstant.CONTACT_SCHOOL)); + schoolId).eq(EduApp::getName, AppConstant.CONTACT_SCHOOL)); JSONArray student = wxUtil.getStudentList(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), 1L); int size = 2; @@ -491,10 +489,8 @@ public class QywxServiceImpl implements QywxService { List saveDeptList = new ArrayList<>(); List deptList = wxUtil.listSchoolDept(accessToken, deptWxId); for (Map map : deptList) { - // 查询的家校部门数据的部门id - Long wxDeptId = Long.valueOf(map.get("id").toString()); - EduUserDept dept = remoteUserDeptService.getUserDeptByDeptAndWx( - Collections.singletonList(-school.getDeptId()), wxDeptId).getData(); + EduUserDept dept = remoteUserDeptService.getUserDeptByDeptAndWx(Collections.singletonList(-school.getDeptId()), + Long.valueOf(map.get("id").toString())).getData(); dept.setDeptName((String) map.get("name")); if (ObjectUtil.isNotNull(map.get("order"))) { dept.setOrderNum((Integer) map.get("order")); @@ -509,7 +505,7 @@ public class QywxServiceImpl implements QywxService { classId = dept.getDeptId(); gradeId = dept.getParentId(); // 查询学段信息 - EduUserDept section = remoteUserDeptService.getParentByDeptId(gradeId).getData(); + EduUserDept section = this.remoteUserDeptService.getParentByDeptId(gradeId).getData(); sectionId = section.getDeptId(); campusId = section.getParentId(); break; @@ -517,7 +513,7 @@ public class QywxServiceImpl implements QywxService { // 年级 gradeId = dept.getDeptId(); sectionId = dept.getParentId(); - campusId = remoteUserDeptService.getByDeptId(sectionId).getData().getParentId(); + campusId = this.remoteUserDeptService.getByDeptId(sectionId).getData().getParentId(); break; case 3: // 学段 @@ -529,18 +525,13 @@ public class QywxServiceImpl implements QywxService { campusId = dept.getDeptId(); break; default: - log.error("家校部门类型错误, 部门信息:{}", dept); + log.error("家校部门类型错误: {}", dept.getDeptType()); break; } - // 仅处理当前部门负责人 - if (deptWxId.equals(wxDeptId)) { - // 获取老师列表 - List teacherList = (List) map.get("department_admins"); - log.info("teachers:{},dept:{}", teacherList, dept); - if (CollUtil.isNotEmpty(teacherList)) { - remoteTeacherService.dealWxTeacherChange(school.getDeptId(), campusId, sectionId, gradeId, classId, teacherList, deptWxId); - } - } + // 获取老师列表 + List teacherList = (List) map.get("department_admins"); + log.info("teachers:{},dept:{}", teacherList, dept); + remoteTeacherService.dealWxTeacherChange(school.getDeptId(), campusId, sectionId, gradeId, classId, teacherList); saveDeptList.add(dept); // 更新大华部门 if (school.getSchoolType().contains(Dept.TYPE_DAHUA)) { @@ -548,15 +539,14 @@ public class QywxServiceImpl implements QywxService { if (UserDeptTypeEnum.CAMPUS_TYPE.getValue().equals(dept.getDeptType())) { // 学区的上级大华id是学校大华id parentDaHuaId = school.getDahuaId(); - } else { - EduUserDept parent = remoteUserDeptService.getByDeptId(dept.getParentId()).getData(); + } else { + EduUserDept parent = this.remoteUserDeptService.getByDeptId(dept.getParentId()).getData(); parentDaHuaId = parent.getDaHuaId(); } DaHuaUtil.updateDept(dept.getDaHuaId(), parentDaHuaId, dept.getDeptName()); } } - remoteUserDeptService.updateBatchUserDept(saveDeptList); - log.info("修改家校部门完成"); + this.remoteUserDeptService.updateBatchUserDept(saveDeptList); } /** @@ -569,7 +559,7 @@ public class QywxServiceImpl implements QywxService { log.info("params:{},{},{}", deptWxId, -school.getDeptId(), userDept); if (userDept != null) { // 未在其他删除回调事件中被删除 - remoteUserDeptService.deleteUserDeptRecur( + this.remoteUserDeptService.deleteUserDeptRecur( DeleteUserDeptDTO.builder() .deptIdList(Collections.singletonList(userDept.getDeptId())) .school(school) @@ -602,20 +592,14 @@ public class QywxServiceImpl implements QywxService { */ @Override public void updateDept(String deptId, String deptName, String parentId, Long schoolId) { - Dept dept = deptService.getSysDeptByDeptAndWx(Collections.singletonList(schoolId), Long.valueOf(deptId)); + Dept dept = deptService.getSysDeptByDeptAndWx(Arrays.asList(schoolId), Long.valueOf(deptId)); dept.setDeptName(deptName); // 部门类型 dept.setDeptType(DeptTypeEnum.DEPARTMENT_TYPE.getValue()); dept.setWxId(Long.valueOf(deptId)); - if (StrUtil.isNotBlank(parentId)) { - Dept parent; - Long parentWxId = Long.valueOf(parentId); - if (parentWxId == 1L) { - parent = deptService.getById(schoolId); - } else { - parent = deptService.getSysDeptByDeptAndWx(Collections.singletonList(schoolId), parentWxId); - } - dept.setParentWxId(parentWxId); + if (parentId != null) { + Dept parent = deptService.getSysDeptByDeptAndWx(Arrays.asList(schoolId), Long.valueOf(parentId)); + dept.setParentWxId(Long.valueOf(parentId)); dept.setParentId(parent.getDeptId()); dept.setAreaId(parent.getAreaId()); } @@ -685,7 +669,7 @@ public class QywxServiceImpl implements QywxService { log.info("学生所属部门,student:{},deptId:{},wxId:{}", student, Objects.requireNonNull(dept).getDeptId(), deptWxId); EduStudent eduStudent = new EduStudent(); -// eduStudent.setType(0); + eduStudent.setType(0); eduStudent.setStuName(student.get("name").toString()); // 班级信息 eduStudent.setClassId(dept.getDeptId()); @@ -825,88 +809,6 @@ public class QywxServiceImpl implements QywxService { remoteTeacherService.saveStaffBySchoolAndWx(eduStaff); } -// /** -// * 响应更新企业用户事件 -// */ -// @Override -// public void updateUser(String name, String wxId, String phone, String email, -// String gender, String avatar, String department, String isLeader, -// String mainDepartment, Dept school) { -// EduStaff eduStaff = new EduStaff(); -// if (StrUtil.isNotBlank(phone)) { -// SystemUser user = userService.findByName(phone); -// if (user == null) { -// user = new SystemUser(); -// user.setAvatar(avatar); -// user.setMobile(phone); -// user.setEmail(email); -// user.setUsername(StrUtil.isNotBlank(phone) ? phone : email); -// user.setNickname(name); -// user.setDeptId(school.getDeptId()); -// user.setStatus("1"); -// user.setSex("1".equals(gender) ? "0" : "2".equals(gender) ? "1" : "2"); -// user.setUserOrigin(0); -// user.setTeacherWxId(wxId); -// user.setUserType(1); -// userService.createUser(user); -// eduStaff.setYidaAppUserId(user.getYidaAppUserId()); -// } -// eduStaff.setSysUserId(user.getUserId()); -// } else { -// SystemUser user = -// userService.getOne(Wrappers.lambdaQuery(new SystemUser()).eq(SystemUser::getTeacherWxId -// , wxId).eq(SystemUser::getDeptId, school.getDeptId())); -// if (user == null) { -// user = new SystemUser(); -// user.setAvatar(avatar); -// user.setMobile(phone); -// user.setEmail(email); -// user.setUsername(StrUtil.isNotBlank(phone) ? phone : email); -// user.setNickname(name); -// user.setDeptId(school.getDeptId()); -// user.setStatus("1"); -// user.setSex("1".equals(gender) ? "0" : "2".equals(gender) ? "1" : "2"); -// user.setUserOrigin(0); -// user.setTeacherWxId(wxId); -// user.setUserType(1); -// userService.createUser(user); -// eduStaff.setYidaAppUserId(user.getYidaAppUserId()); -// } -// eduStaff.setSysUserId(user.getUserId()); -// } -// eduStaff.setWxId(wxId); -// eduStaff.setMobile(phone); -// eduStaff.setName(name); -// eduStaff.setAvatar(avatar); -// eduStaff.setSchoolId(school.getDeptId()); -// eduStaff.setSchoolName(school.getDeptName()); -// eduStaff.setSex("1".equals(gender) ? "0" : "2".equals(gender) ? "1" : "2"); -// -// // 成员部门信息 -// String[] departmentList = StrUtil.split(department, ","); -// String[] isLeaderList = StrUtil.split(isLeader, ","); -// if (ArrayUtil.isNotEmpty(departmentList)) { -// List staffDeptList = new ArrayList<>(); -// for (int i = 0; i < departmentList.length; i++) { -// // 成员的每个部门信息 -// EduStaffDept staffDept = new EduStaffDept(); -// staffDept.setStaffName(eduStaff.getName()); -// staffDept.setDeptWxId(Long.valueOf(departmentList[i])); -// Dept sysDept = ("1".equals(departmentList[i]) -// ? school -// : deptService.getSysDeptByDeptAndWx(Arrays.asList(school.getDeptId()), staffDept.getDeptWxId())); -// staffDept.setDeptId(sysDept.getDeptId()); -// staffDept.setDeptName(sysDept.getDeptName()); -// staffDept.setIsLeader(Integer.valueOf(isLeaderList[i])); -// staffDept.setIsMain(ObjectUtil.equal(mainDepartment, -// departmentList[i]) ? 0 : 1); -// staffDeptList.add(staffDept); -// } -// eduStaff.setStaffDept(staffDeptList); -// } -// remoteTeacherService.saveStaffBySchoolAndWx(eduStaff); -// } - /** * 响应更新企业用户事件 */ @@ -914,12 +816,9 @@ public class QywxServiceImpl implements QywxService { public void updateUser(String name, String wxId, String phone, String email, String gender, String avatar, String department, String isLeader, String mainDepartment, Dept school) { - EduStaff eduStaff = remoteStaffService.getStaffByWxOrMobileOrOpenId(wxId, null, null, school.getDeptId()).getData(); - if (Objects.isNull(eduStaff)) { - eduStaff = new EduStaff(); - } + EduStaff eduStaff = new EduStaff(); if (StrUtil.isNotBlank(phone)) { - SystemUser user = userService.findByMobile(phone); + SystemUser user = userService.findByName(phone); if (user == null) { user = new SystemUser(); user.setAvatar(avatar); @@ -935,14 +834,12 @@ public class QywxServiceImpl implements QywxService { user.setUserType(1); userService.createUser(user); eduStaff.setYidaAppUserId(user.getYidaAppUserId()); - eduStaff.setSysUserId(user.getUserId()); } - eduStaff.setMobile(phone); + eduStaff.setSysUserId(user.getUserId()); } else { - SystemUser user = null; - if (Objects.nonNull(eduStaff.getId())) { - user = userService.getById(eduStaff.getSysUserId()); - } + SystemUser user = + userService.getOne(Wrappers.lambdaQuery(new SystemUser()).eq(SystemUser::getTeacherWxId + , wxId).eq(SystemUser::getDeptId, school.getDeptId())); if (user == null) { user = new SystemUser(); user.setAvatar(avatar); @@ -958,21 +855,16 @@ public class QywxServiceImpl implements QywxService { user.setUserType(1); userService.createUser(user); eduStaff.setYidaAppUserId(user.getYidaAppUserId()); - eduStaff.setSysUserId(user.getUserId()); } + eduStaff.setSysUserId(user.getUserId()); } eduStaff.setWxId(wxId); - if (StrUtil.isNotBlank(name)) { - eduStaff.setName(name); - } - if (StrUtil.isNotBlank(avatar)) { - eduStaff.setAvatar(avatar); - } + eduStaff.setMobile(phone); + eduStaff.setName(name); + eduStaff.setAvatar(avatar); eduStaff.setSchoolId(school.getDeptId()); eduStaff.setSchoolName(school.getDeptName()); - if (StrUtil.isNotBlank(gender)) { - eduStaff.setSex("1".equals(gender) ? "0" : "2".equals(gender) ? "1" : "2"); - } + eduStaff.setSex("1".equals(gender) ? "0" : "2".equals(gender) ? "1" : "2"); // 成员部门信息 String[] departmentList = StrUtil.split(department, ","); @@ -1017,7 +909,7 @@ public class QywxServiceImpl implements QywxService { */ @Override public void sendParentSubscribeMessage(String parentId, Long schoolId) { - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.INDEX_PARENT, null, schoolId); + EduApp app = commonService.getAppByCodeAndSchool(AppConstant.SCORE_PARENT, null, schoolId); // 创建发送通知实体类 TextSchoolNotice textSchoolNotice = new TextSchoolNotice(); // 传入被通知的家长id @@ -1041,47 +933,4 @@ public class QywxServiceImpl implements QywxService { log.error("家长关注发送通知方法失败, 当前学校-->{} 没有默认消息数据: ", schoolId); } } - - @Override - public void updateUserInfo(String userId, Dept school, EduApp app) { - // 查询用户详细信息 - JSONObject userDetail = wxUtil.getUserDetail(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), userId); - // 查询职工数据 - EduStaff eduStaff = remoteStaffService.getStaffByWxOrMobileOrOpenId(userId, null, null, school.getDeptId()).getData(); - if (Objects.isNull(eduStaff)) { - log.error("职工信息错误, userId: {}, schoolId: {}", userId, school.getDeptId()); - return; - } - String name = userDetail.getStr("name"); - eduStaff.setName(name); - // 职位 - eduStaff.setPosition(userDetail.getStr("position")); - - // 成员部门信息 - JSONArray departmentList = userDetail.getJSONArray("department"); - JSONArray leaderInDept = userDetail.getJSONArray("is_leader_in_dept"); - // 主部门信息 - String mainDepartment = userDetail.getStr("main_department"); - if (ArrayUtil.isNotEmpty(departmentList)) { - List staffDeptList = new ArrayList<>(); - for (int i = 0; i < departmentList.size(); i++) { - // 部门id - String deptId = String.valueOf(departmentList.get(i)); - // 成员的每个部门信息 - EduStaffDept staffDept = new EduStaffDept(); - staffDept.setStaffName(eduStaff.getName()); - staffDept.setDeptWxId(Long.valueOf(deptId)); - Dept sysDept = ("1".equals(deptId) - ? school - : deptService.getSysDeptByDeptAndWx(Collections.singletonList(school.getDeptId()), staffDept.getDeptWxId())); - staffDept.setDeptId(sysDept.getDeptId()); - staffDept.setDeptName(sysDept.getDeptName()); - staffDept.setIsLeader(Integer.valueOf(String.valueOf(leaderInDept.get(i)))); - staffDept.setIsMain(ObjectUtil.equal(mainDepartment, deptId) ? 0 : 1); - staffDeptList.add(staffDept); - } - eduStaff.setStaffDept(staffDeptList); - } - remoteTeacherService.saveStaffBySchoolAndWx(eduStaff); - } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/RoleServiceImpl.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/RoleServiceImpl.java index b1fc92e..670bbf8 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/RoleServiceImpl.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/RoleServiceImpl.java @@ -69,7 +69,7 @@ public class RoleServiceImpl extends ServiceImpl implements IR } else { // 查询下级部门信息 List childIdList = this.deptService.findListByParent(Collections.singletonList(currentUser.getDeptId()), 0) - .stream().map(Dept::getDeptId).collect(Collectors.toList()); + .stream().map(Dept::getDeptId).collect(Collectors.toList()); // 查询自己创建的角色+当前登陆账号部门以下的角色 return this.baseMapper.findRoleCheckPage(page, role, childIdList, currentUser); } @@ -90,7 +90,7 @@ public class RoleServiceImpl extends ServiceImpl implements IR if (!RoleEnum.ROLE_ADMIN.equals(roleEnum)) { // 查询下级部门信息 List childIdList = this.deptService.findListByParent(Collections.singletonList(currentUser.getDeptId()), 0) - .stream().map(Dept::getDeptId).collect(Collectors.toList()); + .stream().map(Dept::getDeptId).collect(Collectors.toList()); // 学校、教育局、代理商及以下具有创建账号的数据 自己创建的角色+当前登陆账号部门以下的角色 if (CollectionUtils.isNotEmpty(childIdList)) { queryWrapper.in(Role::getCreateDeptId, childIdList).or(); @@ -142,9 +142,6 @@ public class RoleServiceImpl extends ServiceImpl implements IR String[] menuIds = StringUtils.splitByWholeSeparatorPreserveAllTokens(role.getMenuIds(), StringConstant.COMMA); setRoleMenus(role, menuIds); } - - //TODO 变更用户对应菜单权限 - } @Override diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/SystemUserMenuServiceImpl.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/SystemUserMenuServiceImpl.java index 6ff3d25..76d60d1 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/SystemUserMenuServiceImpl.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/SystemUserMenuServiceImpl.java @@ -1,28 +1,21 @@ package com.yida.data.system.service.impl; -import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.yida.data.common.core.entity.system.Menu; -import com.yida.data.common.core.entity.system.SystemUser; import com.yida.data.common.core.entity.system.SystemUserMenu; -import com.yida.data.common.core.enums.system.MenuShowType; import com.yida.data.system.dto.MenuForUserDTO; -import com.yida.data.system.mapper.MenuMapper; import com.yida.data.system.mapper.SystemUserMenuMapper; -import com.yida.data.system.mapper.UserMapper; import com.yida.data.system.service.IMenuService; import com.yida.data.system.service.SystemUserMenuService; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; -import javax.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + /** * @author ccl */ @@ -30,43 +23,18 @@ import org.springframework.transaction.annotation.Transactional; @Service("systemUserMenuService") @RequiredArgsConstructor @Transactional(rollbackFor = Exception.class) -public class SystemUserMenuServiceImpl extends ServiceImpl implements - SystemUserMenuService { +public class SystemUserMenuServiceImpl extends ServiceImpl implements SystemUserMenuService { @Resource private IMenuService menuService; - private final UserMapper userMapper; - private final MenuMapper menuMapper; - @Override public void saveUserMenu(MenuForUserDTO dto) { - - // 查询用户信息 - SystemUser systemUser = userMapper.selectById(dto.getUserId()); - // 查询用户角色权限信息 - List menuList = menuMapper.findUserPermissions(systemUser.getUsername()); - // 用户角色权限id信息 - List roleMenuIds = menuList.stream().map(Menu::getMenuId).collect(Collectors.toList()); - Collection all = CollUtil.unionAll(roleMenuIds, dto.getMenuId()); - // 需要添加的 - List addMenuIds = all.stream().filter(x -> !roleMenuIds.contains(x)).collect(Collectors.toList()); - // 需要删除的 - List removeMenuIds = all.stream().filter(x -> !dto.getMenuId().contains(x)).collect(Collectors.toList()); - // 保存数据 List menus = new ArrayList<>(); - for (Long menuId : addMenuIds) { + for (Long menuId : dto.getMenuId()) { SystemUserMenu systemUserMenu = new SystemUserMenu(); systemUserMenu.setMenuId(menuId); systemUserMenu.setUserId(dto.getUserId()); - systemUserMenu.setType(MenuShowType.ADD_TYPE.getType()); - menus.add(systemUserMenu); - } - for (Long menuId : removeMenuIds) { - SystemUserMenu systemUserMenu = new SystemUserMenu(); - systemUserMenu.setMenuId(menuId); - systemUserMenu.setUserId(dto.getUserId()); - systemUserMenu.setType(MenuShowType.REMOVE_TYPE.getType()); menus.add(systemUserMenu); } saveBatch(menus); @@ -75,23 +43,18 @@ public class SystemUserMenuServiceImpl extends ServiceImpl findUserMenu(Long userId) { - SystemUser systemUser = userMapper.selectById(userId); - List menuIds = menuMapper.findUserPermissions(systemUser.getUsername()).stream().map(Menu::getMenuId) - .collect(Collectors.toList()); - List userMenuList = list( - Wrappers.lambdaQuery(new SystemUserMenu()).eq(SystemUserMenu::getUserId, userId)); - for (Long excludeMenuId : userMenuList.stream().filter(x -> x.getType() == 1).map(SystemUserMenu::getMenuId) - .collect(Collectors.toList())) { - menuIds.remove(excludeMenuId); + List userMenuList = list(Wrappers.lambdaQuery(new SystemUserMenu()) + .eq(SystemUserMenu::getUserId, userId)); + List menuIds = new ArrayList<>(); + for (SystemUserMenu systemUserMenu : userMenuList) { + menuIds.add(systemUserMenu.getMenuId()); } - menuIds.addAll( - userMenuList.stream().filter(x -> x.getType() == 0).map(SystemUserMenu::getMenuId).collect(Collectors.toList())); return menuIds; } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/UserServiceImpl.java b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/UserServiceImpl.java index 756f800..1f84b86 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/UserServiceImpl.java +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/java/com/yida/data/system/service/impl/UserServiceImpl.java @@ -3,10 +3,7 @@ package com.yida.data.system.service.impl; import cc.mrbird.febs.common.redis.service.RedisService; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ArrayUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -19,18 +16,14 @@ import com.yida.data.common.core.common.ResultBean; import com.yida.data.common.core.common.ResultMsgType; import com.yida.data.common.core.entity.CurrentUser; import com.yida.data.common.core.entity.QueryRequest; -import com.yida.data.common.core.entity.constant.AppConstant; import com.yida.data.common.core.entity.constant.CachePrefixConstant; import com.yida.data.common.core.entity.constant.FebsConstant; import com.yida.data.common.core.entity.constant.StringConstant; import com.yida.data.common.core.entity.school.EduYidaAppAccount; import com.yida.data.common.core.entity.system.*; import com.yida.data.common.core.entity.system.enums.RoleEnum; -import com.yida.data.common.core.entity.user.EduStaff; -import com.yida.data.common.core.entity.user.EduStaffDept; import com.yida.data.common.core.exception.FebsException; import com.yida.data.common.core.utils.*; -import com.yida.data.common.service.CommonService; import com.yida.data.rabbit.util.RabbitUtil; import com.yida.data.system.dto.MenuForUserDTO; import com.yida.data.system.dto.SchoolAdminAccountSaveDTO; @@ -40,8 +33,6 @@ import com.yida.data.system.mapper.RoleMapper; import com.yida.data.system.mapper.UserMapper; import com.yida.data.system.service.*; import com.yida.data.system.vo.SchoolAdminAccountSelectPageVO; -import com.yida.data.user.feign.RemoteStaffService; -import com.yida.data.user.feign.RemoteTeacherService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -69,20 +60,13 @@ public class UserServiceImpl extends ServiceImpl impleme private final IUserRoleService userRoleService; private final IUserDataPermissionService userDataPermissionService; private final PasswordEncoder passwordEncoder; + private final RemoteAuthService remoteAuthService; private final IRoleService roleService; + private final RedisService redisService; private final EduAppAccountService eduAppAccountService; private final EduYidaAppMapper eduYidaAppMapper; - - private final RemoteAuthService remoteAuthService; - private final RemoteStaffService remoteStaffService; - private final RemoteTeacherService remoteTeacherService; - - private final WxUtil wxUtil; private final RabbitUtil rabbitUtil; - private final RedisService redisService; - private final CommonService commonService; - private final static String AUTH_CLIENT_ID = "febs"; @Lazy @Resource @@ -93,11 +77,6 @@ public class UserServiceImpl extends ServiceImpl impleme return this.baseMapper.findUserByUsername(username); } - @Override - public SystemUser findByMobile(String mobile) { - return baseMapper.findUserByMobile(mobile); - } - @Override public IPage findUserDetailList(SystemUser user, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); @@ -231,18 +210,18 @@ public class UserServiceImpl extends ServiceImpl impleme if (ArrayUtil.isNotEmpty(deptIds)) { setUserDataPermissions(user, deptIds); } -// // 保存用户对应菜单 -// String[] roles = StringUtils.splitByWholeSeparatorPreserveAllTokens(user.getRoleId(), StringConstant.COMMA); -// List list = Arrays.asList(roles); -// List menuId = baseMapper.findRoleId(list); -// List userMenuList = new ArrayList<>(); -// for (Long aLong : menuId) { -// SystemUserMenu systemUserMenu = new SystemUserMenu(); -// systemUserMenu.setUserId(user.getUserId()); -// systemUserMenu.setMenuId(aLong); -// userMenuList.add(systemUserMenu); -// } -// systemUserMenuService.saveBatch(userMenuList); + // 保存用户对应菜单 + String[] roles = StringUtils.splitByWholeSeparatorPreserveAllTokens(user.getRoleId(), StringConstant.COMMA); + List list = Arrays.asList(roles); + List menuId = baseMapper.findRoleId(list); + List userMenuList = new ArrayList<>(); + for (Long aLong : menuId) { + SystemUserMenu systemUserMenu = new SystemUserMenu(); + systemUserMenu.setUserId(user.getUserId()); + systemUserMenu.setMenuId(aLong); + userMenuList.add(systemUserMenu); + } + systemUserMenuService.saveBatch(userMenuList); return user; } @@ -280,16 +259,16 @@ public class UserServiceImpl extends ServiceImpl impleme // 删除用户对应权限数据 systemUserMenuService.remove(Wrappers.lambdaQuery(new SystemUserMenu()) .in(SystemUserMenu::getUserId, user.getUserId())); -// // 保存用户对应权限数据 -// List menuId = baseMapper.findRoleId(Arrays.asList(roles)); -// List userMenuList = new ArrayList<>(); -// for (Long aLong : menuId) { -// SystemUserMenu systemUserMenu = new SystemUserMenu(); -// systemUserMenu.setUserId(user.getUserId()); -// systemUserMenu.setMenuId(aLong); -// userMenuList.add(systemUserMenu); -// } -// systemUserMenuService.saveBatch(userMenuList); + // 保存用户对应权限数据 + List menuId = baseMapper.findRoleId(Arrays.asList(roles)); + List userMenuList = new ArrayList<>(); + for (Long aLong : menuId) { + SystemUserMenu systemUserMenu = new SystemUserMenu(); + systemUserMenu.setUserId(user.getUserId()); + systemUserMenu.setMenuId(aLong); + userMenuList.add(systemUserMenu); + } + systemUserMenuService.saveBatch(userMenuList); } @Override @@ -536,104 +515,5 @@ public class UserServiceImpl extends ServiceImpl impleme userRoleService.saveBatch(saveList); } } - - @Override - public void createStaff(Long schoolId, String code) { - // 学校信息 - Dept school = deptService.getById(schoolId); - // 此处获取对应学校通讯录(人力资源)应用 - EduApp app = commonService.getAppByCodeAndSchool(AppConstant.CONTACT_SELECT, null, schoolId); - // 获取access token - String accessToken = wxUtil.getAccessToken(school.getCorpId(), app.getWxSecret()); - // 获取访问用户身份 - JSONObject userInfo = wxUtil.getUserInfo(accessToken, code); - // 获取访问用户敏感信息 - JSONObject sensitiveInfo = wxUtil.getUserSensitiveInfo(accessToken, userInfo.getStr("user_ticket")); - String mobile = sensitiveInfo.getStr("mobile"); - if (StrUtil.isEmpty(mobile)) { - throw new FebsException("请授权手机号码!"); - } - // 成员UserID - String userId = sensitiveInfo.getStr("userid"); - // 查询用户详细信息 - JSONObject userDetail = wxUtil.getUserDetail(wxUtil.getAccessToken(app.getWxCorpId(), app.getWxSecret()), userId); - String name = userDetail.getStr("name"); - String avatar = sensitiveInfo.getStr("avatar"); - String email = sensitiveInfo.getStr("email"); - // 企业微信性别 0表示未定义,1表示男性,2表示女性 - String gender = sensitiveInfo.getStr("gender"); - // 主部门信息 - String mainDepartment = userDetail.getStr("main_department"); - - // 查询是否有职工数据 -// EduStaff eduStaff = remoteStaffService.getStaffByWxOrMobileOrOpenId(userId, null, null, school.getDeptId()).getData(); - EduStaff eduStaff = remoteStaffService.getStaffByWxOrMobileOrOpenId(null, mobile, null, school.getDeptId()).getData(); - if (Objects.isNull(eduStaff)) { - eduStaff = new EduStaff(); - eduStaff.setName(name); - eduStaff.setMobile(mobile); - eduStaff.setAvatar(avatar); - eduStaff.setEmail(email); - eduStaff.setSex("1".equals(gender) ? "0" : "2".equals(gender) ? "1" : "2"); - eduStaff.setWxId(userId); - eduStaff.setSchoolId(school.getDeptId()); - eduStaff.setSchoolName(school.getDeptName()); - eduStaff.setPosition(userDetail.getStr("position")); - } else { - // 修改不创建到企业微信的职工数据 - if (eduStaff.getWxPath() == 1) { - // 修改手机号码、用户id - eduStaff.setWxId(userId); - eduStaff.setWxPath(0); - } - } - - // 判断是否存在登录用户信息 - SystemUser user = findUserDetail(mobile); - if (user == null) { - user = new SystemUser(); - user.setAvatar(avatar); - user.setMobile(mobile); - user.setEmail(email); - user.setUsername(mobile); - user.setNickname(name); - user.setDeptId(school.getDeptId()); - user.setStatus("1"); - // 用户性别 0男, 1女, 2保密 - user.setSex("1".equals(gender) ? "0" : "2".equals(gender) ? "1" : "2"); - user.setUserOrigin(0); - user.setUserType(1); - createUser(user); - eduStaff.setYidaAppUserId(user.getYidaAppUserId()); - eduStaff.setSysUserId(user.getUserId()); - } else { - eduStaff.setSysUserId(user.getUserId()); - } - - // 成员部门信息 - JSONArray departmentList = userDetail.getJSONArray("department"); - JSONArray leaderInDept = userDetail.getJSONArray("is_leader_in_dept"); - if (ArrayUtil.isNotEmpty(departmentList)) { - List staffDeptList = new ArrayList<>(); - for (int i = 0; i < departmentList.size(); i++) { - // 部门id - String deptId = String.valueOf(departmentList.get(i)); - // 成员的每个部门信息 - EduStaffDept staffDept = new EduStaffDept(); - staffDept.setStaffName(eduStaff.getName()); - staffDept.setDeptWxId(Long.valueOf(deptId)); - Dept sysDept = ("1".equals(deptId) - ? school - : deptService.getSysDeptByDeptAndWx(Collections.singletonList(school.getDeptId()), staffDept.getDeptWxId())); - staffDept.setDeptId(sysDept.getDeptId()); - staffDept.setDeptName(sysDept.getDeptName()); - staffDept.setIsLeader(Integer.valueOf(String.valueOf(leaderInDept.get(i)))); - staffDept.setIsMain(ObjectUtil.equal(mainDepartment, deptId) ? 0 : 1); - staffDeptList.add(staffDept); - } - eduStaff.setStaffDept(staffDeptList); - } - remoteTeacherService.saveStaffBySchoolAndWx(eduStaff); - } } diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/DeptSchoolInformationMapper.xml b/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/DeptSchoolInformationMapper.xml index 7dabe20..2a6b617 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/DeptSchoolInformationMapper.xml +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/DeptSchoolInformationMapper.xml @@ -2,259 +2,277 @@ - + SELECT distinct + a.id, + a.school_id, + a.school_name, + a.school_type, + a.school_profit_nature, + a.school_ownership, + a.logo_url, + a.phone, + a.introduction, + a.shunt_situation, + a.address, + a.zip_code, + a.email, + a.student_range, + GROUP_CONCAT(DISTINCT e.nature) as school_nature + FROM + `t_dept_school_information` a + LEFT JOIN t_dept_school_relate b ON a.school_id = b.school_id + LEFT JOIN t_dept_school_student_range d ON a.id = d.dept_school_id + LEFT JOIN t_dept_school_label c on c.dept_school_id = a.id + LEFT JOIN t_dept_school_information_nature e on a.id = e.information_id + WHERE + b.del_flag = 0 + + and c.label = #{tag} + + + AND b.dept_id = #{deptId} + - - and a.address like concat ('%',#{address},'%') - - - AND a.school_type = #{schoolType} - - - and e.nature = #{natureType} - - - and a.school_ownership =#{schoolOwnership} - - - AND a.school_name LIKE CONCAT('%',#{schoolName},'%') - - GROUP BY a.id - order by a.id + + and a.address like concat ('%',#{address},'%') + + + AND a.school_type = #{schoolType} + + + and e.nature = #{natureType} + + + and a.school_ownership =#{schoolOwnership} + + + AND a.school_name LIKE CONCAT('%',#{schoolName},'%') + + GROUP BY a.id + order by a.id - - + - + + - + + + + + + - - HAVING - - - and - - FIND_IN_SET( - #{item}, - GROUP_CONCAT( label ) - ) - - - - - - - diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/EduSchoolInquireCommonQuestionMapper.xml b/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/EduSchoolInquireCommonQuestionMapper.xml index c1a9448..9c8f1cd 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/EduSchoolInquireCommonQuestionMapper.xml +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/EduSchoolInquireCommonQuestionMapper.xml @@ -2,57 +2,57 @@ - - + + diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/MenuMapper.xml b/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/MenuMapper.xml index 85c4fa6..b9b6503 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/MenuMapper.xml +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/MenuMapper.xml @@ -1,61 +1,37 @@ - + - - - - - + + \ No newline at end of file diff --git a/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/UserMapper.xml b/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/UserMapper.xml index 00ae53a..926e3b2 100644 --- a/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/UserMapper.xml +++ b/febs-server/febs-server-system/febs-server-system-biz/src/main/resources/mapper/UserMapper.xml @@ -121,14 +121,6 @@ group by a.USER_ID - - - + - + - +