BackendMemberController.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558
  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.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  123. params.put("merchantId", accountInfo.getMerchantId());
  124. }
  125. if (StringUtil.isNotEmpty(startTime)) {
  126. params.put("startTime", startTime);
  127. }
  128. if (StringUtil.isNotEmpty(endTime)) {
  129. params.put("endTime", endTime);
  130. }
  131. paginationRequest.setSearchParams(params);
  132. PaginationResponse<UserDto> paginationResponse = memberService.queryMemberListByPagination(paginationRequest);
  133. // 会员等级列表
  134. Map<String, Object> param = new HashMap<>();
  135. param.put("STATUS", StatusEnum.ENABLED.getKey());
  136. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  137. param.put("MERCHANT_ID", accountInfo.getMerchantId());
  138. }
  139. List<MtUserGrade> userGradeList = memberService.queryMemberGradeByParams(param);
  140. // 店铺列表
  141. List<MtStore> storeList = storeService.getMyStoreList(accountInfo.getMerchantId(), 0, StatusEnum.ENABLED.getKey());
  142. // 会员分组
  143. List<UserGroupDto> groupList = new ArrayList<>();
  144. Map<String, Object> searchParams = new HashMap<>();
  145. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  146. searchParams.put("merchantId", accountInfo.getMerchantId());
  147. }
  148. searchParams.put("status", StatusEnum.ENABLED.getKey());
  149. PaginationRequest groupRequest = new PaginationRequest();
  150. groupRequest.setCurrentPage(1);
  151. groupRequest.setPageSize(Constants.MAX_ROWS);
  152. groupRequest.setSearchParams(searchParams);
  153. PaginationResponse<UserGroupDto> groupResponse = memberGroupService.queryMemberGroupListByPagination(groupRequest);
  154. if (groupResponse != null && groupResponse.getContent() != null) {
  155. groupList = groupResponse.getContent();
  156. }
  157. Map<String, Object> result = new HashMap<>();
  158. result.put("paginationResponse", paginationResponse);
  159. result.put("userGradeList", userGradeList);
  160. result.put("storeList", storeList);
  161. result.put("groupList", groupList);
  162. return getSuccessResult(result);
  163. }
  164. /**
  165. * 更新会员状态
  166. *
  167. * @return
  168. */
  169. @ApiOperation(value = "更新会员状态")
  170. @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
  171. @CrossOrigin
  172. @PreAuthorize("@pms.hasPermission('member:index')")
  173. public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
  174. String token = request.getHeader("Access-Token");
  175. Integer userId = param.get("userId") == null ? 0 : Integer.parseInt(param.get("userId").toString());
  176. String status = param.get("status") == null ? StatusEnum.ENABLED.getKey() : param.get("status").toString();
  177. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  178. MtUser userInfo = memberService.queryMemberById(userId);
  179. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  180. if (!accountInfo.getMerchantId().equals(userInfo.getMerchantId())) {
  181. return getFailureResult(1004);
  182. }
  183. }
  184. if (userInfo == null) {
  185. return getFailureResult(201, "会员不存在");
  186. }
  187. userInfo.setStatus(status);
  188. memberService.updateMember(userInfo, false);
  189. return getSuccessResult(true);
  190. }
  191. /**
  192. * 删除会员
  193. *
  194. * @param request
  195. * @return
  196. */
  197. @ApiOperation(value = "删除会员")
  198. @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
  199. @CrossOrigin
  200. @PreAuthorize("@pms.hasPermission('member:index')")
  201. public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
  202. String token = request.getHeader("Access-Token");
  203. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  204. String operator = accountInfo.getAccountName();
  205. memberService.deleteMember(id, operator);
  206. return getSuccessResult(true);
  207. }
  208. /**
  209. * 保存会员信息
  210. *
  211. * @param request HttpServletRequest对象
  212. * @return
  213. */
  214. @RequestMapping(value = "/save", method = RequestMethod.POST)
  215. @CrossOrigin
  216. @PreAuthorize("@pms.hasPermission('member:add')")
  217. public ResponseObject save(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException, ParseException {
  218. String token = request.getHeader("Access-Token");
  219. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  220. String id = param.get("id").toString();
  221. String name = param.get("name") == null ? "" : param.get("name").toString();
  222. String gradeId = param.get("gradeId") == null ? "0" :param.get("gradeId").toString();
  223. String groupId = param.get("groupId") == null ? "0" :param.get("groupId").toString();
  224. String storeId = param.get("storeId") == null ? "0" :param.get("storeId").toString();
  225. String userNo = param.get("userNo") == null ? "" : param.get("userNo").toString();
  226. String mobile = param.get("mobile") == null ? "" : param.get("mobile").toString();
  227. String sex = param.get("sex") == null ? "0" : param.get("sex").toString();
  228. String idCard = param.get("idcard") == null ? "" : param.get("idcard").toString();
  229. String birthday = param.get("birthday") == null ? "" : param.get("birthday").toString();
  230. String address = param.get("address") == null ? "" : param.get("address").toString();
  231. String description = param.get("description") == null ? "" : param.get("description").toString();
  232. String status = param.get("status") == null ? StatusEnum.ENABLED.getKey() : param.get("status").toString();
  233. String startTime = param.get("startTime") == null ? "" : param.get("startTime").toString();
  234. String endTime = param.get("endTime") == null ? "" : param.get("endTime").toString();
  235. if (PhoneFormatCheckUtils.isChinaPhoneLegal(mobile)) {
  236. // 重置该手机号
  237. memberService.resetMobile(mobile, StringUtil.isEmpty(id) ? 0 : Integer.parseInt(id));
  238. }
  239. MtUser memberInfo;
  240. if (StringUtil.isEmpty(id)) {
  241. memberInfo = new MtUser();
  242. } else {
  243. memberInfo = memberService.queryMemberById(Integer.parseInt(id));
  244. }
  245. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  246. memberInfo.setMerchantId(accountInfo.getMerchantId());
  247. }
  248. memberInfo.setName(name);
  249. memberInfo.setStatus(status);
  250. if (StringUtil.isNotEmpty(groupId)) {
  251. memberInfo.setGroupId(Integer.parseInt(groupId));
  252. }
  253. memberInfo.setGradeId(gradeId);
  254. memberInfo.setUserNo(userNo);
  255. if (PhoneFormatCheckUtils.isChinaPhoneLegal(mobile)) {
  256. memberInfo.setMobile(mobile);
  257. }
  258. memberInfo.setSex(Integer.parseInt(sex));
  259. memberInfo.setIdcard(idCard);
  260. memberInfo.setBirthday(birthday);
  261. memberInfo.setAddress(address);
  262. memberInfo.setDescription(description);
  263. memberInfo.setStartTime(DateUtil.parseDate(startTime));
  264. memberInfo.setEndTime(DateUtil.parseDate(endTime));
  265. memberInfo.setIsStaff(YesOrNoEnum.NO.getKey());
  266. if (StringUtil.isNotEmpty(storeId)) {
  267. memberInfo.setStoreId(Integer.parseInt(storeId));
  268. }
  269. TAccount account = accountService.getAccountInfoById(accountInfo.getId());
  270. Integer myStoreId = account.getStoreId();
  271. if (myStoreId != null && myStoreId > 0) {
  272. memberInfo.setStoreId(myStoreId);
  273. }
  274. if (StringUtil.isEmpty(id)) {
  275. memberService.addMember(memberInfo, "0");
  276. } else {
  277. memberService.updateMember(memberInfo, false);
  278. }
  279. return getSuccessResult(true);
  280. }
  281. /**
  282. * 获取会员详情
  283. *
  284. * @param request
  285. * @return
  286. */
  287. @ApiOperation(value = "获取会员详情")
  288. @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
  289. @CrossOrigin
  290. @PreAuthorize("@pms.hasPermission('member:index')")
  291. public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
  292. String token = request.getHeader("Access-Token");
  293. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  294. MtUser mtUser = memberService.queryMemberById(id);
  295. if (mtUser == null) {
  296. return getFailureResult(201, "会员信息有误");
  297. }
  298. UserDto memberInfo = new UserDto();
  299. BeanUtils.copyProperties(mtUser, memberInfo);
  300. MtUserGroup mtUserGroup = memberGroupService.queryMemberGroupById(memberInfo.getGroupId());
  301. if (mtUserGroup != null) {
  302. UserGroupDto userGroupDto = new UserGroupDto();
  303. BeanUtils.copyProperties(mtUserGroup, userGroupDto);
  304. memberInfo.setGroupInfo(userGroupDto);
  305. }
  306. memberInfo.setMobile(CommonUtil.hidePhone(memberInfo.getMobile()));
  307. Map<String, Object> param = new HashMap<>();
  308. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  309. param.put("MERCHANT_ID", accountInfo.getMerchantId());
  310. }
  311. param.put("STATUS", StatusEnum.ENABLED.getKey());
  312. List<MtUserGrade> userGradeList = memberService.queryMemberGradeByParams(param);
  313. Map<String, Object> result = new HashMap<>();
  314. result.put("userGradeList", userGradeList);
  315. result.put("memberInfo", memberInfo);
  316. return getSuccessResult(result);
  317. }
  318. /**
  319. * 获取会员设置
  320. *
  321. * @param request
  322. * @return
  323. */
  324. @ApiOperation(value = "获取会员设置")
  325. @RequestMapping(value = "/setting", method = RequestMethod.GET)
  326. @CrossOrigin
  327. @PreAuthorize("@pms.hasPermission('member:setting')")
  328. public ResponseObject setting(HttpServletRequest request) throws BusinessCheckException {
  329. String token = request.getHeader("Access-Token");
  330. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  331. List<MtSetting> settingList = settingService.getSettingList(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey());
  332. String getCouponNeedPhone = YesOrNoEnum.FALSE.getKey();
  333. String submitOrderNeedPhone = YesOrNoEnum.FALSE.getKey();
  334. String loginNeedPhone = YesOrNoEnum.FALSE.getKey();
  335. String openWxCard = YesOrNoEnum.FALSE.getKey();
  336. WxCardDto wxMemberCard = null;
  337. for (MtSetting setting : settingList) {
  338. if (StringUtil.isNotEmpty(setting.getValue())) {
  339. if (setting.getName().equals(UserSettingEnum.GET_COUPON_NEED_PHONE.getKey())) {
  340. getCouponNeedPhone = setting.getValue();
  341. } else if (setting.getName().equals(UserSettingEnum.GET_COUPON_NEED_PHONE.getKey())) {
  342. submitOrderNeedPhone = setting.getValue();
  343. } else if (setting.getName().equals(UserSettingEnum.LOGIN_NEED_PHONE.getKey())) {
  344. loginNeedPhone = setting.getValue();
  345. } else if (setting.getName().equals(UserSettingEnum.OPEN_WX_CARD.getKey())) {
  346. openWxCard = setting.getValue();
  347. } else if (setting.getName().equals(UserSettingEnum.WX_MEMBER_CARD.getKey())) {
  348. wxMemberCard = JsonUtil.parseObject(setting.getValue(), WxCardDto.class);
  349. }
  350. }
  351. }
  352. String imagePath = settingService.getUploadBasePath();
  353. Map<String, Object> result = new HashMap<>();
  354. result.put("getCouponNeedPhone", getCouponNeedPhone);
  355. result.put("submitOrderNeedPhone", submitOrderNeedPhone);
  356. result.put("loginNeedPhone", loginNeedPhone);
  357. result.put("openWxCard", openWxCard);
  358. result.put("wxMemberCard", wxMemberCard);
  359. result.put("imagePath", imagePath);
  360. return getSuccessResult(result);
  361. }
  362. /**
  363. * 保存会员设置
  364. *
  365. * @param request HttpServletRequest对象
  366. * @return
  367. */
  368. @ApiOperation(value = "保存会员设置")
  369. @RequestMapping(value = "/saveSetting", method = RequestMethod.POST)
  370. @CrossOrigin
  371. @PreAuthorize("@pms.hasPermission('member:setting')")
  372. public ResponseObject saveSetting(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
  373. String token = request.getHeader("Access-Token");
  374. String getCouponNeedPhone = param.get("getCouponNeedPhone") != null ? param.get("getCouponNeedPhone").toString() : null;
  375. String submitOrderNeedPhone = param.get("submitOrderNeedPhone") != null ? param.get("submitOrderNeedPhone").toString() : null;
  376. String loginNeedPhone = param.get("loginNeedPhone") != null ? param.get("loginNeedPhone").toString() : null;
  377. String openWxCard = param.get("openWxCard") != null ? param.get("openWxCard").toString() : null;
  378. String wxMemberCard = param.get("wxMemberCard") != null ? param.get("wxMemberCard").toString() : null;
  379. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  380. UserSettingEnum[] settingList = UserSettingEnum.values();
  381. for (UserSettingEnum setting : settingList) {
  382. MtSetting mtSetting = new MtSetting();
  383. mtSetting.setType(SettingTypeEnum.USER.getKey());
  384. mtSetting.setName(setting.getKey());
  385. if (setting.getKey().equals(UserSettingEnum.GET_COUPON_NEED_PHONE.getKey())) {
  386. mtSetting.setValue(getCouponNeedPhone);
  387. } else if (setting.getKey().equals(UserSettingEnum.SUBMIT_ORDER_NEED_PHONE.getKey())) {
  388. mtSetting.setValue(submitOrderNeedPhone);
  389. } else if (setting.getKey().equals(UserSettingEnum.LOGIN_NEED_PHONE.getKey())) {
  390. mtSetting.setValue(loginNeedPhone);
  391. } else if (setting.getKey().equals(UserSettingEnum.OPEN_WX_CARD.getKey())) {
  392. mtSetting.setValue(openWxCard);
  393. } else if (setting.getKey().equals(UserSettingEnum.WX_MEMBER_CARD.getKey())) {
  394. mtSetting.setValue(wxMemberCard);
  395. }
  396. mtSetting.setDescription(setting.getValue());
  397. mtSetting.setOperator(accountInfo.getAccountName());
  398. mtSetting.setUpdateTime(new Date());
  399. mtSetting.setMerchantId(accountInfo.getMerchantId());
  400. mtSetting.setStoreId(0);
  401. settingService.saveSetting(mtSetting);
  402. }
  403. MtSetting openCardSetting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.OPEN_WX_CARD.getKey());
  404. MtSetting cardSetting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.WX_MEMBER_CARD.getKey());
  405. MtSetting cardIdSetting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
  406. if (openCardSetting != null && openCardSetting.getValue().equals(YesOrNoEnum.TRUE.getKey()) && cardSetting != null && accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  407. String wxCardId = "";
  408. if (cardIdSetting != null) {
  409. wxCardId = cardIdSetting.getValue();
  410. }
  411. String cardId = weixinService.createWxCard(accountInfo.getMerchantId(), wxCardId);
  412. if (StringUtil.isNotEmpty(cardId)) {
  413. MtSetting mtSetting = new MtSetting();
  414. mtSetting.setType(SettingTypeEnum.USER.getKey());
  415. mtSetting.setName(UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
  416. mtSetting.setValue(cardId);
  417. mtSetting.setOperator(accountInfo.getAccountName());
  418. mtSetting.setUpdateTime(new Date());
  419. mtSetting.setMerchantId(accountInfo.getMerchantId());
  420. mtSetting.setStoreId(0);
  421. settingService.saveSetting(mtSetting);
  422. }
  423. }
  424. return getSuccessResult(true);
  425. }
  426. /**
  427. * 重置会员密码
  428. *
  429. * @return
  430. */
  431. @ApiOperation(value = "重置会员密码")
  432. @RequestMapping(value = "/resetPwd", method = RequestMethod.POST)
  433. @CrossOrigin
  434. @PreAuthorize("@pms.hasPermission('member:add')")
  435. public ResponseObject resetPwd(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
  436. String token = request.getHeader("Access-Token");
  437. Integer userId = param.get("userId") == null ? 0 : Integer.parseInt(param.get("userId").toString());
  438. String password = param.get("password") == null ? "" : param.get("password").toString();
  439. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  440. if (StringUtil.isEmpty(password)) {
  441. return getFailureResult(1001, "密码格式有误");
  442. }
  443. MtUser userInfo = memberService.queryMemberById(userId);
  444. if (userInfo == null) {
  445. return getFailureResult(201, "会员不存在");
  446. }
  447. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0 && !accountInfo.getMerchantId().equals(userInfo.getMerchantId())) {
  448. return getFailureResult(201, "您没有操作权限");
  449. }
  450. if (accountInfo.getStoreId() != null && accountInfo.getStoreId() > 0 && !accountInfo.getStoreId().equals(userInfo.getStoreId())) {
  451. return getFailureResult(201, "您没有操作权限");
  452. }
  453. userInfo.setPassword(password);
  454. memberService.updateMember(userInfo, true);
  455. return getSuccessResult(true);
  456. }
  457. /**
  458. * 获取会员分组
  459. *
  460. * @param request
  461. * @return
  462. */
  463. @ApiOperation(value = "获取会员分组")
  464. @RequestMapping(value = "/groupList", method = RequestMethod.GET)
  465. @CrossOrigin
  466. public ResponseObject groupList(HttpServletRequest request) throws BusinessCheckException {
  467. String token = request.getHeader("Access-Token");
  468. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  469. // 会员分组
  470. List<UserGroupDto> groupList = new ArrayList<>();
  471. Map<String, Object> searchParams = new HashMap<>();
  472. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  473. searchParams.put("merchantId", accountInfo.getMerchantId());
  474. }
  475. PaginationRequest groupRequest = new PaginationRequest();
  476. groupRequest.setCurrentPage(1);
  477. groupRequest.setPageSize(Constants.ALL_ROWS);
  478. groupRequest.setSearchParams(searchParams);
  479. PaginationResponse<UserGroupDto> groupResponse = memberGroupService.queryMemberGroupListByPagination(groupRequest);
  480. if (groupResponse != null && groupResponse.getContent() != null) {
  481. groupList = groupResponse.getContent();
  482. }
  483. return getSuccessResult(groupList);
  484. }
  485. /**
  486. * 查找会员列表
  487. *
  488. * @param request
  489. * @return
  490. */
  491. @ApiOperation(value = "查找会员列表")
  492. @RequestMapping(value = "/searchMembers", method = RequestMethod.GET)
  493. @CrossOrigin
  494. public ResponseObject searchMembers(HttpServletRequest request) {
  495. String token = request.getHeader("Access-Token");
  496. String groupIds = request.getParameter("groupIds") != null ? request.getParameter("groupIds") : "";
  497. String keyword = request.getParameter("keyword") != null ? request.getParameter("keyword") : "";
  498. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  499. List<GroupMemberDto> memberList = memberService.searchMembers(accountInfo.getMerchantId(), keyword, groupIds,1, Constants.MAX_ROWS);
  500. return getSuccessResult(memberList);
  501. }
  502. }