BackendMemberController.java 24 KB

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