Ver Fonte

fixed 会员批量操作

fushengqian há 1 ano atrás
pai
commit
02d1d4798e

+ 29 - 0
fuint-application/src/main/java/com/fuint/common/dto/GroupMemberDto.java

@@ -0,0 +1,29 @@
+package com.fuint.common.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.io.Serializable;
+
+/**
+ * 分组会员DTO
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class GroupMemberDto implements Serializable {
+
+    @ApiModelProperty("会员ID")
+    private Integer id;
+
+    @ApiModelProperty("会员名称")
+    private String name;
+
+    @ApiModelProperty("会员号")
+    private String userNo;
+
+    @ApiModelProperty("会员名称")
+    private String mobile;
+}
+

+ 0 - 2
fuint-application/src/main/java/com/fuint/common/dto/MemberGroupDto.java

@@ -1,6 +1,5 @@
 package com.fuint.common.dto;
 
-import com.baomidou.mybatisplus.annotation.*;
 import java.io.Serializable;
 import java.util.Date;
 import io.swagger.annotations.ApiModelProperty;
@@ -20,7 +19,6 @@ public class MemberGroupDto implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("分组ID")
-    @TableId(value = "ID", type = IdType.AUTO)
     private Integer id;
 
     @ApiModelProperty("分组名称")

+ 12 - 0
fuint-application/src/main/java/com/fuint/common/service/MemberService.java

@@ -2,6 +2,7 @@ package com.fuint.common.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.alibaba.fastjson.JSONObject;
+import com.fuint.common.dto.GroupMemberDto;
 import com.fuint.common.dto.MemberTopDto;
 import com.fuint.common.dto.UserDto;
 import com.fuint.framework.exception.BusinessCheckException;
@@ -170,4 +171,15 @@ public interface MemberService extends IService<MtUser> {
      * @return
      * */
     List<MemberTopDto> getMemberConsumeTopList(Integer merchantId, Integer storeId, Date startTime, Date endTime);
+
+    /**
+     * 获取分组会员列表
+     *
+     * @param merchantId
+     * @param groupIds
+     * @param page
+     * @param pageSize
+     * @return
+     * */
+    List<GroupMemberDto> getGroupMembers(Integer merchantId, String groupIds, Integer page, Integer pageSize);
 }

+ 51 - 1
fuint-application/src/main/java/com/fuint/common/service/impl/MemberServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fuint.common.dto.AccountInfo;
+import com.fuint.common.dto.GroupMemberDto;
 import com.fuint.common.dto.MemberTopDto;
 import com.fuint.common.dto.UserDto;
 import com.fuint.common.enums.GenderEnum;
@@ -225,6 +226,13 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
                 lambdaQueryWrapper.in(MtUser::getStoreId, idList);
             }
         }
+        String groupIds = paginationRequest.getSearchParams().get("groupIds") == null ? "" : paginationRequest.getSearchParams().get("groupIds").toString();
+        if (StringUtils.isNotBlank(groupIds)) {
+            List<String> idList = Arrays.asList(groupIds.split(","));
+            if (idList.size() > 0) {
+                lambdaQueryWrapper.in(MtUser::getGroupId, idList);
+            }
+        }
         String status = paginationRequest.getSearchParams().get("status") == null ? "" : paginationRequest.getSearchParams().get("status").toString();
         if (StringUtils.isNotBlank(status)) {
             lambdaQueryWrapper.eq(MtUser::getStatus, status);
@@ -819,7 +827,49 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
                 dataList.add(dto);
            }
        }
-
        return dataList;
     }
+
+    /**
+     * 获取分组会员列表
+     *
+     * @param merchantId
+     * @param groupIds
+     * @param page
+     * @param pageSize
+     * @return
+     * */
+    @Override
+    public List<GroupMemberDto> getGroupMembers(Integer merchantId, String groupIds, Integer page, Integer pageSize) {
+        PageHelper.startPage(page, pageSize);
+        LambdaQueryWrapper<MtUser> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        lambdaQueryWrapper.ne(MtUser::getStatus, StatusEnum.DISABLE.getKey());
+        if (merchantId != null && merchantId > 0) {
+            lambdaQueryWrapper.eq(MtUser::getMerchantId, merchantId);
+        }
+        if (StringUtils.isNotBlank(groupIds)) {
+            List<String> idList = Arrays.asList(groupIds.split(","));
+            if (idList.size() > 0) {
+                lambdaQueryWrapper.in(MtUser::getGroupId, idList);
+            }
+        }
+        lambdaQueryWrapper.orderByDesc(MtUser::getUpdateTime);
+        List<MtUser> userList = mtUserMapper.selectList(lambdaQueryWrapper);
+        List<GroupMemberDto> dataList = new ArrayList<>();
+        if (userList != null && userList.size() > 0) {
+            for (MtUser mtUser : userList) {
+                 GroupMemberDto memberDto = new GroupMemberDto();
+                 memberDto.setId(mtUser.getId());
+                 memberDto.setName(mtUser.getName());
+                 memberDto.setUserNo(mtUser.getUserNo());
+                 // 隐藏手机号中间四位
+                 String phone = mtUser.getMobile();
+                 if (phone != null && StringUtil.isNotEmpty(phone) && phone.length() == 11) {
+                     memberDto.setMobile(phone.substring(0, 3) + "****" + phone.substring(7));
+                 }
+                 dataList.add(memberDto);
+            }
+        }
+        return dataList;
+    }
 }

+ 55 - 0
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMemberController.java

@@ -2,6 +2,7 @@ package com.fuint.module.backendApi.controller;
 
 import com.fuint.common.Constants;
 import com.fuint.common.dto.AccountInfo;
+import com.fuint.common.dto.GroupMemberDto;
 import com.fuint.common.dto.UserDto;
 import com.fuint.common.dto.UserGroupDto;
 import com.fuint.common.enums.SettingTypeEnum;
@@ -437,4 +438,58 @@ public class BackendMemberController extends BaseController {
 
         return getSuccessResult(true);
     }
+
+    /**
+     * 获取会员分组
+     *
+     * @param request
+     * @return
+     */
+    @ApiOperation(value = "获取会员分组")
+    @RequestMapping(value = "/groupList", method = RequestMethod.GET)
+    @CrossOrigin
+    public ResponseObject groupList(HttpServletRequest request) throws BusinessCheckException {
+        String token = request.getHeader("Access-Token");
+        AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
+        if (accountInfo == null) {
+            return getFailureResult(1001, "请先登录");
+        }
+
+        // 会员分组
+        List<UserGroupDto> groupList = new ArrayList<>();
+        Map<String, Object> searchParams = new HashMap<>();
+        if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
+            searchParams.put("merchantId", accountInfo.getMerchantId());
+        }
+        PaginationRequest groupRequest = new PaginationRequest();
+        groupRequest.setCurrentPage(1);
+        groupRequest.setPageSize(Constants.MAX_ROWS);
+        groupRequest.setSearchParams(searchParams);
+        PaginationResponse<UserGroupDto> groupResponse = memberGroupService.queryMemberGroupListByPagination(groupRequest);
+        if (groupResponse != null && groupResponse.getContent() != null) {
+            groupList = groupResponse.getContent();
+        }
+
+        return getSuccessResult(groupList);
+    }
+
+    /**
+     * 获取分组下的会员
+     *
+     * @param request
+     * @return
+     */
+    @ApiOperation(value = "获取分组下的会员")
+    @RequestMapping(value = "/groupMembers", method = RequestMethod.GET)
+    @CrossOrigin
+    public ResponseObject groupMembers(HttpServletRequest request) {
+        String token = request.getHeader("Access-Token");
+        String groupIds = request.getParameter("groupIds") != null ? request.getParameter("groupIds") : "";
+        AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
+        if (accountInfo == null) {
+            return getFailureResult(1001, "请先登录");
+        }
+        List<GroupMemberDto> memberList = memberService.getGroupMembers(accountInfo.getMerchantId(), groupIds,1, Constants.MAX_ROWS);
+        return getSuccessResult(memberList);
+    }
 }