feat(corp): 添加可视化大屏-企业部门用户统计数据接口
parent
2cd65662fc
commit
fdd5bc8605
|
|
@ -157,5 +157,11 @@ public class CorpInfoController {
|
|||
return SingleResponse.of(corpInfoService.getEncryInfo(userCheckPassWordCmd));
|
||||
}
|
||||
|
||||
@ApiOperation("可视化大屏-企业部门用户统计")
|
||||
@PostMapping("/corpUserStatisticPage")
|
||||
public PageResponse<CorpUserStatisticCO> corpUserStatisticPage(@Validated @RequestBody CorpUserStatisticQry qry) {
|
||||
return corpInfoService.corpUserStatisticPage(qry);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import com.zcloud.basic.info.dto.*;
|
|||
import com.zcloud.basic.info.dto.clientobject.CorpDepartmentCO;
|
||||
import com.zcloud.basic.info.dto.clientobject.CorpInfoCO;
|
||||
import com.zcloud.basic.info.dto.clientobject.CorpUserMiddleCO;
|
||||
import com.zcloud.basic.info.dto.clientobject.CorpUserStatisticCO;
|
||||
import com.zcloud.basic.info.dto.clientobject.UserCO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.*;
|
||||
import com.zcloud.basic.info.persistence.repository.*;
|
||||
|
|
@ -310,6 +311,17 @@ public class CorpInfoQueryExe {
|
|||
return true;
|
||||
}
|
||||
|
||||
public PageResponse<CorpUserStatisticCO> corpUserStatisticPage(CorpUserStatisticQry qry) {
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||
PageResponse<CorpUserStatisticDO> pageResponse = corpInfoRepository.corpUserStatisticPage(params);
|
||||
List<CorpUserStatisticCO> list = pageResponse.getData().stream().map(item -> {
|
||||
CorpUserStatisticCO co = new CorpUserStatisticCO();
|
||||
BeanUtils.copyProperties(item, co);
|
||||
return co;
|
||||
}).collect(Collectors.toList());
|
||||
return PageResponse.of(list, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -146,5 +146,10 @@ public class CorpInfoServiceImpl implements CorpInfoServiceI {
|
|||
return corpInfoQueryExe.verifyCorpInfo();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<CorpUserStatisticCO> corpUserStatisticPage(CorpUserStatisticQry qry) {
|
||||
return corpInfoQueryExe.corpUserStatisticPage(qry);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -55,5 +55,7 @@ public interface CorpInfoServiceI {
|
|||
DecryptCmd getEncryInfo(UserCheckPassWordCmd userCheckPassWordCmd);
|
||||
|
||||
void deleteCorpAndDown(List<Long> ids);
|
||||
|
||||
PageResponse<CorpUserStatisticCO> corpUserStatisticPage(CorpUserStatisticQry qry);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
package com.zcloud.basic.info.dto;
|
||||
|
||||
import com.alibaba.cola.dto.PageQuery;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 可视化大屏企业部门用户统计查询参数
|
||||
*/
|
||||
@Data
|
||||
public class CorpUserStatisticQry extends PageQuery {
|
||||
|
||||
@ApiModelProperty(value = "企业名称", name = "likeCorpName")
|
||||
private String likeCorpName;
|
||||
|
||||
@ApiModelProperty(value = "企业类型(0-普通企业,1-集团单位,2-股份单位,3-相关方企业,4-货主单位,5-驻港单位, 6-物资中心)", name = "inType")
|
||||
private List<Integer> inType;
|
||||
|
||||
@ApiModelProperty(value = "企业类型1:监管 2:企业 3:相关方", name = "enterpriseType")
|
||||
private Integer enterpriseType;
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package com.zcloud.basic.info.dto.clientobject;
|
||||
|
||||
import com.alibaba.cola.dto.ClientObject;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 可视化大屏企业部门用户统计
|
||||
*/
|
||||
@Data
|
||||
public class CorpUserStatisticCO extends ClientObject {
|
||||
|
||||
@ApiModelProperty(value = "企业id")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "企业名称")
|
||||
private String corpName;
|
||||
|
||||
@ApiModelProperty(value = "部门数量")
|
||||
private Long departmentCount;
|
||||
|
||||
@ApiModelProperty(value = "用户数量")
|
||||
private Long userCount;
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package com.zcloud.basic.info.persistence.dataobject;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 可视化大屏企业部门用户统计查询结果
|
||||
*/
|
||||
@Data
|
||||
public class CorpUserStatisticDO {
|
||||
|
||||
private Long id;
|
||||
|
||||
private String corpName;
|
||||
|
||||
private Long departmentCount;
|
||||
|
||||
private Long userCount;
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.jjb.saas.framework.datascope.annotation.DataScope;
|
||||
import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpUserStatisticDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.UserDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
|
@ -32,6 +33,7 @@ public interface CorpInfoMapper extends BaseMapper<CorpInfoDO> {
|
|||
|
||||
IPage<CorpInfoDO> selectUserPageNoPms(IPage<CorpInfoDO> iPage, @Param("ew") QueryWrapper<CorpInfoDO> queryWrapper, String menuPerms);
|
||||
|
||||
IPage<CorpUserStatisticDO> corpUserStatisticPage(IPage<CorpUserStatisticDO> iPage, Map<String, Object> params);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.zcloud.basic.info.persistence.repository;
|
|||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpUserStatisticDO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -44,5 +45,7 @@ public interface CorpInfoRepository extends BaseRepository<CorpInfoDO> {
|
|||
Boolean isSupper();
|
||||
|
||||
void deleteById(Long id);
|
||||
|
||||
PageResponse<CorpUserStatisticDO> corpUserStatisticPage(Map<String, Object> parmas);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import com.zcloud.basic.info.domain.enums.CorpTypeEnum;
|
|||
import com.zcloud.basic.info.domain.enums.CorpUseFlagEnum;
|
||||
import com.zcloud.basic.info.domain.enums.MenuEnum;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpUserStatisticDO;
|
||||
import com.zcloud.basic.info.persistence.mapper.CorpInfoMapper;
|
||||
import com.zcloud.basic.info.persistence.repository.CorpInfoRepository;
|
||||
import com.zcloud.basic.info.utils.Query;
|
||||
|
|
@ -320,5 +321,23 @@ public class CorpInfoRepositoryImpl extends BaseRepositoryImpl<CorpInfoMapper, C
|
|||
updateWrapper.set("delete_enum", "TRUE");
|
||||
update(updateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<CorpUserStatisticDO> corpUserStatisticPage(Map<String, Object> params) {
|
||||
IPage<CorpUserStatisticDO> iPage = new Query<CorpUserStatisticDO>().getPage(params);
|
||||
if (ObjectUtil.isNotEmpty(params.get("enterpriseType"))) {
|
||||
List<Integer> enterpriseType = CorpTypeEnum.getCodesByEnterpriseType((Integer) params.get("enterpriseType"));
|
||||
if (CollUtil.isNotEmpty(enterpriseType)) {
|
||||
params.put("type", enterpriseType);
|
||||
}
|
||||
}
|
||||
List<Integer> inType = (List<Integer>) params.get("inType");
|
||||
if (CollUtil.isNotEmpty(inType)) {
|
||||
params.put("type", inType);
|
||||
}
|
||||
|
||||
IPage<CorpUserStatisticDO> result = corpInfoMapper.corpUserStatisticPage(iPage, params);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -65,5 +65,28 @@
|
|||
FROM corp_info
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="corpUserStatisticPage" resultType="com.zcloud.basic.info.persistence.dataobject.CorpUserStatisticDO">
|
||||
SELECT
|
||||
c.id,
|
||||
c.corp_name AS corpName,
|
||||
COUNT(DISTINCT d.id) AS departmentCount,
|
||||
COUNT(DISTINCT u.id) AS userCount
|
||||
FROM corp_info c
|
||||
LEFT JOIN department d ON d.corpinfo_id = c.id AND d.delete_enum = 'FALSE'
|
||||
LEFT JOIN user u ON u.corpinfo_id = c.id AND u.delete_enum = 'FALSE'
|
||||
WHERE c.delete_enum = 'FALSE'
|
||||
<if test="params.type != null and params.type.size() > 0">
|
||||
AND c.type IN
|
||||
<foreach collection="params.type" item="type" open="(" close=")" separator=",">
|
||||
#{type}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="params.likeCorpName != null and params.likeCorpName.trim() != ''">
|
||||
AND c.corp_name like concat('%',#{params.likeCorpName},'%')
|
||||
</if>
|
||||
GROUP BY c.id, c.corp_name
|
||||
ORDER BY userCount DESC, departmentCount DESC, c.corp_order ASC, c.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue