WfRoomStayOvernightServiceImpl.java 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.xjrsoft.module.room.service.impl;
  2. import cn.hutool.core.util.IdUtil;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.github.yulichang.base.MPJBaseServiceImpl;
  5. import com.github.yulichang.wrapper.MPJLambdaWrapper;
  6. import com.xjrsoft.common.utils.VoToColumnUtil;
  7. import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
  8. import com.xjrsoft.module.organization.entity.User;
  9. import com.xjrsoft.module.organization.entity.UserStudent;
  10. import com.xjrsoft.module.organization.service.IUserService;
  11. import com.xjrsoft.module.organization.service.IWeChatService;
  12. import com.xjrsoft.module.room.entity.WfRoomStayOvernight;
  13. import com.xjrsoft.module.room.mapper.WfRoomStayOvernightMapper;
  14. import com.xjrsoft.module.room.service.IWfRoomStayOvernightService;
  15. import lombok.AllArgsConstructor;
  16. import org.springframework.stereotype.Service;
  17. import java.text.SimpleDateFormat;
  18. import java.util.List;
  19. /**
  20. * @title: 留校住宿申请
  21. * @Author szs
  22. * @Date: 2024-01-02
  23. * @Version 1.0
  24. */
  25. @Service
  26. @AllArgsConstructor
  27. public class WfRoomStayOvernightServiceImpl extends MPJBaseServiceImpl<WfRoomStayOvernightMapper, WfRoomStayOvernight> implements IWfRoomStayOvernightService {
  28. private final IUserService userService;
  29. private final IWeChatService weChatService;
  30. @Override
  31. public Boolean noticeParents(Long id) {
  32. WfRoomStayOvernight applicant = this.getById(id);
  33. List<User> list = userService.list(
  34. new MPJLambdaWrapper<User>()
  35. .select(User::getId)
  36. .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
  37. .innerJoin(UserStudent.class, UserStudent::getUserId, User::getId)
  38. .eq(UserStudent::getStudentId, applicant.getApplicantUserId())
  39. .isNotNull(User::getOpenId)
  40. );
  41. SimpleDateFormat sdf = new SimpleDateFormat("yyy年MM月dd日");
  42. User student = userService.getById(applicant.getApplicantUserId());
  43. String wechatTemplate = "pbggflZY985uimp9XQ0pe3-GftuPyF7fG5jCo97_jJU";
  44. for (User user : list) {
  45. WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
  46. weChatSendMessageDto.setUserId(user.getOpenId());
  47. weChatSendMessageDto.setTemplateId(wechatTemplate);
  48. weChatSendMessageDto.setMsgId(IdUtil.getSnowflakeNextId() + "");
  49. JSONObject data = new JSONObject();
  50. // 姓名
  51. data.put("thing1", new JSONObject() {{
  52. put("value", student.getName());
  53. }});
  54. // 时间
  55. data.put("time3", new JSONObject() {{
  56. put("value", sdf.format(applicant.getStartTime()));
  57. }});
  58. //班级
  59. data.put("thing2", new JSONObject() {{
  60. put("value", applicant.getClassName());
  61. }});
  62. weChatSendMessageDto.setContent(data);
  63. weChatService.sendTemplateMessage(weChatSendMessageDto);
  64. }
  65. return true;
  66. }
  67. }