瀏覽代碼

pc增加合伙人

helixiao 1 年之前
父節點
當前提交
d98cbe12d1

+ 12 - 0
src/main/java/com/ydtech/modules/admin/controller/APPPartnerController.java

@@ -180,6 +180,18 @@ public class APPPartnerController extends BaseController {
 
         return HttpResult.ok("success",this.sysPartnerService.getPartnerCount(partnerCountDto));
     }
+
+    /**
+     *  五级合伙人新增人员统计
+     */
+    @PostMapping("/getFivePartnerCount")
+    @ApiOperation(value = "五级合伙人新增人员统计")
+    public HttpResult<PartnerCountVo> getFivePartnerCount(@RequestBody PartnerCountDto partnerCountDto) {
+
+        return HttpResult.ok("success",this.sysPartnerService.getFivePartnerCount(partnerCountDto));
+    }
+
+
     /**
      * 新增人员占比分析
      */

+ 6 - 4
src/main/java/com/ydtech/modules/admin/dao/SysAgencyLeaderMapper.java

@@ -4,11 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
-import com.ydtech.modules.admin.model.dto.AgencyUserInsAreaDto;
-import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
-import com.ydtech.modules.admin.model.dto.SysAgencyLeaderListDto;
-import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
+import com.ydtech.modules.admin.model.dto.*;
 import com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo;
+import com.ydtech.modules.admin.model.vo.CountUserNumVo;
 import com.ydtech.modules.admin.model.vo.DeptBalanceVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -51,5 +49,9 @@ public interface SysAgencyLeaderMapper extends BaseMapper<SysAgencyLeader> {
     IPage<SysAgencyLeader> queryLeaderPage(Page page,@Param("dto") SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
 
     int updateByIds(@Param("dto") SysAgencyLeaderListDto sysAgencyLeaderDto);
+
+    List<CountUserNumVo> queryWorkByFive(@Param("workIds") List<String> workIds,@Param("dto") PartnerCountDto partnerCountDto);
+
+    List<CountUserNumVo> queryWorkByFiveTime(@Param("workIds") List<String> workIds,@Param("dto") PartnerCountDto partnerCountDto);
 }
 

+ 8 - 0
src/main/java/com/ydtech/modules/admin/dao/SysPartnerMapper.java

@@ -49,5 +49,13 @@ public interface SysPartnerMapper extends BaseMapper<SysPartner> {
     List<CountUserNumVo> queryPartnerByTimes(@Param("userId") String userId,@Param("dto") PartnerCountDto partnerCountDto);
 
     List<CountUserNumVo> queryPartnerByTime(@Param("userId") String userId,@Param("dto") PartnerCountDto partnerCountDto);
+
+    List<CountUserNumVo> queryDeptByFive(@Param("deptIds") List<String> deptIds, @Param("dto") PartnerCountDto partnerCountDto);
+
+    List<CountUserNumVo> queryDeptByFiveTime(@Param("deptIds") List<String> deptIds,@Param("dto") PartnerCountDto partnerCountDto);
+
+    List<CountUserNumVo> queryUserByFive(@Param("deptIds") List<String> deptIds,@Param("dto") PartnerCountDto partnerCountDto);
+
+    List<CountUserNumVo> queryUserByFiveTime(@Param("deptIds") List<String> deptIds,@Param("dto")  PartnerCountDto partnerCountDto);
 }
 

+ 5 - 0
src/main/java/com/ydtech/modules/admin/model/dto/PartnerCountDto.java

@@ -14,6 +14,11 @@ public class PartnerCountDto {
 
     @ApiModelProperty(value = "合伙人等级类型:1,2,3,4,5")
     private int type;
+    /**
+     * 五级合伙人参数
+     */
+    @ApiModelProperty(value = "类型:1:工作室,2:团队 3:代理人")
+    private int number;
 
 
 }

+ 1 - 1
src/main/java/com/ydtech/modules/admin/model/vo/PartnerCountVo.java

@@ -28,7 +28,7 @@ public class PartnerCountVo {
 
     @ApiModelProperty(value = "团队人数")
     private Integer deptManSum;
-
+    @ApiModelProperty(value = "曲线图")
     private List<CountUserNumVo> countUserNumVoList;
 
 }

+ 1 - 0
src/main/java/com/ydtech/modules/admin/service/SysPartnerService.java

@@ -70,6 +70,7 @@ public interface SysPartnerService extends IService<SysPartner> {
     CountUserVo getCountUser(CountUserDto countUserDto);
 
     PartnerCountVo getPartnerCount(PartnerCountDto partnerCountDto);
+    PartnerCountVo getFivePartnerCount(PartnerCountDto partnerCountDto);
 
     PartnerProportionVo getPartnerProportion(PartnerCountDto partnerCountDto);
 

+ 144 - 40
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -1783,48 +1783,49 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         partnerCountDto.setType(type + partnerCountDto.getType());
         //查询登陆人下所有合伙人
         List<SysPartner> sysPartnerList = sysPartnerMapper.queryPartnerById(userId, partnerCountDto);
-        if (CollectionUtil.isEmpty(sysPartnerList)) return partnerCountVo;
-
-
-        //统计每一个等级的合伙人数
-        if (type == 1) {
-            //1
-            List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
-            partnerCountVo.setOnePartnerNum(onePartners.size());
-            //2
-            List<SysPartner> twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList());
-            partnerCountVo.setTwoPartnerNum(twoPartners.size());
-            //3
-            List<SysPartner> threePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 3).collect(Collectors.toList());
-            partnerCountVo.setThreePartnerNum(threePartners.size());
-            //4
-            List<SysPartner> fourPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 4).collect(Collectors.toList());
-            partnerCountVo.setFourPartnerNum(fourPartners.size());
-
-        } else if (type == 2) {
-            //1
-            List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
-            partnerCountVo.setOnePartnerNum(onePartners.size());
-            //2
-            List<SysPartner> twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList());
-            partnerCountVo.setTwoPartnerNum(twoPartners.size());
-            //3
-            List<SysPartner> threePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 3).collect(Collectors.toList());
-            partnerCountVo.setThreePartnerNum(threePartners.size());
+        if (CollectionUtil.isNotEmpty(sysPartnerList)){
+            //统计每一个等级的合伙人数
+            if (type == 1) {
+                //1
+                List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
+                partnerCountVo.setOnePartnerNum(onePartners.size());
+                //2
+                List<SysPartner> twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList());
+                partnerCountVo.setTwoPartnerNum(twoPartners.size());
+                //3
+                List<SysPartner> threePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 3).collect(Collectors.toList());
+                partnerCountVo.setThreePartnerNum(threePartners.size());
+                //4
+                List<SysPartner> fourPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 4).collect(Collectors.toList());
+                partnerCountVo.setFourPartnerNum(fourPartners.size());
+
+            } else if (type == 2) {
+                //1
+                List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
+                partnerCountVo.setOnePartnerNum(onePartners.size());
+                //2
+                List<SysPartner> twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList());
+                partnerCountVo.setTwoPartnerNum(twoPartners.size());
+                //3
+                List<SysPartner> threePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 3).collect(Collectors.toList());
+                partnerCountVo.setThreePartnerNum(threePartners.size());
+
+            } else if (type == 3) {
+                //1
+                List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
+                partnerCountVo.setOnePartnerNum(onePartners.size());
+                //2
+                List<SysPartner> twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList());
+                partnerCountVo.setTwoPartnerNum(twoPartners.size());
+
+            } else if (type == 4) {
+                //1
+                List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
+                partnerCountVo.setOnePartnerNum(onePartners.size());
+            }
+        }
 
-        } else if (type == 3) {
-            //1
-            List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
-            partnerCountVo.setOnePartnerNum(onePartners.size());
-            //2
-            List<SysPartner> twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList());
-            partnerCountVo.setTwoPartnerNum(twoPartners.size());
 
-        } else if (type == 4) {
-            //1
-            List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
-            partnerCountVo.setOnePartnerNum(onePartners.size());
-        }
         //工作室
         List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
                 .eq(SysRelationPerson::getSuggestId, userId)
@@ -1888,6 +1889,109 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         return partnerCountVo;
     }
 
+
+    @Override
+    public PartnerCountVo getFivePartnerCount(PartnerCountDto partnerCountDto) {
+        PartnerCountVo partnerCountVo = new PartnerCountVo();
+        String userId = BaseController.getUserId();
+        //原始参数
+        String startTime1 = partnerCountDto.getBeginTime();
+        String endTime1 = partnerCountDto.getEndTime();
+        List<String> deptIds = new ArrayList<>();
+        //工作室
+        List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                .eq(SysRelationPerson::getSuggestId, userId)
+                .eq(SysRelationPerson::getDelFlag, 1)
+                .eq(SysRelationPerson::getType, 1));
+        partnerCountVo.setWorkSum(sysRelationPersonList.size());
+        if (CollectionUtil.isNotEmpty(sysRelationPersonList)) {
+            List<String> workIds = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+            //查工作室下的团队
+            List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                    .eq(SysAgencyLeader::getDelFlag, 1).in(SysAgencyLeader::getUserId, workIds));
+            int deptSum = 0;
+            int deptManSum = 0;
+
+            for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                //根据机构id查下面团队
+                List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                        .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                        .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                        .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                deptSum = deptSum + sysDeptList.size();
+                if (sysDeptList.size() > 0) {
+                    for (SysDept sysDept : sysDeptList) {
+                        deptIds.add(sysDept.getId());
+                        //团队下的人数
+                        List<SysUser> sysUserList = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                .likeRight(SysUser::getId, sysDept.getId())
+                                .in(SysUser::getStatus, Arrays.asList(1, 4, 5, 6, 7)));
+                        deptManSum = deptManSum + sysUserList.size();
+                    }
+                }
+            }
+
+            partnerCountVo.setDeptSum(deptSum);
+            partnerCountVo.setDeptManSum(deptManSum);
+
+            //曲线图
+            List<CountUserNumVo> countUserNumVoList = null;
+
+            int type = partnerCountDto.getNumber();
+
+            //类型:1:工作室,2:团队 3:代理人
+            if (type == 1) {
+                if (StringUtils.isNotEmpty(startTime1)) {
+                    String s = startTime1.split(" ")[0];
+                    String s1 = endTime1.split(" ")[0];
+                    if (s.equals(s1)) {
+                        //查一天的数据
+                        countUserNumVoList = sysAgencyLeaderMapper.queryWorkByFive(workIds,partnerCountDto);
+                    } else {
+                        //查日期范围数据
+                        countUserNumVoList = sysAgencyLeaderMapper.queryWorkByFiveTime(workIds,partnerCountDto);
+                    }
+                } else {
+                    countUserNumVoList = sysAgencyLeaderMapper.queryWorkByFiveTime(workIds,partnerCountDto);
+                }
+
+
+            }else if (type == 2) {
+                if (StringUtils.isNotEmpty(startTime1)) {
+                    String s = startTime1.split(" ")[0];
+                    String s1 = endTime1.split(" ")[0];
+                    if (s.equals(s1)) {
+                        //查一天的数据
+                        countUserNumVoList = sysPartnerMapper.queryDeptByFiveTime(deptIds, partnerCountDto);
+                    } else {
+                        countUserNumVoList = sysPartnerMapper.queryDeptByFive(deptIds, partnerCountDto);
+                    }
+                } else {
+                    countUserNumVoList = sysPartnerMapper.queryDeptByFive(deptIds, partnerCountDto);
+                }
+
+            } else if (type == 3){
+                if (StringUtils.isNotEmpty(startTime1)) {
+                    String s = startTime1.split(" ")[0];
+                    String s1 = endTime1.split(" ")[0];
+                    if (s.equals(s1)) {
+                        countUserNumVoList = sysPartnerMapper.queryUserByFive(deptIds, partnerCountDto);
+                    } else {
+                        countUserNumVoList = sysPartnerMapper.queryUserByFiveTime(deptIds, partnerCountDto);
+                    }
+                } else {
+                    countUserNumVoList = sysPartnerMapper.queryUserByFiveTime(deptIds, partnerCountDto);
+                }
+
+            }
+
+            partnerCountVo.setCountUserNumVoList(countUserNumVoList);
+        }
+
+
+        return partnerCountVo;
+    }
+
     @Override
     public PartnerProportionVo getPartnerProportion(PartnerCountDto partnerCountDto) {
         PartnerProportionVo partnerProportionVo = new PartnerProportionVo();

+ 51 - 0
src/main/resources/mapper/modules/admin/SysAgencyLeaderMapper.xml

@@ -183,6 +183,57 @@
         </where>
         ORDER BY sal.id desc
     </select>
+    <select id="queryWorkByFive" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
+        select spa.time, COUNT(spa.id) as countNum
+        from(
+        SELECT
+        s.id,DATE_FORMAT(s.create_time, '%Y-%m-%d %H' ) as time
+        FROM sys_agency_leader  s
+        <where>
+            s.del_flag = 1
+            <if test="workIds != null and workIds != '' and workIds.size() > 0">
+                AND s.user_id  in
+                <foreach collection="workIds" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="dto.beginTime != null and dto.beginTime != '' and dto.endTime != null and dto.endTime != ''">
+                and (DATE_FORMAT(s.create_time, '%Y-%m-%d' ) like CONCAT( DATE_FORMAT( #{dto.beginTime}, '%Y-%m-%d' ), '%' ))
+            </if>
+        </where>
+        ) as spa
+        GROUP BY
+        spa.time
+        ORDER BY
+        spa.time ASC
+
+    </select>
+    <select id="queryWorkByFiveTime" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
+        select spa.time, COUNT(spa.id) as countNum
+        from(
+        SELECT
+        s.id,DATE_FORMAT(s.create_time, '%Y-%m-%d' ) as time
+        FROM sys_agency_leader  s
+        <where>
+            s.del_flag = 1
+            <if test="workIds != null and workIds != '' and workIds.size() > 0">
+                AND s.user_id  in
+                <foreach collection="workIds" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="dto.beginTime != null and dto.beginTime != '' and dto.endTime != null and dto.endTime != ''">
+                and (DATE_FORMAT(s.create_time, '%Y-%m-%d %H:%i:%s') between DATE_FORMAT( #{dto.beginTime}, '%Y-%m-%d %H:%i:%s') and DATE_FORMAT( #{dto.endTime}, '%Y-%m-%d %H:%i:%s'))
+
+            </if>
+        </where>
+        ) as spa
+        GROUP BY
+        spa.time
+        ORDER BY
+        spa.time ASC
+
+    </select>
 
 </mapper>
 

+ 103 - 2
src/main/resources/mapper/modules/admin/SysPartnerMapper.xml

@@ -93,6 +93,30 @@
 
     </select>
 
+    <select id="queryDeptByTime" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
+        select spa.time, COUNT(spa.id) as countNum
+        from(
+        SELECT
+        s.id,DATE_FORMAT(s.create_time, '%Y-%m-%d' ) as time
+        FROM sys_dept  s
+        <where>
+            s.del_flag = 0
+            <if test="deptIds != null and deptIds != '' and deptIds.size() > 0">
+                AND s.id  in
+                <foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+            </if>
+            <if test="dto.beginTime != null and dto.beginTime != '' and dto.endTime != null and dto.endTime != ''">
+                and (DATE_FORMAT(s.create_time, '%Y-%m-%d %H:%i:%s') between DATE_FORMAT( #{dto.beginTime}, '%Y-%m-%d %H:%i:%s') and DATE_FORMAT( #{dto.endTime}, '%Y-%m-%d %H:%i:%s'))
+            </if>
+        </where>
+        ) as spa
+        GROUP BY
+        spa.time
+        ORDER BY
+        spa.time ASC
+    </select>
 
     <select id="queryDeptByTimes" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
         select spa.time, COUNT(spa.id) as countNum
@@ -119,7 +143,7 @@
         spa.time ASC
     </select>
 
-    <select id="queryDeptByTime" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
+    <select id="queryDeptByFive" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
         select spa.time, COUNT(spa.id) as countNum
         from(
         SELECT
@@ -144,6 +168,31 @@
         spa.time ASC
     </select>
 
+    <select id="queryDeptByFiveTime" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
+        select spa.time, COUNT(spa.id) as countNum
+        from(
+        SELECT
+        s.id,DATE_FORMAT(s.create_time, '%Y-%m-%d %H' ) as time
+        FROM sys_dept  s
+        <where>
+            s.del_flag = 0
+            <if test="deptIds != null and deptIds != '' and deptIds.size() > 0">
+                AND s.id  in
+                <foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+            </if>
+            <if test="dto.beginTime != null and dto.beginTime != '' and dto.endTime != null and dto.endTime != ''">
+                and (DATE_FORMAT(s.create_time, '%Y-%m-%d' ) like CONCAT( DATE_FORMAT( #{dto.beginTime}, '%Y-%m-%d' ), '%' ))
+            </if>
+        </where>
+        ) as spa
+        GROUP BY
+        spa.time
+        ORDER BY
+        spa.time ASC
+    </select>
+
     <select id="queryUserByTimes" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
         select spa.time, COUNT(spa.id) as countNum
         from(
@@ -169,7 +218,6 @@
         spa.time ASC
 
     </select>
-
     <select id="queryUserByTime" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
         select spa.time, COUNT(spa.id) as countNum
         from(
@@ -195,6 +243,59 @@
         spa.time ASC
 
     </select>
+
+    <select id="queryUserByFive" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
+        select spa.time, COUNT(spa.id) as countNum
+        from(
+        SELECT
+        s.id,DATE_FORMAT(s.create_time, '%Y-%m-%d %H' ) as time
+        FROM sys_user  s
+        <where>
+            s.status in (1, 4, 5, 6, 7)
+            <if test="deptIds != null and deptIds != '' and deptIds.size() > 0">
+                AND s.dept_id  in
+                <foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+            </if>
+            <if test="dto.beginTime != null and dto.beginTime != '' and dto.endTime != null and dto.endTime != ''">
+                and (DATE_FORMAT(s.create_time, '%Y-%m-%d' ) like CONCAT( DATE_FORMAT( #{dto.beginTime}, '%Y-%m-%d' ), '%' ))
+            </if>
+        </where>
+        ) as spa
+        GROUP BY
+        spa.time
+        ORDER BY
+        spa.time ASC
+
+    </select>
+    <select id="queryUserByFiveTime" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
+        select spa.time, COUNT(spa.id) as countNum
+        from(
+        SELECT
+        s.id,DATE_FORMAT(s.create_time, '%Y-%m-%d' ) as time
+        FROM sys_user  s
+        <where>
+            s.status in (1, 4, 5, 6, 7)
+            <if test="deptIds != null and deptIds != '' and deptIds.size() > 0">
+                AND s.dept_id  in
+                <foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+            </if>
+            <if test="dto.beginTime != null and dto.beginTime != '' and dto.endTime != null and dto.endTime != ''">
+                and (DATE_FORMAT(s.create_time, '%Y-%m-%d %H:%i:%s') between DATE_FORMAT( #{dto.beginTime}, '%Y-%m-%d %H:%i:%s') and DATE_FORMAT( #{dto.endTime}, '%Y-%m-%d %H:%i:%s'))
+            </if>
+        </where>
+        ) as spa
+        GROUP BY
+        spa.time
+        ORDER BY
+        spa.time ASC
+
+    </select>
+
+
     <select id="queryPartnerByTimes" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
         select spa.time, COUNT(spa.id) as countNum
         from(