From f75f6e40eba66e5e4388087974e9c9aff548bd7c Mon Sep 17 00:00:00 2001 From: luozukai Date: Thu, 17 Jan 2019 10:04:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91=E5=81=9C=E8=BD=A6=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxCUserBasicInfoController.java | 18 +- .../controller/WxCarCallBackController.java | 35 ++- .../iformall/domain/po/WxCarPayRecord.java | 239 ++++++++++++++++++ .../iformall/mapper/WxCarCmdLogMapper.java | 1 + .../iformall/mapper/WxCarPayRecordMapper.java | 14 + .../iformall/service/WxCarCmdLogService.java | 5 +- .../service/WxCarPayRecordService.java | 18 ++ .../service/impl/DataTowerServiceImpl.java | 20 +- .../service/impl/WxCarCmdLogServiceImpl.java | 1 + .../impl/WxCarPayRecordServiceImpl.java | 39 +++ .../java/com/iformall/utils/DateUtils.java | 19 ++ .../resources/mapper/WxCarPayRecordMapper.xml | 76 ++++++ 12 files changed, 478 insertions(+), 7 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxCarPayRecord.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxCarPayRecordMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxCarPayRecordService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxCarPayRecordServiceImpl.java create mode 100644 mallinkService/src/main/resources/mapper/WxCarPayRecordMapper.xml diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 1e08de9d1..e6c2d92bb 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -7,6 +7,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxCarPayQueryDto; import com.iformall.domain.po.*; import com.iformall.enums.EnumAssignTagsTrigger; import com.iformall.exception.MallinkException; @@ -62,7 +63,8 @@ public class WxCUserBasicInfoController extends BaseController { @Autowired private WxLevelConfigService wxLevelConfigService; - + @Autowired + WxCarPayRecordService wxCarPayRecordService; @Autowired StringRedisTemplate stringRedisTemplate; @@ -411,4 +413,18 @@ public class WxCUserBasicInfoController extends BaseController { return new ResultData(Result.SUCCESS, "查询成功", entries); } + @ApiOperation("进出场车辆分页列表接口") + @GetMapping("carPayList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "startDate", value = "开始时间", dataType = "string", paramType = "query"), + @ApiImplicitParam(name = "endDate", value = "结束时间", dataType = "string", paramType = "query"), + @ApiImplicitParam(name = "isPay", value = "是否缴费 1是", dataType = "int", paramType = "query"), + }) + public ResultData carPayList(@ModelAttribute WxCarPayRecord record, Integer pageNum, Integer pageSize){ + record.setTenantId(super.getTenantId()); + return new ResultData(wxCarPayRecordService.findCarPayListByPage(record,pageNum,pageSize)); + } + } \ No newline at end of file diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCarCallBackController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCarCallBackController.java index 4a4daba20..b0dee5abf 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCarCallBackController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCarCallBackController.java @@ -3,9 +3,7 @@ package com.iformall.controller; import com.alibaba.fastjson.JSON; import com.iformall.common.ErrorCode; import com.iformall.common.Result; -import com.iformall.domain.po.WxCUserCar; -import com.iformall.domain.po.WxCarCmdLog; -import com.iformall.domain.po.WxPark; +import com.iformall.domain.po.*; import com.iformall.enums.EnumCarCmd; import com.iformall.enums.EnumCarVendor; import com.iformall.enums.EnumCouponSendSendType; @@ -22,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -51,6 +50,12 @@ public class WxCarCallBackController extends BaseController { @Autowired WxCouponSendService wxCouponSendService; + + WxCarPayRecordService wxCarPayRecordService; + + @Autowired + WxCUserService wxCUserService; + /** * ETCP 车辆入场通知 * { @@ -98,6 +103,8 @@ public class WxCarCallBackController extends BaseController { return new Result(ErrorCode.DB_FAIL.getCode(), "入库错误" + paramMap.toString()); } + String phoneStrs = ""; + // 停车发券 String carNumber = paramMap.get("plateNumber"); if (!StringUtils.isBlank(carNumber)) { @@ -110,9 +117,31 @@ public class WxCarCallBackController extends BaseController { List userCarList = wxCUserCarService.getList(userCarQ); for (WxCUserCar userCar : userCarList) { wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.CAR_STOP, userCar); + WxCUser cUser = wxCUserService.getById(userCar.getCUserId()); + if(cUser != null){ + phoneStrs += cUser.getPhone() + " "; + } } } + try { + WxCarPayRecord record = new WxCarPayRecord(); + record.setVendorType(wxCarCmdLog.getVendorType()); + Map jsonMap = (Map)JSON.parseObject(wxCarCmdLog.getCmdJson()); + record.setSynId(jsonMap.get("synId")); + record.setParkId(jsonMap.get("parkId")); + record.setParkName(jsonMap.get("parkName")); + record.setUserType(jsonMap.get("userType")); + record.setPlateNumber(jsonMap.get("plateNumber")); + record.setEntranceTime(new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(jsonMap.get("entranceTime"))); + record.setFixParkingId(jsonMap.get("fixParkingId")); + record.setRemainingDays(jsonMap.get("remainingDays")); + record.setPhone(phoneStrs); + wxCarPayRecordService.saveOrUpdate(record); + } catch (Exception e) { + logger.error("WxCarPayRecord: 入库错误 " + paramMap.toString()); + return new Result(ErrorCode.DB_FAIL.getCode(), "入库错误" + paramMap.toString()); + } return new Result(EnumETCPCode.SUCCESS.getCode(), EnumETCPCode.SUCCESS.getMessage()); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCarPayRecord.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCarPayRecord.java new file mode 100644 index 000000000..8810c5b99 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCarPayRecord.java @@ -0,0 +1,239 @@ +package com.iformall.domain.po; + +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Transient; +import java.io.Serializable; +import java.util.Date; + +@Table(name = "wx_car_pay_record") +public class WxCarPayRecord implements Serializable { + private static final long serialVersionUID = 1243232432423L; + @Id + private Long id; + private String tenantId; + private Integer vendorType; + private String synId; + private String parkId; + private String parkName; + private String userType; + private String plateNumber; + private Date entranceTime; + private Date exitTime; + private String fee; + private Date feeTime; + private String coupon; + private String couponCode; + private String fixParkingId; + private String remainingDays; + private String discountAmount; + private String paidServiceFee; + private String phone; + private Date createDate; + private Date updateDate; + + + @Transient + @io.swagger.annotations.ApiModelProperty(value="开始日期",name="startDate") + private String startDate; + @Transient + @io.swagger.annotations.ApiModelProperty(value="结束日期",name="endDate") + private String endDate; + @Transient + @io.swagger.annotations.ApiModelProperty(value="是否缴费",name="isPay") + private Integer isPay; + + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } + + public Integer getIsPay() { + return isPay; + } + + public void setIsPay(Integer isPay) { + this.isPay = isPay; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public Integer getVendorType() { + return vendorType; + } + + public void setVendorType(Integer vendorType) { + this.vendorType = vendorType; + } + + public String getSynId() { + return synId; + } + + public void setSynId(String synId) { + this.synId = synId; + } + + public String getParkId() { + return parkId; + } + + public void setParkId(String parkId) { + this.parkId = parkId; + } + + public String getParkName() { + return parkName; + } + + public void setParkName(String parkName) { + this.parkName = parkName; + } + + public String getUserType() { + return userType; + } + + public void setUserType(String userType) { + this.userType = userType; + } + + public String getPlateNumber() { + return plateNumber; + } + + public void setPlateNumber(String plateNumber) { + this.plateNumber = plateNumber; + } + + public Date getEntranceTime() { + return entranceTime; + } + + public void setEntranceTime(Date entranceTime) { + this.entranceTime = entranceTime; + } + + public Date getExitTime() { + return exitTime; + } + + public void setExitTime(Date exitTime) { + this.exitTime = exitTime; + } + + public String getFee() { + return fee; + } + + public void setFee(String fee) { + this.fee = fee; + } + + public Date getFeeTime() { + return feeTime; + } + + public void setFeeTime(Date feeTime) { + this.feeTime = feeTime; + } + + public String getCoupon() { + return coupon; + } + + public void setCoupon(String coupon) { + this.coupon = coupon; + } + + + public String getCouponCode() { + return couponCode; + } + + public void setCouponCode(String couponCode) { + this.couponCode = couponCode; + } + + public String getFixParkingId() { + return fixParkingId; + } + + public void setFixParkingId(String fixParkingId) { + this.fixParkingId = fixParkingId; + } + + public String getRemainingDays() { + return remainingDays; + } + + public void setRemainingDays(String remainingDays) { + this.remainingDays = remainingDays; + } + + public String getDiscountAmount() { + return discountAmount; + } + + public void setDiscountAmount(String discountAmount) { + this.discountAmount = discountAmount; + } + + public String getPaidServiceFee() { + return paidServiceFee; + } + + public void setPaidServiceFee(String paidServiceFee) { + this.paidServiceFee = paidServiceFee; + } + + public Date getCreateDate() { + return createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public Date getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java index ce6651f5f..b85f7c48f 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java @@ -3,6 +3,7 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxCarCmdLog; import com.iformall.domain.vo.MarkingSceneDataVo; +import org.apache.ibatis.annotations.Param; import java.util.HashMap; import java.util.List; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCarPayRecordMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCarPayRecordMapper.java new file mode 100644 index 000000000..14e07267b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCarPayRecordMapper.java @@ -0,0 +1,14 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxCarPayRecord; +import java.util.List; + +/** + * @author luozukai + */ +public interface WxCarPayRecordMapper extends CommonMapper { + + List findCarPayListByPage(WxCarPayRecord record); + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java b/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java index 7016361a5..a07d657e1 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java @@ -2,8 +2,11 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxCarCmdLog; +import org.apache.ibatis.annotations.Param; import java.util.HashMap; +import java.util.List; +import java.util.Map; public interface WxCarCmdLogService { @@ -16,7 +19,7 @@ public interface WxCarCmdLogService { * @return */ PageInfo listAsPage(WxCarCmdLog record, Integer pageIndex, Integer pageSize); - + /** * 根据Id获得实体 * diff --git a/mallinkService/src/main/java/com/iformall/service/WxCarPayRecordService.java b/mallinkService/src/main/java/com/iformall/service/WxCarPayRecordService.java new file mode 100644 index 000000000..1bfcbd41c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxCarPayRecordService.java @@ -0,0 +1,18 @@ +package com.iformall.service; + +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.WxCarPayRecord; + +/** + * @author luozukai + * @date 2019/1/1617:36 + */ +public interface WxCarPayRecordService { + /** + * 进出场车辆列表 + * @return + */ + PageInfo findCarPayListByPage(WxCarPayRecord record,Integer pageIndex, Integer pageSize); + + void saveOrUpdate(WxCarPayRecord record); +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java index 57681d097..6fb24e432 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java @@ -20,6 +20,7 @@ import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -505,6 +506,22 @@ public class DataTowerServiceImpl implements DataTowerService { } } + // 查询近一周的缴费车辆----start------ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + List days = DateUtils.dateToWeek(new Date()); + String oneWeekStartdate = sdf.format(days.get(0)); + String oneWeekSystemTime = sdf.format(days.get(days.size()-1)); + + List> oneWeekHistorylist = wxCarCmdLogMapper.queryHistory(params); + Map oneWeekCollect = oneWeekHistorylist.stream().collect(Collectors.toMap(m -> { + return m.get("create_date"); + }, m -> { + return m.get("carcount"); + })); + historymap.put("oneWeekCarCount",oneWeekCollect.get("carcount")); + historymap.put("oneWeekCarCount",oneWeekCollect.get("carcount")); + // 查询近一周的缴费车辆----end------ + Map datamap = new HashMap<>(); datamap.put("history", historymap); @@ -696,8 +713,6 @@ public class DataTowerServiceImpl implements DataTowerService { } } - - public TreeMap getTimeTreeMap() { TreeMap timemap = new TreeMap(); timemap.put("06:00", 0); @@ -722,4 +737,5 @@ public class DataTowerServiceImpl implements DataTowerService { } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java index 6b36ff66f..c4e91a655 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; import com.iformall.common.IdWorker; import java.util.HashMap; +import java.util.Map; @Service public class WxCarCmdLogServiceImpl implements WxCarCmdLogService { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCarPayRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCarPayRecordServiceImpl.java new file mode 100644 index 000000000..464894caa --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCarPayRecordServiceImpl.java @@ -0,0 +1,39 @@ +package com.iformall.service.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.iformall.common.IdWorker; +import com.iformall.domain.dto.WxCarPayQueryDto; +import com.iformall.domain.po.WxCarCmdLog; +import com.iformall.domain.po.WxCarPayRecord; +import com.iformall.mapper.WxCarPayRecordMapper; +import com.iformall.service.WxCarPayRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @author luozukai + * @date 2019/1/16 17:37 + */ +@Service +public class WxCarPayRecordServiceImpl implements WxCarPayRecordService{ + @Autowired + private WxCarPayRecordMapper wxCarPayRecordMapper; + + @Override + public PageInfo findCarPayListByPage(WxCarPayRecord record,Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCarPayRecordMapper.findCarPayListByPage(record)); + } + + @Override + public void saveOrUpdate(WxCarPayRecord record) { + if (record.getId() == null) { + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + wxCarPayRecordMapper.insertSelective(record); + } else { + wxCarPayRecordMapper.updateByPrimaryKeySelective(record); + } + } + +} diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index ed234b278..ad1b65d2e 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -936,4 +936,23 @@ public class DateUtils { } } + + /** + * 根据日期获得所在周的日期 + * @param mdate + * @return + */ + @SuppressWarnings("deprecation") + public static List dateToWeek(Date mdate) { + int b = mdate.getDay(); + Date fdate; + List list = new ArrayList<>(); + Long fTime = mdate.getTime() - b * 24 * 3600000; + for (int a = 1; a <= 7; a++) { + fdate = new Date(); + fdate.setTime(fTime + (a * 24 * 3600000)); + list.add(a-1, fdate); + } + return list; + } } diff --git a/mallinkService/src/main/resources/mapper/WxCarPayRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxCarPayRecordMapper.xml new file mode 100644 index 000000000..87bbb8b39 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxCarPayRecordMapper.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`vendor_type`,`create_date`,`update_date`,syn_id,park_id,park_name,user_type, + plate_number,entrance_time,exit_time,fee,fee_time,coupon,coupon_code,fix_parking_id,remaining_days,discount_amount,phone + ,paid_service_fee,create_date,update_date + + + + where 1 = 1 + + + and `id` = #{id} + + + + + and `tenant_id` = #{tenantId} + + + + + and `vendor_type` = #{vendorType} + + + + + + and entrance_time >= #{startDate} + + + and exit_time <= #{endDate} + + + and fee is not null + and fee != '' + + order by create_date desc + + + + + + + +