BackendMemberController.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564
  1. package com.fuint.module.backendApi.controller;
  2. import com.fuint.common.Constants;
  3. import com.fuint.common.dto.*;
  4. import com.fuint.common.enums.SettingTypeEnum;
  5. import com.fuint.common.enums.StatusEnum;
  6. import com.fuint.common.enums.UserSettingEnum;
  7. import com.fuint.common.enums.YesOrNoEnum;
  8. import com.fuint.common.service.*;
  9. import com.fuint.common.util.*;
  10. import com.fuint.framework.exception.BusinessCheckException;
  11. import com.fuint.framework.pagination.PaginationRequest;
  12. import com.fuint.framework.pagination.PaginationResponse;
  13. import com.fuint.framework.web.BaseController;
  14. import com.fuint.framework.web.ResponseObject;
  15. import com.fuint.module.backendApi.request.MemberSubmitRequest;
  16. import com.fuint.repository.model.*;
  17. import com.fuint.utils.StringUtil;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import lombok.AllArgsConstructor;
  21. import org.springframework.beans.BeanUtils;
  22. import org.springframework.security.access.prepost.PreAuthorize;
  23. import org.springframework.web.bind.annotation.*;
  24. import org.springframework.web.multipart.MultipartFile;
  25. import org.springframework.web.multipart.MultipartHttpServletRequest;
  26. import weixin.popular.util.JsonUtil;
  27. import javax.servlet.http.HttpServletRequest;
  28. import javax.servlet.http.HttpServletResponse;
  29. import java.io.IOException;
  30. import java.text.ParseException;
  31. import java.util.*;
  32. /**
  33. * 会员管理类controller
  34. *
  35. * Created by FSQ
  36. * CopyRight https://www.fuint.cn
  37. */
  38. @Api(tags="管理端-会员相关接口")
  39. @RestController
  40. @AllArgsConstructor
  41. @RequestMapping(value = "/backendApi/member")
  42. public class BackendMemberController extends BaseController {
  43. /**
  44. * 会员服务接口
  45. */
  46. private MemberService memberService;
  47. /**
  48. * 配置服务接口
  49. * */
  50. private SettingService settingService;
  51. /**
  52. * 后台账户服务接口
  53. */
  54. private AccountService accountService;
  55. /**
  56. * 店铺服务接口
  57. */
  58. private StoreService storeService;
  59. /**
  60. * 会员分组服务接口
  61. */
  62. private MemberGroupService memberGroupService;
  63. /**
  64. * 微信相关接口
  65. * */
  66. private WeixinService weixinService;
  67. /**
  68. * 上传文件服务接口
  69. * */
  70. private UploadService uploadService;
  71. /**
  72. * 查询会员列表
  73. *
  74. * @param request HttpServletRequest对象
  75. * @return 会员列表
  76. */
  77. @ApiOperation(value = "查询会员列表")
  78. @RequestMapping(value = "/list", method = RequestMethod.GET)
  79. @CrossOrigin
  80. @PreAuthorize("@pms.hasPermission('member:index')")
  81. public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
  82. String token = request.getHeader("Access-Token");
  83. String mobile = request.getParameter("mobile");
  84. String userId = request.getParameter("id");
  85. String name = request.getParameter("name");
  86. String birthday = request.getParameter("birthday");
  87. String userNo = request.getParameter("userNo");
  88. String gradeId = request.getParameter("gradeId");
  89. String startTime = request.getParameter("startTime") == null ? "" : request.getParameter("startTime");
  90. String endTime = request.getParameter("endTime") == null ? "" : request.getParameter("endTime");
  91. String status = request.getParameter("status");
  92. String storeIds = request.getParameter("storeIds");
  93. String groupIds = request.getParameter("groupIds");
  94. Integer page = request.getParameter("page") == null ? Constants.PAGE_NUMBER : Integer.parseInt(request.getParameter("page"));
  95. Integer pageSize = request.getParameter("pageSize") == null ? Constants.PAGE_SIZE : Integer.parseInt(request.getParameter("pageSize"));
  96. PaginationRequest paginationRequest = new PaginationRequest();
  97. paginationRequest.setCurrentPage(page);
  98. paginationRequest.setPageSize(pageSize);
  99. Map<String, Object> params = new HashMap<>();
  100. if (StringUtil.isNotEmpty(userId)) {
  101. params.put("id", userId);
  102. }
  103. if (StringUtil.isNotEmpty(name)) {
  104. params.put("name", name);
  105. }
  106. if (StringUtil.isNotEmpty(mobile)) {
  107. params.put("mobile", mobile);
  108. }
  109. if (StringUtil.isNotEmpty(birthday)) {
  110. params.put("birthday", birthday);
  111. }
  112. if (StringUtil.isNotEmpty(userNo)) {
  113. params.put("userNo", userNo);
  114. }
  115. if (StringUtil.isNotEmpty(gradeId)) {
  116. params.put("gradeId", gradeId);
  117. }
  118. if (StringUtil.isNotEmpty(status)) {
  119. params.put("status", status);
  120. }
  121. if (StringUtil.isNotEmpty(storeIds)) {
  122. params.put("storeIds", storeIds);
  123. }
  124. if (StringUtil.isNotEmpty(groupIds)) {
  125. params.put("groupIds", groupIds);
  126. }
  127. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  128. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  129. params.put("merchantId", accountInfo.getMerchantId());
  130. }
  131. if (StringUtil.isNotEmpty(startTime)) {
  132. params.put("startTime", startTime);
  133. }
  134. if (StringUtil.isNotEmpty(endTime)) {
  135. params.put("endTime", endTime);
  136. }
  137. paginationRequest.setSearchParams(params);
  138. PaginationResponse<UserDto> paginationResponse = memberService.queryMemberListByPagination(paginationRequest);
  139. // 会员等级列表
  140. Map<String, Object> param = new HashMap<>();
  141. param.put("STATUS", StatusEnum.ENABLED.getKey());
  142. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  143. param.put("MERCHANT_ID", accountInfo.getMerchantId());
  144. }
  145. List<MtUserGrade> userGradeList = memberService.queryMemberGradeByParams(param);
  146. // 店铺列表
  147. List<MtStore> storeList = storeService.getMyStoreList(accountInfo.getMerchantId(), 0, StatusEnum.ENABLED.getKey());
  148. // 会员分组
  149. List<UserGroupDto> groupList = new ArrayList<>();
  150. Map<String, Object> searchParams = new HashMap<>();
  151. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  152. searchParams.put("merchantId", accountInfo.getMerchantId());
  153. }
  154. searchParams.put("status", StatusEnum.ENABLED.getKey());
  155. PaginationRequest groupRequest = new PaginationRequest();
  156. groupRequest.setCurrentPage(1);
  157. groupRequest.setPageSize(Constants.MAX_ROWS);
  158. groupRequest.setSearchParams(searchParams);
  159. PaginationResponse<UserGroupDto> groupResponse = memberGroupService.queryMemberGroupListByPagination(groupRequest);
  160. if (groupResponse != null && groupResponse.getContent() != null) {
  161. groupList = groupResponse.getContent();
  162. }
  163. Map<String, Object> result = new HashMap<>();
  164. result.put("paginationResponse", paginationResponse);
  165. result.put("userGradeList", userGradeList);
  166. result.put("storeList", storeList);
  167. result.put("groupList", groupList);
  168. return getSuccessResult(result);
  169. }
  170. /**
  171. * 更新会员状态
  172. *
  173. * @return
  174. */
  175. @ApiOperation(value = "更新会员状态")
  176. @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
  177. @CrossOrigin
  178. @PreAuthorize("@pms.hasPermission('member:index')")
  179. public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
  180. String token = request.getHeader("Access-Token");
  181. Integer userId = param.get("userId") == null ? 0 : Integer.parseInt(param.get("userId").toString());
  182. String status = param.get("status") == null ? StatusEnum.ENABLED.getKey() : param.get("status").toString();
  183. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  184. MtUser userInfo = memberService.queryMemberById(userId);
  185. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  186. if (!accountInfo.getMerchantId().equals(userInfo.getMerchantId())) {
  187. return getFailureResult(1004);
  188. }
  189. }
  190. if (userInfo == null) {
  191. return getFailureResult(201, "会员不存在");
  192. }
  193. userInfo.setStatus(status);
  194. memberService.updateMember(userInfo, false);
  195. return getSuccessResult(true);
  196. }
  197. /**
  198. * 删除会员
  199. *
  200. * @param request
  201. * @return
  202. */
  203. @ApiOperation(value = "删除会员")
  204. @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
  205. @CrossOrigin
  206. @PreAuthorize("@pms.hasPermission('member:index')")
  207. public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
  208. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(request.getHeader("Access-Token"));
  209. MtUser mtUser = memberService.queryMemberById(id);
  210. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  211. if (!mtUser.getMerchantId().equals(accountInfo.getMerchantId())) {
  212. return getFailureResult(1004);
  213. }
  214. }
  215. memberService.deleteMember(id, accountInfo.getAccountName());
  216. return getSuccessResult(true);
  217. }
  218. /**
  219. * 保存会员信息
  220. *
  221. * @param request HttpServletRequest对象
  222. * @return
  223. */
  224. @RequestMapping(value = "/save", method = RequestMethod.POST)
  225. @CrossOrigin
  226. @PreAuthorize("@pms.hasPermission('member:add')")
  227. public ResponseObject save(HttpServletRequest request, @RequestBody MemberSubmitRequest memberInfo) throws BusinessCheckException, ParseException {
  228. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(request.getHeader("Access-Token"));
  229. if (PhoneFormatCheckUtils.isChinaPhoneLegal(memberInfo.getMobile())) {
  230. // 重置该手机号
  231. memberService.resetMobile(memberInfo.getMobile(), memberInfo.getId());
  232. }
  233. MtUser mtUser;
  234. if (memberInfo.getId() == null || memberInfo.getId() <= 0) {
  235. mtUser = new MtUser();
  236. } else {
  237. mtUser = memberService.queryMemberById(memberInfo.getId());
  238. }
  239. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  240. mtUser.setMerchantId(accountInfo.getMerchantId());
  241. }
  242. BeanUtils.copyProperties(memberInfo, mtUser);
  243. mtUser.setStartTime(DateUtil.parseDate(memberInfo.getStartTime()));
  244. mtUser.setEndTime(DateUtil.parseDate(memberInfo.getEndTime()));
  245. mtUser.setIsStaff(YesOrNoEnum.NO.getKey());
  246. Integer myStoreId = accountInfo.getStoreId();
  247. if (myStoreId != null && myStoreId > 0) {
  248. mtUser.setStoreId(myStoreId);
  249. }
  250. if (mtUser.getId() == null) {
  251. memberService.addMember(mtUser, null);
  252. } else {
  253. memberService.updateMember(mtUser, false);
  254. }
  255. return getSuccessResult(true);
  256. }
  257. /**
  258. * 获取会员详情
  259. *
  260. * @param request
  261. * @return
  262. */
  263. @ApiOperation(value = "获取会员详情")
  264. @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
  265. @CrossOrigin
  266. @PreAuthorize("@pms.hasPermission('member:index')")
  267. public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
  268. String token = request.getHeader("Access-Token");
  269. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  270. MtUser mtUser = memberService.queryMemberById(id);
  271. if (mtUser == null) {
  272. return getFailureResult(201, "会员信息有误");
  273. }
  274. UserDto memberInfo = new UserDto();
  275. BeanUtils.copyProperties(mtUser, memberInfo);
  276. MtUserGroup mtUserGroup = memberGroupService.queryMemberGroupById(memberInfo.getGroupId());
  277. if (mtUserGroup != null) {
  278. UserGroupDto userGroupDto = new UserGroupDto();
  279. BeanUtils.copyProperties(mtUserGroup, userGroupDto);
  280. memberInfo.setGroupInfo(userGroupDto);
  281. }
  282. memberInfo.setMobile(CommonUtil.hidePhone(memberInfo.getMobile()));
  283. Map<String, Object> param = new HashMap<>();
  284. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  285. param.put("MERCHANT_ID", accountInfo.getMerchantId());
  286. }
  287. param.put("STATUS", StatusEnum.ENABLED.getKey());
  288. List<MtUserGrade> userGradeList = memberService.queryMemberGradeByParams(param);
  289. Map<String, Object> result = new HashMap<>();
  290. result.put("userGradeList", userGradeList);
  291. result.put("memberInfo", memberInfo);
  292. return getSuccessResult(result);
  293. }
  294. /**
  295. * 获取会员设置
  296. *
  297. * @param request
  298. * @return
  299. */
  300. @ApiOperation(value = "获取会员设置")
  301. @RequestMapping(value = "/setting", method = RequestMethod.GET)
  302. @CrossOrigin
  303. @PreAuthorize("@pms.hasPermission('member:setting')")
  304. public ResponseObject setting(HttpServletRequest request) throws BusinessCheckException {
  305. String token = request.getHeader("Access-Token");
  306. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  307. List<MtSetting> settingList = settingService.getSettingList(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey());
  308. String getCouponNeedPhone = YesOrNoEnum.FALSE.getKey();
  309. String submitOrderNeedPhone = YesOrNoEnum.FALSE.getKey();
  310. String loginNeedPhone = YesOrNoEnum.FALSE.getKey();
  311. String openWxCard = YesOrNoEnum.FALSE.getKey();
  312. WxCardDto wxMemberCard = null;
  313. for (MtSetting setting : settingList) {
  314. if (StringUtil.isNotEmpty(setting.getValue())) {
  315. if (setting.getName().equals(UserSettingEnum.GET_COUPON_NEED_PHONE.getKey())) {
  316. getCouponNeedPhone = setting.getValue();
  317. } else if (setting.getName().equals(UserSettingEnum.GET_COUPON_NEED_PHONE.getKey())) {
  318. submitOrderNeedPhone = setting.getValue();
  319. } else if (setting.getName().equals(UserSettingEnum.LOGIN_NEED_PHONE.getKey())) {
  320. loginNeedPhone = setting.getValue();
  321. } else if (setting.getName().equals(UserSettingEnum.OPEN_WX_CARD.getKey())) {
  322. openWxCard = setting.getValue();
  323. } else if (setting.getName().equals(UserSettingEnum.WX_MEMBER_CARD.getKey())) {
  324. wxMemberCard = JsonUtil.parseObject(setting.getValue(), WxCardDto.class);
  325. }
  326. }
  327. }
  328. String imagePath = settingService.getUploadBasePath();
  329. Map<String, Object> result = new HashMap<>();
  330. result.put("getCouponNeedPhone", getCouponNeedPhone);
  331. result.put("submitOrderNeedPhone", submitOrderNeedPhone);
  332. result.put("loginNeedPhone", loginNeedPhone);
  333. result.put("openWxCard", openWxCard);
  334. result.put("wxMemberCard", wxMemberCard);
  335. result.put("imagePath", imagePath);
  336. return getSuccessResult(result);
  337. }
  338. /**
  339. * 保存会员设置
  340. *
  341. * @param request HttpServletRequest对象
  342. * @return
  343. */
  344. @ApiOperation(value = "保存会员设置")
  345. @RequestMapping(value = "/saveSetting", method = RequestMethod.POST)
  346. @CrossOrigin
  347. @PreAuthorize("@pms.hasPermission('member:setting')")
  348. public ResponseObject saveSetting(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
  349. String token = request.getHeader("Access-Token");
  350. String getCouponNeedPhone = param.get("getCouponNeedPhone") != null ? param.get("getCouponNeedPhone").toString() : null;
  351. String submitOrderNeedPhone = param.get("submitOrderNeedPhone") != null ? param.get("submitOrderNeedPhone").toString() : null;
  352. String loginNeedPhone = param.get("loginNeedPhone") != null ? param.get("loginNeedPhone").toString() : null;
  353. String openWxCard = param.get("openWxCard") != null ? param.get("openWxCard").toString() : null;
  354. String wxMemberCard = param.get("wxMemberCard") != null ? param.get("wxMemberCard").toString() : null;
  355. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  356. UserSettingEnum[] settingList = UserSettingEnum.values();
  357. for (UserSettingEnum setting : settingList) {
  358. MtSetting mtSetting = new MtSetting();
  359. mtSetting.setType(SettingTypeEnum.USER.getKey());
  360. mtSetting.setName(setting.getKey());
  361. if (setting.getKey().equals(UserSettingEnum.GET_COUPON_NEED_PHONE.getKey())) {
  362. mtSetting.setValue(getCouponNeedPhone);
  363. } else if (setting.getKey().equals(UserSettingEnum.SUBMIT_ORDER_NEED_PHONE.getKey())) {
  364. mtSetting.setValue(submitOrderNeedPhone);
  365. } else if (setting.getKey().equals(UserSettingEnum.LOGIN_NEED_PHONE.getKey())) {
  366. mtSetting.setValue(loginNeedPhone);
  367. } else if (setting.getKey().equals(UserSettingEnum.OPEN_WX_CARD.getKey())) {
  368. mtSetting.setValue(openWxCard);
  369. } else if (setting.getKey().equals(UserSettingEnum.WX_MEMBER_CARD.getKey())) {
  370. mtSetting.setValue(wxMemberCard);
  371. }
  372. mtSetting.setDescription(setting.getValue());
  373. mtSetting.setOperator(accountInfo.getAccountName());
  374. mtSetting.setUpdateTime(new Date());
  375. mtSetting.setMerchantId(accountInfo.getMerchantId());
  376. mtSetting.setStoreId(0);
  377. settingService.saveSetting(mtSetting);
  378. }
  379. MtSetting openCardSetting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.OPEN_WX_CARD.getKey());
  380. MtSetting cardSetting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.WX_MEMBER_CARD.getKey());
  381. MtSetting cardIdSetting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
  382. if (openCardSetting != null && openCardSetting.getValue().equals(YesOrNoEnum.TRUE.getKey()) && cardSetting != null && accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  383. String wxCardId = "";
  384. if (cardIdSetting != null) {
  385. wxCardId = cardIdSetting.getValue();
  386. }
  387. String cardId = weixinService.createWxCard(accountInfo.getMerchantId(), wxCardId);
  388. if (StringUtil.isNotEmpty(cardId)) {
  389. MtSetting mtSetting = new MtSetting();
  390. mtSetting.setType(SettingTypeEnum.USER.getKey());
  391. mtSetting.setName(UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
  392. mtSetting.setValue(cardId);
  393. mtSetting.setOperator(accountInfo.getAccountName());
  394. mtSetting.setUpdateTime(new Date());
  395. mtSetting.setMerchantId(accountInfo.getMerchantId());
  396. mtSetting.setStoreId(0);
  397. settingService.saveSetting(mtSetting);
  398. }
  399. }
  400. return getSuccessResult(true);
  401. }
  402. /**
  403. * 重置会员密码
  404. *
  405. * @return
  406. */
  407. @ApiOperation(value = "重置会员密码")
  408. @RequestMapping(value = "/resetPwd", method = RequestMethod.POST)
  409. @CrossOrigin
  410. @PreAuthorize("@pms.hasPermission('member:add')")
  411. public ResponseObject resetPwd(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
  412. String token = request.getHeader("Access-Token");
  413. Integer userId = param.get("userId") == null ? 0 : Integer.parseInt(param.get("userId").toString());
  414. String password = param.get("password") == null ? "" : param.get("password").toString();
  415. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  416. if (StringUtil.isEmpty(password)) {
  417. return getFailureResult(1001, "密码格式有误");
  418. }
  419. MtUser userInfo = memberService.queryMemberById(userId);
  420. if (userInfo == null) {
  421. return getFailureResult(201, "会员不存在");
  422. }
  423. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0 && !accountInfo.getMerchantId().equals(userInfo.getMerchantId())) {
  424. return getFailureResult(201, "您没有操作权限");
  425. }
  426. if (accountInfo.getStoreId() != null && accountInfo.getStoreId() > 0 && !accountInfo.getStoreId().equals(userInfo.getStoreId())) {
  427. return getFailureResult(201, "您没有操作权限");
  428. }
  429. userInfo.setPassword(password);
  430. memberService.updateMember(userInfo, true);
  431. return getSuccessResult(true);
  432. }
  433. /**
  434. * 获取会员分组
  435. *
  436. * @param request
  437. * @return
  438. */
  439. @ApiOperation(value = "获取会员分组")
  440. @RequestMapping(value = "/groupList", method = RequestMethod.GET)
  441. @CrossOrigin
  442. public ResponseObject groupList(HttpServletRequest request) throws BusinessCheckException {
  443. String token = request.getHeader("Access-Token");
  444. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  445. // 会员分组
  446. List<UserGroupDto> groupList = new ArrayList<>();
  447. Map<String, Object> searchParams = new HashMap<>();
  448. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  449. searchParams.put("merchantId", accountInfo.getMerchantId());
  450. }
  451. PaginationRequest groupRequest = new PaginationRequest();
  452. groupRequest.setCurrentPage(1);
  453. groupRequest.setPageSize(Constants.ALL_ROWS);
  454. groupRequest.setSearchParams(searchParams);
  455. PaginationResponse<UserGroupDto> groupResponse = memberGroupService.queryMemberGroupListByPagination(groupRequest);
  456. if (groupResponse != null && groupResponse.getContent() != null) {
  457. groupList = groupResponse.getContent();
  458. }
  459. return getSuccessResult(groupList);
  460. }
  461. /**
  462. * 查找会员列表
  463. *
  464. * @param request
  465. * @return
  466. */
  467. @ApiOperation(value = "查找会员列表")
  468. @RequestMapping(value = "/searchMembers", method = RequestMethod.GET)
  469. @CrossOrigin
  470. public ResponseObject searchMembers(HttpServletRequest request) {
  471. String token = request.getHeader("Access-Token");
  472. String groupIds = request.getParameter("groupIds") != null ? request.getParameter("groupIds") : "";
  473. String keyword = request.getParameter("keyword") != null ? request.getParameter("keyword") : "";
  474. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  475. List<GroupMemberDto> memberList = memberService.searchMembers(accountInfo.getMerchantId(), keyword, groupIds,1, Constants.MAX_ROWS);
  476. return getSuccessResult(memberList);
  477. }
  478. /**
  479. * 下载会员导入模板
  480. *
  481. * @return
  482. */
  483. @ApiOperation(value = "下载会员导入模板")
  484. @RequestMapping(value = "/downloadTemplate", method = RequestMethod.GET)
  485. @CrossOrigin
  486. public void downloadTemplate(HttpServletResponse response) throws IOException {
  487. ExcelUtil.downLoadTemplate(response, "MemberTemplate.xlsx");
  488. }
  489. /**
  490. * 上传会员导入文件
  491. *
  492. * @param request
  493. * @throws
  494. */
  495. @ApiOperation(value = "上传会员导入文件")
  496. @RequestMapping(value = "/uploadMemberFile", method = RequestMethod.POST)
  497. @CrossOrigin
  498. public ResponseObject uploadMemberFile(HttpServletRequest request) throws Exception {
  499. String token = request.getHeader("Access-Token");
  500. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  501. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  502. MultipartFile file = multipartRequest.getFile("file");
  503. String filePath = uploadService.saveUploadFile(request, file);
  504. Boolean result = memberService.importMember(file, accountInfo, filePath);
  505. return getSuccessResult(result);
  506. }
  507. }