浏览代码

充电送券记录-基础代码和充电接口的提交

hbjzws 1 年之前
父节点
当前提交
6764b29f9c

+ 1 - 0
src/main/java/com/charging/chargingparking/config/WebMvcConfig.java

@@ -67,6 +67,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
 				.excludePathPatterns("/parkingMember/createDiscount")
 				.excludePathPatterns("/parkingMember/getParkingInfo")
 				.excludePathPatterns("/parkingMember/addParkingMember")
+				.excludePathPatterns("/parkingMember/addCoupon")
 				.excludePathPatterns("/parkingMemberInfo/userGetCarMember")
 				.excludePathPatterns("/parkingMemberInfo/validQrCode")
 				.excludePathPatterns("/parkingMemberInfo/userGetCarDetail")

+ 31 - 0
src/main/java/com/charging/chargingparking/dto/AddCoupon.java

@@ -0,0 +1,31 @@
+package com.charging.chargingparking.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+
+@Data
+public class AddCoupon {
+
+    private String id;
+    //停车场代号
+    @NotNull(message = "停车场代号不能为空")
+    private String parkingUname;
+    @NotNull(message = "车牌号不能为空")
+    private String carNum;
+
+    //开始时间
+    @NotNull(message = "开始时间不能为空")
+    private Date startTime;
+
+    //结束时间
+    @NotNull(message = "结束时间不能为空")
+    private Date endTime;
+
+    //额外赠送时长
+    private Integer giveTimes;
+    //充电枪类型(快充,慢充标志)
+    private Integer gunType;
+}

+ 89 - 0
src/main/java/com/charging/chargingparking/entity/EcCoupon.java

@@ -0,0 +1,89 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 充电送券记录
+ * @TableName ec_coupon
+ */
+@TableName(value ="ec_coupon")
+@Data
+public class EcCoupon implements Serializable {
+    /**
+     *
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 停车场id
+     */
+    private String parkId;
+    /**
+     * 车牌号码1
+     */
+    private String carNum;
+
+    /**
+     * 会员开始时间2
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date startTime;
+
+    /**
+     * 会员结束时间3
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date endTime;
+
+    /**
+     * 充电枪类型(快充,慢充标志)4
+     */
+    private Integer gunType;
+
+    /**
+     * 额外赠送时长5
+     */
+    private Integer giveTimes;
+
+    private Integer sumTimes = 0;
+
+    /**
+     * 是否删除
+     */
+    private Boolean delFlag = false;
+
+    /**
+     *
+     */
+    private String createBy;
+
+    /**
+     *
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     *
+     */
+    private String updateBy;
+
+    /**
+     *
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+
+}

+ 13 - 0
src/main/java/com/charging/chargingparking/mapper/EcCouponMapper.java

@@ -0,0 +1,13 @@
+package com.charging.chargingparking.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.charging.chargingparking.entity.EcCoupon;
+import com.charging.chargingparking.entity.ParkingChannelOpen;
+
+public interface EcCouponMapper extends BaseMapper<EcCoupon> {
+
+}
+
+
+
+

+ 25 - 1
src/main/java/com/charging/chargingparking/modules/mobileController/ParkingMemberController.java

@@ -4,11 +4,13 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.crypto.SecureUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.charging.chargingparking.dto.AddCoupon;
 import com.charging.chargingparking.dto.AddParkingMember;
 import com.charging.chargingparking.dto.MessageResult;
 import com.charging.chargingparking.entity.ParkingInfo;
 import com.charging.chargingparking.entity.ParkingMemberLog;
 import com.charging.chargingparking.modules.vo.Discount;
+import com.charging.chargingparking.service.EcCouponService;
 import com.charging.chargingparking.service.ParkingInfoService;
 import com.charging.chargingparking.service.ParkingMemberLogService;
 import com.charging.chargingparking.service.ParkingMemberService;
@@ -166,5 +168,27 @@ public class ParkingMemberController {
             parkingMemberLogService.save(parkingMemberLog);
         }
     }
-
+    @Autowired
+    private EcCouponService ecCouponService;
+    /**
+     * 为51充电联盟提供的接口,用于添加优惠卷
+     * @param addCoupon
+     */
+    @PostMapping("addCoupon")
+    public void addCoupon(@Valid @RequestBody AddCoupon addCoupon, BindingResult bindingResult) {
+        log.warn("51充电传递优惠卷参数:{}",JSONObject.toJSONString(addCoupon));
+        try {
+            if (bindingResult.hasErrors()){
+                throw new Exception(bindingResult.getFieldError().getDefaultMessage());
+            }
+            ecCouponService.addCoupon(addCoupon);
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+            //会员日志
+            ParkingMemberLog parkingMemberLog = new ParkingMemberLog();
+            parkingMemberLog.setCreateTime(new Date());
+            parkingMemberLog.setContent(StrUtil.format("{}优惠卷新增失败,原因:{}",addCoupon,ex.getMessage()));
+            parkingMemberLogService.save(parkingMemberLog);
+        }
+    }
 }

+ 14 - 0
src/main/java/com/charging/chargingparking/service/EcCouponService.java

@@ -0,0 +1,14 @@
+package com.charging.chargingparking.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.charging.chargingparking.dto.AddCoupon;
+import com.charging.chargingparking.entity.EcCoupon;
+import com.charging.chargingparking.entity.ParkingChannelOpen;
+
+/**
+ *
+ */
+public interface EcCouponService extends IService<EcCoupon> {
+
+    void  addCoupon(AddCoupon addCoupon);
+}

+ 67 - 0
src/main/java/com/charging/chargingparking/service/impl/EcCouponServiceImpl.java

@@ -0,0 +1,67 @@
+package com.charging.chargingparking.service.impl;
+
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.dto.AddCoupon;
+import com.charging.chargingparking.dto.SerialData;
+import com.charging.chargingparking.entity.EcCoupon;
+import com.charging.chargingparking.entity.ParkingChannelOpen;
+import com.charging.chargingparking.mapper.EcCouponMapper;
+import com.charging.chargingparking.mapper.ParkingChannelOpenMapper;
+import com.charging.chargingparking.service.EcCouponService;
+import com.charging.chargingparking.service.ParkingChannelOpenService;
+import com.charging.chargingparking.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+@Slf4j
+public class EcCouponServiceImpl extends ServiceImpl<EcCouponMapper, EcCoupon>
+    implements EcCouponService {
+
+    //51充电传递参数:{"carNum":"鄂DFA8103","gunType":2,"memberMin":200,"memberStartTime":1720086969000,"memberType":0,"parkingUname":"1"}
+    @Override
+    public void addCoupon(AddCoupon addCoupon) {
+
+        EcCoupon ecCoupon = new EcCoupon();
+        ecCoupon.setParkId(addCoupon.getParkingUname());
+        ecCoupon.setCarNum(addCoupon.getCarNum());
+        ecCoupon.setStartTime(addCoupon.getStartTime());
+        ecCoupon.setGunType(addCoupon.getGunType());
+        ecCoupon.setGiveTimes(addCoupon.getGiveTimes());
+        ecCoupon.setEndTime(addCoupon.getEndTime());
+        ecCoupon.setCreateBy("system");
+        ecCoupon.setCreateTime(new Date());
+
+        Integer g =ecCoupon.getGiveTimes();
+        if(g==null){
+            g=0;
+        }
+        Integer all =(int) DateUtil.between(ecCoupon.getEndTime(),ecCoupon.getStartTime(), DateUnit.MINUTE)+g;
+        if(all<0){
+            all=0;
+        }
+        ecCoupon.setSumTimes(all);
+        save(ecCoupon);
+    }
+
+
+}
+
+
+
+

+ 20 - 8
src/test/java/com/charging/chargingparking/ChargingParkingApplicationTests.java

@@ -102,16 +102,28 @@ class ChargingParkingApplicationTests {
     private ParkingTimeService parkingTimeService;
     @Autowired
     private TimeSetService timeSetService;
+    @Autowired
+    private EcCouponService ecCouponService;
     @Test
     void testService()  {
-        ParkingChannel parkingChannel = new ParkingChannel();
-        parkingChannel.setDelFlag(false);
-        parkingChannel.setCreateBy("1");
-        parkingChannel.setCreateTime(new Date());
-        parkingChannel.setCarNumRemark("鄂DF59895");
-        boolean affect = parkingChannelService.save(parkingChannel);
-        parkingChannel.setCarNumRemark("鄂DF59895,鄂DF99999");
-        parkingChannelService.updateById(parkingChannel);
+        EcCoupon ecCoupon = new EcCoupon();
+        ecCoupon.setCarNum("1");
+        ecCoupon.setParkId("2");
+
+        ecCouponService.save(ecCoupon);
+
+//        ParkingChannel parkingChannel = new ParkingChannel();
+//        parkingChannel.setDelFlag(false);
+//        parkingChannel.setCreateBy("1");
+//        parkingChannel.setCreateTime(new Date());
+//        parkingChannel.setCarNumRemark("鄂DF59895");
+//        boolean affect = parkingChannelService.save(parkingChannel);
+//        parkingChannel.setCarNumRemark("鄂DF59895,鄂DF99999");
+//        parkingChannelService.updateById(parkingChannel);
+
+
+
+
 //        ParkingChannel parkingChannel = parkingChannelService.getById(1541608391538962434l);
 //
 //        String yqll="1541608391538962434";