|
@@ -18,13 +18,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
+import com.qmrb.system.common.enums.GoodTypesEnum;
|
|
|
import com.qmrb.system.converter.PayOrderConverter;
|
|
|
-import com.qmrb.system.mapper.CouponMapper;
|
|
|
-import com.qmrb.system.mapper.OrderMapper;
|
|
|
-import com.qmrb.system.pojo.entity.CarPark;
|
|
|
-import com.qmrb.system.pojo.entity.Coupon;
|
|
|
-import com.qmrb.system.pojo.entity.Order;
|
|
|
-import com.qmrb.system.pojo.entity.ToolWxConfig;
|
|
|
+import com.qmrb.system.mapper.*;
|
|
|
+import com.qmrb.system.pojo.entity.*;
|
|
|
import com.qmrb.system.pojo.form.BarnRecordForm;
|
|
|
import com.qmrb.system.pojo.form.PayOrderForm;
|
|
|
import com.qmrb.system.pojo.query.PayOrderQuery;
|
|
@@ -62,6 +59,7 @@ import java.math.BigDecimal;
|
|
|
import java.net.URISyntaxException;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.security.PrivateKey;
|
|
|
+import java.time.LocalTime;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
@@ -99,6 +97,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
@Autowired
|
|
|
private CouponMapper couponMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CarParkStoredCardMapper carParkStoredCardMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ParkingCardMapper parkingCardMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ParkingCardTypeMapper parkingCardTypeMapper;
|
|
|
|
|
|
@Autowired
|
|
|
private IContractPlaceNumberRelService contractPlaceNumberRelService;
|
|
@@ -343,38 +350,46 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//2.对比成功 账单状态 已支付 更新实付金额
|
|
|
updateStatus(SystemConstant.NUM_ONE,orderNo);
|
|
|
|
|
|
- // 更新计费金额,已收金额
|
|
|
- BarnRecordForm barnRecordForm = barnRecordService.chargingByBarnId(Long.parseLong(orderNo));
|
|
|
+
|
|
|
Order order = this.getById(orderNo);
|
|
|
// 支付金额
|
|
|
BigDecimal amountsPayable = new BigDecimal(order.getAmountsPayable()).divide(new BigDecimal(100));
|
|
|
// 更新订单实付金额
|
|
|
updateAmountActuallyPaid(amountsPayable,orderNo);
|
|
|
- barnRecordForm.setReceivedAmount(barnRecordForm.getReceivedAmount().add(amountsPayable));
|
|
|
- barnRecordForm.setBillingStartTime(new Date());
|
|
|
- // 查询优惠券
|
|
|
- List<Coupon> coupons = couponMapper.selectList(new LambdaQueryWrapper<Coupon>().eq(Coupon::getGoodsId, barnRecordForm.getId()));
|
|
|
- log.info("查询优惠券:{}",coupons.size());
|
|
|
- if(CollectionUtil.isNotEmpty(coupons)){
|
|
|
- Coupon coupon = coupons.get(0);
|
|
|
- // 1 扫码抵用金额 2扫码抵用时长
|
|
|
- if(1 == coupon.getCouponType()){
|
|
|
- barnRecordForm.setDiscountAmount(coupon.getDenomination());
|
|
|
- }else if(2 == coupon.getCouponType()){
|
|
|
- barnRecordForm.setDiscountMinute(coupon.getDenomination());
|
|
|
+
|
|
|
+ // 订单类型为购买月卡
|
|
|
+ if (StrUtil.isNotBlank(order.getGoodsType()) && GoodTypesEnum.MONTHLY_CARD.getValue().equals(order.getGoodsType())) {
|
|
|
+ saveStoreCard(order);
|
|
|
+ }else{
|
|
|
+ // 更新计费金额,已收金额
|
|
|
+ BarnRecordForm barnRecordForm = barnRecordService.chargingByBarnId(Long.parseLong(orderNo));
|
|
|
+ barnRecordForm.setReceivedAmount(barnRecordForm.getReceivedAmount().add(amountsPayable));
|
|
|
+ barnRecordForm.setBillingStartTime(new Date());
|
|
|
+ // 查询优惠券
|
|
|
+ List<Coupon> coupons = couponMapper.selectList(new LambdaQueryWrapper<Coupon>().eq(Coupon::getGoodsId, barnRecordForm.getId()));
|
|
|
+ log.info("查询优惠券:{}",coupons.size());
|
|
|
+ if(CollectionUtil.isNotEmpty(coupons)){
|
|
|
+ Coupon coupon = coupons.get(0);
|
|
|
+ // 1 扫码抵用金额 2扫码抵用时长
|
|
|
+ if(1 == coupon.getCouponType()){
|
|
|
+ barnRecordForm.setDiscountAmount(coupon.getDenomination());
|
|
|
+ }else if(2 == coupon.getCouponType()){
|
|
|
+ barnRecordForm.setDiscountMinute(coupon.getDenomination());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ // // 判断是否否存在包租协议
|
|
|
+ // Map<String,Object> map = contractPlaceNumberRelService.getDenomination(barnRecordForm.getId());
|
|
|
+ // if(CollectionUtil.isNotEmpty(map)){
|
|
|
+ //
|
|
|
+ // Double denomination = (Double) map.get("denomination");
|
|
|
+ // BigDecimal discountMinute = new BigDecimal(denomination);
|
|
|
+ // barnRecordForm.setDiscountMinute(discountMinute);
|
|
|
+ // }
|
|
|
}
|
|
|
- }else {
|
|
|
- // // 判断是否否存在包租协议
|
|
|
- // Map<String,Object> map = contractPlaceNumberRelService.getDenomination(barnRecordForm.getId());
|
|
|
- // if(CollectionUtil.isNotEmpty(map)){
|
|
|
- //
|
|
|
- // Double denomination = (Double) map.get("denomination");
|
|
|
- // BigDecimal discountMinute = new BigDecimal(denomination);
|
|
|
- // barnRecordForm.setDiscountMinute(discountMinute);
|
|
|
- // }
|
|
|
- }
|
|
|
|
|
|
- barnRecordService.updateForm(barnRecordForm.getId(),barnRecordForm);
|
|
|
+ barnRecordService.updateForm(barnRecordForm.getId(),barnRecordForm);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
//支付成功 就返回true
|
|
|
return true;
|
|
@@ -390,6 +405,41 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 支付成功后,更新月卡购买记录状态,并新增月卡
|
|
|
+ * @param order
|
|
|
+ */
|
|
|
+ private void saveStoreCard(Order order) {
|
|
|
+ try{
|
|
|
+ // 更新订单状态
|
|
|
+ ParkingCard parkingCard = parkingCardMapper.selectById(order.getGoodId());
|
|
|
+ parkingCard.setStatus("active");
|
|
|
+ parkingCardMapper.updateById(parkingCard);
|
|
|
+
|
|
|
+ // 获取停车场信息
|
|
|
+ List<CarPark> list = carParkService.list();
|
|
|
+ Assert.isTrue(CollectionUtil.isNotEmpty(list),"无停车场数据!");
|
|
|
+ // 获取车型
|
|
|
+ ParkingCardType parkingCardType = parkingCardTypeMapper.selectById(parkingCard.getTypeId());
|
|
|
+ // 新增月卡
|
|
|
+ CarParkStoredCard carParkStoredCard = new CarParkStoredCard();
|
|
|
+ carParkStoredCard.setCarParkId(list.get(0).getId());
|
|
|
+ carParkStoredCard.setCarParkName(list.get(0).getName());
|
|
|
+ carParkStoredCard.setPlateNumber(parkingCard.getPlateNumber());
|
|
|
+ carParkStoredCard.setUserId(parkingCard.getCreateBy());
|
|
|
+ carParkStoredCard.setCreateTime(parkingCard.getCreateTime());
|
|
|
+ carParkStoredCard.setStartTime(parkingCard.getStartTime().atStartOfDay());
|
|
|
+ carParkStoredCard.setEndTime(parkingCard.getEndTime().atTime(LocalTime.MAX));
|
|
|
+ carParkStoredCard.setPhone(parkingCard.getPhone());
|
|
|
+ carParkStoredCard.setCreateBy(parkingCard.getCreateBy());
|
|
|
+ carParkStoredCard.setStatus("1");//月卡状态0停用1启用
|
|
|
+ carParkStoredCard.setName(parkingCard.getName());
|
|
|
+ carParkStoredCardMapper.insert(carParkStoredCard);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("支付成功后,更新月卡购买记录状态,新增月卡异常:" , e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void closeOrder(ToolWxConfig wxConfig, String outTradeNo) {
|
|
|
try {
|
|
@@ -409,6 +459,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
httpPost.setEntity(new StringEntity(bos.toString("UTF-8"), "UTF-8"));
|
|
|
CloseableHttpResponse response = WxPayUtil.getHttpClient(wxConfig, WxPayUtil.getVerifier(wxConfig)).execute(httpPost);
|
|
|
log.info("=====关单结果======={}====",response);
|
|
|
+ Order order = this.getById(outTradeNo);
|
|
|
+ // 删除对应的月卡购买记录
|
|
|
+ if(order != null && StrUtil.isNotBlank(order.getGoodsType()) && GoodTypesEnum.MONTHLY_CARD.getValue().equals(order.getGoodsType())){
|
|
|
+ int i = parkingCardMapper.deleteById(order.getGoodId());
|
|
|
+ log.info("删除对应的月卡购买记录:{}",i);
|
|
|
+ }
|
|
|
// 删除订单
|
|
|
this.removeById(outTradeNo);
|
|
|
} catch (Exception e) {
|