From b1e03b95d46eded06026d28c60fe53343461be44 Mon Sep 17 00:00:00 2001 From: kevin jiang Date: Tue, 19 May 2020 10:59:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E7=AE=A1=E7=90=86=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=90=9C=E7=B4=A2=E5=AD=97=E6=AE=B5=E5=8F=8A?= =?UTF-8?q?=E8=A1=A8=E5=A4=B4=E5=8A=A0=E9=9B=B6=E5=94=AE=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E5=8F=8A=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kiisoo/ic/system/bean/AccountBean.java | 5 +++ .../PrivilageAccountController.java | 6 ++-- .../mapper/PrivilageAccountDOMapper.java | 7 +++- .../service/PrivilageAccountService.java | 3 +- .../impl/PrivilageAccountServiceImpl.java | 33 +++++-------------- .../mapper/PrivilageAccountDOMapper.xml | 26 +++++++++++---- 6 files changed, 45 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/kiisoo/ic/system/bean/AccountBean.java b/src/main/java/com/kiisoo/ic/system/bean/AccountBean.java index bb41d33..f040bd5 100644 --- a/src/main/java/com/kiisoo/ic/system/bean/AccountBean.java +++ b/src/main/java/com/kiisoo/ic/system/bean/AccountBean.java @@ -73,6 +73,11 @@ public class AccountBean { */ private String companyName; + /** + * 零售公司编码 + */ + private String companyCode; + /** * 店铺名字 */ diff --git a/src/main/java/com/kiisoo/ic/system/controller/PrivilageAccountController.java b/src/main/java/com/kiisoo/ic/system/controller/PrivilageAccountController.java index 29063c0..6a687d3 100644 --- a/src/main/java/com/kiisoo/ic/system/controller/PrivilageAccountController.java +++ b/src/main/java/com/kiisoo/ic/system/controller/PrivilageAccountController.java @@ -3,6 +3,7 @@ package com.kiisoo.ic.system.controller; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.pagehelper.PageInfo; import com.kiisoo.ic.common.BaseController; import com.kiisoo.ic.system.bean.AccountBean; import com.kiisoo.ic.system.bean.ImportAccountErrorBean; @@ -52,10 +53,11 @@ public class PrivilageAccountController extends BaseController { @RequestParam(value = "pageSize", required = false, defaultValue = "12") int pageSize, @RequestParam(value = "searchContent", required = false) String searchContent, @RequestParam(value = "roleId", required = false) Long roleId, + @RequestParam(value = "companyId", required = false) Long companyId, @RequestParam(value = "shopId", required = false) Long shopId) { try { - IPage accountBeanIPage = privilageAccountService.listAccountInfo(pageNum, pageSize, searchContent, - roleId, shopId); + PageInfo accountBeanIPage = privilageAccountService.listAccountInfo(pageNum, pageSize, searchContent, + roleId, companyId, shopId); return data(accountBeanIPage); } catch (Exception e) { log.error("查询账号信息出错", e); diff --git a/src/main/java/com/kiisoo/ic/system/mapper/PrivilageAccountDOMapper.java b/src/main/java/com/kiisoo/ic/system/mapper/PrivilageAccountDOMapper.java index a7d2328..4abb69d 100644 --- a/src/main/java/com/kiisoo/ic/system/mapper/PrivilageAccountDOMapper.java +++ b/src/main/java/com/kiisoo/ic/system/mapper/PrivilageAccountDOMapper.java @@ -6,6 +6,7 @@ import com.kiisoo.ic.system.entity.PrivilageAccountDO; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Set; /** @@ -27,9 +28,13 @@ public interface PrivilageAccountDOMapper extends BaseMapper * 根据搜索内容和角色查询账号id * @param searchContent 搜索内容 * @param roleId 角色id + * @param companyId 零售公司ID + * @param storeId 店铺ID * @return 账号id集合 + * @author dexiang.jiang + * @date 2020/05/18 19:55 */ - Set selectAccountIdByRoleAndSearchContent(@Param("searchContent") String searchContent, @Param("roleId") Long roleId); + List selectAccountIdByRoleAndSearchContent(@Param("searchContent") String searchContent, @Param("roleId") Long roleId, @Param("companyId") Long companyId, @Param("storeId") Long storeId); /** * 根据店铺id查询账号id diff --git a/src/main/java/com/kiisoo/ic/system/service/PrivilageAccountService.java b/src/main/java/com/kiisoo/ic/system/service/PrivilageAccountService.java index 3c4cd66..1f19905 100644 --- a/src/main/java/com/kiisoo/ic/system/service/PrivilageAccountService.java +++ b/src/main/java/com/kiisoo/ic/system/service/PrivilageAccountService.java @@ -2,6 +2,7 @@ package com.kiisoo.ic.system.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.github.pagehelper.PageInfo; import com.kiisoo.ic.system.bean.AccountBean; import com.kiisoo.ic.system.bean.ImportAccountErrorBean; import com.kiisoo.ic.system.bean.ModifyAccountInput; @@ -30,7 +31,7 @@ public interface PrivilageAccountService extends IService { * @param shopId 店铺id * @return 账号信息集合 */ - IPage listAccountInfo(int pageNum, int pageSize, String searchContent, Long roleId, Long shopId); + PageInfo listAccountInfo(int pageNum, int pageSize, String searchContent, Long roleId, Long companyId, Long shopId); /** * 账号管理-保存账号 diff --git a/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageAccountServiceImpl.java b/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageAccountServiceImpl.java index 34a3154..9e30d4a 100644 --- a/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageAccountServiceImpl.java +++ b/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageAccountServiceImpl.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.kiisoo.ic.common.utils.MD5FileUtil; import com.kiisoo.ic.constants.Constants; import com.kiisoo.ic.domain.mapper.PrivilageDomainEntityDOMapper; @@ -124,32 +126,12 @@ public class PrivilageAccountServiceImpl extends ServiceImpl listAccountInfo(int pageNum, int pageSize, String searchContent, - Long roleId, Long shopId) { - QueryWrapper wrapper = new QueryWrapper<>(); - + public PageInfo listAccountInfo(int pageNum, int pageSize, String searchContent, + Long roleId, Long companyId, Long shopId) { + PageHelper.startPage(pageNum, pageSize); //根据搜索内容和角色筛选查询 - Set accountIds = privilageAccountDOMapper.selectAccountIdByRoleAndSearchContent(searchContent, roleId); - - //根据店铺id查询 - if (shopId != null) { - Set accountIdByShopId = privilageAccountDOMapper.selectAccountIdByShopId(shopId); - //取交集 - List intersection = accountIds.stream().filter(accountIdByShopId::contains).collect(toList()); - //防报错 - intersection.add(-1L); - wrapper.in("id", intersection); - } else { - //防报错 - accountIds.add(-1L); - wrapper.in("id", accountIds); - } - - wrapper.eq("type", AccountEnum.ACCOUNT_TYPE_SYSTEM.getType()); - wrapper.orderByDesc("id"); - //根据名字查询账号信息 - IPage privilageAccountDOIPage = privilageAccountDOMapper.selectPage(new Page<>(pageNum, pageSize), wrapper); - return setAccountBean(privilageAccountDOIPage); + List accountIds = privilageAccountDOMapper.selectAccountIdByRoleAndSearchContent(searchContent, roleId, companyId, shopId); + return new PageInfo<>(accountIds); } @@ -370,6 +352,7 @@ public class PrivilageAccountServiceImpl extends ServiceImpl - + select t1.id as accountId,t1.login as account,t2.id as userId,t5.staff_code as staffCode,t2.name as userName,t2.abbreviation,t4.name as roleName,t4.id as roleId,t1.password,t6.id as shopId,t9.name as companyName,t9.code as companyCode,t6.name as shopName,t6.code as shopCode,t4.code as roleCode,t9.id as orgId,t2.mobil + from privilage_account t1 + join privilage_user t2 on t1.user_id = t2.id and t1.type = 1 + join privilage_user_role t3 on t2.id = t3.user_id + join privilage_role t4 on t3.role_id = t4.id + left join poi_store_staff t5 on t5.user_id = t2.id + left join poi_store t6 on t6.id = t5.store_id + left join privilage_domain_entity t7 on t7.entity_id = t6.id and t7.type = 3 + left join privilage_organizational_domain t8 on t8.domain_id = t7.domain_id + left join privilage_organizational t9 on t9.id = t8.org_id and t9.`level` = 3 + + WHERE 1=1 + and t3.role_id = #{roleId} @@ -24,6 +32,12 @@ CONCAT(IFNULL(t1.login,''),IFNULL(t2.name,'')) LIKE CONCAT('%',#{searchContent},'%') + + and t9.parent_id = #{companyId} + + + and t6.id = #{storeId} +