package org.cqtguniversity.lqms.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.cqtguniversity.lqms.construct.NumTypeConstruct;
import org.cqtguniversity.lqms.entity.Complaint;
import org.cqtguniversity.lqms.mapper.ComplaintMapper;
import org.cqtguniversity.lqms.pojo.dto.SessionDTO;
import org.cqtguniversity.lqms.pojo.dto.commoncontent.CommonContentDTO;
import org.cqtguniversity.lqms.pojo.dto.complaint.ComplaintDTO;
import org.cqtguniversity.lqms.pojo.dto.complaint.SaveComplaintDTO;
import org.cqtguniversity.lqms.pojo.dto.complaint.SearchComplaintDTO;
import org.cqtguniversity.lqms.pojo.vo.BaseVO;
import org.cqtguniversity.lqms.pojo.vo.DetailResultVO;
import org.cqtguniversity.lqms.pojo.vo.ListVO;
import org.cqtguniversity.lqms.pojo.vo.complaint.ComplaintVO;
import org.cqtguniversity.lqms.pojo.vo.complaint.SimpleComplaintVO;
import org.cqtguniversity.lqms.pojo.vo.result.ErrorVO;
import org.cqtguniversity.lqms.pojo.vo.result.ParamErrorVO;
import org.cqtguniversity.lqms.pojo.vo.result.SuccessVO;
import org.cqtguniversity.lqms.service.AsyncTaskService;
import org.cqtguniversity.lqms.service.CommonContentService;
import org.cqtguniversity.lqms.service.ComplaintService;
import org.cqtguniversity.lqms.service.NumberRuleService;
import org.cqtguniversity.lqms.util.MyDateUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.stream.Collectors;
/**
* 投诉表 服务实现类
* @author Wang26211
* @since 2018-05-02
*/
@Service
public class ComplaintServiceImpl extends ServiceImpl<ComplaintMapper, Complaint> implements ComplaintService {
// 引用投诉服务
private final ComplaintMapper complaintMapper;
// 引用编号规则服务
private final NumberRuleService numberRuleService;
// 引用长文本服务
@Autowired
private CommonContentService commonContentService;
@Autowired
private AsyncTaskService asyncTaskService;
// 构造方法注入相关服务
@Autowired
public ComplaintServiceImpl(ComplaintMapper complaintMapper, NumberRuleService numberRuleService) {
this.complaintMapper = complaintMapper;
this.numberRuleService = numberRuleService;
}
/**
* Wang26211
* 翻译投诉实体为VO
* @param complaint 投诉实体
* @return 相应VO
*/
private SimpleComplaintVO transferSimpleComplaintVO(Complaint complaint) {
// 创建实验室VO
SimpleComplaintVO simpleComplaintVO = new SimpleComplaintVO();
// 复制基本信息
simpleComplaintVO.setId(complaint.getId());
simpleComplaintVO.setComplainantName(complaint.getComplainantName());
simpleComplaintVO.setComplaintDetail(commonContentService.selectCommonContentDTO(complaint.getComplaintDetail()).getContent());
simpleComplaintVO.setComplaintNo(complaint.getComplaintNo());
simpleComplaintVO.setComplaintTitle(complaint.getComplaintTitle());
simpleComplaintVO.setGmtCreate(MyDateUtil.simpleDateFormat(complaint.getGmtCreate(), MyDateUtil.YYYY_MM_DD_C));
simpleComplaintVO.setComplainantStatus(complaint.getComplainantStatus() == 0? "未受理" : "已受理");
return simpleComplaintVO;
}
@Override
public ComplaintDTO selectComplaintDTO(Long id) {
Complaint complaint = complaintMapper.selectById(id);
if (null == complaint || 1 == complaint.getIsDeleted()) {
System.out.println("存在错误的投诉编号,请检查投诉表");
return null;
}
ComplaintDTO complaintDTO = new ComplaintDTO();
BeanUtils.copyProperties(complaint, complaintDTO);
return complaintDTO;
}
@Override
public boolean acceptComplaintDTO(Long id) {
Complaint complaint = complaintMapper.selectById(id);
if (null == complaint) {
System.out.println("存在错误的投诉建议,请检查投诉表");
return false;
}
complaint.setComplainantStatus(1);
complaint.updateById();
return true;
}
@Override
public BaseVO addComplaint(HttpSession httpSession, SaveComplaintDTO saveComplaintDTO) {
//合理性判断
if (null != saveComplaintDTO.getId() || StringUtils.isEmpty(saveComplaintDTO.getComplainantName())
|| StringUtils.isEmpty(saveComplaintDTO.getAddress()) || StringUtils.isEmpty(saveComplaintDTO.getComplaintTitle())
|| StringUtils.isEmpty(saveComplaintDTO.getComplaintDetail())) {
return ParamErrorVO.getInstance();
}
SessionDTO sessionDTO = (SessionDTO) httpSession.getAttribute("sessionDTO");
if (null == sessionDTO) {
return new ErrorVO("用户未登陆");
}
EntityWrapper<Complaint> entityWrapper = new EntityWrapper<>();
entityWrapper.where("complainant_status={0}", 0);
entityWrapper.where("is_deleted={0}", 0);
entityWrapper.where("user_id={0}", sessionDTO.getUserInfoDTO().getId());
// 查询是否已经存在投诉
int count = complaintMapper.selectCount(entityWrapper);
if (0 != count) {
return new ErrorVO("存在未处理投诉,请等待投诉处理");
}
//合理性通过
Complaint complaint = new Complaint();
//复制投诉基本信息,忽略id
BeanUtils.copyProperties(saveComplaintDTO, complaint, "id", "complaintDetail");
// 获取一个长文本DTU
CommonContentDTO commonContentDTO = commonContentService.getByContent(saveComplaintDTO.getComplaintDetail());
if (null == commonContentDTO) {
return ErrorVO.getInternalError();
}
// 设置长文本id, 把长文本id (相当于一个号码牌)存放在投诉对象中
complaint.setComplaintDetail(commonContentDTO.getId());
// 设置一个自动生成的投诉编号
complaint.setComplaintNo(numberRuleService.getNum(NumTypeConstruct.COMPLAINTNO));
// 设置创建时间
complaint.setGmtCreate(Calendar.getInstance().getTime());
// 设置修改时间
complaint.setGmtModified(Calendar.getInstance().getTime());
// 设置状态: 未处理
complaint.setComplainantStatus(0);
//逻辑删除
complaint.setIsDeleted(0);
// 设置用户Id
complaint.setUserId(sessionDTO.getUserInfoDTO().getId());
//插入数据
complaintMapper.insert(complaint);
// 发送邮件给处理人员
asyncTaskService.complaintEmail(saveComplaintDTO.getComplaintTitle(), saveComplaintDTO.getComplaintDetail());
// 发送邮件给投诉人
asyncTaskService.complaintSendEmail(sessionDTO.getUserInfoDTO().getEmail(), sessionDTO.getUserInfoDTO().getRealName());
return SuccessVO.getInstance();
}
@Override
public BaseVO removeById(Long id) {
//合理性判断
if (null == id) {
return ParamErrorVO.getInstance();
}
// 因为是逻辑删除,所以需要查询是否存在
Complaint complaint = complaintMapper.selectById(id);
// 判断是否存在
if (complaint == null || 1 == complaint.getIsDeleted()) {
return new ErrorVO("投诉不存在");
}
//设置删除时间
complaint.setGmtModified(Calendar.getInstance().getTime());
//删除标记为1
complaint.setIsDeleted(1);
//通过Id删除投诉
complaintMapper.updateById(complaint);
return SuccessVO.getInstance();
}
@Override
public BaseVO updat
没有合适的资源?快使用搜索试试~ 我知道了~
本科毕业设计,实验室管理系统服务器代码.zip
共375个文件
java:241个
xml:124个
md:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 102 浏览量
2023-10-05
01:17:08
上传
评论
收藏 360KB ZIP 举报
温馨提示
本科毕业设计
资源推荐
资源详情
资源评论
收起资源包目录
本科毕业设计,实验室管理系统服务器代码.zip (375个子文件)
.gitignore 261B
LaboratoryQuality-MS.iml 14KB
ComplaintServiceImpl.java 13KB
LaboratoryScheduleServiceImpl.java 13KB
ConfigOptionDetailServiceImpl.java 12KB
DeviceProgramServiceImpl.java 12KB
UserInfoServiceImpl.java 11KB
DeviceServiceImpl.java 11KB
UserAccountServiceImpl.java 11KB
NumberRuleServiceImpl.java 10KB
HttpUtils.java 10KB
EducationRecordServiceImpl.java 10KB
AttachedFileServiceImpl.java 9KB
LaboratoryServiceImpl.java 9KB
ConfigOptionConstruct.java 8KB
ConfigOptionGroupServiceImpl.java 8KB
DepartmentServiceImpl.java 8KB
ComplaintAcceptServiceImpl.java 7KB
DateUtil.java 7KB
Base64.java 6KB
UserNodeServiceImpl.java 5KB
TaskInfo.java 5KB
DeviceProgram.java 4KB
WorkRecordServiceImpl.java 4KB
EducationRecord.java 4KB
MyBatisPlusConfig.java 4KB
CommonContentServiceImpl.java 4KB
Complaint.java 4KB
DeviceProgramVO.java 4KB
UserAccountController.java 3KB
SimpleEducationRecordVO.java 3KB
ListVO.java 3KB
LaboratorySchedule.java 3KB
MyBatisPlusGenerator.java 3KB
ConfigOptionDetail.java 3KB
Device.java 3KB
ComplaintDTO.java 3KB
SaveEducationRecordDTO.java 3KB
AttachedFile.java 3KB
ComplaintAccept.java 3KB
SimpleLaboratoryScheduleVO.java 3KB
EducationRecordVO.java 3KB
DeviceProgramController.java 3KB
LqmsApplicationTests.java 3KB
UniversityServiceImpl.java 3KB
DeviceDTO.java 3KB
Laboratory.java 3KB
WorkRecord.java 3KB
ComplaintVO.java 3KB
LaboratoryScheduleController.java 3KB
ComplaintController.java 3KB
CodeServiceImpl.java 3KB
ConfigOptionDetailController.java 3KB
MyStringUtil.java 3KB
University.java 3KB
SimpleDeviceProgramVO.java 3KB
ConfigOptionGroupController.java 2KB
SimpleDeviceVO.java 2KB
SimpleConfigOptionDetailVO.java 2KB
UserInfoController.java 2KB
AsyncTaskServiceImpl.java 2KB
DeviceVO.java 2KB
SimpleComplaintVO.java 2KB
UserInfo.java 2KB
NumberRuleController.java 2KB
UserAccount.java 2KB
CommonContentController.java 2KB
UniversityDTO.java 2KB
UserNode.java 2KB
LaboratoryController.java 2KB
DeviceController.java 2KB
ConfigOptionGroup.java 2KB
AttachedFileController.java 2KB
Module.java 2KB
UserNodeDTO.java 2KB
NumberRule.java 2KB
LaboratoryDTO.java 2KB
UserAccountDTO.java 2KB
Role.java 2KB
ConfigOptionDetailVO.java 2KB
UserInfoDTO.java 2KB
SimpleComplaintAcceptVO.java 2KB
SaveConfigOptionDTO.java 2KB
AttachedFileVO.java 2KB
Department.java 2KB
AttachedGroup.java 2KB
SaveComplaintDTO.java 2KB
RoleModule.java 2KB
ComplexEducationRecordVO.java 2KB
SaveUserAccountDTO.java 2KB
SimpleWorkRecordVO.java 2KB
SimpleAttachedFileVO.java 2KB
SessionFilter.java 2KB
Code.java 2KB
RoleDTO.java 2KB
ComplaintAcceptController.java 2KB
UserInfoService.java 2KB
SearchDeviceProgramDTO.java 2KB
MD5Util.java 2KB
SearchDeviceDTO.java 2KB
共 375 条
- 1
- 2
- 3
- 4
资源评论
学术菜鸟小晨
- 粉丝: 1w+
- 资源: 4960
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功