diff --git a/mallinkCApi/src/main/java/com/simple/controller/WxCarController.java b/mallinkCApi/src/main/java/com/simple/controller/WxCarController.java index c2363b396..8340c59f5 100644 --- a/mallinkCApi/src/main/java/com/simple/controller/WxCarController.java +++ b/mallinkCApi/src/main/java/com/simple/controller/WxCarController.java @@ -24,7 +24,9 @@ import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; @RestController @@ -43,8 +45,7 @@ public class WxCarController extends BaseController @Autowired WxCUserCarService wxCUserCarService; - private WxPark getCurrentPark() { - WxCUser user = getUser(); + private WxPark getCurrentPark(WxCUser user) { WxPark wxPark = wxParkService.getByTenantId(user.getTenantId()); // 1, get mall's park // future use redis to optimize @@ -54,8 +55,9 @@ public class WxCarController extends BaseController @ApiOperation(value = "获取车场支持的厂家",notes="") @GetMapping("/getVendor") public ResultData getVendor() { + WxCUser user = getUser(); // 1, get mall's park - WxPark park = getCurrentPark(); + WxPark park = getCurrentPark(user); Map map = new HashMap(); map.put("vendor", park.getVendorType()); return new ResultData(map); @@ -69,8 +71,9 @@ public class WxCarController extends BaseController @ApiOperation(value = "初始化/etcp共同登录",notes="{\"phone\":\"string\"}") @PostMapping("/init") public ResultData init(Map paramMap) { + WxCUser user = getUser(); // 1, get mall's park - WxPark park = getCurrentPark(); + WxPark park = getCurrentPark(user); // 2. get vendor params if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { String phone = paramMap.get("phone"); @@ -92,29 +95,9 @@ public class WxCarController extends BaseController // 获取绑定的车牌 JSONObject dataObj = retObj.getJSONObject("data"); String etcpToken = dataObj.getString("token"); - ret = etcp.carNum(url, merchantNo, merchantKey, version, etcpToken); - /* - { - "code": 0, - "msg": "ok", - "data": { - "number": 3, - "carList": [ - "晋 BMZ105", - "云 C12345" - ] - } - } - */ - retObj = JSON.parseObject(ret); - JSONObject dataObj1 = retObj.getJSONObject("data"); - dataObj1.put("vendor", park.getVendorType()); - JSONArray arr = dataObj1.getJSONArray("carList"); - for(int i=0;i uclist = wxCUserCarService.getList(queryUserCar); + // 删除ETCP不存在 + for(WxCUserCar userCar: uclist) { + boolean bExist = isExistInArray(arr, userCar.getCarNumber()); + if (!bExist) { + wxCUserCarService.deleteById(userCar.getId()); + uclist.remove(userCar); + } + } + // 添加ETCP的 + for(int i=0;i list, String carNumber) { + boolean bExist = false; + for(WxCUserCar userCar: list) { + if(carNumber.equals(userCar.getCarNumber())) { + bExist = true; + break; + } + } + return bExist; + } + /** * 绑车牌 * @param paramMap @@ -138,8 +187,9 @@ public class WxCarController extends BaseController "TJD:={\"carNumber\":\"string\",\"carNumColor\":\"string\",\"outCarId\":\"string\"}") @PostMapping("/bindCar") public ResultData bindCar(Map paramMap) { + WxCUser user = getUser(); // 1, get mall's park - WxPark park = getCurrentPark(); + WxPark park = getCurrentPark(user); // 2. get vendor params if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { String etcpToken = paramMap.get("etcpToken"); @@ -162,7 +212,16 @@ public class WxCarController extends BaseController String ret = etcp.bindCar(url, merchantNo, merchantKey, version, etcpToken, carNumber, null); JSONObject retObj = JSON.parseObject(ret); if (retObj.getIntValue("code") == 0) { - // TODO insert carNumber + // 插入车牌 + Date curr = new Date(); + WxCUserCar userCar = new WxCUserCar(); + userCar.setCUserId(user.getId()); + userCar.setTenantId(user.getTenantId()); + userCar.setCarNumber(carNumber); + userCar.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); + userCar.setCreateDate(curr); + userCar.setUpdateDate(curr); + wxCUserCarService.saveOrUpdate(userCar); JSONObject dataObj = retObj.getJSONObject("data"); dataObj.put("vendor", park.getVendorType()); return new ResultData(dataObj); @@ -174,17 +233,19 @@ public class WxCarController extends BaseController else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) { String carNumber = paramMap.get("carNumber"); if (StringUtils.isBlank(carNumber)) { + logger.error("carNumber为空"); return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空"); } String carNumColor = paramMap.get("carNumColor"); if (StringUtils.isBlank(carNumColor)) { + logger.error("carNumColor为空"); return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumColor为空"); } String outCarId = paramMap.get("outCarId"); if (StringUtils.isBlank(outCarId)) { + logger.error("outCarId为空"); return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "outCarId为空"); } - // TODO insert carNumber String params = park.getVendorParams(); JSONObject objParams = JSON.parseObject(params); String url = objParams.getString("url"); @@ -206,8 +267,20 @@ public class WxCarController extends BaseController JSONObject retObj = JSON.parseObject(ret); retObj.put("vendor", park.getVendorType()); if (retObj.getString("returnCode") == "T") { - // TODO save car id String carId = retObj.getString("carId"); + // 插入车牌 + Date curr = new Date(); + WxCUserCar userCar = new WxCUserCar(); + userCar.setCUserId(user.getId()); + userCar.setTenantId(user.getTenantId()); + 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); + wxCUserCarService.saveOrUpdate(userCar); return new ResultData(retObj); } else { return new ResultData(ErrorCode.TJD_BIND_FAIL.getCode(), "绑车牌失败", retObj); @@ -225,15 +298,18 @@ public class WxCarController extends BaseController "TJD:={\"carNumber\":\"string\",\"carNumColor\":\"string\",\"outCarId\":\"string\"}") @PostMapping("/unbindCar") public ResultData unbindCar(Map paramMap) { + WxCUser user = getUser(); // 1, get mall's park - WxPark park = getCurrentPark(); + WxPark park = getCurrentPark(user); if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { String etcpToken = paramMap.get("etcpToken"); if (StringUtils.isBlank(etcpToken)) { + logger.error("etcpToken为空"); return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "etcpToken为空"); } String carNumber = paramMap.get("carNumber"); if (StringUtils.isBlank(carNumber)) { + logger.error("carNumber为空"); return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空"); } String params = park.getVendorParams(); @@ -247,9 +323,14 @@ public class WxCarController extends BaseController String ret = etcp.unbindCar(url, merchantNo, merchantKey, version, etcpToken, carNumber); JSONObject retObj = JSON.parseObject(ret); if (retObj.getIntValue("code") == 0) { - // TODO delete carNumber + WxCUserCar userCar = new WxCUserCar(); + userCar.setCUserId(user.getId()); + userCar.setTenantId(user.getTenantId()); + userCar.setCarNumber(carNumber); + wxCUserCarService.deleteByObj(userCar); return new ResultData(); } else { + logger.error("解绑车牌失败"); return new ResultData(ErrorCode.ETCP_UNBIND_FAIL.getCode(), "解绑车牌失败"); } } @@ -258,35 +339,42 @@ public class WxCarController extends BaseController if (StringUtils.isBlank(carNumber)) { return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空"); } - String carId = paramMap.get("carId"); - if (StringUtils.isBlank(carId)) { - return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carId为空"); - } - // TODO to get TJD carId - String params = park.getVendorParams(); - JSONObject objParams = JSON.parseObject(params); - String url = objParams.getString("url"); - String partner = objParams.getString("partner"); - String key = objParams.getString("key"); - String version = objParams.getString("version"); - String ret = tjd.writeOffCar(url, partner, key, version, carId); - /* - { - "timestamp": "1464235239561", - "returnCode": "T", - "errorMsg": "", - "returnMsg": "OK", - "isSuccess": "0", - "carId": "5836b8b52ada463ebc6199579f029561" - } - */ - JSONObject retObj = JSON.parseObject(ret); - if (retObj.getString("returnCode") == "T") { - // TODO remove carNumber - return new ResultData(); - } else { - return new ResultData(ErrorCode.TJD_UNBIND_FAIL, "解绑车牌失败"); + WxCUserCar queryOne = new WxCUserCar(); + queryOne.setCarNumber(carNumber); + queryOne.setTenantId(user.getTenantId()); + queryOne.setCUserId(user.getId()); + WxCUserCar userCar = wxCUserCarService.getOne(queryOne); + if (userCar != null) { + String params = userCar.getVendorParams(); + JSONObject objParams = JSON.parseObject(params); + String carId = objParams.getString("carId"); + + params = park.getVendorParams(); + String url = objParams.getString("url"); + String partner = objParams.getString("partner"); + String key = objParams.getString("key"); + String version = objParams.getString("version"); + String ret = tjd.writeOffCar(url, partner, key, version, carId); + + /* + { + "timestamp": "1464235239561", + "returnCode": "T", + "errorMsg": "", + "returnMsg": "OK", + "isSuccess": "0", + "carId": "5836b8b52ada463ebc6199579f029561" + } + */ + JSONObject retObj = JSON.parseObject(ret); + if (retObj.getString("returnCode") == "T") { + wxCUserCarService.deleteByObj(userCar); + return new ResultData(); + } else { + return new ResultData(ErrorCode.TJD_UNBIND_FAIL, "解绑车牌失败"); + } } + } return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "解绑车牌失败"); } @@ -300,8 +388,9 @@ public class WxCarController extends BaseController "TJD:={\"carNumber\":\"string\",\"carNumColor\":\"string\",\"outCarId\":\"string\"}") @PostMapping("/getCarStopFee") public ResultData getCarStopFee(Map paramMap) { + WxCUser user = getUser(); // 1, get mall's park - WxPark park = getCurrentPark(); + WxPark park = getCurrentPark(user); if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { String etcpToken = paramMap.get("etcpToken"); String carNumber = paramMap.get("carNumber"); @@ -400,8 +489,9 @@ public class WxCarController extends BaseController @ApiOperation("停车费抵扣") @PostMapping("/deductionFee") public ResultData deductionFee(Map paramMap) { + WxCUser user = getUser(); /// 1, get mall's park - WxPark park = getCurrentPark(); + WxPark park = getCurrentPark(user); if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) { String tradeId = paramMap.get("tradeId"); String deductionAmount = paramMap.get("deductionAmount"); @@ -468,8 +558,9 @@ public class WxCarController extends BaseController @ApiOperation("优免券模板") @PostMapping("/quanTemplate") public ResultData quanTemplate(Map paramMap) { + WxCUser user = getUser(); /// 1, get mall's park - WxPark park = getCurrentPark(); + WxPark park = getCurrentPark(user); if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { String params = park.getVendorParams(); JSONObject objParams = JSON.parseObject(params); @@ -519,8 +610,9 @@ public class WxCarController extends BaseController @ApiOperation(value = "优免券领取", notes="ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\",\"couponFreeId\":\"string\"}") @PostMapping("/getCoupon") public ResultData getCoupon(Map paramMap) { + WxCUser user = getUser(); /// 1, get mall's park - WxPark park = getCurrentPark(); + WxPark park = getCurrentPark(user); if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { String etcpToken = paramMap.get("etcpToken"); String carNumber = paramMap.get("carNumber"); diff --git a/mallinkCApi/src/main/resources/application-dev.yml b/mallinkCApi/src/main/resources/application-dev.yml index 1db322959..c40f720f9 100644 --- a/mallinkCApi/src/main/resources/application-dev.yml +++ b/mallinkCApi/src/main/resources/application-dev.yml @@ -1,9 +1,9 @@ spring: # JDBC datasource: - url: jdbc:mysql://localhost:3306/mallink?characterEncoding=UTF-8&useSSL=false - username: userone - password: 123456 + url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&useSSL=false + username: mallone + password: m@1l0ne123@# type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver filters: stat diff --git a/mallinkService/src/main/java/com/simple/service/WxCUserCarService.java b/mallinkService/src/main/java/com/simple/service/WxCUserCarService.java index 98549d691..74e00ab3f 100644 --- a/mallinkService/src/main/java/com/simple/service/WxCUserCarService.java +++ b/mallinkService/src/main/java/com/simple/service/WxCUserCarService.java @@ -23,6 +23,13 @@ public interface WxCUserCarService { * @return */ List getList(WxCUserCar record); + + /** + * 根据实体查询 + * @param record + * @return + */ + WxCUserCar getOne(WxCUserCar record); /** * 根据Id获得实体 @@ -45,12 +52,12 @@ public interface WxCUserCarService { * @param id */ void deleteById(Long id); - - - - - + /** + * 根据WxCUserCar删除实体 + * @param record + */ + void deleteByObj(WxCUserCar record); } diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxCUserCarServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxCUserCarServiceImpl.java index 78c5c7d2b..e9505a54d 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxCUserCarServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxCUserCarServiceImpl.java @@ -27,6 +27,12 @@ public class WxCUserCarServiceImpl implements WxCUserCarService { return wxCUserCarMapper.findList(record); } + @Override + public WxCUserCar getOne(WxCUserCar record) { + return wxCUserCarMapper.selectOne(record); + } + + @Override public WxCUserCar getById(Long id) { return wxCUserCarMapper.selectByPrimaryKey(id); @@ -35,7 +41,6 @@ public class WxCUserCarServiceImpl implements WxCUserCarService { @Override public void saveOrUpdate(WxCUserCar record) { if (record.getId() == null) { - //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); wxCUserCarMapper.insertSelective(record); @@ -48,6 +53,11 @@ public class WxCUserCarServiceImpl implements WxCUserCarService { public void deleteById(Long id) { wxCUserCarMapper.deleteByPrimaryKey(id); } + + @Override + public void deleteByObj(WxCUserCar record) { + wxCUserCarMapper.delete(record); + }