java110 лет назад: 3
Родитель
Сommit
316abfc4db

+ 5 - 0
java110-bean/src/main/java/com/java110/dto/machine/MachineTranslateDto.java

@@ -53,6 +53,10 @@ public class MachineTranslateDto extends PageDto implements Serializable {
     public static final String CMD_UPDATE_ATTENDANCE_CLASSES = "912";
     public static final String CMD_DELETE_ATTENDANCE_CLASSES = "913";
 
+    public static final String CMD_ADD_PARKING_COUPON_CAR = "921";
+    public static final String CMD_UPDATE_PARKING_COUPON_CAR = "922";
+    public static final String CMD_DELETE_PARKING_COUPON_CAR = "923";
+
     public static final String CMD_ADD_VISIT = "921";
 
     public static final String CMD_OPEN_DOOR = "5";
@@ -65,6 +69,7 @@ public class MachineTranslateDto extends PageDto implements Serializable {
     public static final String TYPE_PARKING_AREA = "2233";
     public static final String TYPE_OWNER_CAR = "4455";
     public static final String TYPE_TEAM_CAR_FEE_CONFIG = "1122";
+    public static final String TYPE_PARK_COUPON_CAR = "1133";
     public static final String TYPE_ATTENDANCE = "1111";
 
 

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/parkingCouponCar/ParkingCouponCarDto.java

@@ -21,6 +21,7 @@ public class ParkingCouponCarDto extends PageDto implements Serializable {
     private String couponShopId;
     private String remark;
     private String couponId;
+    private String couponName;
     private String pccId;
     private String typeCd;
     private String typeCdName;
@@ -218,4 +219,12 @@ public class ParkingCouponCarDto extends PageDto implements Serializable {
     public void setShopNameLike(String shopNameLike) {
         this.shopNameLike = shopNameLike;
     }
+
+    public String getCouponName() {
+        return couponName;
+    }
+
+    public void setCouponName(String couponName) {
+        this.couponName = couponName;
+    }
 }

+ 1 - 0
service-acct/src/main/java/com/java110/acct/payment/business/venue/VenueReservationPaymentBusiness.java

@@ -37,6 +37,7 @@ import java.util.List;
 @Java110ParamsDoc(params = {
         @Java110ParamDoc(name = "business", length = 64, remark = "支付场景,比如场地预约 为 venueReservation"),
         @Java110ParamDoc(name = "payAdapt", length = 64, remark = "支付适配器,非必填"),
+        @Java110ParamDoc(name = "tradeType", length = 64, remark = "支付类型 NATIVE JSAPI APP"),
         @Java110ParamDoc(name = "communityId", length = 30, remark = "小区ID"),
         @Java110ParamDoc(name = "tradeType", length = 30, remark = "支付类型 NATIVE JSAPI APP"),
         @Java110ParamDoc(name = "personName", length = 30, remark = "预约人"),

+ 2 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/IotConstant.java

@@ -122,6 +122,8 @@ public class IotConstant {
 
     //添加车辆
     public static final String ADD_TEAM_CAR_FEE_CONFIG = "/extApi/fee/addTempCarFee";
+    //添加修改停车劵
+    public static final String ADD_UPDATE_PARKING_COUPON_CAR = "/extApi/parkingCouponCar/addOrUpdateParkingCouponCar";
     //修改车辆
     public static final String UPDATE_TEAM_CAR_FEE_CONFIG = "/extApi/fee/updateTempCarFee";
     //删除车辆

+ 5 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/asyn/IIotSendAsyn.java

@@ -194,4 +194,9 @@ public interface IIotSendAsyn {
      */
     void deleteParkingBox(JSONObject postParameters);
 
+    /**
+     * 同步 停车劵
+     * @param postParameters
+     */
+    void addParkingCouponCar(JSONObject postParameters);
 }

+ 50 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/asyn/impl/IotSendAsynImpl.java

@@ -1446,6 +1446,56 @@ public class IotSendAsynImpl implements IIotSendAsyn {
         }
     }
 
+    @Override
+    @Async
+    public void addParkingCouponCar(JSONObject postParameters) {
+
+        MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters,
+                MachineTranslateDto.CMD_ADD_PARKING_COUPON_CAR,
+                DEFAULT_MACHINE_CODE,
+                DEFAULT_MACHINE_ID,
+                "extConfigId",
+                "feeName",
+                MachineTranslateDto.TYPE_PARK_COUPON_CAR);
+        ResponseEntity<String> responseEntity = null;
+        String url = IotConstant.getUrl(IotConstant.ADD_UPDATE_PARKING_COUPON_CAR);
+        try {
+            postParameters.put("taskId", machineTranslateDto.getMachineTranslateId());
+            HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders());
+            responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
+
+            logger.debug("调用HC IOT信息:" + responseEntity);
+
+            if (responseEntity.getStatusCode() != HttpStatus.OK) {
+                machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR);
+                machineTranslateDto.setRemark(responseEntity.getBody());
+                saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url);
+                return;
+            }
+            JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody());
+
+            if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) {
+                machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR);
+                machineTranslateDto.setRemark(tokenObj.getString("msg"));
+                //保存 失败报文
+                saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url);
+
+                return;
+            }
+        } catch (Exception e) {
+            machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR);
+            machineTranslateDto.setRemark(e.getLocalizedMessage());
+            //保存 失败报文
+            saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url);
+
+            return;
+        } finally {
+            saveTranslateLog(machineTranslateDto);
+            refreshAccessToken(responseEntity);
+        }
+
+    }
+
     @Override
     @Async
     public void updateAttendance(JSONObject postParameters) {

+ 5 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/asyn/impl/IotSendKafkaImpl.java

@@ -847,6 +847,11 @@ public class IotSendKafkaImpl implements IIotSendAsyn {
 
     }
 
+    @Override
+    public void addParkingCouponCar(JSONObject postParameters) {
+
+    }
+
     @Override
     @Async
     public void updateAttendance(JSONObject postParameters) {

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

@@ -0,0 +1,115 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.job.adapt.hcIot.parkingCouponCar;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.parkingCouponCar.ParkingCouponCarDto;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigAttrDto;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
+import com.java110.entity.order.Business;
+import com.java110.intf.acct.IParkingCouponCarV1InnerServiceSMO;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.fee.ITempCarFeeConfigAttrInnerServiceSMO;
+import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
+import com.java110.job.adapt.DatabusAdaptImpl;
+import com.java110.job.adapt.hcIot.asyn.IIotSendAsyn;
+import com.java110.po.parkingCouponCar.ParkingCouponCarPo;
+import com.java110.po.tempCarFeeConfig.TempCarFeeConfigPo;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+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 IIotSendAsyn hcTempCarFeeConfigAsynImpl;
+
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+    @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.setCouponShopId(parkingCouponCarPo.getCouponShopId());
+        parkingCouponCarDto.setCommunityId(parkingCouponCarPo.getCommunityId());
+        List<ParkingCouponCarDto> parkingCouponCarDtos = parkingCouponCarV1InnerServiceSMOImpl.queryParkingCouponCars(parkingCouponCarDto);
+
+        Assert.listOnlyOne(parkingCouponCarDtos, "未找到车辆停车劵");
+
+        JSONObject postParameters = new JSONObject();
+
+        postParameters.put("couponName", parkingCouponCarDtos.get(0).getCouponName());
+        postParameters.put("shopName", parkingCouponCarDtos.get(0).getShopName());
+        postParameters.put("extCommunityId", parkingCouponCarDtos.get(0).getCommunityId());
+        postParameters.put("extPaId", parkingCouponCarDtos.get(0).getPaId());
+        postParameters.put("carNum", parkingCouponCarDtos.get(0).getCarNum());
+        postParameters.put("giveWay", parkingCouponCarDtos.get(0).getGiveWay());
+        postParameters.put("typeCd", parkingCouponCarDtos.get(0).getTypeCd());
+        postParameters.put("value", parkingCouponCarDtos.get(0).getValue());
+        postParameters.put("startTime", parkingCouponCarDtos.get(0).getStartTime());
+        postParameters.put("endTime", parkingCouponCarDtos.get(0).getEndTime());
+        postParameters.put("extPccId", parkingCouponCarDtos.get(0).getPccId());
+
+        hcTempCarFeeConfigAsynImpl.addParkingCouponCar(postParameters);
+    }
+}