Browse Source

feat:新增统计有车会员接口

release_toaliyun_real
xmzhao71 2 years ago
parent
commit
3ca92a7736
7 changed files with 71 additions and 36 deletions
  1. +0
    -1
      mallinkAdmin/src/main/resources/application-dev.yml
  2. +9
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java
  3. +6
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxShopMapper.java
  4. +1
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxUserVisitMapper.java
  5. +6
    -0
      mallinkService/src/main/java/com/iformall/service/WxMallService.java
  6. +34
    -35
      mallinkService/src/main/java/com/iformall/service/impl/CockpitScreenServiceImpl.java
  7. +15
    -0
      mallinkService/src/main/resources/mapper/WxCUserCarMapper.xml

+ 0
- 1
mallinkAdmin/src/main/resources/application-dev.yml View File

@@ -203,7 +203,6 @@ logging:
com.iformall: debug
path: ./logs/admin

debug: true
swagger:
services:
a: /


+ 9
- 0
mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java View File

@@ -3,6 +3,7 @@ package com.iformall.mapper;
import com.iformall.common.CommonMapper;
import com.iformall.domain.dto.WxCUserBasicInfoDto;
import com.iformall.domain.po.WxCUserCar;
import com.iformall.domain.vo.cockpit.MonthDataMapping;

import java.util.HashMap;
import java.util.List;
@@ -18,4 +19,12 @@ public interface WxCUserCarMapper extends CommonMapper<WxCUserCar, Long> {

List<Map<String, Object>> queryCarCountHistory(HashMap<String,Object> params);

/**
* 统计某年某月有车会员数
*
* @param finalTenantId
* @param years
* @return {@link List}<{@link MonthDataMapping}>
*/
List<MonthDataMapping> groupByDate(String finalTenantId, List<Integer> years);
}

+ 6
- 0
mallinkService/src/main/java/com/iformall/mapper/WxShopMapper.java View File

@@ -49,5 +49,11 @@ public interface WxShopMapper extends CommonMapper<WxShop, String> {

long findCount(WxShop wxShop);

/**
* 统计商铺出租和未出租的数量
*
* @param tenantIds
* @return {@link List}<{@link CountShopByStatusDTO}>
*/
List<CountShopByStatusDTO> countShopByStatus(@Param("tenantIds") List<String> tenantIds);
}

+ 1
- 0
mallinkService/src/main/java/com/iformall/mapper/WxUserVisitMapper.java View File

@@ -22,6 +22,7 @@ public interface WxUserVisitMapper extends CommonMapper<WxUserVisit, Long> {

/**
* 统计某年某月的uv数量
*
* @param finalTenantId
* @param years
* @return {@link List}<{@link MonthDataMapping}>


+ 6
- 0
mallinkService/src/main/java/com/iformall/service/WxMallService.java View File

@@ -87,6 +87,12 @@ public interface WxMallService {

List<WxMall> listAsSelectMall(Long id);

/**
* 获取广场列表(集团版获取子广场列表,广场则直接返回该广场)
*
* @param tenantEntity
* @return {@link List}<{@link TenantEntity}>
*/
List<TenantEntity> getTenantEntitys(TenantEntity tenantEntity);

PageInfo<WxMall> listAadminAsPage(WxMall wxMall, Integer pageNum, Integer pageSize);


+ 34
- 35
mallinkService/src/main/java/com/iformall/service/impl/CockpitScreenServiceImpl.java View File

@@ -8,6 +8,7 @@ import com.iformall.domain.vo.cockpit.*;
import com.iformall.enums.EnumShopStatus;
import com.iformall.enums.EnumUserGender;
import com.iformall.mapper.WxCUserBasicInfoMapper;
import com.iformall.mapper.WxCUserCarMapper;
import com.iformall.mapper.WxShopMapper;
import com.iformall.mapper.WxUserVisitMapper;
import com.iformall.service.CockpitScreenService;
@@ -40,6 +41,8 @@ public class CockpitScreenServiceImpl implements CockpitScreenService {
private WxShopMapper wxShopMapper;
@Autowired
private WxUserVisitMapper wxUserVisitMapper;
@Autowired
private WxCUserCarMapper wxCUserCarMapper;

@Override
public CountUserGenderVO countUserGender(TenantEntity tenantEntity) {
@@ -103,37 +106,49 @@ public class CockpitScreenServiceImpl implements CockpitScreenService {
years.add(DateUtils.getYear(new Date()));
}

List<CountMonthVO> result = new ArrayList<>();
List<MonthDataMapping> mappings = cUserBasicInfoMapper.groupByDate(tenantInfo.getFinalTenantId(), years);
Map<String, Integer> mappingMap = mappings.stream().collect(Collectors.toMap(MonthDataMapping::getName, MonthDataMapping::getCount));
for (int i = 0; i < years.size(); i++) {
CountMonthVO vo = new CountMonthVO();
List<MonthDataVO> months = new ArrayList<>();
return getResult(years, mappings);
}

for (int j = 0; j < 12; j++) {
MonthDataVO month = new MonthDataVO();
month.setMonth(j + 1);
Integer count = mappingMap.get(years.get(i) + "-" + DateUtils.getMonthStr(j + 1));
count = count != null ? count : 0;
month.setCount(count);
months.add(month);
}
vo.setYear(years.get(i));
vo.setMonths(months);
result.add(vo);
@Override
public List<CountMonthVO> countReachUser(TenantEntity tenantInfo, List<Integer> years) {
if (CollectionUtils.isEmpty(years)) {
years.add(DateUtils.getYear(new Date()));
}

return result;
List<MonthDataMapping> mappings = wxUserVisitMapper.groupByDate(tenantInfo.getFinalTenantId(), years);
return getResult(years, mappings);
}

@Override
public List<CountMonthVO> countReachUser(TenantEntity tenantInfo, List<Integer> years) {
public List<CountMonthVO> countCar(TenantEntity tenantInfo, List<Integer> years) {
if (CollectionUtils.isEmpty(years)) {
years.add(DateUtils.getYear(new Date()));
}

List<MonthDataMapping> mappings = wxCUserCarMapper.groupByDate(tenantInfo.getFinalTenantId(), years);
return getResult(years, mappings);
}

@Override
public List<CountOrderTrendVO> countOrderTrend(TenantEntity tenantInfo, Integer year) {
return null;
}

@Override
public CountBasicVO countBasic() {
return null;
}

/**
* 拼装某年某月数据
*
* @param years
* @param mappings
* @return {@link List}<{@link CountMonthVO}>
*/
private List<CountMonthVO> getResult(List<Integer> years, List<MonthDataMapping> mappings) {
List<CountMonthVO> result = new ArrayList<>();
List<MonthDataMapping> mappings = wxUserVisitMapper.groupByDate(tenantInfo.getFinalTenantId(), years);
Map<String, Integer> mappingMap = mappings.stream().collect(Collectors.toMap(MonthDataMapping::getName, MonthDataMapping::getCount));
for (int i = 0; i < years.size(); i++) {
CountMonthVO vo = new CountMonthVO();
@@ -151,22 +166,6 @@ public class CockpitScreenServiceImpl implements CockpitScreenService {
vo.setMonths(months);
result.add(vo);
}

return result;
}

@Override
public List<CountMonthVO> countCar(TenantEntity tenantInfo, List<Integer> years) {
return null;
}

@Override
public List<CountOrderTrendVO> countOrderTrend(TenantEntity tenantInfo, Integer year) {
return null;
}

@Override
public CountBasicVO countBasic() {
return null;
}
}

+ 15
- 0
mallinkService/src/main/resources/mapper/WxCUserCarMapper.xml View File

@@ -134,5 +134,20 @@
AND ubi.create_date BETWEEN #{startdate} AND #{enddate}) c
GROUP BY c.create_time ORDER BY c.create_time
</select>
<select id="groupByDate" resultType="com.iformall.domain.vo.cockpit.MonthDataMapping">
SELECT
DATE_FORMAT( create_date, '%Y-%m' ) AS `name`,
COUNT(DISTINCT c_user_id) AS count
FROM
wx_c_user_car
WHERE
tenant_id = #{finalTenantId}
AND DATE_FORMAT( create_date, '%Y' ) IN
<foreach collection="years" item="year" open="(" separator="," close=")">
#{year}
</foreach>
GROUP BY
`name`
</select>

</mapper>

Loading…
Cancel
Save