| @@ -68,6 +68,9 @@ ADD COLUMN `from_id` BIGINT(20) DEFAULT NULL COMMENT '来源ID,针对续签, | |||||
| 合同状态为4(即将到期)更新为计租中,合同状态为8(补录),9(续签)更新为草稿。 | 合同状态为4(即将到期)更新为计租中,合同状态为8(补录),9(续签)更新为草稿。 | ||||
| ALTER TABLE `wx_c_user_car` | |||||
| ADD COLUMN `vendor_person_id` VARCHAR(100) DEFAULT NULL COMMENT '停车场的会员ID'; | |||||
| @@ -111,7 +111,20 @@ public class WxCarController extends BaseController { | |||||
| if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { | if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { | ||||
| return etcpHelper.initForEtcp(paramMap, getMemberId(), park); | return etcpHelper.initForEtcp(paramMap, getMemberId(), park); | ||||
| }else { | }else { | ||||
| return parkFactory.getParkService(park.getVendorType()).initLogin(paramMap, park, getMember()); | |||||
| try { | |||||
| String vendorPersonId = parkFactory.getParkService(park.getVendorType()).initLogin(paramMap, park, getMember()); | |||||
| Map resultMap = new HashMap(); | |||||
| resultMap.put("vendor", park.getVendorType()); | |||||
| //有的厂家没有初始化 | |||||
| if (!StringUtils.isBlank(vendorPersonId)) { | |||||
| resultMap.put("vendorPersonId", vendorPersonId); | |||||
| } | |||||
| return new ResultData(resultMap); | |||||
| } catch (Exception e) { | |||||
| logger.error("park init error",e); | |||||
| return new ResultData(Result.ERROR,e.getMessage()); | |||||
| } | |||||
| } | } | ||||
| //return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "登录失败"); | //return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "登录失败"); | ||||
| } | } | ||||
| @@ -132,7 +145,19 @@ public class WxCarController extends BaseController { | |||||
| if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { | if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { | ||||
| return etcpHelper.etcpBindCar(paramMap, park, member.getId()); | return etcpHelper.etcpBindCar(paramMap, park, member.getId()); | ||||
| } else { | } else { | ||||
| return parkFactory.getParkService(park.getVendorType()).bindCar(paramMap, park, member); | |||||
| //有的厂家绑定车牌时才会有会员信息 | |||||
| String vendorPersonId; | |||||
| try { | |||||
| vendorPersonId = parkFactory.getParkService(park.getVendorType()).bindCar(paramMap, park, member); | |||||
| if(StringUtils.isBlank(vendorPersonId)) { | |||||
| return new ResultData(Result.ERROR,"厂商会员ID未返回"); | |||||
| } | |||||
| return parkHelper.bindCar(paramMap, park, member.getId(),vendorPersonId); | |||||
| } catch (Exception e) { | |||||
| logger.error("park bindCar error",e); | |||||
| return new ResultData(Result.ERROR,e.getMessage()); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -156,7 +181,14 @@ public class WxCarController extends BaseController { | |||||
| if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { | if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { | ||||
| return etcpHelper.etcpUnbindCar(paramMap, park, getMemberId()); | return etcpHelper.etcpUnbindCar(paramMap, park, getMemberId()); | ||||
| } else { | } else { | ||||
| return parkFactory.getParkService(park.getVendorType()).unbindCar(paramMap, park, getMember()); | |||||
| try { | |||||
| parkFactory.getParkService(park.getVendorType()).unbindCar(paramMap, park, getMember()); | |||||
| return parkHelper.unbindCar(paramMap, park, getMemberId()); | |||||
| } catch (Exception e) { | |||||
| logger.error("park unbindCar error",e); | |||||
| return new ResultData(Result.ERROR,e.getMessage()); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -208,7 +240,12 @@ public class WxCarController extends BaseController { | |||||
| if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { | if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { | ||||
| return etcpHelper.etcpCarStopFee(paramMap, park); | return etcpHelper.etcpCarStopFee(paramMap, park); | ||||
| } else { | } else { | ||||
| return parkFactory.getParkService(park.getVendorType()).carStopFee(paramMap, park); | |||||
| try { | |||||
| return parkFactory.getParkService(park.getVendorType()).carStopFee(paramMap, park); | |||||
| } catch (Exception e) { | |||||
| logger.error("park getCarStopFee error",e); | |||||
| return new ResultData(Result.ERROR,e.getMessage()); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -260,7 +297,18 @@ public class WxCarController extends BaseController { | |||||
| if (coupon == null) { | if (coupon == null) { | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "券为空"); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "券为空"); | ||||
| } | } | ||||
| return parkFactory.getParkService(park.getVendorType()).getCoupon(paramMap, park, userCar, coupon, carNumber); | |||||
| try { | |||||
| ResultData rs = parkFactory.getParkService(park.getVendorType()).useCoupon(paramMap, park, userCar, coupon, carNumber); | |||||
| if (rs.code == Result.SUCCESS) { | |||||
| etcpHelper.updateWxCouponOrderUsed(userCar, park); | |||||
| return new ResultData(); | |||||
| }else { | |||||
| return new ResultData(rs.code,rs.message); | |||||
| } | |||||
| } catch (Exception e) { | |||||
| logger.error("park getCoupon error",e); | |||||
| return new ResultData(Result.ERROR,e.getMessage()); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -28,5 +28,7 @@ public class WxCUserCar extends TenantEntity { | |||||
| private Integer vendorType; | private Integer vendorType; | ||||
| @io.swagger.annotations.ApiModelProperty(value="停车厂家参数",name="vendorParams") | @io.swagger.annotations.ApiModelProperty(value="停车厂家参数",name="vendorParams") | ||||
| private String vendorParams; | private String vendorParams; | ||||
| @io.swagger.annotations.ApiModelProperty(value="停车场的会员ID",name="vendorPersonId") | |||||
| private String vendorPersonId; | |||||
| } | } | ||||
| @@ -90,7 +90,7 @@ public class WxCoupon extends TenantEntity { | |||||
| private String detail; | private String detail; | ||||
| @io.swagger.annotations.ApiModelProperty(value="面额",name="price") | @io.swagger.annotations.ApiModelProperty(value="面额",name="price") | ||||
| private Integer price; | private Integer price; | ||||
| @io.swagger.annotations.ApiModelProperty(value="单位(0:rmb分 1:小时)",name="unit") | |||||
| @io.swagger.annotations.ApiModelProperty(value="单位(0:rmb分 1:小时*100)",name="unit") | |||||
| private Integer unit; | private Integer unit; | ||||
| @io.swagger.annotations.ApiModelProperty(value="剩余库存",name="remainInventory") | @io.swagger.annotations.ApiModelProperty(value="剩余库存",name="remainInventory") | ||||
| private Integer remainInventory; | private Integer remainInventory; | ||||
| @@ -883,6 +883,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| basicInfo.setId(basicUserId); | basicInfo.setId(basicUserId); | ||||
| basicInfo.setPhone("11111111111"); | basicInfo.setPhone("11111111111"); | ||||
| basicInfo.setNickName("商场["+record.getTenantId()+"]B端扫C端码支付专用账户"); | basicInfo.setNickName("商场["+record.getTenantId()+"]B端扫C端码支付专用账户"); | ||||
| basicInfo.setSex(EnumCUserBaseInfoSex.UNKNOWN.getCode()); | |||||
| basicInfo.undateFinalTenantId(record); | basicInfo.undateFinalTenantId(record); | ||||
| basicInfo.setCreateDate(new Date()); | basicInfo.setCreateDate(new Date()); | ||||
| int count = wxCUserBasicInfoMapper.insert(basicInfo); | int count = wxCUserBasicInfoMapper.insert(basicInfo); | ||||
| @@ -15,36 +15,36 @@ public interface ParkAdapterService { | |||||
| * @param paramMap | * @param paramMap | ||||
| * @param park | * @param park | ||||
| * @param member | * @param member | ||||
| * @return | |||||
| * @return vendorPersonId 停车场的会员编号 | |||||
| */ | */ | ||||
| ResultData initLogin(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member); | |||||
| String initLogin(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) throws Exception; | |||||
| /** | /** | ||||
| * 绑定车牌 | * 绑定车牌 | ||||
| * @param paramMap | * @param paramMap | ||||
| * @param park | * @param park | ||||
| * @param cuUserId | * @param cuUserId | ||||
| * @return | |||||
| * @return vendorPersonId 停车场的会员编号 | |||||
| */ | */ | ||||
| ResultData bindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member); | |||||
| String bindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) throws Exception; | |||||
| /** | /** | ||||
| * 解绑车牌 | * 解绑车牌 | ||||
| */ | */ | ||||
| ResultData unbindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member); | |||||
| void unbindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) throws Exception; | |||||
| /** | /** | ||||
| * 获取停车费 | * 获取停车费 | ||||
| */ | */ | ||||
| ResultData carStopFee(Map<String, String> paramMap, WxPark park); | |||||
| ResultData carStopFee(Map<String, String> paramMap, WxPark park) throws Exception; | |||||
| /** | /** | ||||
| * 获取停车优免券 | |||||
| * 停车券使用 | |||||
| */ | */ | ||||
| ResultData getCoupon(Map<String, String> paramMap,WxPark park,WxCouponOrderCarCVo userCar,WxCoupon coupon,String carNumber); | |||||
| ResultData useCoupon(Map<String, String> paramMap,WxPark park,WxCouponOrderCarCVo userCar,WxCoupon coupon,String carNumber) throws Exception; | |||||
| /** | /** | ||||
| * 查询停车场状态 | * 查询停车场状态 | ||||
| */ | */ | ||||
| ResultData getParkStatus(WxPark park); | |||||
| ResultData getParkStatus(WxPark park) throws Exception; | |||||
| } | } | ||||
| @@ -17,17 +17,4 @@ public class BaseParkService { | |||||
| @Autowired | @Autowired | ||||
| ParkHelper parkHelper; | ParkHelper parkHelper; | ||||
| protected ResultData defaultInitLogin(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) { | |||||
| Map resultMap = new HashMap(); | |||||
| resultMap.put("vendor", park.getVendorType()); | |||||
| return new ResultData(resultMap); | |||||
| } | |||||
| protected ResultData defaultBindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) { | |||||
| return parkHelper.bindCar(paramMap, park, member.getId()); | |||||
| } | |||||
| protected ResultData defaultUnbindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) { | |||||
| return parkHelper.unbindCar(paramMap, park, member.getId()); | |||||
| } | |||||
| } | } | ||||
| @@ -23,13 +23,13 @@ import com.iformall.utils.car.BoLinkUtil; | |||||
| public class BoLinkParkService extends BaseParkService implements ParkAdapterService { | public class BoLinkParkService extends BaseParkService implements ParkAdapterService { | ||||
| @Override | @Override | ||||
| public ResultData initLogin(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) { | |||||
| return super.defaultInitLogin(paramMap, park, member); | |||||
| public String initLogin(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) { | |||||
| return null; | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ResultData bindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) { | |||||
| return super.defaultBindCar(paramMap, park, member); | |||||
| public String bindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) { | |||||
| return null; | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.iformall.service.park.impl.cyf; | package com.iformall.service.park.impl.cyf; | ||||
| import java.util.HashMap; | |||||
| import java.util.Map; | import java.util.Map; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| @@ -18,6 +19,7 @@ import com.iformall.domain.po.WxCoupon; | |||||
| import com.iformall.domain.po.WxPark; | import com.iformall.domain.po.WxPark; | ||||
| import com.iformall.domain.vo.WxCouponOrderCarCVo; | import com.iformall.domain.vo.WxCouponOrderCarCVo; | ||||
| import com.iformall.enums.EnumCarVendor; | import com.iformall.enums.EnumCarVendor; | ||||
| import com.iformall.exception.MallinkException; | |||||
| import com.iformall.service.park.ParkAdapterService; | import com.iformall.service.park.ParkAdapterService; | ||||
| import com.iformall.service.park.impl.BaseParkService; | import com.iformall.service.park.impl.BaseParkService; | ||||
| import com.iformall.service.park.impl.util.ParkHelper; | import com.iformall.service.park.impl.util.ParkHelper; | ||||
| @@ -35,12 +37,12 @@ public class CYFParkService extends BaseParkService implements ParkAdapterServic | |||||
| @Override | @Override | ||||
| public ResultData initLogin(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) { | |||||
| return super.defaultInitLogin(paramMap, park, member); | |||||
| public String initLogin(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) throws Exception{ | |||||
| return null; | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ResultData bindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) { | |||||
| public String bindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) throws Exception{ | |||||
| return cyfBindCar(paramMap,park,member); | return cyfBindCar(paramMap,park,member); | ||||
| } | } | ||||
| @@ -51,39 +53,63 @@ public class CYFParkService extends BaseParkService implements ParkAdapterServic | |||||
| * @Author furunxin | * @Author furunxin | ||||
| * @Date 2020/7/8 下午10:23 | * @Date 2020/7/8 下午10:23 | ||||
| **/ | **/ | ||||
| private ResultData cyfBindCar(@RequestBody Map<String, String> paramMap, WxPark park,WxCUserBasicInfo member) { | |||||
| private String cyfBindCar(Map<String, String> paramMap, WxPark park,WxCUserBasicInfo member) throws Exception { | |||||
| String carNumber = paramMap.get("carNumber"); | String carNumber = paramMap.get("carNumber"); | ||||
| if (StringUtils.isBlank(carNumber)) { | if (StringUtils.isBlank(carNumber)) { | ||||
| logger.error("carNumber为空"); | logger.error("carNumber为空"); | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空"); | |||||
| throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空"); | |||||
| } | } | ||||
| String params = park.getVendorParams(); | String params = park.getVendorParams(); | ||||
| JSONObject objParams = JSON.parseObject(params); | JSONObject objParams = JSON.parseObject(params); | ||||
| String token = objParams.getString("token"); | String token = objParams.getString("token"); | ||||
| int feeGroupId = objParams.getIntValue("feeGroupId"); | int feeGroupId = objParams.getIntValue("feeGroupId"); | ||||
| String ret = cyf.registerCar(token,park.getNumber(),feeGroupId,park.getParkingId(),carNumber,member.getId(),member.getNickName()); | |||||
| String ret = cyf.registerCar(token,park.getNumber(),feeGroupId,park.getParkingId(),carNumber,null,member.getNickName()); | |||||
| JSONObject retObj = JSON.parseObject(ret); | JSONObject retObj = JSON.parseObject(ret); | ||||
| if (retObj.getIntValue("result") == 1){ | if (retObj.getIntValue("result") == 1){ | ||||
| parkHelper.addCarInfoToDB(carNumber, EnumCarVendor.getEnum(park.getVendorType()), park, member.getId()); | |||||
| //TODO 返回vendorPersonId | |||||
| return null; | |||||
| }else { | }else { | ||||
| return new ResultData(ErrorCode.CAR_BIND_FAIL.getCode(), "绑车牌失败", retObj); | |||||
| logger.error("cyfBindCar error. paramMap: {} . cyfResult: {}",JSON.toJSONString(paramMap),ret); | |||||
| String msg = retObj.getString("strError"); | |||||
| throw new MallinkException(ErrorCode.CAR_BIND_FAIL.getCode(), "绑车牌失败:"+msg); | |||||
| //return new ResultData(, "绑车牌失败", retObj); | |||||
| } | } | ||||
| return new ResultData(); | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ResultData unbindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) { | |||||
| return super.defaultUnbindCar(paramMap, park, member); | |||||
| public void unbindCar(Map<String, String> paramMap, WxPark park, WxCUserBasicInfo member) throws Exception{ | |||||
| String carNumber = paramMap.get("carNumber"); | |||||
| if (StringUtils.isBlank(carNumber)) { | |||||
| logger.error("carNumber为空"); | |||||
| throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空"); | |||||
| } | |||||
| String vendorPersonId = paramMap.get("vendorPersonId"); | |||||
| if (StringUtils.isBlank(vendorPersonId)) { | |||||
| logger.error("vendorPersonId为空"); | |||||
| throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "vendorPersonId为空"); | |||||
| } | |||||
| String params = park.getVendorParams(); | |||||
| JSONObject objParams = JSON.parseObject(params); | |||||
| String token = objParams.getString("token"); | |||||
| String ret = cyf.unbindCar(token, park.getParkingId(), vendorPersonId); | |||||
| JSONObject retObj = JSON.parseObject(ret); | |||||
| if (retObj.getIntValue("result") == 1){ | |||||
| }else { | |||||
| logger.error("cyfUnbindCar error. paramMap: {} . cyfResult: {}",JSON.toJSONString(paramMap),ret); | |||||
| String msg = retObj.getString("strError"); | |||||
| throw new MallinkException(ErrorCode.CAR_BIND_FAIL.getCode(), "解绑车牌失败:"+msg); | |||||
| //return new ResultData(, "绑车牌失败", retObj); | |||||
| } | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ResultData carStopFee(Map<String, String> paramMap, WxPark park) { | |||||
| public ResultData carStopFee(Map<String, String> paramMap, WxPark park) throws Exception{ | |||||
| return cyfCarStopFee(paramMap, park); | return cyfCarStopFee(paramMap, park); | ||||
| } | } | ||||
| private ResultData cyfCarStopFee(Map<String, String> paramMap, WxPark park){ | |||||
| private ResultData cyfCarStopFee(Map<String, String> paramMap, WxPark park) throws Exception{ | |||||
| String carNumber = paramMap.get("carNumber"); | String carNumber = paramMap.get("carNumber"); | ||||
| if (StringUtils.isBlank(carNumber)) { | if (StringUtils.isBlank(carNumber)) { | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空"); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空"); | ||||
| @@ -96,18 +122,19 @@ public class CYFParkService extends BaseParkService implements ParkAdapterServic | |||||
| if (retObj.getIntValue("result") == 1){ | if (retObj.getIntValue("result") == 1){ | ||||
| return new ResultData(retObj); | return new ResultData(retObj); | ||||
| }else { | }else { | ||||
| return new ResultData(ErrorCode.CYF_STOP_FEE_FAIL.getCode(), "停车费获取失败"); | |||||
| logger.error("cyfCarStopFee error. paramMap: {} . cyfResult: {}",JSON.toJSONString(paramMap),ret); | |||||
| String msg = retObj.getString("strError"); | |||||
| return new ResultData(ErrorCode.CYF_STOP_FEE_FAIL.getCode(), "停车费获取失败:"+msg); | |||||
| } | } | ||||
| //TODO 此处得查询出来停车优惠信息,传给车易付 | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ResultData getCoupon(Map<String, String> paramMap, WxPark park, WxCouponOrderCarCVo userCar,WxCoupon coupon,String carNumber) { | |||||
| return new ResultData() ; | |||||
| public ResultData useCoupon(Map<String, String> paramMap, WxPark park, WxCouponOrderCarCVo userCar,WxCoupon coupon,String carNumber) throws Exception{ | |||||
| return new ResultData(); | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ResultData getParkStatus(WxPark park) { | |||||
| public ResultData getParkStatus(WxPark park) throws Exception{ | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| @@ -216,7 +216,7 @@ public class EtcpHelper { | |||||
| } | } | ||||
| JSONObject retObj = JSON.parseObject(ret); | JSONObject retObj = JSON.parseObject(ret); | ||||
| if (retObj.getIntValue("code") == 0) { | if (retObj.getIntValue("code") == 0) { | ||||
| parkHelper.addCarInfoToDB(carNumber, EnumCarVendor.CAR_ETCP, park, cuUserId); | |||||
| parkHelper.addCarInfoToDB(carNumber, EnumCarVendor.CAR_ETCP, park, cuUserId,"etcpUser"); | |||||
| JSONObject dataObj = retObj.getJSONObject("data"); | JSONObject dataObj = retObj.getJSONObject("data"); | ||||
| return new ResultData(dataObj); | return new ResultData(dataObj); | ||||
| } else { | } else { | ||||
| @@ -372,24 +372,34 @@ public class EtcpHelper { | |||||
| JSONObject retObj = JSON.parseObject(ret); | JSONObject retObj = JSON.parseObject(ret); | ||||
| if (retObj.getIntValue("code") == EnumETCPCode.SUCCESS.getCode()) { | if (retObj.getIntValue("code") == EnumETCPCode.SUCCESS.getCode()) { | ||||
| // 券状态设为已使用 | |||||
| WxCouponOrder couponOrder = new WxCouponOrder(); | |||||
| couponOrder.setId(userCar.getId()); | |||||
| couponOrder.updateTenantInfo(park); | |||||
| couponOrder.setUpdateDate(new Date()); | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); | |||||
| try { | |||||
| wxCouponOrderService.saveOrUpdate(couponOrder); | |||||
| } catch (Exception e) { | |||||
| logger.error("券包状态更新失败:" + couponOrder.getId()); | |||||
| return new ResultData(ErrorCode.DB_FAIL.getCode(), "券包状态更新失败"); | |||||
| } | |||||
| return new ResultData(); | |||||
| try { | |||||
| updateWxCouponOrderUsed(userCar, park); | |||||
| return new ResultData(); | |||||
| } catch (Exception e) { | |||||
| return new ResultData(ErrorCode.DB_FAIL.getCode(), "券包状态更新失败"); | |||||
| } | |||||
| } else { | } else { | ||||
| return new ResultData(ErrorCode.ETCP_QUAN_SEND_FAIL.getCode(), retObj.getString("message")); | return new ResultData(ErrorCode.ETCP_QUAN_SEND_FAIL.getCode(), retObj.getString("message")); | ||||
| } | } | ||||
| } | } | ||||
| public void updateWxCouponOrderUsed(WxCouponOrderCarCVo userCar,WxPark park) throws Exception { | |||||
| // 券状态设为已使用 | |||||
| WxCouponOrder couponOrder = new WxCouponOrder(); | |||||
| couponOrder.setId(userCar.getId()); | |||||
| couponOrder.updateTenantInfo(park); | |||||
| couponOrder.setUpdateDate(new Date()); | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); | |||||
| try { | |||||
| wxCouponOrderService.saveOrUpdate(couponOrder); | |||||
| } catch (Exception e) { | |||||
| logger.error("券包状态更新失败:" + couponOrder.getId(),e); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "券包状态更新失败"); | |||||
| } | |||||
| } | |||||
| public ResultData etcpParkStatus(WxPark park) { | public ResultData etcpParkStatus(WxPark park) { | ||||
| String params = park.getVendorParams(); | String params = park.getVendorParams(); | ||||
| if (params == null) { | if (params == null) { | ||||
| @@ -105,34 +105,34 @@ public class TJDParkService extends BaseParkService implements ParkAdapterServic | |||||
| } | } | ||||
| private ResultData tjdInsertToDB(String carNumber, Long newCarId, JSONObject retObj, WxPark park, Long cuUserId) { | |||||
| String carId = retObj.getString("carId"); | |||||
| // 插入车牌 | |||||
| Date curr = new Date(); | |||||
| WxCUserCar userCar = new WxCUserCar(); | |||||
| userCar.setId(newCarId); | |||||
| userCar.setCUserId(cuUserId); | |||||
| userCar.updateTenantInfo(park); | |||||
| userCar.setCarNumber(carNumber); | |||||
| userCar.setVendorType(EnumCarVendor.CAR_TJD.getCode()); | |||||
| JSONObject jo = new JSONObject(); | |||||
| jo.put("carId", carId); | |||||
| userCar.setVendorParams(JSON.toJSONString(jo)); | |||||
| userCar.setCreateDate(curr); | |||||
| userCar.setUpdateDate(curr); | |||||
| try { | |||||
| wxCUserCarService.save(userCar); | |||||
| wxScoreRulesService.addScore(userCar,EnumScoreType.BIND_CAR, userCar); | |||||
| //增加积分 | |||||
| parkHelper.addCredit(park, cuUserId); | |||||
| } catch (Exception e) { | |||||
| logger.error(e.getMessage()); | |||||
| return new ResultData(ErrorCode.DB_FAIL.getCode(), "TJD保存车牌失败, e:" + e.getMessage()); | |||||
| } | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR, cuUserId); | |||||
| return new ResultData(); | |||||
| } | |||||
| // private ResultData tjdInsertToDB(String carNumber, Long newCarId, JSONObject retObj, WxPark park, Long cuUserId) { | |||||
| // String carId = retObj.getString("carId"); | |||||
| // // 插入车牌 | |||||
| // Date curr = new Date(); | |||||
| // WxCUserCar userCar = new WxCUserCar(); | |||||
| // userCar.setId(newCarId); | |||||
| // userCar.setCUserId(cuUserId); | |||||
| // userCar.updateTenantInfo(park); | |||||
| // userCar.setCarNumber(carNumber); | |||||
| // userCar.setVendorType(EnumCarVendor.CAR_TJD.getCode()); | |||||
| // JSONObject jo = new JSONObject(); | |||||
| // jo.put("carId", carId); | |||||
| // userCar.setVendorParams(JSON.toJSONString(jo)); | |||||
| // userCar.setCreateDate(curr); | |||||
| // userCar.setUpdateDate(curr); | |||||
| // try { | |||||
| // wxCUserCarService.save(userCar); | |||||
| // wxScoreRulesService.addScore(userCar,EnumScoreType.BIND_CAR, userCar); | |||||
| // //增加积分 | |||||
| // parkHelper.addCredit(park, cuUserId); | |||||
| // } catch (Exception e) { | |||||
| // logger.error(e.getMessage()); | |||||
| // return new ResultData(ErrorCode.DB_FAIL.getCode(), "TJD保存车牌失败, e:" + e.getMessage()); | |||||
| // } | |||||
| // | |||||
| // wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR, cuUserId); | |||||
| // return new ResultData(); | |||||
| // } | |||||
| @Override | @Override | ||||
| @@ -40,14 +40,14 @@ public class ParkHelper { | |||||
| @Autowired | @Autowired | ||||
| WxCreditHistoryService wxCreditHistoryService; | WxCreditHistoryService wxCreditHistoryService; | ||||
| public ResultData bindCar(Map<String, String> paramMap, WxPark park, Long cuUserId) { | |||||
| public ResultData bindCar(Map<String, String> paramMap, WxPark park, Long cuUserId,String vendorPersonId) { | |||||
| String carNumber = paramMap.get("carNumber"); | String carNumber = paramMap.get("carNumber"); | ||||
| if (StringUtils.isBlank(carNumber)) { | if (StringUtils.isBlank(carNumber)) { | ||||
| logger.error("carNumber为空"); | logger.error("carNumber为空"); | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空"); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空"); | ||||
| } | } | ||||
| try { | try { | ||||
| addCarInfoToDB(carNumber, EnumCarVendor.getEnum(park.getVendorType()), park, cuUserId); | |||||
| addCarInfoToDB(carNumber, EnumCarVendor.getEnum(park.getVendorType()), park, cuUserId,vendorPersonId); | |||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| return new ResultData(e.getErrorCode(), e.getMessage()); | return new ResultData(e.getErrorCode(), e.getMessage()); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| @@ -56,7 +56,7 @@ public class ParkHelper { | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| public void addCarInfoToDB(String carNumber, EnumCarVendor carVendor, WxPark park, Long cuUserId) { | |||||
| public void addCarInfoToDB(String carNumber, EnumCarVendor carVendor, WxPark park, Long cuUserId,String vendorPersonId) { | |||||
| // 插入车牌 | // 插入车牌 | ||||
| Date curr = new Date(); | Date curr = new Date(); | ||||
| WxCUserCar userCar = new WxCUserCar(); | WxCUserCar userCar = new WxCUserCar(); | ||||
| @@ -66,6 +66,7 @@ public class ParkHelper { | |||||
| userCar.setVendorType(carVendor.getCode()); | userCar.setVendorType(carVendor.getCode()); | ||||
| userCar.setCreateDate(curr); | userCar.setCreateDate(curr); | ||||
| userCar.setUpdateDate(curr); | userCar.setUpdateDate(curr); | ||||
| userCar.setVendorPersonId(vendorPersonId); | |||||
| wxCUserCarService.saveOrUpdate(userCar); | wxCUserCarService.saveOrUpdate(userCar); | ||||
| // 成长值 | // 成长值 | ||||
| @@ -48,8 +48,15 @@ public class CYFUtil { | |||||
| //会员车辆信息注册接口地址 | //会员车辆信息注册接口地址 | ||||
| public static final String REGISTER_CAR_URL = "http://open.cheyifu2016.com:8892/openapi/personCar"; | public static final String REGISTER_CAR_URL = "http://open.cheyifu2016.com:8892/openapi/personCar"; | ||||
| //获取停车费 | |||||
| public static final String GET_CAR_STOPFEE = "http://open.cheyifu2016.com:8892/openapi/getFee"; | public static final String GET_CAR_STOPFEE = "http://open.cheyifu2016.com:8892/openapi/getFee"; | ||||
| //解绑车辆 | |||||
| public static final String UNBIND_CAR = "http://oepn.cheyifu2016.com:8892/openapi/personCar/delete"; | |||||
| //上报缴费接口 | |||||
| /** | /** | ||||
| @@ -83,7 +90,7 @@ public class CYFUtil { | |||||
| * @Author furunxin | * @Author furunxin | ||||
| * @Date 2020/7/8 下午10:12 | * @Date 2020/7/8 下午10:12 | ||||
| **/ | **/ | ||||
| public String registerCar(String token,int carport,int feeGroupId,String parkingId,String plates,long personId,String personName){ | |||||
| public String registerCar(String token,int carport,int feeGroupId,String parkingId,String plates,Long personId,String personName){ | |||||
| String[] plate = new String[1]; | String[] plate = new String[1]; | ||||
| plate[0] = plates; | plate[0] = plates; | ||||
| Map<String, Object> paramMap = new HashMap<>(); | Map<String, Object> paramMap = new HashMap<>(); | ||||
| @@ -93,7 +100,7 @@ public class CYFUtil { | |||||
| paramMap.put("endTime",getLocalDate()); | paramMap.put("endTime",getLocalDate()); | ||||
| paramMap.put("feeGroupId",feeGroupId); | paramMap.put("feeGroupId",feeGroupId); | ||||
| paramMap.put("lotNumber",carport); | paramMap.put("lotNumber",carport); | ||||
| paramMap.put("personId",personId); | |||||
| //paramMap.put("personId",personId); | |||||
| paramMap.put("personName",personName); | paramMap.put("personName",personName); | ||||
| paramMap.put("plates",plate); | paramMap.put("plates",plate); | ||||
| String result = Proc(REGISTER_CAR_URL, paramMap); | String result = Proc(REGISTER_CAR_URL, paramMap); | ||||
| @@ -116,6 +123,22 @@ public class CYFUtil { | |||||
| String result = Proc(GET_CAR_STOPFEE, paramMap); | String result = Proc(GET_CAR_STOPFEE, paramMap); | ||||
| return result; | return result; | ||||
| } | } | ||||
| /** | |||||
| * @description 解绑车辆 | |||||
| * @param token | |||||
| * @param parkingId | |||||
| * @param personId | |||||
| * @return | |||||
| */ | |||||
| public String unbindCar(String token,String parkingId,String vendorPersonId) { | |||||
| Map<String, Object> paramMap = new HashMap<>(); | |||||
| paramMap.put("token ",token); | |||||
| paramMap.put("parkingId",Integer.valueOf(parkingId)); | |||||
| paramMap.put("personId",Integer.valueOf(vendorPersonId)); | |||||
| String result = Proc(UNBIND_CAR, paramMap); | |||||
| return result; | |||||
| } | |||||
| @@ -929,7 +929,7 @@ public class ETCPUtil { | |||||
| logger.info("post接口响应信息为:{}", responseStr); | logger.info("post接口响应信息为:{}", responseStr); | ||||
| return responseStr; | return responseStr; | ||||
| } catch (IOException e) { | } catch (IOException e) { | ||||
| logger.error(e.getMessage()); | |||||
| logger.error(e.getMessage(),e); | |||||
| } | } | ||||
| return null; | return null; | ||||
| } | } | ||||
| @@ -946,7 +946,7 @@ public class ETCPUtil { | |||||
| logger.info("get请求接口响应信息为:{}", responseStr); | logger.info("get请求接口响应信息为:{}", responseStr); | ||||
| return responseStr; | return responseStr; | ||||
| } catch (IOException e) { | } catch (IOException e) { | ||||
| logger.error(e.getMessage()); | |||||
| logger.error(e.getMessage(),e); | |||||
| } | } | ||||
| return null; | return null; | ||||
| } | } | ||||
| @@ -974,7 +974,7 @@ public class ETCPUtil { | |||||
| sb.append(Integer.toHexString(val)); | sb.append(Integer.toHexString(val)); | ||||
| } | } | ||||
| } catch (Exception ex) { | } catch (Exception ex) { | ||||
| logger.error(ex.getMessage()); | |||||
| logger.error(ex.getMessage(),ex); | |||||
| } | } | ||||
| return sb.toString().toUpperCase(); | return sb.toString().toUpperCase(); | ||||
| } | } | ||||
| @@ -11,10 +11,11 @@ | |||||
| <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" /> | <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" /> | ||||
| <result column="vendor_type" jdbcType="INTEGER" property="vendorType" /> | <result column="vendor_type" jdbcType="INTEGER" property="vendorType" /> | ||||
| <result column="vendor_params" jdbcType="VARCHAR" property="vendorParams" /> | <result column="vendor_params" jdbcType="VARCHAR" property="vendorParams" /> | ||||
| <result column="vendor_person_id" jdbcType="VARCHAR" property="vendorPersonId" /> | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| `id`,`tenant_id`,`parent_tenant_id`,`c_user_id`,`car_number`,`create_date`,`update_date`,`vendor_type`,`vendor_params` | |||||
| `id`,`tenant_id`,`parent_tenant_id`,`c_user_id`,`car_number`,`create_date`,`update_date`,`vendor_type`,`vendor_params`,`vendor_person_id` | |||||
| </sql> | </sql> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| @@ -61,6 +62,12 @@ | |||||
| and `vendor_params` like concat('%', #{vendorParams},'%') | and `vendor_params` like concat('%', #{vendorParams},'%') | ||||
| </if> | </if> | ||||
| <if test=" null != vendorPersonId "> | |||||
| and `vendor_person_id` = #{vendorPersonId} | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| @@ -78,7 +85,7 @@ | |||||
| </select> | </select> | ||||
| <select id="countList" parameterType="com.iformall.domain.po.WxCUserCar" resultType="java.lang.Integer"> | <select id="countList" parameterType="com.iformall.domain.po.WxCUserCar" resultType="java.lang.Integer"> | ||||
| select count(*) from wx_c_user_car | |||||
| select count(1) from wx_c_user_car | |||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| </select> | </select> | ||||