浏览代码

fixed 会员分组功能

fushengqian 1 年之前
父节点
当前提交
e78aeb09e5

+ 57 - 0
fuint-application/src/main/java/com/fuint/common/dto/UserGroupDto.java

@@ -0,0 +1,57 @@
+package com.fuint.common.dto;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 会员分组
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class UserGroupDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("分组ID")
+    @TableId(value = "ID", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("分组名称")
+    private String name;
+
+    @ApiModelProperty("所属商户ID")
+    private Integer merchantId;
+
+    @ApiModelProperty("默认店铺")
+    private Integer storeId;
+
+    @ApiModelProperty("父ID")
+    private Integer parentId;
+
+    @ApiModelProperty("子分组")
+    private List<UserGroupDto> children;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("状态,A:激活;N:禁用;D:删除")
+    private String status;
+
+    @ApiModelProperty("备注信息")
+    private String description;
+
+    @ApiModelProperty("最后操作人")
+    private String operator;
+}

+ 2 - 1
fuint-application/src/main/java/com/fuint/common/service/MemberGroupService.java

@@ -2,6 +2,7 @@ package com.fuint.common.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fuint.common.dto.MemberGroupDto;
+import com.fuint.common.dto.UserGroupDto;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
@@ -21,7 +22,7 @@ public interface MemberGroupService extends IService<MtUserGroup> {
      * @param paginationRequest
      * @return
      */
-    PaginationResponse<MtUserGroup> queryMemberGroupListByPagination(PaginationRequest paginationRequest) throws BusinessCheckException;
+    PaginationResponse<UserGroupDto> queryMemberGroupListByPagination(PaginationRequest paginationRequest) throws BusinessCheckException;
 
     /**
      * 新增会员分组

+ 33 - 4
fuint-application/src/main/java/com/fuint/common/service/impl/MemberGroupServiceImpl.java

@@ -4,6 +4,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.MemberGroupDto;
+import com.fuint.common.dto.UserGroupDto;
 import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.service.*;
 import com.fuint.common.util.CommonUtil;
@@ -18,6 +19,7 @@ import com.github.pagehelper.PageHelper;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.stereotype.Service;
@@ -47,11 +49,11 @@ public class MemberGroupServiceImpl extends ServiceImpl<MtUserGroupMapper, MtUse
      * @return
      */
     @Override
-    public PaginationResponse<MtUserGroup> queryMemberGroupListByPagination(PaginationRequest paginationRequest) {
+    public PaginationResponse<UserGroupDto> queryMemberGroupListByPagination(PaginationRequest paginationRequest) {
         Page<MtCouponGroup> pageHelper = PageHelper.startPage(paginationRequest.getCurrentPage(), paginationRequest.getPageSize());
         LambdaQueryWrapper<MtUserGroup> lambdaQueryWrapper = Wrappers.lambdaQuery();
         lambdaQueryWrapper.ne(MtUserGroup::getStatus, StatusEnum.DISABLE.getKey());
-
+        lambdaQueryWrapper.eq(MtUserGroup::getParentId, 0);
         String name = paginationRequest.getSearchParams().get("name") == null ? "" : paginationRequest.getSearchParams().get("name").toString();
         if (StringUtils.isNotBlank(name)) {
             lambdaQueryWrapper.like(MtUserGroup::getName, name);
@@ -75,13 +77,22 @@ public class MemberGroupServiceImpl extends ServiceImpl<MtUserGroupMapper, MtUse
 
         lambdaQueryWrapper.orderByDesc(MtUserGroup::getId);
         List<MtUserGroup> dataList = mtUserGroupMapper.selectList(lambdaQueryWrapper);
+        List<UserGroupDto> userGroupList = new ArrayList<>();
+        if (dataList != null && dataList.size() > 0) {
+            for (MtUserGroup mtUserGroup : dataList) {
+                 UserGroupDto userGroupDto = new UserGroupDto();
+                 BeanUtils.copyProperties(mtUserGroup, userGroupDto);
+                 userGroupDto.setChildren(getChildren(mtUserGroup.getId()));
+                 userGroupList.add(userGroupDto);
+            }
+        }
 
         PageRequest pageRequest = PageRequest.of(paginationRequest.getCurrentPage(), paginationRequest.getPageSize());
         PageImpl pageImpl = new PageImpl(dataList, pageRequest, pageHelper.getTotal());
-        PaginationResponse<MtUserGroup> paginationResponse = new PaginationResponse(pageImpl, MtUserGroup.class);
+        PaginationResponse<UserGroupDto> paginationResponse = new PaginationResponse(pageImpl, UserGroupDto.class);
         paginationResponse.setTotalPages(pageHelper.getPages());
         paginationResponse.setTotalElements(pageHelper.getTotal());
-        paginationResponse.setContent(dataList);
+        paginationResponse.setContent(userGroupList);
 
         return paginationResponse;
     }
@@ -98,6 +109,7 @@ public class MemberGroupServiceImpl extends ServiceImpl<MtUserGroupMapper, MtUse
         MtUserGroup userGroup = new MtUserGroup();
         userGroup.setMerchantId(memberGroupDto.getMerchantId());
         userGroup.setStoreId(memberGroupDto.getStoreId());
+        userGroup.setParentId(memberGroupDto.getParentId());
         userGroup.setName(CommonUtil.replaceXSS(memberGroupDto.getName()));
         userGroup.setDescription(CommonUtil.replaceXSS(memberGroupDto.getDescription()));
         userGroup.setStatus(StatusEnum.ENABLED.getKey());
@@ -171,4 +183,21 @@ public class MemberGroupServiceImpl extends ServiceImpl<MtUserGroupMapper, MtUse
         this.updateById(userGroup);
         return userGroup;
     }
+
+    public List<UserGroupDto> getChildren(Integer id) {
+        Map<String, Object> param = new HashMap<>();
+        param.put("STATUS", StatusEnum.ENABLED.getKey());
+        param.put("PARENT_ID", id);
+        List<MtUserGroup> dataList = mtUserGroupMapper.selectByMap(param);
+        List<UserGroupDto> childeren = new ArrayList<>();
+        if (dataList != null && dataList.size() > 0) {
+            for (MtUserGroup userGroup : dataList) {
+                 UserGroupDto userGroupDto = new UserGroupDto();
+                 BeanUtils.copyProperties(userGroup, userGroupDto);
+                 userGroupDto.setChildren(getChildren(userGroup.getId()));
+                 childeren.add(userGroupDto);
+            }
+        }
+        return childeren;
+    }
 }

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

@@ -52,7 +52,7 @@ public class SourceServiceImpl extends ServiceImpl<TSourceMapper, TSource> imple
         List<TSource> tSources = getAvailableSources(merchantId);
         List<TreeNode> trees = new ArrayList<>();
         if (tSources != null && tSources.size() > 0) {
-            TreeNode sourceTreeNode = null;
+            TreeNode sourceTreeNode;
             for (TSource tSource : tSources) {
                 sourceTreeNode = new TreeNode();
                 sourceTreeNode.setName(tSource.getSourceName());

+ 3 - 2
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMemberGroupController.java

@@ -3,6 +3,7 @@ package com.fuint.module.backendApi.controller;
 import com.fuint.common.Constants;
 import com.fuint.common.dto.AccountInfo;
 import com.fuint.common.dto.MemberGroupDto;
+import com.fuint.common.dto.UserGroupDto;
 import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.service.CouponService;
 import com.fuint.common.service.MemberGroupService;
@@ -101,7 +102,7 @@ public class BackendMemberGroupController extends BaseController {
         }
 
         paginationRequest.setSearchParams(searchParams);
-        PaginationResponse<MtUserGroup> paginationResponse = memberGroupService.queryMemberGroupListByPagination(paginationRequest);
+        PaginationResponse<UserGroupDto> paginationResponse = memberGroupService.queryMemberGroupListByPagination(paginationRequest);
 
         Map<String, Object> result = new HashMap<>();
         result.put("paginationResponse", paginationResponse);
@@ -155,7 +156,7 @@ public class BackendMemberGroupController extends BaseController {
         // 该分组已有会员,不允许删除
         Map<String, Object> searchParams = new HashMap<>();
         searchParams.put("GROUP_ID", id.toString());
-        searchParams.put("status", StatusEnum.ENABLED.getKey());
+        searchParams.put("STATUS", StatusEnum.ENABLED.getKey());
         List<MtUser> dataList = mtUserMapper.selectByMap(searchParams);
         if (dataList.size() > 0) {
             return getFailureResult(201, "该分组下有会员,不能删除");