|
@@ -66,19 +66,19 @@ public class ReportServiceImpl implements ReportService {
|
|
|
@Override
|
|
|
public Result user(DateDto param) {
|
|
|
|
|
|
- // 停用、删除的用户不统计
|
|
|
+ // 停用、删除的用户不统计, 使用子查询
|
|
|
StringBuffer sql = new StringBuffer(
|
|
|
- "select a.role_name as name, count(b.user_id) as count from sys_role a " +
|
|
|
- "left JOIN sys_user_role b on b.role_id=a.id " +
|
|
|
- "left join sys_user c on c.id=b.user_id WHERE a.is_delete=0 ");
|
|
|
+ "select sr.role_name as name, zb.count from sys_role sr LEFT JOIN " +
|
|
|
+ "(select b.role_id, count(b.user_id) as count from sys_user_role b left join sys_user c on c.id=b.user_id");
|
|
|
|
|
|
if (StringUtils.isBlank(param.getStartTime()) || StringUtils.isBlank(param.getEndTime())) {
|
|
|
return Result.failure("时间参数不能为空");
|
|
|
}
|
|
|
- sql.append(" and c.create_time >= ").append("'").append(param.getStartTime()).append("'");
|
|
|
+ sql.append(" where c.create_time >= ").append("'").append(param.getStartTime()).append("'");
|
|
|
sql.append(" and c.create_time <= ").append("'").append(param.getEndTime()).append("'");
|
|
|
|
|
|
- sql.append(" GROUP BY a.id");
|
|
|
+ sql.append(" GROUP BY b.role_id) zb");
|
|
|
+ sql.append(" on zb.role_id=sr.id where sr.is_delete=0");
|
|
|
log.info("sql: {}", sql.toString());
|
|
|
|
|
|
|
|
@@ -178,10 +178,11 @@ public class ReportServiceImpl implements ReportService {
|
|
|
@Override
|
|
|
public Result vote(DateDto param) {
|
|
|
|
|
|
+ // 使用子查询
|
|
|
StringBuffer sql = new StringBuffer();
|
|
|
- sql.append("select a.name,COUNT(case when b.type='vote' and b.is_delete=0 then 1 end) countVote," +
|
|
|
- "COUNT(case when b.type='like' and b.is_delete=0 then 1 end) countLike " +
|
|
|
- "from tb_goods_module a left join tb_goods_vote b on b.goods_module_id=a.id WHERE a.is_delete=0");
|
|
|
+ sql.append("select a.name, zb.countVote, zb.countLike from tb_goods_module a LEFT JOIN");
|
|
|
+ sql.append(" (select b.goods_module_id,COUNT(case when b.type='vote' then 1 end) countVote," +
|
|
|
+ "COUNT(case when b.type='like' then 1 end) countLike from tb_goods_vote b WHERE b.is_delete=0");
|
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(param.getStartTime()) || StringUtils.isBlank(param.getEndTime())) {
|
|
@@ -191,7 +192,8 @@ public class ReportServiceImpl implements ReportService {
|
|
|
sql.append(" and b.create_time <= ").append("'").append(param.getEndTime()).append("'");
|
|
|
|
|
|
|
|
|
- sql.append(" GROUP BY a.id");
|
|
|
+ sql.append(" GROUP BY b.goods_module_id) zb");
|
|
|
+ sql.append(" on zb.goods_module_id=a.id where a.is_delete=0");
|
|
|
|
|
|
log.info("sql: {}", sql.toString());
|
|
|
|