Просмотр исходного кода

/。 baobiao 2

release_toaliyun_real
xhxu 4 лет назад
Родитель
Сommit
8ad50012c8
6 измененных файлов: 94 добавлений и 73 удалений
  1. +11
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCarCmdLog.java
  2. +1
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java
  3. +2
    -6
      mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java
  4. +42
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java
  5. +31
    -54
      mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java
  6. +7
    -7
      mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml

+ 11
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCarCmdLog.java Просмотреть файл

@@ -7,6 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

@TableName(value = "wx_car_cmd_log")
@Data
@@ -45,5 +46,15 @@ public class WxCarCmdLog extends TenantEntity {
@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="feeTime",name="feeTime")
private String feeTime;


@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="停车厂家命令",name="cmdType")
private List<Integer> cmdTypes;

@TableField(exist = false)
private Date startdate;
@TableField(exist = false)
private Date enddate;
}

+ 1
- 1
mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java Просмотреть файл

@@ -23,7 +23,7 @@ public interface WxCarCmdLogMapper extends CommonMapper<WxCarCmdLog, Long> {
List<Map<String, Object>> queryHistory(HashMap<String, Object> params);
long queryHistoryCount(HashMap<String, Object> params);

List<Map<String, Object>> queryTodayCar(HashMap<String, Object> params);
List<Map<String, Object>> queryTodayCar(WxCarCmdLog wxCarCmdLog);

List<Map<String, Object>> queryWeekCarPay(HashMap<String,Object> params);
BigDecimal queryCarPay(HashMap<String,Object> params);


+ 2
- 6
mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java Просмотреть файл

@@ -54,11 +54,7 @@ public interface WxCarCmdLogService {

WxCarCmdLog getBySynId(HashMap<String, Object> params);

Map<String, Integer> getHourCountMap(WxCarCmdLog wxCarCmdLog);







long queryHistoryCount(HashMap<String, Object> weekParams);
}

+ 42
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java Просмотреть файл

@@ -3,8 +3,11 @@ package com.iformall.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxCarCmdLog;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.mapper.WxCarCmdLogMapper;
import com.iformall.mapper.WxMallMapper;
import com.iformall.service.WxCarCmdLogService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -13,6 +16,8 @@ import com.iformall.common.IdWorker;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

@Service
public class WxCarCmdLogServiceImpl implements WxCarCmdLogService {
@@ -21,6 +26,9 @@ public class WxCarCmdLogServiceImpl implements WxCarCmdLogService {
@Autowired
WxCarCmdLogMapper wxCarCmdLogMapper;

@Autowired
WxMallMapper wxMallMapper;


@Override
public PageInfo<WxCarCmdLog> listAsPage(WxCarCmdLog record, Integer pageIndex, Integer pageSize) {
@@ -69,9 +77,38 @@ public class WxCarCmdLogServiceImpl implements WxCarCmdLogService {
return wxCarCmdLogMapper.queryBySynId(params);
}

@Override
public Map<String, Integer> getHourCountMap(WxCarCmdLog wxCarCmdLog) {
if(StringUtils.isBlank(wxCarCmdLog.getTenantId())
&& StringUtils.isNotBlank(wxCarCmdLog.getParentTenantId())){
List<TenantEntity> tenantEntitys = wxMallMapper.getTenantEntitys(wxCarCmdLog);
int count = 0;
Map<String, Integer> map = new HashMap<>();
for (TenantEntity tenantEntity:tenantEntitys) {
wxCarCmdLog.updateTenantInfo(tenantEntity);
List<Map<String, Object>> list = wxCarCmdLogMapper.queryTodayCar(wxCarCmdLog);
Map<String, Integer> collect = list.stream().collect(Collectors.toMap(m -> {
return (String)m.get("create_time");
}, m -> {
return (Integer)m.get("carcount");
}));
collect.forEach((key,value) -> map.merge(key,value,Integer::sum));
}
return map;
}
List<Map<String, Object>> list = wxCarCmdLogMapper.queryTodayCar(wxCarCmdLog);
Map<String, Integer> collect = list.stream().collect(Collectors.toMap(m -> {
return (String)m.get("create_time");
}, m -> {
return (Integer)m.get("carcount");
}));
return collect;
}

@Override
public long queryHistoryCount(HashMap<String, Object> weekParams) {
return wxCarCmdLogMapper.queryHistoryCount(weekParams);
}


}

+ 31
- 54
mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java Просмотреть файл

@@ -1,6 +1,5 @@
package com.iformall.service.impl;

import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode;
@@ -58,7 +57,7 @@ public class WxChartServiceImpl implements WxChartDataService {
@Autowired
WxMerchantTradeDailyMapper wxMerchantTradeDailyMapper;
@Autowired
WxCarCmdLogMapper wxCarCmdLogMapper;
WxCarCmdLogService wxCarCmdLogService;
@Autowired
WxCouponOrderMapper wxCouponOrderMapper;
@Autowired
@@ -852,22 +851,14 @@ public class WxChartServiceImpl implements WxChartDataService {
String systemTime = DateUtils.getSystemTime("yyyy-MM-dd");
String yesterday = DateUtils.getTimeBefore(1, new Date());
String lastweek = DateUtils.getTimeBefore(7, new Date());
List<TenantEntity> tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity);
HashMap<String, Object> params = new HashMap<>();
params.put("tenantEntitys",tenantEntitys);
params.put("tenantId", tenantEntity.getTenantId());
if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) {
params.put("parentTenantId", tenantEntity.getParentTenantId());
}
params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode());
params.put("startdate", systemTime + " 05:00:00");
params.put("enddate", DateUtils.getSystemTime("yyyy-MM-dd HH:mm:ss"));
List<Map<String, Object>> todayCarlist = wxCarCmdLogMapper.queryTodayCar(params);
Map<Object, Object> todaycollect = todayCarlist.stream().collect(Collectors.toMap(m -> {
return m.get("create_time");
}, m -> {
return m.get("carcount");
}));

WxCarCmdLog wxCarCmdLog = new WxCarCmdLog();
wxCarCmdLog.updateTenantInfo(tenantEntity);
wxCarCmdLog.setCmdTypes(EnumCarCmd.getCarIn());
wxCarCmdLog.setStartdate(DateUtils.stringToDate(systemTime + " 05:00:00","yyyy-MM-dd HH:mm:ss"));
wxCarCmdLog.setEnddate(new Date());
Map<String, Integer> todaycollect = wxCarCmdLogService.getHourCountMap(wxCarCmdLog);

List<String> hourList = new ArrayList<>();
Calendar instance = Calendar.getInstance();
instance.add(Calendar.HOUR_OF_DAY, 1);
@@ -887,28 +878,19 @@ public class WxChartServiceImpl implements WxChartDataService {
}
datamap.put("currentimeindex", hourList);
datamap.put("todaycardata", todayCarList);
params.put("startdate", yesterday + " 05:00:00");
params.put("enddate", yesterday + " 22:59:59");
List<Map<String, Object>> yesterdayCarlist = wxCarCmdLogMapper.queryTodayCar(params);
Map<Object, Object> yesterdaycollect = yesterdayCarlist.stream().collect(Collectors.toMap(m -> {
return m.get("create_time");
}, m -> {
return m.get("carcount");
}));

wxCarCmdLog.setStartdate(DateUtils.stringToDate(yesterday + " 05:00:00","yyyy-MM-dd HH:mm:ss"));
wxCarCmdLog.setEnddate(DateUtils.stringToDate(yesterday + " 22:59:59","yyyy-MM-dd HH:mm:ss"));
Map<String, Integer> yesterdaycollect = wxCarCmdLogService.getHourCountMap(wxCarCmdLog);
List<Object> yesterdayCarList = new ArrayList<>();
for (int i = startHour; i < endHour; i++) {
yesterdayCarList.add(yesterdaycollect.get((Object) hourList.get(i-startHour)));
}
datamap.put("yesterdaycardata", yesterdayCarList);

params.put("startdate", lastweek + " 05:00:00");
params.put("enddate", lastweek + " 22:59:59");
List<Map<String, Object>> lastdayCarlist = wxCarCmdLogMapper.queryTodayCar(params);
Map<Object, Object> lastweekdaycollect = lastdayCarlist.stream().collect(Collectors.toMap(m -> {
return m.get("create_time");
}, m -> {
return m.get("carcount");
}));
wxCarCmdLog.setStartdate(DateUtils.stringToDate(lastweek + " 05:00:00","yyyy-MM-dd HH:mm:ss"));
wxCarCmdLog.setEnddate(DateUtils.stringToDate(lastweek + " 22:59:59","yyyy-MM-dd HH:mm:ss"));
Map<String, Integer> lastweekdaycollect = wxCarCmdLogService.getHourCountMap(wxCarCmdLog);
List<Object> lastweekdayCarList = new ArrayList<>();
for (int i = startHour; i < endHour; i++) {
lastweekdayCarList.add(lastweekdaycollect.get((Object) hourList.get(i-startHour)));
@@ -941,14 +923,14 @@ public class WxChartServiceImpl implements WxChartDataService {
}));
List<String> tjTimeList = DateUtils.getTjTimeList(startdate, enddate, "0");
List<String> timeList = new ArrayList<>();
List<Object> valList = new ArrayList<>();
List<Long> valList = new ArrayList<>();
for (String date : tjTimeList) {
Object o = collect.get(date);
String o = collect.get(date);
timeList.add(date.substring(5).replace("-", "/"));
if (o == null) {
if (StringUtils.isBlank(o)) {
valList.add(0L);
} else {
valList.add(o);
valList.add(Long.parseLong(o));
}
}
Map map = new HashMap();
@@ -1007,7 +989,7 @@ public class WxChartServiceImpl implements WxChartDataService {
weekParams.put("startdate", oneWeekStartdate + " 00:00:00");
weekParams.put("enddate", oneWeekEndDate + " 23:59:59");
weekParams.put("cmdTypes", EnumCarCmd.getCarPay());
datamap.put("oneWeekCarPayCount", wxCarCmdLogMapper.queryHistoryCount(weekParams));
datamap.put("oneWeekCarPayCount", wxCarCmdLogService.queryHistoryCount(weekParams));
return new ResultData(datamap);
}

@@ -1018,23 +1000,18 @@ public class WxChartServiceImpl implements WxChartDataService {
*/
private ResultData getCarPayCountInWeek(TenantEntity tenantEntity) {
HashMap<String, Object> datamap = new HashMap<>();
List<TenantEntity> tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity);
HashMap<String, Object> weekParams = new HashMap<>();
weekParams.put("tenantEntitys",tenantEntitys);
weekParams.put("tenantId", tenantEntity.getTenantId());
if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) {
weekParams.put("parentTenantId", tenantEntity.getParentTenantId());
}
String oneWeekStartdate = DateUtils.getTimeBefore(7, new Date());
String oneWeekEndDate = DateUtils.getTimeBefore(1, new Date());
weekParams.put("startdate", oneWeekStartdate + " 00:00:00");
weekParams.put("enddate", oneWeekEndDate + " 23:59:59");
weekParams.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PAY_MANUAL.getCode());
List<Map<String, Object>> weekCarPayHistoryList = wxCarCmdLogMapper.queryWeekCarPay(weekParams);
Map<String, Object> weekCollect = weekCarPayHistoryList.stream().collect(Collectors.toMap(m -> {
return (String) m.get("create_time");
WxChartDataEntity chartData = new WxChartDataEntity();
chartData.updateTenantInfo(tenantEntity);
chartData.setType(EnumChartType.CAR_PAY_FEE.getCode());
chartData.setStartTime(DateUtils.stringToDate(oneWeekStartdate + " 00:00:00","yyyy-MM-dd HH:mm:ss"));
chartData.setEndTime(DateUtils.stringToDate(oneWeekEndDate + " 23:59:59","yyyy-MM-dd HH:mm:ss"));
List<WxChartDataEntity> list = wxChartDataMapper.findList(chartData);
Map<String, String> weekCollect = list.stream().collect(Collectors.toMap(m -> {
return new SimpleDateFormat("yyyy-MM-dd").format(m.getQuerytime());
}, m -> {
return m.get("fee");
return m.getResult();
}));
List<String> days = DateUtils.getTjTimeList(oneWeekStartdate, oneWeekEndDate, "0");
List<String> timeList = new ArrayList<>();
@@ -1042,7 +1019,7 @@ public class WxChartServiceImpl implements WxChartDataService {
for (String date : days) {
String dateStr = date.substring(5, date.length()).replace("-", "/");
timeList.add(dateStr);
Object o = weekCollect.get(dateStr);
String o = weekCollect.get(dateStr);
if (o == null) {
valList.add(0L);
} else {


+ 7
- 7
mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml Просмотреть файл

@@ -104,12 +104,12 @@
and create_date BETWEEN #{startdate} and #{enddate}
</select>
<select id="queryTodayCar" resultType="hashmap" parameterType="hashmap">
select count(c.id) carcount,c.create_time from (
select id,DATE_FORMAT(DATE_ADD(create_date,INTERVAL 1 HOUR),'%H:00') create_time
from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all">
SELECT * from wx_car_cmd_log${tenantEntity.shardTableSuffix}
</foreach>) wx_car_cmd_log where cmd_type=#{cmdType}
<select id="queryTodayCar" resultType="hashmap" parameterType="com.iformall.domain.po.WxCarCmdLog">
select DATE_FORMAT(DATE_ADD(create_date,INTERVAL 1 HOUR),'%H:00') create_time,count(id) carcount
from wx_car_cmd_log where cmd_type in
<foreach collection="cmdTypes" index="index" item="cmdTypeItem" open="(" separator="," close=")">
#{cmdTypeItem}
</foreach>
<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
@@ -117,7 +117,7 @@
and `parent_tenant_id` = #{parentTenantId}
</if>
and create_date BETWEEN #{startdate} and #{enddate}
) c group by c.create_time order by c.create_time
group by create_time order by create_time
</select>

<select id="queryCarPay" resultType="BigDecimal" parameterType="hashmap">


Загрузка…
Отмена
Сохранить