wuxw лет назад: 3
Родитель
Сommit
de384ff99a

+ 44 - 48
service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarLogCmd.java

@@ -1,5 +1,6 @@
 package com.java110.common.cmd.machineTranslate;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
@@ -18,7 +19,10 @@ import com.java110.dto.machine.MachineDto;
 import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.owner.OwnerDto;
 import com.java110.dto.parkingBoxArea.ParkingBoxAreaDto;
+import com.java110.dto.parkingCouponCar.ParkingCouponCarDto;
 import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
+import com.java110.intf.acct.IParkingCouponCarOrderV1InnerServiceSMO;
+import com.java110.intf.acct.IParkingCouponCarV1InnerServiceSMO;
 import com.java110.intf.common.ICarInoutDetailV1InnerServiceSMO;
 import com.java110.intf.common.ICarInoutPaymentV1InnerServiceSMO;
 import com.java110.intf.common.ICarInoutV1InnerServiceSMO;
@@ -41,10 +45,13 @@ import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeeDetailPo;
 import com.java110.po.fee.PayFeePo;
 import com.java110.po.owner.OwnerPo;
+import com.java110.po.parkingCouponCar.ParkingCouponCarPo;
+import com.java110.po.parkingCouponCarOrder.ParkingCouponCarOrderPo;
 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.sun.tools.javah.Gen;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.ArrayList;
@@ -115,6 +122,12 @@ public class MachineUploadCarLogCmd extends Cmd {
     @Autowired
     private ICarBlackWhiteV1InnerServiceSMO carBlackWhiteV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IParkingCouponCarV1InnerServiceSMO parkingCouponCarV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingCouponCarOrderV1InnerServiceSMO parkingCouponCarOrderV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "machineCode", "必填,请填写设备编码");
@@ -303,54 +316,37 @@ public class MachineUploadCarLogCmd extends Cmd {
 
         updateCarInoutState(reqJson, carInoutDtos.get(0));
 
-        //写支付记录
-//        CarInoutPaymentPo carInoutPaymentPo = new CarInoutPaymentPo();
-//        carInoutPaymentPo.setPaymentId(GenerateCodeFactory.getGeneratorId("10"));
-//        carInoutPaymentPo.setCommunityId(carInoutDtos.get(0).getCommunityId());
-//        carInoutPaymentPo.setInoutId(carInoutDtos.get(0).getInoutId());
-//        carInoutPaymentPo.setPaId(carInoutDtos.get(0).getPaId());
-//        carInoutPaymentPo.setPayCharge(reqJson.getString("payCharge"));
-//        carInoutPaymentPo.setPayType(reqJson.getString("payType"));
-//        carInoutPaymentPo.setRealCharge(reqJson.getString("realCharge"));
-//        flag = carInoutPaymentV1InnerServiceSMOImpl.saveCarInoutPayment(carInoutPaymentPo);
-//        if (flag < 1) {
-//            throw new CmdException("更新出场时间失败");
-//        }
-//
-//        //月租车
-//        if (tempCar != CAR_TYPE_NO_DATA && tempCar != CAR_TYPE_TEMP) {
-//            return;
-//        }
-//
-//        //如果有费用 则缴费
-//        boolean hasFee = hasFeeAndPayFee(carInoutDtos.get(0), reqJson, carInoutPo, carInoutPaymentPo);
-//
-//        double realCharge = Double.parseDouble(carInoutPaymentPo.getRealCharge());
-//
-//        //有费用 或者 缴费为0 时结束
-//        if (hasFee || realCharge == 0) {
-//            return;
-//        }
-//        // 判断是否存在 临时车 虚拟业主
-//        OwnerDto ownerDto = new OwnerDto();
-//        ownerDto.setCommunityId(reqJson.getString("communityId"));
-//        ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
-//        ownerDto.setOwnerFlag(OwnerDto.OWNER_FLAG_FALSE);
-//        ownerDto.setName(TEMP_CAR_OWNER);
-//        List<OwnerDto> ownerDtos = buildingOwnerV1InnerServiceSMOImpl.queryBuildingOwners(ownerDto);
-//        if (ownerDtos == null || ownerDtos.size() < 1) {
-//            return;
-//        }
-//        JSONObject paramIn = new JSONObject();
-//        paramIn.put("inTime", carInoutDtos.get(0).getInTime());
-//        paramIn.put("carId", reqJson.getString("carId"));
-//        paramIn.put("communityId", carInoutDtos.get(0).getCommunityId());
-//        paramIn.put("inoutId", carInoutDtos.get(0).getInoutId());
-//        paramIn.put("ownerId", ownerDtos.get(0).getMemberId());
-//        saveTempCarFee(paramIn, machineDto);
-//
-//        //再去缴费
-//        hasFeeAndPayFee(carInoutDtos.get(0), reqJson, carInoutPo, carInoutPaymentPo);
+        //处理停车劵
+        if(!reqJson.containsKey("pccIds") || reqJson.getJSONArray("pccIds").size()<1){
+            return ;
+        }
+
+        JSONArray pccIds = reqJson.getJSONArray("pccIds");
+        String pccId = "";
+        ParkingCouponCarPo parkingCouponCarPo = null;
+        ParkingCouponCarOrderPo parkingCouponCarOrderPo = null;
+        for(int pccIdIndex = 0 ;pccIdIndex < pccIds.size();pccIdIndex++){
+            pccId = pccIds.getString(pccIdIndex);
+
+            parkingCouponCarPo = new ParkingCouponCarPo();
+            parkingCouponCarPo.setPccId(pccId);
+            parkingCouponCarPo.setState(ParkingCouponCarDto.STATE_FINISH);
+            parkingCouponCarV1InnerServiceSMOImpl.updateParkingCouponCar(parkingCouponCarPo);
+
+            parkingCouponCarOrderPo = new ParkingCouponCarOrderPo();
+            parkingCouponCarOrderPo.setOrderId(GenerateCodeFactory.getGeneratorId("11"));
+            parkingCouponCarOrderPo.setCarNum(reqJson.getString("carNum"));
+            parkingCouponCarOrderPo.setCarOutId(carInoutDetailPo.getDetailId());
+            parkingCouponCarOrderPo.setCommunityId(reqJson.getString("communityId"));
+            parkingCouponCarOrderPo.setMachineId(machineDto.getMachineId());
+            parkingCouponCarOrderPo.setMachineName(machineDto.getMachineName());
+            parkingCouponCarOrderPo.setPaId(carInoutDtos.get(0).getPaId());
+            parkingCouponCarOrderPo.setPccId(pccId);
+            parkingCouponCarOrderPo.setRemark("车辆出口核销停车劵");
+
+            parkingCouponCarOrderV1InnerServiceSMOImpl.saveParkingCouponCarOrder(parkingCouponCarOrderPo);
+        }
+
     }
 
     private void updateCarInoutState(JSONObject reqJson, CarInoutDto carInoutDto) {

+ 47 - 68
service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeCreateOrderV1InnerServiceSMOImpl.java

@@ -5,13 +5,18 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.couponUser.CouponUserDto;
+import com.java110.dto.parkingCouponCar.ParkingCouponCarDto;
 import com.java110.dto.tempCarFeeConfig.TempCarPayOrderDto;
 import com.java110.fee.bmo.tempCarFee.IGetTempCarFeeRules;
 import com.java110.intf.acct.ICouponUserDetailV1InnerServiceSMO;
 import com.java110.intf.acct.ICouponUserV1InnerServiceSMO;
+import com.java110.intf.acct.IParkingCouponCarOrderV1InnerServiceSMO;
+import com.java110.intf.acct.IParkingCouponCarV1InnerServiceSMO;
 import com.java110.intf.fee.ITempCarFeeCreateOrderV1InnerServiceSMO;
 import com.java110.po.couponUser.CouponUserPo;
 import com.java110.po.couponUserDetail.CouponUserDetailPo;
+import com.java110.po.parkingCouponCar.ParkingCouponCarPo;
+import com.java110.po.parkingCouponCarOrder.ParkingCouponCarOrderPo;
 import com.java110.po.tempCarFeeConfig.TempCarFeeConfigPo;
 import com.java110.utils.cache.CommonCache;
 import com.java110.utils.exception.CmdException;
@@ -39,12 +44,22 @@ public class TempCarFeeCreateOrderV1InnerServiceSMOImpl  extends BaseServiceSMO
     @Autowired
     private ICouponUserDetailV1InnerServiceSMO couponUserDetailV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IParkingCouponCarV1InnerServiceSMO parkingCouponCarV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingCouponCarOrderV1InnerServiceSMO parkingCouponCarOrderV1InnerServiceSMOImpl;
+
+
     @Override
     public ResponseEntity<String> createOrder(@RequestBody JSONObject reqJson) {
 
         TempCarPayOrderDto tempCarPayOrderDto = new TempCarPayOrderDto();
         tempCarPayOrderDto.setPaId(reqJson.getString("paId"));
         tempCarPayOrderDto.setCarNum(reqJson.getString("carNum"));
+        if(reqJson.containsKey("couponIds")&& !StringUtil.isEmpty(reqJson.getString("couponIds"))) {
+            tempCarPayOrderDto.setPccIds(reqJson.getString("couponIds").split(","));
+        }
         ResponseEntity<String> responseEntity = getTempCarFeeRulesImpl.getTempCarFeeOrder(tempCarPayOrderDto);
 
         if (responseEntity.getStatusCode() != HttpStatus.OK) {
@@ -58,9 +73,10 @@ public class TempCarFeeCreateOrderV1InnerServiceSMOImpl  extends BaseServiceSMO
         JSONObject fee = orderInfo.getJSONObject("data");
         //double money = fee.getDouble("payCharge");
         BigDecimal money = new BigDecimal(fee.getDouble("payCharge"));
-        //3.0 考虑优惠卷
-        double couponPrice = checkCouponUser(reqJson);
-        money = money.subtract(new BigDecimal(couponPrice)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+        //3.0 考虑优惠卷 这里不考虑了 因为 物联网平台已经 考虑过了
+
+        // double couponPrice = checkCouponUser(reqJson);
+        //money = money.subtract(new BigDecimal(couponPrice)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
 
         double receivedAmount = money.doubleValue();
         //所有 优惠折扣计算完后,如果总金额小于等于0,则返回总扣款为0
@@ -87,81 +103,44 @@ public class TempCarFeeCreateOrderV1InnerServiceSMOImpl  extends BaseServiceSMO
         }
         JSONObject paramObj = JSONObject.parseObject(paramIn);
         paramObj.putAll(reqJson);
-        modifyCouponUser(paramObj);
         TempCarPayOrderDto tempCarPayOrderDto = BeanConvertUtil.covertBean(paramObj, TempCarPayOrderDto.class);
+        dealParkingCouponCar(paramObj,tempCarPayOrderDto);
         ResponseEntity<String> responseEntity = getTempCarFeeRulesImpl.notifyTempCarFeeOrder(tempCarPayOrderDto);
         return responseEntity;
     }
 
-    private double checkCouponUser(JSONObject paramObj) {
 
-        BigDecimal couponPrice = new BigDecimal(0.0);
-        String couponIds = paramObj.getString("couponIds");
-        if (couponIds == null || "".equals(couponIds)) {
-            paramObj.put("couponPrice", couponPrice.doubleValue());
-            paramObj.put("couponUserDtos", new JSONArray()); //这里考虑空
-            return couponPrice.doubleValue();
-        }
 
-        List<String> result = Arrays.asList(couponIds.split(","));
-        CouponUserDto couponUserDto = new CouponUserDto();
-        couponUserDto.setCouponIds(result.toArray(new String[result.size()]));
-        List<CouponUserDto> couponUserDtos = couponUserV1InnerServiceSMOImpl.queryCouponUsers(couponUserDto);
-        if (couponUserDtos == null || couponUserDtos.size() < 1) {
-            paramObj.put("couponPrice", couponPrice.doubleValue());
-            return couponPrice.doubleValue();
-        }
-        for (CouponUserDto couponUser : couponUserDtos) {
-            //不计算已过期购物券金额
-            if (couponUser.getEndTime().compareTo(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B)) >= 0) {
-                couponPrice = couponPrice.add(new BigDecimal(Double.parseDouble(couponUser.getActualPrice())));
-            }
-        }
-        paramObj.put("couponPrice", couponPrice.doubleValue());
-        paramObj.put("couponUserDtos", BeanConvertUtil.beanCovertJSONArray(couponUserDtos));
-        return couponPrice.doubleValue();
-    }
+    private void dealParkingCouponCar(JSONObject reqJson,TempCarPayOrderDto tempCarPayOrderDto) {
+        //处理停车劵
 
-    private void modifyCouponUser(JSONObject paramObj) {
-        if (!paramObj.containsKey("couponPrice") || paramObj.getDouble("couponPrice") <= 0) {
-            return;
-        }
-        //FeeDto feeInfo = (FeeDto) paramObj.get("feeInfo");
-        CouponUserDto couponUserDto = null;
-        JSONArray couponUserDtos = paramObj.getJSONArray("couponUserDtos");
-        CouponUserDto couponUser = null;
-        for (int accountIndex = 0; accountIndex < couponUserDtos.size(); accountIndex++) {
-            couponUser = BeanConvertUtil.covertBean(couponUserDtos.getJSONObject(accountIndex), CouponUserDto.class);
-            couponUserDto = new CouponUserDto();
-            couponUserDto.setCouponId(couponUser.getCouponId());
-            couponUserDto.setState(CouponUserDto.COUPON_STATE_RUN);
-            List<CouponUserDto> couponUserDtos1 = couponUserV1InnerServiceSMOImpl.queryCouponUsers(couponUserDto);
-            if (couponUserDtos1 == null || couponUserDtos1.size() < 1) {
-                throw new CmdException("优惠券被使用");
-            }
-            CouponUserPo couponUserPo = new CouponUserPo();
-            couponUserPo.setState(CouponUserDto.COUPON_STATE_STOP);
-            couponUserPo.setCouponId(couponUser.getCouponId());
-            int fage = couponUserV1InnerServiceSMOImpl.updateCouponUser(couponUserPo);
-            if (fage < 1) {
-                throw new CmdException("更新优惠卷信息失败");
-            }
-            CouponUserDetailPo couponUserDetailPo = new CouponUserDetailPo();
-            couponUserDetailPo.setUoId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_usId));
-            couponUserDetailPo.setCouponId(couponUser.getCouponId());
-            couponUserDetailPo.setUserId(couponUser.getUserId());
-            couponUserDetailPo.setCouponName(couponUser.getCouponName());
-            couponUserDetailPo.setUserName(couponUser.getUserName());
-            couponUserDetailPo.setObjId(paramObj.getString("carNum"));
-            couponUserDetailPo.setObjType("车辆");
-            couponUserDetailPo.setOrderId(paramObj.getString("oId"));
-            fage = couponUserDetailV1InnerServiceSMOImpl.saveCouponUserDetail(couponUserDetailPo);
-            if (fage < 1) {
-                throw new CmdException("新增优惠卷使用记录信息失败");
-            }
+        if(!reqJson.containsKey("couponIds") || StringUtil.isEmpty(reqJson.getString("couponIds"))) {
+            return ;
         }
 
-        paramObj.put("remark", paramObj.getString("remark") + "-优惠劵抵扣" + paramObj.getDouble("couponPrice") + "元");
+        String[] pccIds = reqJson.getString("couponIds").split(",");
+        ParkingCouponCarPo parkingCouponCarPo = null;
+        ParkingCouponCarOrderPo parkingCouponCarOrderPo = null;
+        for(String pccId: pccIds){
+            parkingCouponCarPo = new ParkingCouponCarPo();
+            parkingCouponCarPo.setPccId(pccId);
+            parkingCouponCarPo.setState(ParkingCouponCarDto.STATE_FINISH);
+            parkingCouponCarV1InnerServiceSMOImpl.updateParkingCouponCar(parkingCouponCarPo);
+
+            parkingCouponCarOrderPo = new ParkingCouponCarOrderPo();
+            parkingCouponCarOrderPo.setOrderId(GenerateCodeFactory.getGeneratorId("11"));
+            parkingCouponCarOrderPo.setCarNum(reqJson.getString("carNum"));
+            parkingCouponCarOrderPo.setCarOutId("-1");
+            parkingCouponCarOrderPo.setCommunityId(reqJson.getString("communityId"));
+            parkingCouponCarOrderPo.setMachineId("-1");
+            parkingCouponCarOrderPo.setMachineName("未知");
+            parkingCouponCarOrderPo.setPaId(reqJson.getString("paId"));
+            parkingCouponCarOrderPo.setPccId(pccId);
+            parkingCouponCarOrderPo.setRemark("手机端支付停车劵抵扣");
+
+            parkingCouponCarOrderV1InnerServiceSMOImpl.saveParkingCouponCarOrder(parkingCouponCarOrderPo);
+        }
 
+        tempCarPayOrderDto.setPccIds(pccIds);
     }
 }

+ 1 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/NotifyTempCarFeeOrderAdapt.java

@@ -77,6 +77,7 @@ public class NotifyTempCarFeeOrderAdapt extends DatabusAdaptImpl {
         postParameters.put("payCharge", tempCarPayOrderDto.getPayCharge());
         postParameters.put("payTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         postParameters.put("payType", tempCarPayOrderDto.getPayType());
+        postParameters.put("extPccIds",tempCarPayOrderDto.getPccIds());
         if(!StringUtil.isEmpty(tempCarPayOrderDto.getMachineId())) {
             postParameters.put("extMachineId", tempCarPayOrderDto.getMachineId());
         }

+ 11 - 4
springboot/src/test/java/com/java110/AppTest.java

@@ -2,11 +2,14 @@ package com.java110;
 
 import static org.junit.Assert.assertTrue;
 
+import com.alibaba.fastjson.JSONObject;
 import com.java110.utils.util.DateUtil;
 import org.junit.Test;
 
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
 
 /**
  * Unit test for simple App.
@@ -20,9 +23,13 @@ public class AppTest
     public void shouldAnswerWithTrue()
     {
 
-        Calendar calendar = Calendar.getInstance();
-        calendar.add(Calendar.MONTH,-1);
-        System.out.println(DateUtil.getFormatTimeString(calendar.getTime(),DateUtil.DATE_FORMATE_STRING_B));
-        System.out.println(DateUtil.getAddDayStringB(new Date(),1));
+       List<String> abc = new ArrayList<>();
+        abc.add("123123");
+        abc.add("123123");
+        abc.add("123123");
+        abc.add("123123");
+        JSONObject data = new JSONObject();
+        data.put("pccIds",abc);
+        System.out.println(data.toJSONString());
     }
 }