ClientSystemController.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package com.fuint.module.clientApi.controller;
  2. import com.fuint.common.dto.ParamDto;
  3. import com.fuint.common.dto.StoreDto;
  4. import com.fuint.common.dto.UserInfo;
  5. import com.fuint.common.enums.StatusEnum;
  6. import com.fuint.common.service.MemberService;
  7. import com.fuint.common.service.MerchantService;
  8. import com.fuint.common.service.SettingService;
  9. import com.fuint.common.service.StoreService;
  10. import com.fuint.common.util.TokenUtil;
  11. import com.fuint.framework.exception.BusinessCheckException;
  12. import com.fuint.framework.web.BaseController;
  13. import com.fuint.framework.web.ResponseObject;
  14. import com.fuint.repository.model.MtMerchant;
  15. import com.fuint.repository.model.MtStore;
  16. import com.fuint.repository.model.MtUser;
  17. import com.fuint.utils.StringUtil;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import org.springframework.beans.BeanUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.web.bind.annotation.*;
  23. import javax.servlet.http.HttpServletRequest;
  24. import java.util.Date;
  25. import java.util.HashMap;
  26. import java.util.List;
  27. import java.util.Map;
  28. /**
  29. * 系统接口相关controller
  30. *
  31. * Created by FSQ
  32. * CopyRight https://www.fuint.cn
  33. */
  34. @Api(tags="会员端-系统配置相关接口")
  35. @RestController
  36. @RequestMapping(value = "/clientApi/system")
  37. public class ClientSystemController extends BaseController {
  38. /**
  39. * 店铺服务接口
  40. * */
  41. @Autowired
  42. private StoreService storeService;
  43. /**
  44. * 会员服务接口
  45. */
  46. @Autowired
  47. private MemberService memberService;
  48. /**
  49. * 配置服务接口
  50. * */
  51. @Autowired
  52. private SettingService settingService;
  53. /**
  54. * 商户接口
  55. */
  56. @Autowired
  57. private MerchantService merchantService;
  58. /**
  59. * 获取系统配置
  60. *
  61. * @param request Request对象
  62. */
  63. @ApiOperation(value = "获取系统配置")
  64. @RequestMapping(value = "/config", method = RequestMethod.GET)
  65. @CrossOrigin
  66. public ResponseObject config(HttpServletRequest request) throws BusinessCheckException {
  67. String token = request.getHeader("Access-Token");
  68. String platform = request.getHeader("platform");
  69. String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
  70. String storeId = request.getHeader("storeId") == null ? "" : request.getHeader("storeId");
  71. String latitude = request.getHeader("latitude") == null ? "" : request.getHeader("latitude");
  72. String longitude = request.getHeader("longitude") == null ? "" : request.getHeader("longitude");
  73. UserInfo loginInfo = TokenUtil.getUserInfoByToken(token);
  74. Integer merchantId = merchantService.getMerchantId(merchantNo);
  75. // 默认店铺,取会员之前选择的店铺
  76. MtStore storeInfo = null;
  77. MtUser mtUser = null;
  78. if (loginInfo != null) {
  79. mtUser = memberService.queryMemberById(loginInfo.getId());
  80. if (mtUser != null) {
  81. // 会员已禁用
  82. if (!mtUser.getStatus().equals(StatusEnum.ENABLED.getKey())) {
  83. return getFailureResult(1001);
  84. }
  85. // 商户不同
  86. if (!mtUser.getMerchantId().equals(merchantId)) {
  87. return getFailureResult(1001);
  88. }
  89. }
  90. }
  91. // 默认的店铺
  92. if (StringUtil.isNotEmpty(storeId)) {
  93. storeInfo = storeService.queryStoreById(Integer.parseInt(storeId));
  94. // 店铺是否已关闭
  95. if (storeInfo != null) {
  96. if (!storeInfo.getStatus().equals(StatusEnum.ENABLED.getKey())) {
  97. storeInfo = null;
  98. }
  99. }
  100. }
  101. // 取距离最近的
  102. if (storeInfo == null && StringUtil.isNotEmpty(latitude) && StringUtil.isNotEmpty(longitude)) {
  103. List<MtStore> storeList = storeService.queryByDistance(merchantNo, "", latitude, longitude);
  104. if (storeList.size() > 0) {
  105. storeInfo = storeList.get(0);
  106. }
  107. }
  108. // 最后取系统默认的店铺
  109. if (storeInfo == null) {
  110. storeInfo = storeService.getDefaultStore(merchantNo);
  111. }
  112. // 完善会员的店铺信息
  113. if (mtUser != null && (mtUser.getStoreId() == null || mtUser.getStoreId() < 1)) {
  114. mtUser.setStoreId(storeInfo.getId());
  115. mtUser.setUpdateTime(new Date());
  116. memberService.updateMember(mtUser);
  117. }
  118. StoreDto storeDto = new StoreDto();
  119. if (storeInfo != null) {
  120. BeanUtils.copyProperties(storeInfo, storeDto);
  121. MtMerchant mtMerchant = merchantService.queryMerchantById(storeInfo.getMerchantId());
  122. if (mtMerchant != null) {
  123. storeDto.setMerchantNo(mtMerchant.getNo());
  124. }
  125. } else {
  126. storeDto = null;
  127. }
  128. // 支付方式列表
  129. List<ParamDto> payTypeList = settingService.getPayTypeList(platform);
  130. Map<String, Object> result = new HashMap<>();
  131. result.put("storeInfo", storeDto);
  132. result.put("payTypeList", payTypeList);
  133. return getSuccessResult(result);
  134. }
  135. }