Parcourir la source

/。 baobiao 2

release_toaliyun_real
xhxu il y a 4 ans
Parent
révision
8ad50012c8
6 fichiers modifiés avec 94 ajouts et 73 suppressions
  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 Voir le fichier

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


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


@TableName(value = "wx_car_cmd_log") @TableName(value = "wx_car_cmd_log")
@Data @Data
@@ -45,5 +46,15 @@ public class WxCarCmdLog extends TenantEntity {
@TableField(exist = false) @TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="feeTime",name="feeTime") @io.swagger.annotations.ApiModelProperty(value="feeTime",name="feeTime")
private String 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 Voir le fichier

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


+ 2
- 6
mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java Voir le fichier

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


WxCarCmdLog getBySynId(HashMap<String, Object> params); 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 Voir le fichier

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


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


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


@Autowired
WxMallMapper wxMallMapper;



@Override @Override
public PageInfo<WxCarCmdLog> listAsPage(WxCarCmdLog record, Integer pageIndex, Integer pageSize) { public PageInfo<WxCarCmdLog> listAsPage(WxCarCmdLog record, Integer pageIndex, Integer pageSize) {
@@ -69,9 +77,38 @@ public class WxCarCmdLogServiceImpl implements WxCarCmdLogService {
return wxCarCmdLogMapper.queryBySynId(params); 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 Voir le fichier

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


import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
@@ -58,7 +57,7 @@ public class WxChartServiceImpl implements WxChartDataService {
@Autowired @Autowired
WxMerchantTradeDailyMapper wxMerchantTradeDailyMapper; WxMerchantTradeDailyMapper wxMerchantTradeDailyMapper;
@Autowired @Autowired
WxCarCmdLogMapper wxCarCmdLogMapper;
WxCarCmdLogService wxCarCmdLogService;
@Autowired @Autowired
WxCouponOrderMapper wxCouponOrderMapper; WxCouponOrderMapper wxCouponOrderMapper;
@Autowired @Autowired
@@ -852,22 +851,14 @@ public class WxChartServiceImpl implements WxChartDataService {
String systemTime = DateUtils.getSystemTime("yyyy-MM-dd"); String systemTime = DateUtils.getSystemTime("yyyy-MM-dd");
String yesterday = DateUtils.getTimeBefore(1, new Date()); String yesterday = DateUtils.getTimeBefore(1, new Date());
String lastweek = DateUtils.getTimeBefore(7, 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<>(); List<String> hourList = new ArrayList<>();
Calendar instance = Calendar.getInstance(); Calendar instance = Calendar.getInstance();
instance.add(Calendar.HOUR_OF_DAY, 1); instance.add(Calendar.HOUR_OF_DAY, 1);
@@ -887,28 +878,19 @@ public class WxChartServiceImpl implements WxChartDataService {
} }
datamap.put("currentimeindex", hourList); datamap.put("currentimeindex", hourList);
datamap.put("todaycardata", todayCarList); 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<>(); List<Object> yesterdayCarList = new ArrayList<>();
for (int i = startHour; i < endHour; i++) { for (int i = startHour; i < endHour; i++) {
yesterdayCarList.add(yesterdaycollect.get((Object) hourList.get(i-startHour))); yesterdayCarList.add(yesterdaycollect.get((Object) hourList.get(i-startHour)));
} }
datamap.put("yesterdaycardata", yesterdayCarList); 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<>(); List<Object> lastweekdayCarList = new ArrayList<>();
for (int i = startHour; i < endHour; i++) { for (int i = startHour; i < endHour; i++) {
lastweekdayCarList.add(lastweekdaycollect.get((Object) hourList.get(i-startHour))); 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> tjTimeList = DateUtils.getTjTimeList(startdate, enddate, "0");
List<String> timeList = new ArrayList<>(); List<String> timeList = new ArrayList<>();
List<Object> valList = new ArrayList<>();
List<Long> valList = new ArrayList<>();
for (String date : tjTimeList) { for (String date : tjTimeList) {
Object o = collect.get(date);
String o = collect.get(date);
timeList.add(date.substring(5).replace("-", "/")); timeList.add(date.substring(5).replace("-", "/"));
if (o == null) {
if (StringUtils.isBlank(o)) {
valList.add(0L); valList.add(0L);
} else { } else {
valList.add(o);
valList.add(Long.parseLong(o));
} }
} }
Map map = new HashMap(); Map map = new HashMap();
@@ -1007,7 +989,7 @@ public class WxChartServiceImpl implements WxChartDataService {
weekParams.put("startdate", oneWeekStartdate + " 00:00:00"); weekParams.put("startdate", oneWeekStartdate + " 00:00:00");
weekParams.put("enddate", oneWeekEndDate + " 23:59:59"); weekParams.put("enddate", oneWeekEndDate + " 23:59:59");
weekParams.put("cmdTypes", EnumCarCmd.getCarPay()); weekParams.put("cmdTypes", EnumCarCmd.getCarPay());
datamap.put("oneWeekCarPayCount", wxCarCmdLogMapper.queryHistoryCount(weekParams));
datamap.put("oneWeekCarPayCount", wxCarCmdLogService.queryHistoryCount(weekParams));
return new ResultData(datamap); return new ResultData(datamap);
} }


@@ -1018,23 +1000,18 @@ public class WxChartServiceImpl implements WxChartDataService {
*/ */
private ResultData getCarPayCountInWeek(TenantEntity tenantEntity) { private ResultData getCarPayCountInWeek(TenantEntity tenantEntity) {
HashMap<String, Object> datamap = new HashMap<>(); 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 oneWeekStartdate = DateUtils.getTimeBefore(7, new Date());
String oneWeekEndDate = DateUtils.getTimeBefore(1, 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 -> { }, m -> {
return m.get("fee");
return m.getResult();
})); }));
List<String> days = DateUtils.getTjTimeList(oneWeekStartdate, oneWeekEndDate, "0"); List<String> days = DateUtils.getTjTimeList(oneWeekStartdate, oneWeekEndDate, "0");
List<String> timeList = new ArrayList<>(); List<String> timeList = new ArrayList<>();
@@ -1042,7 +1019,7 @@ public class WxChartServiceImpl implements WxChartDataService {
for (String date : days) { for (String date : days) {
String dateStr = date.substring(5, date.length()).replace("-", "/"); String dateStr = date.substring(5, date.length()).replace("-", "/");
timeList.add(dateStr); timeList.add(dateStr);
Object o = weekCollect.get(dateStr);
String o = weekCollect.get(dateStr);
if (o == null) { if (o == null) {
valList.add(0L); valList.add(0L);
} else { } else {


+ 7
- 7
mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml Voir le fichier

@@ -104,12 +104,12 @@
and create_date BETWEEN #{startdate} and #{enddate} and create_date BETWEEN #{startdate} and #{enddate}
</select> </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"> <if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId} and `tenant_id` = #{tenantId}
</if> </if>
@@ -117,7 +117,7 @@
and `parent_tenant_id` = #{parentTenantId} and `parent_tenant_id` = #{parentTenantId}
</if> </if>
and create_date BETWEEN #{startdate} and #{enddate} 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>


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


Chargement…
Annuler
Enregistrer