Browse Source

no message

FengChaoYu 1 tuần trước cách đây
mục cha
commit
c7743b013e

+ 2 - 2
src/main/java/com/gree/mall/contest/bean/common/SysDictVO.java

@@ -3,7 +3,7 @@ package com.gree.mall.contest.bean.common;
 
 import com.gree.mall.contest.annotation.ZfireField;
 import com.gree.mall.contest.constant.SysDictConstant;
-import com.gree.mall.contest.enums.StateEnum;
+import com.gree.mall.contest.enums.StatusEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -22,7 +22,7 @@ public class SysDictVO {
 
     @ZfireField(type="select")
     @Schema(description = "状态")
-    private StateEnum status;
+    private StatusEnum status;
 
     @Schema(description = "字典编号")
     private String dictCode;

+ 2 - 0
src/main/java/com/gree/mall/contest/bean/member/MemberBean.java

@@ -2,7 +2,9 @@ package com.gree.mall.contest.bean.member;
 
 import com.gree.mall.contest.plus.entity.User;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
+@EqualsAndHashCode(callSuper = true)
 @Data
 public class MemberBean extends User {
 }

+ 63 - 0
src/main/java/com/gree/mall/contest/bean/member/UserVO.java

@@ -0,0 +1,63 @@
+package com.gree.mall.contest.bean.member;
+
+import com.gree.mall.contest.annotation.ZfireField;
+import com.gree.mall.contest.enums.NDStatusEnum;
+import com.gree.mall.contest.enums.UserTypeEnum;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@ZfireField(tbName = "a")
+@Data
+public class UserVO {
+
+    @ZfireField(hide = true)
+    @Schema(description = "id")
+    private String userId;
+
+    @Schema(description = "联系电话")
+    private String mobile;
+
+    @Schema(description = "微信昵称")
+    private String nickName;
+
+    @Schema(description = "所属网点")
+    private String websitName;
+
+    @Schema(description = "商户")
+    private String companyName;
+
+    @Schema(description = "头像")
+    private String avatar;
+
+    @Schema(description = "微信的openid(小程序用户标识)")
+    private String openId;
+
+    @Schema(description = "微信unionid(用户微信唯一标识)")
+    private String unionId;
+
+    @Schema(description = "角色")
+    private UserTypeEnum type;
+
+    @Schema(description = "状态")
+    private NDStatusEnum status;
+
+    @Schema(description = "创建时间")
+    private Date createTime;
+
+    @Schema(description = "修改人")
+    private Date updateBy;
+
+    @Schema(description = "修改时间")
+    private Date updateTime;
+
+    @ZfireField(hide = true)
+    @Schema(description = "商户id")
+    private String companyWechatId;
+
+    @ZfireField(hide = true)
+    @Schema(description = "网点编号")
+    private String websitId;
+
+}

+ 3 - 0
src/main/java/com/gree/mall/contest/commonmapper/CommonMapper.java

@@ -9,6 +9,7 @@ import com.gree.mall.contest.bean.common.CarouselMapVO;
 import com.gree.mall.contest.bean.manage.NotifyRecordVO;
 import com.gree.mall.contest.bean.manage.NotifyVO;
 import com.gree.mall.contest.bean.manage.UserTopPopVO;
+import com.gree.mall.contest.bean.member.UserVO;
 import com.gree.mall.contest.bean.merchant.MerchantRegionVO;
 import com.gree.mall.contest.bean.merchant.MerchantVO;
 import com.gree.mall.contest.bean.merchant.WebsitApplyVO;
@@ -114,4 +115,6 @@ public interface CommonMapper {
 
     List<OrderTaxExcelBean> queryOrderTaxExcelMsg(@Param("companyWechatIds") List<String> companyWechatIds, @Param("adminWebsitIds") List<String> adminWebsitIds
             , @Param("status") Boolean status, @Param("orderId") String orderId);
+
+    IPage<UserVO> userV2Page(Page page, @Param("ex") ZfireParamBean zfireParamBean);
 }

+ 29 - 0
src/main/java/com/gree/mall/contest/controller/pc/member/MemberController.java

@@ -1,14 +1,19 @@
 package com.gree.mall.contest.controller.pc.member;
 
+import cn.hutool.core.lang.TypeReference;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.contest.annotation.ZfireList;
+import com.gree.mall.contest.bean.member.UserVO;
 import com.gree.mall.contest.bean.user.UserApplyBean;
 import com.gree.mall.contest.bean.user.UserWxBean;
+import com.gree.mall.contest.bean.zfire.ZfireParamBean;
 import com.gree.mall.contest.exception.RemoteServiceException;
 import com.gree.mall.contest.helper.ResponseHelper;
 import com.gree.mall.contest.logic.user.UserLogic;
 import com.gree.mall.contest.plus.entity.*;
 import com.gree.mall.contest.utils.CommonUtils;
+import com.gree.mall.contest.utils.zfire.FieldUtils;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -53,6 +58,30 @@ public class MemberController {
         return ResponseHelper.success(page);
     }
 
+
+    @ZfireList
+    @PostMapping("/v2/page")
+    @Operation(summary = "用户管理-列表")
+    public ResponseHelper<IPage<UserVO>> list(
+            @RequestBody ZfireParamBean zfireParamBean
+    ) {
+        IPage<UserVO> page = userLogic.v2Page(zfireParamBean);
+        return ResponseHelper.success(page, new TypeReference<UserVO>() {});
+    }
+
+    @PostMapping("/v2/page/export")
+    @Operation(summary = "用户管理-导出")
+    public void listExport(
+            @RequestBody ZfireParamBean zfireParamBean,
+            HttpServletRequest request,
+            HttpServletResponse response
+    ) throws Exception {
+        //2.查询要导出的内容
+        IPage<UserVO> baseVOIPage = userLogic.v2Page(zfireParamBean);
+        //3.导出
+        FieldUtils.exportData(baseVOIPage.getRecords(), zfireParamBean.getExportFields(), request, response);
+    }
+
     @GetMapping("/apply/page")
     @Operation(description = "业务员申请列表")
     public ResponseHelper<Page<UserApplyBean>> applyPage(HttpServletRequest request,

+ 10 - 10
src/main/java/com/gree/mall/contest/enums/StateEnum.java → src/main/java/com/gree/mall/contest/enums/NDStatusEnum.java

@@ -1,8 +1,7 @@
 package com.gree.mall.contest.enums;
 
-
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.fasterxml.jackson.annotation.JsonCreator;
+import com.baomidou.mybatisplus.annotation.IEnum;
 import com.fasterxml.jackson.annotation.JsonValue;
 import com.gree.mall.contest.enums.base.BaseEnum;
 import lombok.AccessLevel;
@@ -11,18 +10,19 @@ import lombok.RequiredArgsConstructor;
 
 @Getter
 @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
-public enum StateEnum implements BaseEnum {
-    ON("ON","有效"),
-    OFF("OFF","无效");
+public enum NDStatusEnum implements BaseEnum, IEnum<Boolean> {
+    ONE("true", "正常"),
+    TWO("false", "禁用"),
+    ;
 
     @EnumValue
     @JsonValue
     private final String key;
-
     private final String remark;
 
-    @JsonCreator(mode = JsonCreator.Mode.DELEGATING)
-    public static StateEnum create(String key) {
-        return BaseEnum.keyToEnum(StateEnum.class, key);
+
+    @Override
+    public Boolean getValue() {
+        return Boolean.parseBoolean(key);
     }
-}
+}

+ 2 - 2
src/main/java/com/gree/mall/contest/logic/common/CommonLogic.java

@@ -8,7 +8,7 @@ import cn.hutool.json.JSONUtil;
 import com.gree.mall.contest.bean.admin.AdminUserCom;
 import com.gree.mall.contest.bean.user.CurrentCompanyWechat;
 import com.gree.mall.contest.commonmapper.AdminMapper;
-import com.gree.mall.contest.enums.StateEnum;
+import com.gree.mall.contest.enums.StatusEnum;
 import com.gree.mall.contest.enums.admin.RoleTypeEnum;
 import com.gree.mall.contest.enums.admin.UpdateLogRemarkEnum;
 import com.gree.mall.contest.exception.RemoteServiceException;
@@ -268,7 +268,7 @@ public class CommonLogic {
 
     public List<LbsAmap> city2(String city) {
         List<LbsAmap> citys = lbsAmapService.lambdaQuery()
-                .eq(LbsAmap::getStatus, StateEnum.ON.getKey())
+                .eq(LbsAmap::getStatus, StatusEnum.ONE.getIntKey())
                 .like(LbsAmap::getName, city)
                 .eq(LbsAmap::getLevel, "city")
                 .list();

+ 11 - 0
src/main/java/com/gree/mall/contest/logic/user/UserLogic.java

@@ -16,7 +16,10 @@ import com.gree.mall.contest.bean.admin.AdminUserCom;
 import com.gree.mall.contest.bean.common.WechatOpenBean;
 import com.gree.mall.contest.bean.member.MemberBean;
 import com.gree.mall.contest.bean.member.MemberSortBean;
+import com.gree.mall.contest.bean.member.UserVO;
 import com.gree.mall.contest.bean.user.*;
+import com.gree.mall.contest.bean.zfire.ZfireParamBean;
+import com.gree.mall.contest.commonmapper.CommonMapper;
 import com.gree.mall.contest.commonmapper.CustomGoodsMapper;
 import com.gree.mall.contest.commonmapper.CustomMemberMapper;
 import com.gree.mall.contest.commonmapper.OrderShareRankMapper;
@@ -38,6 +41,7 @@ import com.gree.mall.contest.utils.CommonUtils;
 import com.gree.mall.contest.utils.JwtUtils;
 import com.gree.mall.contest.utils.RedisUtil;
 import com.gree.mall.contest.utils.excel.ExcelUtils;
+import com.gree.mall.contest.utils.zfire.FieldUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -68,6 +72,7 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class UserLogic {
 
+    private final CommonMapper commonMapper;
     private final UserService userService;
     private final UserAddressService userAddressService;
     private final GoodsVisitService goodsVisitService;
@@ -1107,4 +1112,10 @@ public class UserLogic {
         redisUtil.set(Constant.RedisPrefix.TOKEN_MP_WX + newToken, user1, 2 * 60 * 60 * 1000);
         return newToken;
     }
+
+    public IPage<UserVO> v2Page(ZfireParamBean zfireParamBean) {
+        zfireParamBean = FieldUtils.supplyParam(zfireParamBean, UserVO.class);
+        IPage<UserVO> page = commonMapper.userV2Page(zfireParamBean.page(), zfireParamBean);
+        return page;
+    }
 }

+ 10 - 0
src/main/resources/mapper/CommonMapper.xml

@@ -158,5 +158,15 @@
         GROUP BY ot.order_tax_id
         ORDER BY ot.create_time DESC
     </select>
+    <select id="userV2Page" resultType="com.gree.mall.contest.bean.member.UserVO">
+        SELECT
+        ${ex.selected}
+        FROM user a
+        ${ex.query}
+        <if test="ex.orderBy == null or ex.orderBy ==''">
+            ORDER BY a.create_time DESC
+        </if>
+        ${ex.orderBy}
+    </select>
 
 </mapper>