package com.lv.adminsys.modules.service.web.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lv.adminsys.common.constant.LvException;
import com.lv.adminsys.common.enums.AccountTypeEnum;
import com.lv.adminsys.common.enums.MessageMarkEnum;
import com.lv.adminsys.common.utils.JSONResult;
import com.lv.adminsys.common.utils.TimeUtil;
import com.lv.adminsys.modules.dao.LvLeaveDao;
import com.lv.adminsys.modules.dao.LvMessageDao;
import com.lv.adminsys.modules.dao.LvUserDao;
import com.lv.adminsys.modules.entity.LvLeaveEntity;
import com.lv.adminsys.modules.entity.LvMessageEntity;
import com.lv.adminsys.modules.entity.LvUserEntity;
import com.lv.adminsys.modules.service.impl.TeacherCheckServiceImpl;
import com.lv.adminsys.modules.service.web.IWebLeaveService;
import com.lv.adminsys.modules.vo.web.WebLeaveListVO;
import org.activiti.engine.HistoryService;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* @author Qiang
* @version 1.0
* @description TODO
* @date 2019/12/25 下午5:20
**/
@Service
@Transactional
public class WebLeaveServiceImpl implements IWebLeaveService {
/**
* 老师工号前缀
*/
@Value("${teacher.start}")
private String teacherNumStart;
@Autowired
private LvLeaveDao lvLeaveDao;
@Resource
private HistoryService historyService;
@Autowired
private LvMessageDao lvMessageDao;
@Autowired
private TeacherCheckServiceImpl teacherCheckServiceImpl;
@Autowired
private LvUserDao lvUserDao;
@Override
public JSONResult findMessageList(String account) {
if (StringUtils.isEmpty(account)) {
return JSONResult.build(402, LvException.ErrorMsg.REQUEST_PARAM_ERROR, null);
}
List<WebLeaveListVO> list;
if (account.startsWith(teacherNumStart)) {
list = findTeacherList(account);
} else {
list = findStudentList(account);
}
if (CollectionUtils.isEmpty(list) || list.size() == 0) {
return JSONResult.build(401, LvException.ErrorMsg.CAN_ONT_FIND_RECORD, null);
}
return JSONResult.ok(list);
}
@Override
public JSONResult markMsgIsRead(String lvMessageId, Integer accountType) {
return markMsgStatus(lvMessageId, accountType, MessageMarkEnum.IS_READ.getTypeName());
}
/**
* @param lvMessageId 消息id
* @param accountType 账号类型 0 -- 学生 1 -- 老师
* @param markType 标记类型 1 -- 已读 -1 -- 删除 2 -- 全部标记 -2 -- 全部删除
* @return 结果
*/
private JSONResult markMsgStatus(String lvMessageId, Integer accountType, Integer markType) {
if (StringUtils.isEmpty(lvMessageId) || accountType == null) {
return JSONResult.build(402, LvException.ErrorMsg.REQUEST_PARAM_ERROR, null);
}
// 判断是学生或老师
if (accountType.equals(AccountTypeEnum.STUDENT_TYPE.getTypeName())) {
// 删除操作 还是 标记操作
if (markType.equals(MessageMarkEnum.IS_READ.getTypeName())) {
return markStudentStatus(lvMessageId, MessageMarkEnum.IS_READ.getTypeName());
}
if (markType.equals(MessageMarkEnum.IS_DELETE.getTypeName())) {
return markStudentStatus(lvMessageId, MessageMarkEnum.IS_DELETE.getTypeName());
}
if (markType.equals(MessageMarkEnum.IS_ALL_READ.getTypeName())) {
return markStudentAllStatus(lvMessageId, MessageMarkEnum.IS_ALL_READ.getTypeName());
}
if (markType.equals(MessageMarkEnum.IS_ALL_DELETE.getTypeName())) {
return markStudentAllStatus(lvMessageId, MessageMarkEnum.IS_ALL_DELETE.getTypeName());
}
} else {
// 老师
if (markType.equals(MessageMarkEnum.IS_READ.getTypeName())) {
return markTeacherStatus(lvMessageId, MessageMarkEnum.IS_READ.getTypeName());
}
if (markType.equals(MessageMarkEnum.IS_DELETE.getTypeName())) {
return markTeacherStatus(lvMessageId, MessageMarkEnum.IS_DELETE.getTypeName());
}
if (markType.equals(MessageMarkEnum.IS_ALL_READ.getTypeName())) {
return markTeacherAllStatus(lvMessageId, MessageMarkEnum.IS_ALL_READ.getTypeName());
}
if (markType.equals(MessageMarkEnum.IS_ALL_DELETE.getTypeName())) {
return markTeacherAllStatus(lvMessageId, MessageMarkEnum.IS_ALL_DELETE.getTypeName());
}
}
return JSONResult.errorMsg("处理错误");
}
@Override
public JSONResult markMsgDelete(String lvMessageId, Integer accountType) {
return markMsgStatus(lvMessageId, accountType, MessageMarkEnum.IS_DELETE.getTypeName());
}
@Override
public JSONResult markAllMsgIsRead(String account, Integer accountType) {
return markMsgStatus(account, accountType, MessageMarkEnum.IS_ALL_READ.getTypeName());
}
@Override
public JSONResult markAllMsgDelete(String account, Integer accountType) {
return markMsgStatus(account, accountType, MessageMarkEnum.IS_ALL_DELETE.getTypeName());
}
private JSONResult markStudentAllStatus(String account, Integer typeName) {
List<LvLeaveEntity> leaveIsRead = lvLeaveDao.selectList(new QueryWrapper<LvLeaveEntity>().eq("lv_user_num", account).ne("lv_book", MessageMarkEnum.IS_DELETE.getTypeName()));
if (CollectionUtils.isEmpty(leaveIsRead)) {
return JSONResult.build(401, LvException.ErrorMsg.CAN_ONT_FIND_RECORD, null);
}
if (typeName.equals(MessageMarkEnum.IS_ALL_READ.getTypeName())) {
for (LvLeaveEntity lv :
leaveIsRead) {
lv.setLvBook(MessageMarkEnum.IS_READ.getTypeName());
lvLeaveDao.updateById(lv);
}
} else if (typeName.equals(MessageMarkEnum.IS_ALL_DELETE.getTypeName())) {
for (LvLeaveEntity lv :
leaveIsRead) {
lv.setLvBook(MessageMarkEnum.IS_DELETE.getTypeName());
lvLeaveDao.updateById(lv);
}
}
return JSONResult.ok();
}
private JSONResult markStudentStatus(String lvMessageId, Integer typeName) {
LvLeaveEntity leaveEntity = lvLeaveDao.selectById(lvMessageId);
if (judgeObjectParamIsBlank(leaveEntity)) {
return JSONResult.build(401, LvException.ErrorMsg.CAN_ONT_FIND_RECORD, null);
}
if (typeName.equals(MessageMarkEnum.IS_READ.getTypeName())) {
leaveEntity.setLvBook(MessageMarkEnum.IS_READ.getTypeName());
} else {
leaveEntity.setLvBook(MessageMarkEnum.IS_DELETE.getTypeName());
}
int i = lvLeaveDao.updateById(leaveEntity);
if (i > 0) {
return JSONResult.ok();
}
return JSONResult.errorMsg("修改失败");
}
private <T> Boolean judgeObjectParamIsBlank(T messageEntity) {
if (messageEntity == null) {
return true;
}
return false;
}
private JSONResult markTeacherAllStatus(String account, Integer typeName) {
List<LvMessageEntity> teacherLists = lvMessageDao.selectList(new QueryWrapper<LvMessageEntity>().eq("lv_teacher_num", account).eq("lv_book", MessageMarkEnum.NO_READ.getTypeNam
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
资源推荐
资源详情
资源评论
收起资源包目录
基于Activiti工作引擎+springboot框架的学院师生请假系统设计与实现.zip (117个子文件)
Leave.bpmn 9KB
SmallLeave.bpmn 7KB
mvnw.cmd 6KB
.gitattributes 87B
.gitignore 333B
maven-wrapper.jar 47KB
WebLeaveServiceImpl.java 13KB
UserLeaveServiceImpl.java 11KB
WebTeacherServiceImpl.java 10KB
RedisOperator.java 7KB
LeaveService.java 7KB
TeacherServiceImpl.java 7KB
WebUserServiceImpl.java 6KB
TimeUtil.java 6KB
UserServiceImpl.java 5KB
TeacherCheckServiceImpl.java 5KB
AuthRealm.java 5KB
MavenWrapperDownloader.java 5KB
JWTFilter.java 4KB
MySqlGenerator.java 4KB
ShiroConfig.java 4KB
JSONResult.java 3KB
JudgeLeaveLeader.java 3KB
UserLeaveController.java 3KB
WebLeaveController.java 2KB
LvLeaveEntity.java 2KB
JWTUtil.java 2KB
BaseController.java 2KB
RedisConfig.java 2KB
ApplyItemResponse.java 2KB
WebTeacherCheckVO.java 2KB
TeacherCheckController.java 2KB
IUserLeaveService.java 2KB
ModulesApplicationTests.java 2KB
ApplyDetailResponse.java 2KB
LvTeacherEntity.java 1KB
UserProcessResponse.java 1KB
TeacherCheckResponse.java 1KB
WebUserController.java 1KB
BaseExceptionHandler.java 1KB
LvUserEntity.java 1KB
UserLoginResponse.java 1KB
LeaveItemResponse.java 1KB
UserController.java 1KB
LvMessageEntity.java 1KB
StringAndArray.java 1KB
IUserService.java 1KB
WebTeachCheckController.java 1KB
IWebLeaveService.java 1KB
AsyncServiceImpl.java 1KB
WebTeacherCheckDTO.java 1KB
TeacherHisItems.java 1KB
MybatisPlusConfig.java 1019B
LoginController.java 998B
WebLeaveListVO.java 995B
CompleteTaskRequest.java 986B
LvRolesEntity.java 955B
LvCheckEntity.java 873B
PagedResult.java 852B
UserLoginRequest.java 839B
LvPermissionEntity.java 814B
ITeacherService.java 807B
TeacherCheckHisResponse.java 791B
LeaveDetailResponse.java 789B
IWebUserService.java 737B
LvException.java 729B
ShiroEncrypt.java 715B
UserMessageVO.java 705B
AsyncService.java 702B
TestDao.java 701B
MessageMarkEnum.java 699B
ITeacherCheckService.java 696B
LvTeacherDao.java 681B
BeanUtil.java 680B
LvLeaveDao.java 622B
ModulesApplication.java 616B
LvUserDao.java 595B
JWTToken.java 540B
UserStatusDao.java 520B
UserStatusEntity.java 517B
AccountTypeEnum.java 513B
TaskTypeEnum.java 499B
TeacherMessageVO.java 479B
StudentMessageVO.java 474B
Constant.java 470B
HelloWordController.java 460B
IWebTeacherService.java 459B
LvCheckDao.java 417B
LvMessageDao.java 377B
log_error.log 312KB
log-error-2019-12-07.0.log 295KB
log-debug-2019-12-25.0.log 128KB
log-error-2019-12-03.0.log 102KB
log-debug-2019-12-24.0.log 44KB
log_debug.log 41KB
log-info-2019-12-17.0.log 37KB
log-debug-2019-12-17.0.log 29KB
log-warn-2019-12-25.0.log 25KB
log_info.log 19KB
log_warn.log 8KB
共 117 条
- 1
- 2
资源评论
毕业小助手
- 粉丝: 2742
- 资源: 5583
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Scratch 剧情游戏:美西螈大作战.sb3
- 测试面试题库参考.pdf
- 基于springboot网上服装商城推荐系统源码
- 编译器设计中的Strength Reduction代码优化技术解析与应用
- 编译器设计中的代码优化算法:常数传播、常数折叠与强度降低
- 2023-04-06-项目笔记 - 第二百九十阶段 - 4.4.2.288全局变量的作用域-288 -2025.10.18
- 操作系统之死锁处理算法:银行家算法
- 2023-04-06-项目笔记 - 第二百九十阶段 - 4.4.2.288全局变量的作用域-288 -2025.10.18
- HTML5网页开发设计师简历展示网页模板.zip
- rhino grasshoper 层叠板 曲面板.gh
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功