BackendConfirmLogController.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package com.fuint.module.backendApi.controller;
  2. import com.fuint.common.Constants;
  3. import com.fuint.common.dto.AccountInfo;
  4. import com.fuint.common.dto.ConfirmLogDto;
  5. import com.fuint.common.dto.ParamDto;
  6. import com.fuint.common.enums.CouponTypeEnum;
  7. import com.fuint.common.service.AccountService;
  8. import com.fuint.common.service.ConfirmLogService;
  9. import com.fuint.common.service.CouponService;
  10. import com.fuint.common.service.MemberService;
  11. import com.fuint.common.util.TokenUtil;
  12. import com.fuint.framework.exception.BusinessCheckException;
  13. import com.fuint.framework.pagination.PaginationRequest;
  14. import com.fuint.framework.pagination.PaginationResponse;
  15. import com.fuint.framework.web.BaseController;
  16. import com.fuint.framework.web.ResponseObject;
  17. import com.fuint.repository.model.MtUser;
  18. import com.fuint.repository.model.TAccount;
  19. import com.fuint.utils.StringUtil;
  20. import io.swagger.annotations.Api;
  21. import io.swagger.annotations.ApiOperation;
  22. import lombok.AllArgsConstructor;
  23. import org.springframework.security.access.prepost.PreAuthorize;
  24. import org.springframework.web.bind.annotation.*;
  25. import javax.servlet.http.HttpServletRequest;
  26. import java.util.ArrayList;
  27. import java.util.HashMap;
  28. import java.util.List;
  29. import java.util.Map;
  30. /**
  31. * 会员卡券核销流水
  32. *
  33. * Created by FSQ
  34. * CopyRight https://www.fuint.cn
  35. */
  36. @Api(tags="管理端-券核销流水相关接口")
  37. @RestController
  38. @AllArgsConstructor
  39. @RequestMapping(value = "/backendApi/confirmLog")
  40. public class BackendConfirmLogController extends BaseController {
  41. /**
  42. * 卡券核销流水接口
  43. */
  44. private ConfirmLogService confirmLogService;
  45. /**
  46. * 卡券服务接口
  47. */
  48. private CouponService couponService;
  49. /**
  50. * 会员接口服务
  51. * */
  52. private MemberService memberService;
  53. /**
  54. * 后台账户服务接口
  55. */
  56. private AccountService tAccountService;
  57. /**
  58. * 获取会员卡券核销记录列表
  59. *
  60. * @param request HttpServletRequest对象
  61. * @return
  62. */
  63. @ApiOperation(value = "获取会员卡券核销记录列表")
  64. @RequestMapping(value = "/list", method = RequestMethod.GET)
  65. @CrossOrigin
  66. @PreAuthorize("@pms.hasPermission('coupon:confirmLog:index')")
  67. public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
  68. String token = request.getHeader("Access-Token");
  69. Integer page = request.getParameter("page") == null ? Constants.PAGE_NUMBER : Integer.parseInt(request.getParameter("page"));
  70. Integer pageSize = request.getParameter("pageSize") == null ? Constants.PAGE_SIZE : Integer.parseInt(request.getParameter("pageSize"));
  71. String status = request.getParameter("status") == null ? "" : request.getParameter("status");
  72. String userId = request.getParameter("userId") == null ? "" : request.getParameter("userId");
  73. String mobile = request.getParameter("mobile") == null ? "" : request.getParameter("mobile");
  74. String couponId = request.getParameter("couponId") == null ? "" : request.getParameter("couponId");
  75. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  76. if (accountInfo == null) {
  77. return getFailureResult(1001, "请先登录");
  78. }
  79. PaginationRequest paginationRequest = new PaginationRequest();
  80. paginationRequest.setCurrentPage(page);
  81. paginationRequest.setPageSize(pageSize);
  82. Map<String, Object> searchParams = new HashMap<>();
  83. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  84. searchParams.put("merchantId", accountInfo.getMerchantId());
  85. }
  86. if (StringUtil.isNotEmpty(status)) {
  87. searchParams.put("status", status);
  88. }
  89. if (StringUtil.isNotEmpty(userId)) {
  90. searchParams.put("userId", userId);
  91. }
  92. if (StringUtil.isNotEmpty(couponId)) {
  93. searchParams.put("couponId", couponId);
  94. }
  95. if (StringUtil.isNotEmpty(mobile)) {
  96. MtUser userInfo = memberService.queryMemberByMobile(accountInfo.getMerchantId(), mobile);
  97. if (userInfo != null) {
  98. searchParams.put("userId", userInfo.getId().toString());
  99. } else {
  100. searchParams.put("userId", "0");
  101. }
  102. }
  103. paginationRequest.setSortColumn(new String[]{"updateTime desc", "id desc"});
  104. paginationRequest.setSearchParams(searchParams);
  105. // 登录员工所属店铺处理
  106. TAccount tAccount = tAccountService.getAccountInfoById(accountInfo.getId());
  107. if (tAccount.getStoreId() > 0 && tAccount.getStoreId() > 0) {
  108. searchParams.put("storeId", tAccount.getStoreId());
  109. }
  110. PaginationResponse<ConfirmLogDto> paginationResponse = confirmLogService.queryConfirmLogListByPagination(paginationRequest);
  111. // 卡券类型列表
  112. CouponTypeEnum[] typeListEnum = CouponTypeEnum.values();
  113. List<ParamDto> typeList = new ArrayList<>();
  114. for (CouponTypeEnum enumItem : typeListEnum) {
  115. ParamDto paramDto = new ParamDto();
  116. paramDto.setKey(enumItem.getKey());
  117. paramDto.setName(enumItem.getValue());
  118. paramDto.setValue(enumItem.getKey());
  119. typeList.add(paramDto);
  120. }
  121. Map<String, Object> result = new HashMap<>();
  122. result.put("paginationResponse", paginationResponse);
  123. result.put("typeList", typeList);
  124. return getSuccessResult(result);
  125. }
  126. /**
  127. * 撤销已使用的卡券
  128. *
  129. * @param request
  130. * @return
  131. */
  132. @ApiOperation(value = "撤销已使用的卡券")
  133. @RequestMapping(value = "/rollbackUserCoupon/{id}", method = RequestMethod.GET)
  134. @CrossOrigin
  135. @PreAuthorize("@pms.hasPermission('coupon:confirmLog:index')")
  136. public ResponseObject rollbackUserCoupon(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
  137. String token = request.getHeader("Access-Token");
  138. String userCouponId = (request.getParameter("userCouponId") == null || StringUtil.isEmpty(request.getParameter("userCouponId"))) ? "0" : request.getParameter("userCouponId");
  139. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  140. if (accountInfo == null) {
  141. return getFailureResult(1001, "请先登录");
  142. }
  143. couponService.rollbackUserCoupon(id, Integer.parseInt(userCouponId), accountInfo.getAccountName());
  144. return getSuccessResult(true);
  145. }
  146. }