大屏接口

dev_0531
yechenhao 5 years ago
parent 51a244fe9a
commit 5eb5c0c439

@ -97,9 +97,9 @@ public class CustomerViewController extends BaseController {
*/
@ResponseBody
@RequestMapping(value = "/all/count", method = RequestMethod.GET)
public Map<String,Object> getAllCount(){
public Map<String,Object> getAllCount(@RequestParam("userId") Long userId){
try{
CustomerViewVO result = customerViewService.getAllCount();
CustomerViewVO result = customerViewService.getAllCount(userId);
return data(result);
}catch (Exception e){
log.error("查询客户数据概览出错", e);

@ -11,12 +11,15 @@ import com.kiisoo.ic.constants.Constants;
import com.kiisoo.ic.customer.entity.*;
import com.kiisoo.ic.customer.mapper.OpCustomerDOMapper;
import com.kiisoo.ic.customer.mapper.OpVipDOMapper;
import com.kiisoo.ic.domain.mapper.PrivilageDomainEntityDOMapper;
import com.kiisoo.ic.domain.service.PrivilageDomainService;
import com.kiisoo.ic.employee.entity.CpUserCustomerRelationDO;
import com.kiisoo.ic.employee.entity.PrivilageCpUserDO;
import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper;
import com.kiisoo.ic.generalize.entity.PoiCustomerContactDataStat;
import com.kiisoo.ic.generalize.entity.PrivilageOrganizational;
import com.kiisoo.ic.generalize.entity.PrivilageOrganizationalMember;
import com.kiisoo.ic.generalize.mapper.OrganizationalMemberMapper;
import com.kiisoo.ic.generalize.mapper.PoiCustomerContactDataStatMapper;
import com.kiisoo.ic.generalize.mapper.RetailCompanyMapper;
import com.kiisoo.ic.generalize.service.RetailCompanyService;
@ -27,9 +30,14 @@ import com.kiisoo.ic.store.entity.PoiStore;
import com.kiisoo.ic.store.entity.PoiStoreStaff;
import com.kiisoo.ic.store.entity.PrivilageCpUserStoreDO;
import com.kiisoo.ic.store.mapper.PoiStoreDOMapper;
import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper;
import com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper;
import com.kiisoo.ic.synchronous.entity.TurnBackDTO;
import com.kiisoo.ic.synchronous.entity.WxDataDTO;
import com.kiisoo.ic.system.entity.PrivilageRoleDO;
import com.kiisoo.ic.system.enums.RoleEnum;
import com.kiisoo.ic.system.mapper.PrivilageRoleDOMapper;
import com.kiisoo.ic.system.service.PrivilageUserService;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.api.WxCpExternalContactService;
@ -111,6 +119,34 @@ public class CustomerViewService {
@Autowired
private PoiCustomerContactDataStatMapper poiCustomerContactDataStatMapper;
/**
* mapper
*/
@Autowired
private PrivilageDomainEntityDOMapper privilageDomainEntityDOMapper;
/**
* mapper
*/
@Autowired
private PoiStoreStaffDOMapper poiStoreStaffDOMapper;
@Autowired
private OrganizationalMemberMapper organizationalMemberMapper;
/**
* service
*/
@Autowired
private PrivilageUserService privilageUserService;
/**
* mapper
*/
@Autowired
private PrivilageRoleDOMapper privilageRoleDOMapper;
/**
* vip mapper
*/
@ -139,12 +175,34 @@ public class CustomerViewService {
public CustomerViewVO selectCustomerViewMain(Long userId, String selectStartTime, String selectEndTime, String startTime, String endTime){
CustomerViewVO customerViewVO = new CustomerViewVO();
//shopIds
List<Long> shopIds = getShopIds(userId);
if(CollectionUtils.isEmpty(shopIds)){
List<Long> shopIdList = new ArrayList<>();
PrivilageRoleDO privilageRoleDO = privilageRoleDOMapper.selectRoleByUserId(userId);
if(privilageRoleDO == null){
return customerViewVO;
}
//店长
if(privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_DZ.getRoleCode())) {
shopIdList = poiStoreStaffDOMapper.selectByUserId(userId);
}
//运营人员
else if (privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_YYRY.getRoleCode())) {
QueryWrapper<PrivilageOrganizationalMember> wrapper1 = new QueryWrapper<>();
wrapper1.eq("user_id", userId);
List<PrivilageOrganizationalMember> pm = organizationalMemberMapper.selectList(wrapper1);
//查询零售公司的门店
List<PoiStore> list1 = retailCompanyService.selectShopByCompany(pm.get(0).getOrgId());
shopIdList = list1.stream().map(PoiStore::getId).collect(Collectors.toList());
}
//管理员/总运营人员
else if (privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_GLY.getRoleCode()) || privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_ALL_YYRY.getRoleCode())) {
shopIdList = poiStoreStaffDOMapper.selectAllShopId(null,null);
}
if(CollectionUtils.isEmpty(shopIdList)){
return customerViewVO;
}
//柱状图好友趋势图
List<OpCustomer> customerList = opCustomerDOMapper.selectCustomerList(shopIds, null, null, startTime, endTime);
List<OpCustomer> customerList = opCustomerDOMapper.selectCustomerList(shopIdList, null, null, startTime, endTime);
//会员总数
Long vipCount = opVipDOMapper.selectVipCountNew();
@ -427,7 +485,16 @@ public class CustomerViewService {
if(shopIds.size() == 0){
return new ArrayList<>();
}
Map<Long, String> shopNameMap = poiStoreDOMapper.selectBatchIds(shopIds).stream().collect(Collectors.toMap(PoiStore::getId, PoiStore::getName));
Map<Long, String> shopNameMap = new HashMap<>();
List<PoiStore> poiStores = poiStoreDOMapper.selectBatchIds(shopIds);
poiStores.forEach(poiStore -> {
if (StringUtils.isNotBlank(poiStore.getAbbreviation())){
shopNameMap.put(poiStore.getId(),poiStore.getAbbreviation());
}else{
shopNameMap.put(poiStore.getId(),poiStore.getName());
}
});
List<CustomerViewShopVO> shopViewList = new ArrayList<>();
shopIdMap.forEach((k,v) -> {
CustomerViewShopVO shopVO = new CustomerViewShopVO();
@ -559,12 +626,48 @@ public class CustomerViewService {
* main
* @return VO
*/
public CustomerViewVO getAllCount() {
Long all = privilageCpUserDOMapper.selectAllCount();
Long dis = privilageCpUserDOMapper.selectDistinctAllCount();
public CustomerViewVO getAllCount(Long userId) {
CustomerViewVO result = new CustomerViewVO();
result.setAllCustomer(all);
result.setAllValidCustomer(dis);
List<Long> shopIdList = new ArrayList<>();
PrivilageRoleDO privilageRoleDO = privilageRoleDOMapper.selectRoleByUserId(userId);
if(privilageRoleDO == null) {
return result;
}
//店长
if(privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_DZ.getRoleCode())) {
shopIdList = poiStoreStaffDOMapper.selectByUserId(userId);
String cpUserId = privilageCpUserStoreDOMapper.selectCpUserIdByStoreId(shopIdList.get(0));
Long storeAll = privilageCpUserDOMapper.selectStoreCount(cpUserId);
Long storeDis = privilageCpUserDOMapper.selectDistinctStoreCount(cpUserId);
result.setAllCustomer(storeAll);
result.setAllValidCustomer(storeDis);
return result;
}
//运营人员
else if (privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_YYRY.getRoleCode())) {
QueryWrapper<PrivilageOrganizationalMember> wrapper1 = new QueryWrapper<>();
wrapper1.eq("user_id", userId);
List<PrivilageOrganizationalMember> pm = organizationalMemberMapper.selectList(wrapper1);
//查询零售公司的门店
List<PoiStore> list1 = retailCompanyService.selectShopByCompany(pm.get(0).getOrgId());
shopIdList = list1.stream().map(PoiStore::getId).collect(Collectors.toList());
List<String> cpUserIds = privilageCpUserStoreDOMapper.selectCpUserIdsByStoreIds(shopIdList);
Long all = privilageCpUserDOMapper.selectStoresCount(cpUserIds);
Long dis = privilageCpUserDOMapper.selectDistinctStoresCount(cpUserIds);
result.setAllCustomer(all);
result.setAllValidCustomer(dis);
}
//管理员/总运营人员
else if (privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_GLY.getRoleCode()) || privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_ALL_YYRY.getRoleCode())) {
Long all = privilageCpUserDOMapper.selectAllCount();
Long dis = privilageCpUserDOMapper.selectDistinctAllCount();
result.setAllCustomer(all);
result.setAllValidCustomer(dis);
}
return result;
}

@ -21,4 +21,12 @@ public interface PrivilageCpUserDOMapper extends BaseMapper<PrivilageCpUserDO> {
Long selectDistinctAllCount();
List<String> selectCustomerIdsByCpUserId(@Param("cpUserId")String cpUserId);
Long selectStoreCount(@Param("cpUserId")String cpUserId);
Long selectDistinctStoreCount(@Param("cpUserId")String cpUserId);
Long selectStoresCount(@Param("cpUserIds")List<String> cpUserIds);
Long selectDistinctStoresCount(@Param("cpUserIds")List<String> cpUserIds);
}

@ -22,5 +22,7 @@ public interface PrivilageCpUserStoreDOMapper extends BaseMapper<PrivilageCpUser
String selectCpUserIdByStoreId(Long storeId);
List<String> selectCpUserIdsByStoreIds(@Param("shopIds")List<Long> storeIds);
PrivilageCpUserStoreDO selectOneCpUser(String cpUser);
}

@ -25,6 +25,30 @@
select count(distinct customer_user_id) from op_cp_user_customer_relation
</select>
<select id="selectStoreCount" resultType="java.lang.Long">
select count(id) from op_cp_user_customer_relation where cp_user_id = #{cpUserId}
</select>
<select id="selectDistinctStoreCount" resultType="java.lang.Long">
select count(distinct customer_user_id) from op_cp_user_customer_relation where cp_user_id = #{cpUserId}
</select>
<select id="selectStoresCount" resultType="java.lang.Long">
select count(id) from op_cp_user_customer_relation where cp_user_id in
<foreach collection="cpUserIds" separator="," item="item" close=")" index="index" open="(">
#{item}
</foreach>
</select>
<select id="selectDistinctStoresCount" resultType="java.lang.Long">
select count(distinct customer_user_id) from op_cp_user_customer_relation where cp_user_id in
<foreach collection="cpUserIds" separator="," item="item" close=")" index="index" open="(">
#{item}
</foreach>
</select>
<select id="selectCustomerIdsByCpUserId" resultType="java.lang.String">
select distinct customer_user_id from op_cp_user_customer_relation where cp_user_id = #{cpUserId}
</select>

@ -35,6 +35,15 @@
and pcus.store_id = #{storeId}
limit 1
</select>
<select id="selectCpUserIdsByStoreIds" resultType="java.lang.String">
select pcu.cp_user_id
from privilage_cp_user_store pcus ,privilage_cp_user pcu
where pcus.cp_user_id = pcu.id and pcu.status in (1,4)
and pcus.store_id in
<foreach collection="shopIds" separator="," item="item" close=")" index="index" open="(">
#{item}
</foreach>
</select>
<select id="selectOneCpUser" resultType="com.kiisoo.ic.store.entity.PrivilageCpUserStoreDO">
select t2.id,t2.store_id as storeId,t2.cp_user_id as cpUserId from privilage_cp_user t1,privilage_cp_user_store t2
where t1.id = t2.cp_user_id

Loading…
Cancel
Save