| @@ -200,24 +200,27 @@ public class WxCarController extends BaseController { | |||
| logger.info(coupon.toString()); | |||
| // Save to wx_counpon | |||
| Date curDate = new Date(); | |||
| // check 同一个模板的券分配额是否超了 | |||
| if (StringUtils.isBlank(coupon.getVendorParams())) { | |||
| logger.error("请填充停车厂商优免券参数"); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "停车厂商参数为空"); | |||
| } | |||
| JSONObject vendorParamsObj = JSON.parseObject(coupon.getVendorParams()); | |||
| Long templateId = vendorParamsObj.getLong("id"); | |||
| Integer amount = vendorParamsObj.getInteger("amount"); | |||
| Integer avaliavleNum = vendorParamsObj.getInteger("avaliavleNum"); | |||
| Integer amtCount = wxCouponCarService.getAmtCountByTemplateId(templateId); | |||
| Integer availCount = wxCouponCarService.getAvaibleCountByTemplateId(templateId); | |||
| if (amtCount >= amount) { | |||
| logger.error("总库存已达到停车厂商优免券数量限制"); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "总库存已达到停车厂商优免券数量限制"); | |||
| } | |||
| if (availCount >= avaliavleNum) { | |||
| logger.error("可用库存已达到停车厂商优免券数量限制"); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "可用库存已达到停车厂商优免券数量限制"); | |||
| WxPark park = getCurrentPark(); | |||
| if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { | |||
| // check 同一个模板的券分配额是否超了 | |||
| if (StringUtils.isBlank(coupon.getVendorParams())) { | |||
| logger.error("请填充停车厂商优免券参数"); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "停车厂商参数为空"); | |||
| } | |||
| JSONObject vendorParamsObj = JSON.parseObject(coupon.getVendorParams()); | |||
| Long templateId = vendorParamsObj.getLong("id"); | |||
| Integer amount = vendorParamsObj.getInteger("amount"); | |||
| Integer avaliavleNum = vendorParamsObj.getInteger("avaliavleNum"); | |||
| Integer amtCount = wxCouponCarService.getAmtCountByTemplateId(templateId); | |||
| Integer availCount = wxCouponCarService.getAvaibleCountByTemplateId(templateId); | |||
| if (amtCount >= amount) { | |||
| logger.error("总库存已达到停车厂商优免券数量限制"); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "总库存已达到停车厂商优免券数量限制"); | |||
| } | |||
| if (availCount >= avaliavleNum) { | |||
| logger.error("可用库存已达到停车厂商优免券数量限制"); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "可用库存已达到停车厂商优免券数量限制"); | |||
| } | |||
| } | |||
| // check End | |||
| coupon.setTenantId(getTenantId()); | |||
| @@ -231,8 +234,6 @@ public class WxCarController extends BaseController { | |||
| WxCouponCar couponCar = new WxCouponCar(); | |||
| couponCar.setId(coupon.getId()); | |||
| couponCar.setTenantId(getTenantId()); | |||
| WxPark park = getCurrentPark(); | |||
| couponCar.setParkId(park.getId()); | |||
| couponCar.setVendorType(park.getVendorType()); | |||
| couponCar.setVendorParams(coupon.getVendorParams()); | |||
| @@ -1,6 +1,7 @@ | |||
| package com.iformall.utils.car; | |||
| import com.alibaba.fastjson.JSON; | |||
| import com.alibaba.fastjson.JSONArray; | |||
| import com.alibaba.fastjson.JSONObject; | |||
| import com.iformall.domain.po.WxCoupon; | |||
| import com.iformall.domain.po.WxCouponOrder; | |||
| @@ -385,22 +386,24 @@ public class TJDUtil { | |||
| paramMap.put(TJD_ACCOUNT_ID, accountId); | |||
| paramMap.put(TJD_PREPAY_TYPE, TJD_PREPAY_TYPE_3); | |||
| Map<String, String> detailMap = MapUtil.getOrderMap(); | |||
| detailMap.put(TJD_OUT_TRADE_NO, String.valueOf(couponOrder.getId())); | |||
| detailMap.put(TJD_TYPE, TJD_TYPE_COUPON); | |||
| detailMap.put(TJD_CHANNEL, "2204"); | |||
| JSONArray detailArr = new JSONArray(); | |||
| JSONObject detailObj = new JSONObject(); | |||
| detailObj.put(TJD_OUT_TRADE_NO, String.valueOf(couponOrder.getId())); | |||
| detailObj.put(TJD_TYPE, TJD_TYPE_COUPON); | |||
| detailObj.put(TJD_CHANNEL, "2204"); | |||
| String memo = "会员优惠券"; | |||
| if (coupon.getUnit().equals(0)) { | |||
| detailMap.put(TJD_COUPON_TYPE, "0"); | |||
| detailMap.put(TJD_AMOUNT, coupon.getPriceStr()); | |||
| detailObj.put(TJD_COUPON_TYPE, "0"); | |||
| detailObj.put(TJD_AMOUNT, coupon.getPriceStr()); | |||
| memo += "-金额"; | |||
| } else { | |||
| detailMap.put(TJD_COUPON_TYPE, "1"); | |||
| detailMap.put(TJD_MINUTES, String.valueOf(coupon.getPrice()*60)); | |||
| detailObj.put(TJD_COUPON_TYPE, "1"); | |||
| detailObj.put(TJD_MINUTES, String.valueOf(coupon.getPrice()*60)); | |||
| memo += "-时长"; | |||
| } | |||
| detailMap.put(TJD_MEMO, memo); | |||
| paramMap.put(TJD_DETAIL_LIST, JSON.toJSONString(detailMap)); | |||
| detailObj.put(TJD_MEMO, memo); | |||
| detailArr.add(detailObj); | |||
| paramMap.put(TJD_DETAIL_LIST, JSON.toJSONString(detailArr)); | |||
| paramMap.put(TJD_CHARSET, TJD_UTF_8); | |||
| paramMap.put(TJD_ACCOUNT, partner); | |||
| @@ -639,6 +642,7 @@ public class TJDUtil { | |||
| paramMap.put("signType", "md5"); | |||
| String jsonstr = JSON.toJSONString(paramMap); | |||
| logger.info(jsonstr); | |||
| try { | |||
| StringEntity se = new StringEntity(jsonstr, Consts.UTF_8); | |||