GroupRelationController.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package com.cyksj.web.controller.group;
  2. import cn.hutool.core.date.DateTime;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.cyksj.common.exception.BusinessRuntimeException;
  5. import com.cyksj.dto.Result;
  6. import com.cyksj.enums.GatewayResponse;
  7. import com.cyksj.mapper.GroupsRelationMapper;
  8. import com.cyksj.model.entity.GroupsRelation;
  9. import com.cyksj.model.entity.OrderDon;
  10. import com.cyksj.model.request.OrderPayRequest;
  11. import com.cyksj.model.views.RenewalView;
  12. import com.cyksj.service.order.OrderDonService;
  13. import com.cyksj.web.util.StpUserUtil;
  14. import com.ejlchina.searcher.BeanSearcher;
  15. import com.ejlchina.searcher.param.Operator;
  16. import com.ejlchina.searcher.util.MapUtils;
  17. import lombok.RequiredArgsConstructor;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.springframework.web.bind.annotation.*;
  20. import java.util.List;
  21. import java.util.stream.Collectors;
  22. /**
  23. * @author chan
  24. * @date 2022/9/27 11:48 AM
  25. */
  26. @Slf4j
  27. @RequiredArgsConstructor
  28. @RestController
  29. @RequestMapping("/applets/group/relation")
  30. public class GroupRelationController {
  31. private final BeanSearcher beanSearcher;
  32. private final OrderDonService orderDonService;
  33. private final GroupsRelationMapper relationMapper;
  34. @RequestMapping("/get/renewal")
  35. public Result<List<RenewalView>> get() {
  36. long userId = StpUserUtil.getLoginIdAsLong();
  37. List<RenewalView> list = beanSearcher.searchAll(RenewalView.class, MapUtils.builder()
  38. .field(RenewalView::getUserId, userId)
  39. .field(RenewalView::getStatus, List.of("validity", "overdue")).op(Operator.InList)
  40. .orderBy(RenewalView::getExpiryTime).asc()
  41. .build());
  42. //过滤邀请制、已失效的车位
  43. DateTime now = DateTime.now();
  44. List<RenewalView> collect = list.stream().filter(ticket -> {
  45. if (ticket.getExpiryTime() != null && ticket.getExpiryTime().before(now)) {
  46. return false;
  47. }
  48. if (ticket.getSecondType() == 1) {
  49. ticket.setAccount(null);
  50. ticket.setPassword(null);
  51. }
  52. return true;
  53. }).collect(Collectors.toList());
  54. return GatewayResponse.SUCCESS.newBuilder().toResult(collect);
  55. }
  56. @PostMapping("/post/renewal")
  57. public Result<OrderDon> renewal(@RequestBody OrderPayRequest request) {
  58. long userId = StpUserUtil.getLoginIdAsLong();
  59. request.setUserId(userId);
  60. OrderDon orderDon = orderDonService.renewal(request);
  61. return GatewayResponse.SUCCESS.newBuilder().toResult(orderDon);
  62. }
  63. @PutMapping("/update/set/account")
  64. public Result<String> setAccount(@RequestBody GroupsRelation relation) {
  65. long userId = StpUserUtil.getLoginIdAsLong();
  66. GroupsRelation re = relationMapper.selectOne(Wrappers.lambdaQuery(GroupsRelation.class).eq(GroupsRelation::getId, relation.getId()).eq(GroupsRelation::getUserId, userId).last(" limit 1"));
  67. if (re == null) {
  68. throw new BusinessRuntimeException("该车票不存在,请联系客服.");
  69. }
  70. relationMapper.update(relation, Wrappers.lambdaUpdate(GroupsRelation.class).set(GroupsRelation::getAccount, relation.getAccount()).eq(GroupsRelation::getId, relation.getId()));
  71. return GatewayResponse.SUCCESS.newBuilder().toResult();
  72. }
  73. }