BackendMemberController.java 24 KB

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