UserInvoiceFrontController.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.cyksj.web.controller.invoice;
  2. import com.cyksj.dto.Result;
  3. import com.cyksj.enums.GatewayResponse;
  4. import com.cyksj.model.request.UserInvoiceOrderReq;
  5. import com.cyksj.model.views.UserInvoiceChoseOrderViews;
  6. import com.cyksj.model.views.UserInvoiceFrontView;
  7. import com.cyksj.model.views.UserInvoiceOrderViews;
  8. import com.cyksj.service.invoice.UserInvoiceApplyRecordService;
  9. import com.cyksj.service.user.UserBindRelationService;
  10. import com.cyksj.web.util.StpUserUtil;
  11. import com.ejlchina.searcher.BeanSearcher;
  12. import com.ejlchina.searcher.SearchResult;
  13. import com.ejlchina.searcher.param.Operator;
  14. import com.ejlchina.searcher.util.MapUtils;
  15. import lombok.RequiredArgsConstructor;
  16. import org.springframework.web.bind.annotation.*;
  17. import javax.servlet.http.HttpServletRequest;
  18. import java.util.List;
  19. /**
  20. * 项目名: yhlxj
  21. * 文件名: UserInvoiceFrontController
  22. * 创建者: JavaZou
  23. * 创建时间:2024/12/13 16:22
  24. */
  25. @RestController
  26. @RequestMapping("/applets/invoice")
  27. @RequiredArgsConstructor
  28. public class UserInvoiceFrontController {
  29. private final BeanSearcher beanSearcher;
  30. private final HttpServletRequest request;
  31. private final UserInvoiceApplyRecordService userInvoiceApplyRecordService;
  32. private final UserBindRelationService userBindRelationService;
  33. /**
  34. * 发票 用户可选AI车票订单
  35. */
  36. @GetMapping("/get/orders")
  37. public Result<SearchResult<UserInvoiceChoseOrderViews>> getOrders() {
  38. long userId = StpUserUtil.getLoginIdAsLong();
  39. List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
  40. SearchResult<UserInvoiceChoseOrderViews> search = beanSearcher.search(UserInvoiceChoseOrderViews.class, MapUtils.flatBuilder(request.getParameterMap())
  41. .field(UserInvoiceChoseOrderViews::getUserId, userIdList).op(Operator.InList)
  42. .build());
  43. return GatewayResponse.SUCCESS.newBuilder().toResult(search);
  44. }
  45. /**
  46. * 提交发票申请
  47. */
  48. @PostMapping("/apply")
  49. public Result<Long> apply(@RequestBody UserInvoiceOrderReq req) {
  50. long userId = StpUserUtil.getLoginIdAsLong();
  51. req.setUserId(userId);
  52. Long recordId = userInvoiceApplyRecordService.applyOrderInvoice(req);
  53. return GatewayResponse.SUCCESS.newBuilder().toResult(recordId);
  54. }
  55. /**
  56. * 用户发票申请列表
  57. */
  58. @GetMapping("/get")
  59. public Result<SearchResult<UserInvoiceFrontView>> get() {
  60. long userId = StpUserUtil.getLoginIdAsLong();
  61. List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
  62. SearchResult<UserInvoiceFrontView> search = beanSearcher.search(UserInvoiceFrontView.class, MapUtils.flatBuilder(request.getParameterMap())
  63. .field(UserInvoiceFrontView::getUserId, userIdList).op(Operator.InList)
  64. .orderBy(UserInvoiceFrontView::getId).desc()
  65. .build());
  66. search.getDataList().forEach(data->{
  67. data.setOrderViews(beanSearcher.searchAll(UserInvoiceOrderViews.class, MapUtils.builder().field(UserInvoiceOrderViews::getRecordId, data.getId()).build()));
  68. });
  69. return GatewayResponse.SUCCESS.newBuilder().toResult(search);
  70. }
  71. }