Browse Source

优化赠送停车券功能

wuxw 1 year ago
parent
commit
a969c7d715

+ 10 - 0
java110-bean/src/main/java/com/java110/dto/parking/ParkingCouponCarDto.java

@@ -32,6 +32,8 @@ public class ParkingCouponCarDto extends PageDto implements Serializable {
     private String typeCd;
     private String typeCdName;
     private String paId;
+
+    private String paNum;
     private String paName;
     private String startTime;
     private String shopId;
@@ -241,4 +243,12 @@ public class ParkingCouponCarDto extends PageDto implements Serializable {
     public void setGiveWayName(String giveWayName) {
         this.giveWayName = giveWayName;
     }
+
+    public String getPaNum() {
+        return paNum;
+    }
+
+    public void setPaNum(String paNum) {
+        this.paNum = paNum;
+    }
 }

+ 10 - 0
java110-interface/src/main/java/com/java110/intf/job/IIotInnerServiceSMO.java

@@ -7,9 +7,11 @@ import com.java110.dto.data.DatabusDataDto;
 import com.java110.dto.fee.TempCarPayOrderDto;
 import com.java110.dto.machine.CarInoutDto;
 import com.java110.dto.machine.MachineDto;
+import com.java110.dto.parking.ParkingCouponCarDto;
 import com.java110.dto.system.Business;
 import com.java110.dto.user.UserDto;
 import com.java110.po.coupon.CouponPropertyUserPo;
+import com.java110.po.parking.ParkingCouponCarPo;
 import com.java110.vo.ResultVo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -54,4 +56,12 @@ public interface IIotInnerServiceSMO {
     ResultVo  sendUserInfo(@RequestBody UserDto userDto);
     @RequestMapping(value = "/sendChargeCoupon", method = RequestMethod.POST)
     ResultVo  sendChargeCoupon(@RequestBody CouponPropertyUserPo couponPropertyUserPo);
+
+    /**
+     * 赠送停车券
+     * @param parkingCouponCarDto
+     * @return
+     */
+    @RequestMapping(value = "/sendCarCoupon", method = RequestMethod.POST)
+    ResultVo  sendCarCoupon(@RequestBody ParkingCouponCarDto parkingCouponCarDto);
 }

+ 5 - 4
service-acct/src/main/java/com/java110/acct/cmd/couponProperty/CouponPropertyUserGiftCarCmd.java

@@ -21,6 +21,7 @@ import com.java110.utils.exception.CmdException;
 import com.java110.utils.lock.DistributedLock;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.ListUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 
@@ -88,7 +89,7 @@ public class CouponPropertyUserGiftCarCmd extends Cmd {
         String userId = context.getReqHeaders().get("user-id");
 
         //前端车牌号输入问题处理 去除空格和小写
-        reqJson.put("carNum",reqJson.getString("carNum").trim().toUpperCase());
+        reqJson.put("carNum", reqJson.getString("carNum").trim().toUpperCase());
 
         //校验优惠券是否存在
         UserDto userDto = new UserDto();
@@ -104,7 +105,7 @@ public class CouponPropertyUserGiftCarCmd extends Cmd {
 
         List<CouponPropertyUserDto> couponPropertyUserDtos = couponPropertyUserV1InnerServiceSMOImpl.queryCouponPropertyUsers(couponPropertyUserDto);
 
-        if (couponPropertyUserDtos == null || couponPropertyUserDtos.size() < 1) {
+        if (ListUtil.isNull(couponPropertyUserDtos)) {
             throw new CmdException("优惠券不存在");
         }
 
@@ -153,7 +154,7 @@ public class CouponPropertyUserGiftCarCmd extends Cmd {
 
             couponPropertyUserDtos = couponPropertyUserV1InnerServiceSMOImpl.queryCouponPropertyUsers(couponPropertyUserDto);
 
-            if (couponPropertyUserDtos == null || couponPropertyUserDtos.size() < 1) {
+            if (ListUtil.isNull(couponPropertyUserDtos)) {
                 throw new CmdException("优惠券不存在");
             }
 
@@ -182,7 +183,7 @@ public class CouponPropertyUserGiftCarCmd extends Cmd {
             DistributedLock.releaseDistributedLock(requestId, key);
         }
 
-        for(int giftIndex = 0; giftIndex < giftCount;giftIndex ++) {
+        for (int giftIndex = 0; giftIndex < giftCount; giftIndex++) {
             //保存核销记录
             String pccId = GenerateCodeFactory.getGeneratorId("11");
 

+ 93 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/AddParkingCouponCarToIotAdapt.java

@@ -0,0 +1,93 @@
+package com.java110.job.adapt.hcIot;
+
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.parking.ParkingAreaDto;
+import com.java110.dto.parking.ParkingCouponCarDto;
+import com.java110.dto.system.Business;
+import com.java110.intf.acct.IParkingCouponCarV1InnerServiceSMO;
+import com.java110.intf.community.IParkingAreaInnerServiceSMO;
+import com.java110.intf.community.IParkingAreaV1InnerServiceSMO;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.job.IIotInnerServiceSMO;
+import com.java110.job.adapt.DatabusAdaptImpl;
+import com.java110.po.parking.ParkingCouponCarPo;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * HC iot 停车劵同步
+ * <p>
+ * 接口协议地址: https://gitee.com/java110/MicroCommunityThings/blob/master/back/docs/api.md
+ *
+ * @desc add by 吴学文 18:58
+ */
+@Component(value = "addParkingCouponCarToIotAdapt")
+public class AddParkingCouponCarToIotAdapt extends DatabusAdaptImpl {
+
+    @Autowired
+    private IIotInnerServiceSMO iotInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IParkingAreaV1InnerServiceSMO parkingAreaV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingCouponCarV1InnerServiceSMO parkingCouponCarV1InnerServiceSMOImpl;
+
+
+    /**
+     * accessToken={access_token}
+     * &extCommunityUuid=01000
+     * &extCommunityId=1
+     * &devSn=111111111
+     * &name=设备名称
+     * &positionType=0
+     * &positionUuid=1
+     *
+     * @param business   当前处理业务
+     * @param businesses 所有业务信息
+     */
+    @Override
+    public void execute(Business business, List<Business> businesses) {
+        JSONObject data = business.getData();
+        JSONArray businessParkingCouponCars = new JSONArray();
+        if (data instanceof JSONObject) {
+            businessParkingCouponCars.add(data);
+        }
+
+        for (int bParkingCouponCarIndex = 0; bParkingCouponCarIndex < businessParkingCouponCars.size(); bParkingCouponCarIndex++) {
+            JSONObject businessParkingCouponCar = businessParkingCouponCars.getJSONObject(bParkingCouponCarIndex);
+            doSendParkingCouponCar(business, businessParkingCouponCar);
+        }
+    }
+
+    private void doSendParkingCouponCar(Business business, JSONObject businessTempCarFeeConfig) {
+
+        ParkingCouponCarPo parkingCouponCarPo = BeanConvertUtil.covertBean(businessTempCarFeeConfig, ParkingCouponCarPo.class);
+
+        ParkingCouponCarDto parkingCouponCarDto = new ParkingCouponCarDto();
+        parkingCouponCarDto.setPccId(parkingCouponCarPo.getPccId());
+        parkingCouponCarDto.setCommunityId(parkingCouponCarPo.getCommunityId());
+        List<ParkingCouponCarDto> parkingCouponCarDtos = parkingCouponCarV1InnerServiceSMOImpl.queryParkingCouponCars(parkingCouponCarDto);
+
+        Assert.listOnlyOne(parkingCouponCarDtos, "未找到车辆停车劵");
+
+        ParkingAreaDto parkingAreaDto = new ParkingAreaDto();
+        parkingAreaDto.setPaId(parkingCouponCarDtos.get(0).getPaId());
+        parkingAreaDto.setCommunityId(parkingCouponCarDtos.get(0).getCommunityId());
+        List<ParkingAreaDto> parkingAreaDtos = parkingAreaV1InnerServiceSMOImpl.queryParkingAreas(parkingAreaDto);
+        Assert.listOnlyOne(parkingAreaDtos, "未找到停车场");
+        ParkingCouponCarDto tmpParkingCouponCarDto = parkingCouponCarDtos.get(0);
+        tmpParkingCouponCarDto.setPaNum(parkingAreaDtos.get(0).getNum());
+
+
+        iotInnerServiceSMOImpl.sendCarCoupon(tmpParkingCouponCarDto);
+    }
+}

+ 16 - 0
service-job/src/main/java/com/java110/job/smo/impl/IotInnerServiceSMOImpl.java

@@ -7,11 +7,13 @@ import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.log.LoggerFactory;
 import com.java110.dto.IotDataDto;
 import com.java110.dto.owner.OwnerAppUserDto;
+import com.java110.dto.parking.ParkingCouponCarDto;
 import com.java110.dto.user.UserDto;
 import com.java110.intf.job.IIotInnerServiceSMO;
 import com.java110.intf.user.IOwnerAppUserV1InnerServiceSMO;
 import com.java110.job.adapt.hcIot.http.ISendIot;
 import com.java110.po.coupon.CouponPropertyUserPo;
+import com.java110.po.parking.ParkingCouponCarPo;
 import com.java110.utils.cache.MappingCache;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.ListUtil;
@@ -140,4 +142,18 @@ public class IotInnerServiceSMOImpl extends BaseServiceSMO implements IIotInnerS
         return resultVo;
     }
 
+    @Override
+    public ResultVo sendCarCoupon(@RequestBody ParkingCouponCarDto parkingCouponCarDto) {
+        String iotSwitch = MappingCache.getValue("IOT", "IOT_SWITCH");
+
+        if (!"ON".equals(iotSwitch)) {
+            return new ResultVo(ResultVo.CODE_OK, ResultVo.MSG_OK);
+        }
+        JSONObject paramIn = BeanConvertUtil.beanCovertJson(parkingCouponCarDto);
+        paramIn.put("iotApiCode", "sendCarCouponBmoImpl");
+        ResultVo resultVo = sendIotImpl.post("/iot/api/common.openCommonApi", paramIn);
+
+        return resultVo;
+    }
+
 }