Quellcode durchsuchen

子账号列表接口 模糊查询

liudongzhi vor 2 Monaten
Ursprung
Commit
df1a226c2e

+ 1 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/OrderRevenueVO.java

@@ -47,3 +47,4 @@ public class OrderRevenueVO implements Serializable {
 
 
 
+

+ 52 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/SubAccountListVo.java

@@ -0,0 +1,52 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 子账号列表信息VO(包含主账号电话)
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "SubAccountListVo对象", description = "子账号列表信息VO")
+public class SubAccountListVo {
+
+    @ApiModelProperty(value = "主账号ID")
+    private Integer mainAccountId;
+
+    @ApiModelProperty(value = "主账号联系电话")
+    private String mainAccountPhone;
+
+    @ApiModelProperty(value = "子账号用户ID")
+    private Integer userId;
+
+    @ApiModelProperty(value = "联系电话(子账号电话)")
+    private String phone;
+
+    @ApiModelProperty(value = "账号名称")
+    private String accountName;
+
+    @ApiModelProperty(value = "店铺ID")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "角色ID")
+    private Long roleId;
+
+    @ApiModelProperty(value = "角色名称")
+    private String roleName;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    @ApiModelProperty(value = "状态(0:启用 1:禁用)")
+    private Integer status;
+}

+ 17 - 0
alien-entity/src/main/java/shop/alien/mapper/StorePlatformUserRoleMapper.java

@@ -1,9 +1,12 @@
 package shop.alien.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import shop.alien.entity.store.StorePlatformUserRole;
+import shop.alien.entity.store.vo.SubAccountListVo;
 import shop.alien.entity.store.vo.SubAccountVo;
 
 import java.util.List;
@@ -30,5 +33,19 @@ public interface StorePlatformUserRoleMapper extends BaseMapper<StorePlatformUse
                                         @Param("accountName") String accountName,
                                         @Param("phone") String phone,
                                         @Param("roleName") String roleName);
+
+    /**
+     * 查询所有子账号信息(包含主账号电话)- 分页查询
+     *
+     * @param page      分页对象
+     * @param accountId 账号ID(主账号ID或子账号用户ID,模糊查询)
+     * @param phone      联系电话(子账号电话,模糊查询)
+     * @param status    状态(精确查询)
+     * @return 子账号分页列表
+     */
+    IPage<SubAccountListVo> queryAllSubAccounts(Page<SubAccountListVo> page,
+                                                @Param("accountId") String accountId,
+                                                @Param("phone") String phone,
+                                                @Param("status") Integer status);
 }
 

+ 34 - 0
alien-entity/src/main/resources/mapper/StorePlatformUserRoleMapper.xml

@@ -32,5 +32,39 @@
         ORDER BY spur.created_time DESC
     </select>
 
+    <!-- 查询所有子账号信息(包含主账号电话) -->
+    <select id="queryAllSubAccounts" resultType="shop.alien.entity.store.vo.SubAccountListVo">
+        SELECT
+            su_main.id AS mainAccountId,
+            su_main.phone AS mainAccountPhone,
+            sur.id AS userId,
+            sur.phone AS phone,
+            spur.account_name AS accountName,
+            spur.store_id AS storeId,
+            spr.role_id AS roleId,
+            spr.role_name AS roleName,
+            spur.created_time AS createdTime,
+            spur.status AS status
+        FROM store_platform_user_role spur
+        INNER JOIN store_user sur ON spur.user_id = sur.id
+        LEFT JOIN store_user su_main ON spur.store_id = su_main.store_id 
+            AND su_main.account_type = 1 
+            AND su_main.delete_flag = 0
+        LEFT JOIN store_platform_role spr ON spur.role_id = spr.role_id
+        WHERE spur.delete_flag = 0
+          AND sur.delete_flag = 0
+        <if test="accountId != null and accountId != ''">
+            AND (sur.id LIKE CONCAT('%', #{accountId}, '%') 
+                 OR su_main.id LIKE CONCAT('%', #{accountId}, '%'))
+        </if>
+        <if test="phone != null and phone != ''">
+            AND sur.phone LIKE CONCAT('%', #{phone}, '%')
+        </if>
+        <if test="status != null">
+            AND spur.status = #{status}
+        </if>
+        ORDER BY spur.created_time DESC
+    </select>
+
 </mapper>
 

+ 24 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/controller/StorePlatformUserRoleController.java

@@ -1,11 +1,13 @@
 package shop.alien.storeplatform.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.vo.SubAccountDetailVo;
+import shop.alien.entity.store.vo.SubAccountListVo;
 import shop.alien.entity.store.vo.SubAccountVo;
 import shop.alien.storeplatform.dto.AssignRolesDto;
 import shop.alien.storeplatform.dto.BatchDeleteSubAccountDto;
@@ -241,5 +243,27 @@ public class StorePlatformUserRoleController {
         return R.fail("更新子账号信息失败");
     }
 
+    @ApiOperation("查询所有子账号信息(分页)")
+    @ApiOperationSupport(order = 11)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页码", dataType = "int", paramType = "query", required = false, defaultValue = "1"),
+            @ApiImplicitParam(name = "pageSize", value = "每页大小", dataType = "int", paramType = "query", required = false, defaultValue = "10"),
+            @ApiImplicitParam(name = "accountId", value = "账号ID(主账号ID或子账号用户ID,模糊查询)", dataType = "String", paramType = "query", required = false),
+            @ApiImplicitParam(name = "phone", value = "联系电话(子账号电话,模糊查询)", dataType = "String", paramType = "query", required = false),
+            @ApiImplicitParam(name = "status", value = "状态(0:启用 1:禁用)", dataType = "int", paramType = "query", required = false)
+    })
+    @GetMapping("/queryAllSubAccounts")
+    public R<IPage<SubAccountListVo>> queryAllSubAccounts(
+            @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
+            @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
+            @RequestParam(value = "accountId", required = false) String accountId,
+            @RequestParam(value = "phone", required = false) String phone,
+            @RequestParam(value = "status", required = false) Integer status) {
+        log.info("StorePlatformUserRoleController.queryAllSubAccounts?pageNum={}, pageSize={}, accountId={}, phone={}, status={}", 
+                pageNum, pageSize, accountId, phone, status);
+        IPage<SubAccountListVo> subAccountPage = storePlatformUserRoleService.queryAllSubAccounts(pageNum, pageSize, accountId, phone, status);
+        return R.data(subAccountPage);
+    }
+
 }
 

+ 17 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/service/StorePlatformUserRoleService.java

@@ -1,9 +1,11 @@
 package shop.alien.storeplatform.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.StorePlatformUserRole;
 import shop.alien.entity.store.vo.SubAccountDetailVo;
+import shop.alien.entity.store.vo.SubAccountListVo;
 import shop.alien.entity.store.vo.SubAccountVo;
 
 import java.util.List;
@@ -120,5 +122,20 @@ public interface StorePlatformUserRoleService extends IService<StorePlatformUser
      * @return 是否成功
      */
     boolean updateSubAccount(Integer userId, String phone, String accountName, Integer storeId, Long roleId);
+
+    /**
+     * 查询所有子账号信息(包含主账号电话)- 分页查询
+     * 查询 store_platform_user_role 表中所有的数据
+     * 主账号电话通过 store_id 关联 store_user 表查询
+     * 联系电话通过 user_id 关联 store_user 表查询
+     *
+     * @param pageNum   页码
+     * @param pageSize  每页大小
+     * @param accountId 账号ID(主账号ID或子账号用户ID,模糊查询)
+     * @param phone     联系电话(子账号电话,模糊查询)
+     * @param status    状态(精确查询)
+     * @return 子账号分页列表
+     */
+    IPage<SubAccountListVo> queryAllSubAccounts(Integer pageNum, Integer pageSize, String accountId, String phone, Integer status);
 }
 

+ 23 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/StorePlatformUserRoleServiceImpl.java

@@ -2,6 +2,8 @@ package shop.alien.storeplatform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -15,6 +17,7 @@ import shop.alien.entity.store.StorePlatformUserRole;
 import shop.alien.entity.store.StoreUser;
 import shop.alien.entity.store.vo.PermissionItemVo;
 import shop.alien.entity.store.vo.SubAccountDetailVo;
+import shop.alien.entity.store.vo.SubAccountListVo;
 import shop.alien.entity.store.vo.SubAccountVo;
 import shop.alien.mapper.StorePlatformMenuMapper;
 import shop.alien.mapper.StorePlatformRoleMapper;
@@ -775,5 +778,25 @@ public class StorePlatformUserRoleServiceImpl extends ServiceImpl<StorePlatformU
             return false;
         }
     }
+
+    @Override
+    public IPage<SubAccountListVo> queryAllSubAccounts(Integer pageNum, Integer pageSize, String accountId, String phone, Integer status) {
+        try {
+            // 创建分页对象
+            Page<SubAccountListVo> page = new Page<>(pageNum, pageSize);
+            // 执行分页查询
+            IPage<SubAccountListVo> result = storePlatformUserRoleMapper.queryAllSubAccounts(page, accountId, phone, status);
+            log.info("查询所有子账号信息成功,共{}条记录,当前页{}条,查询条件:accountId={}, phone={}, status={}", 
+                    result.getTotal(), result.getRecords() != null ? result.getRecords().size() : 0, accountId, phone, status);
+            return result;
+        } catch (Exception e) {
+            log.error("查询所有子账号信息失败,查询条件:accountId={}, phone={}, status={}", accountId, phone, status, e);
+            // 返回空分页对象
+            Page<SubAccountListVo> emptyPage = new Page<>(pageNum, pageSize);
+            emptyPage.setTotal(0);
+            emptyPage.setRecords(new ArrayList<>());
+            return emptyPage;
+        }
+    }
 }