|
|
|
@@ -13,6 +13,7 @@ import com.iformall.domain.vo.WxMerchantVo; |
|
|
|
import com.iformall.enums.*; |
|
|
|
import com.iformall.exception.MallinkException; |
|
|
|
import com.iformall.service.*; |
|
|
|
import com.iformall.utils.car.DaHuaUtil; |
|
|
|
import com.iformall.utils.car.ETCPUtil; |
|
|
|
import com.iformall.utils.car.TJDUtil; |
|
|
|
import io.swagger.annotations.Api; |
|
|
|
@@ -36,7 +37,7 @@ import java.util.Map; |
|
|
|
public class WxCarController extends BaseController { |
|
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass()); |
|
|
|
|
|
|
|
ETCPUtil etcp = new ETCPUtil(); |
|
|
|
ETCPUtil etcp = new ETCPUtil(); |
|
|
|
|
|
|
|
TJDUtil tjd = new TJDUtil(); |
|
|
|
|
|
|
|
@@ -61,10 +62,10 @@ public class WxCarController extends BaseController { |
|
|
|
@Autowired |
|
|
|
WxCUserTagsService wxCUserTagsService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
@Autowired |
|
|
|
WxCarCmdLogService wxCarCmdLogService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
@Autowired |
|
|
|
WxCreditHistoryService wxCreditHistoryService; |
|
|
|
|
|
|
|
private WxPark getCurrentPark(String tenantId) { |
|
|
|
@@ -76,7 +77,7 @@ public class WxCarController extends BaseController { |
|
|
|
return wxPark; |
|
|
|
} |
|
|
|
|
|
|
|
@ApiOperation(value = "获取车场支持的厂家",notes="返回\n{\"vendor\":integer}") |
|
|
|
@ApiOperation(value = "获取车场支持的厂家", notes = "返回\n{\"vendor\":integer}") |
|
|
|
@GetMapping("/getVendor") |
|
|
|
public ResultData getVendor() { |
|
|
|
// 1, get mall's park |
|
|
|
@@ -88,23 +89,28 @@ public class WxCarController extends BaseController { |
|
|
|
|
|
|
|
/** |
|
|
|
* 初始化/etcp共同登录 |
|
|
|
* |
|
|
|
* @param paramMap |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@ApiOperation(value = "初始化/etcp共同登录",notes="{\"phone\":\"string\"}") |
|
|
|
@ApiOperation(value = "初始化/etcp共同登录", notes = "{\"phone\":\"string\"}") |
|
|
|
@PostMapping("/init") |
|
|
|
public ResultData init(@RequestBody Map<String, String > paramMap) { |
|
|
|
WxCUser user = getUser(); |
|
|
|
public ResultData init(@RequestBody Map<String, String> paramMap) { |
|
|
|
WxCUser user = getUser(); |
|
|
|
// 1, get mall's park |
|
|
|
WxPark park = getCurrentPark(getTenantId()); |
|
|
|
// 2. get vendor params |
|
|
|
if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { |
|
|
|
if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { |
|
|
|
return initForEtcp(paramMap, user, park); |
|
|
|
} else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()){ |
|
|
|
} else if (park.getVendorType().equals(EnumCarVendor.CAR_TJD.getCode())) { |
|
|
|
// TJD不需要共同登录 |
|
|
|
Map resultMap = new HashMap(); |
|
|
|
resultMap.put("vendor", EnumCarVendor.CAR_TJD.getCode()); |
|
|
|
return new ResultData(resultMap); |
|
|
|
} else if (park.getVendorType().equals(EnumCarVendor.CAR_DAHUA.getCode())) { |
|
|
|
Map resultMap = new HashMap(); |
|
|
|
resultMap.put("vendor", EnumCarVendor.CAR_DAHUA.getCode()); |
|
|
|
return new ResultData(resultMap); |
|
|
|
} |
|
|
|
|
|
|
|
return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "登录失败"); |
|
|
|
@@ -152,13 +158,14 @@ public class WxCarController extends BaseController { |
|
|
|
// c端必须保存此token |
|
|
|
return new ResultData(dataObj); |
|
|
|
} else { |
|
|
|
logger.error("共同登录失败: "+phone); |
|
|
|
logger.error("共同登录失败: " + phone); |
|
|
|
return new ResultData(ErrorCode.ETCP_LOGIN_FAIL.getCode(), "共同登录失败"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* ETCP同步 |
|
|
|
* |
|
|
|
* @param cUserId |
|
|
|
* @param tenantId |
|
|
|
* @param iVendorType |
|
|
|
@@ -189,7 +196,7 @@ public class WxCarController extends BaseController { |
|
|
|
queryUserCar.setCUserId(cUserId); |
|
|
|
List<WxCUserCar> uclist = wxCUserCarService.getList(queryUserCar); |
|
|
|
// 删除ETCP不存在 |
|
|
|
for(WxCUserCar userCar: uclist) { |
|
|
|
for (WxCUserCar userCar : uclist) { |
|
|
|
boolean bExist = isExistInArray(arr, userCar.getCarNumber()); |
|
|
|
if (!bExist) { |
|
|
|
wxCUserCarService.deleteById(userCar.getId()); |
|
|
|
@@ -197,10 +204,10 @@ public class WxCarController extends BaseController { |
|
|
|
} |
|
|
|
} |
|
|
|
// 添加ETCP的 |
|
|
|
for(int i=0;i<arr.size();i++) { |
|
|
|
for (int i = 0; i < arr.size(); i++) { |
|
|
|
String _carNum = arr.getString(i); |
|
|
|
boolean bExist = isExistInList(uclist, _carNum); |
|
|
|
if(!bExist) { |
|
|
|
if (!bExist) { |
|
|
|
Date curr = new Date(); |
|
|
|
WxCUserCar userCar = new WxCUserCar(); |
|
|
|
userCar.setCUserId(cUserId); |
|
|
|
@@ -217,7 +224,7 @@ public class WxCarController extends BaseController { |
|
|
|
|
|
|
|
private boolean isExistInArray(JSONArray arr, String carNumber) { |
|
|
|
boolean bExist = false; |
|
|
|
for(int i=0;i<arr.size();i++) { |
|
|
|
for (int i = 0; i < arr.size(); i++) { |
|
|
|
// check carNum+cUserId是否存在, 不存在新建 |
|
|
|
String _carNum = arr.getString(i); |
|
|
|
|
|
|
|
@@ -231,8 +238,8 @@ public class WxCarController extends BaseController { |
|
|
|
|
|
|
|
private boolean isExistInList(List<WxCUserCar> list, String carNumber) { |
|
|
|
boolean bExist = false; |
|
|
|
for(WxCUserCar userCar: list) { |
|
|
|
if(carNumber.equals(userCar.getCarNumber())) { |
|
|
|
for (WxCUserCar userCar : list) { |
|
|
|
if (carNumber.equals(userCar.getCarNumber())) { |
|
|
|
bExist = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
@@ -242,18 +249,19 @@ public class WxCarController extends BaseController { |
|
|
|
|
|
|
|
/** |
|
|
|
* 绑车牌 |
|
|
|
* |
|
|
|
* @param paramMap |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@ApiOperation(value = "绑车牌", notes = "ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\"}, TJD:={\"carNumber\":\"string\"}") |
|
|
|
@PostMapping("/bindCar") |
|
|
|
public ResultData bindCar(@RequestBody Map<String, String > paramMap) { |
|
|
|
public ResultData bindCar(@RequestBody Map<String, String> paramMap) { |
|
|
|
// 1, get mall's park |
|
|
|
WxPark park = getCurrentPark(getTenantId()); |
|
|
|
// 2. get vendor params |
|
|
|
if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { |
|
|
|
return etcpBindCar(paramMap, park); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
// 内部操作 |
|
|
|
return bindCar(paramMap, park); |
|
|
|
} |
|
|
|
@@ -325,10 +333,10 @@ public class WxCarController extends BaseController { |
|
|
|
wxCUserCarService.saveOrUpdate(userCar); |
|
|
|
|
|
|
|
// 成长值 |
|
|
|
wxScoreRulesService.addScore(EnumScoreType.BIND_CAR,userCar); |
|
|
|
wxScoreRulesService.addScore(EnumScoreType.BIND_CAR, userCar); |
|
|
|
//增加积分 |
|
|
|
addCredit(); |
|
|
|
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,getUserId()); |
|
|
|
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR, getUserId()); |
|
|
|
} |
|
|
|
|
|
|
|
private ResultData tjdBindCar(@RequestBody Map<String, String> paramMap, WxPark park) { |
|
|
|
@@ -385,7 +393,7 @@ public class WxCarController extends BaseController { |
|
|
|
userCar.setUpdateDate(curr); |
|
|
|
try { |
|
|
|
wxCUserCarService.save(userCar); |
|
|
|
wxScoreRulesService.addScore(EnumScoreType.BIND_CAR,userCar); |
|
|
|
wxScoreRulesService.addScore(EnumScoreType.BIND_CAR, userCar); |
|
|
|
//增加积分 |
|
|
|
addCredit(); |
|
|
|
} catch (Exception e) { |
|
|
|
@@ -393,12 +401,12 @@ public class WxCarController extends BaseController { |
|
|
|
return new ResultData(ErrorCode.DB_FAIL.getCode(), "TJD保存车牌失败, e:" + e.getMessage()); |
|
|
|
} |
|
|
|
|
|
|
|
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,getUserId()); |
|
|
|
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR, getUserId()); |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
//-----增加积分start----- |
|
|
|
private void addCredit(){ |
|
|
|
private void addCredit() { |
|
|
|
WxCreditHistory wxCreditHistory = new WxCreditHistory(); |
|
|
|
wxCreditHistory.setCUserId(getUserId()); |
|
|
|
wxCreditHistory.setTenantId(getTenantId()); |
|
|
|
@@ -411,9 +419,10 @@ public class WxCarController extends BaseController { |
|
|
|
|
|
|
|
/** |
|
|
|
* 解绑车牌 |
|
|
|
* |
|
|
|
* @param paramMap |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@ApiOperation(value = "解绑车牌", notes = "ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\"}\n返回:\n" + |
|
|
|
"{\n" + |
|
|
|
" \"code\": 0,\n" + |
|
|
|
@@ -421,7 +430,7 @@ public class WxCarController extends BaseController { |
|
|
|
"}" + |
|
|
|
"TJD:={\"carNumber\":\"string\"}") |
|
|
|
@PostMapping("/unbindCar") |
|
|
|
public ResultData unbindCar(@RequestBody Map<String, String > paramMap) { |
|
|
|
public ResultData unbindCar(@RequestBody Map<String, String> paramMap) { |
|
|
|
// 1, get mall's park |
|
|
|
WxPark park = getCurrentPark(getTenantId()); |
|
|
|
if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { |
|
|
|
@@ -511,7 +520,7 @@ public class WxCarController extends BaseController { |
|
|
|
if (userCar != null) { |
|
|
|
String params = userCar.getVendorParams(); |
|
|
|
JSONObject objParams = JSON.parseObject(params); |
|
|
|
String carId = objParams.getString("carId"); |
|
|
|
String carId = objParams.getString("carId"); |
|
|
|
|
|
|
|
params = park.getVendorParams(); |
|
|
|
String url = objParams.getString("url"); |
|
|
|
@@ -538,6 +547,7 @@ public class WxCarController extends BaseController { |
|
|
|
|
|
|
|
/** |
|
|
|
* 停车费 |
|
|
|
* |
|
|
|
* @param paramMap |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@@ -577,18 +587,32 @@ public class WxCarController extends BaseController { |
|
|
|
" \"pmParkId\": \"d49aeaedcf144f1faf569846d6b16670\"\n" + |
|
|
|
" }") |
|
|
|
@PostMapping("/getCarStopFee") |
|
|
|
public ResultData getCarStopFee(@RequestBody Map<String, String > paramMap) { |
|
|
|
public ResultData getCarStopFee(@RequestBody Map<String, String> paramMap) { |
|
|
|
// 1, get mall's park |
|
|
|
WxPark park = getCurrentPark(getTenantId()); |
|
|
|
if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { |
|
|
|
if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { |
|
|
|
return etcpCarStopFee(paramMap, park); |
|
|
|
} |
|
|
|
else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) { |
|
|
|
} else if (park.getVendorType().equals(EnumCarVendor.CAR_TJD.getCode())) { |
|
|
|
return tjdCarStopFee(paramMap, park); |
|
|
|
} else if (park.getVendorType().equals(EnumCarVendor.CAR_DAHUA.getCode())) { |
|
|
|
return dahuaCarStopFee(paramMap, park); |
|
|
|
} |
|
|
|
return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "停车费获取失败"); |
|
|
|
} |
|
|
|
|
|
|
|
private ResultData dahuaCarStopFee(Map<String, String> paramMap, WxPark park) { |
|
|
|
String carNumber = paramMap.get("carNumber"); |
|
|
|
String result = DaHuaUtil.plateCharge(carNumber, park.getParkId()); |
|
|
|
logger.info("大华查询车辆费用接口返回值:{}", result); |
|
|
|
JSONObject jsonObject = JSONObject.parseObject(result); |
|
|
|
String code = jsonObject.getString("code"); |
|
|
|
if (!code.equals(DaHuaUtil.SUCCESS_CODE)) { |
|
|
|
return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "停车费获取失败"); |
|
|
|
} |
|
|
|
Object data = jsonObject.get("data"); |
|
|
|
return new ResultData(data); |
|
|
|
} |
|
|
|
|
|
|
|
private ResultData etcpCarStopFee(@RequestBody Map<String, String> paramMap, WxPark park) { |
|
|
|
String etcpToken = paramMap.get("etcpToken"); |
|
|
|
String carNumber = paramMap.get("carNumber"); |
|
|
|
@@ -673,11 +697,11 @@ public class WxCarController extends BaseController { |
|
|
|
/** |
|
|
|
* 优免券领取 |
|
|
|
* 优免券不可退 |
|
|
|
*/ |
|
|
|
@ApiOperation(value = "停车券使用", notes="ETCP:={\"etcpToken\":\"string(ETCP专用)\",\"carNumber\":\"string\",\"couponOrderId\"=\"String\"},输出\n{}\n" + |
|
|
|
*/ |
|
|
|
@ApiOperation(value = "停车券使用", notes = "ETCP:={\"etcpToken\":\"string(ETCP专用)\",\"carNumber\":\"string\",\"couponOrderId\"=\"String\"},输出\n{}\n" + |
|
|
|
"TJD:{\"carNumber\":\"string\",\"tradeId\":\"string\",\"accountId\":\"string\",\"couponOrderId\":\"string\"}") |
|
|
|
@PostMapping("/getCoupon") |
|
|
|
public ResultData getCoupon(@RequestBody Map<String, String > paramMap) { |
|
|
|
public ResultData getCoupon(@RequestBody Map<String, String> paramMap) { |
|
|
|
/// 1, get mall's park |
|
|
|
WxPark park = getCurrentPark(getTenantId()); |
|
|
|
String carNumber = paramMap.get("carNumber"); |
|
|
|
@@ -721,7 +745,7 @@ public class WxCarController extends BaseController { |
|
|
|
String businessId = ""; |
|
|
|
// 获取merchantId |
|
|
|
WxMerchantVo merchantVo = null; |
|
|
|
if(userCar.getMerchantVoList().size() > 0) { |
|
|
|
if (userCar.getMerchantVoList().size() > 0) { |
|
|
|
merchantVo = userCar.getMerchantVoList().get(0); |
|
|
|
} |
|
|
|
|
|
|
|
@@ -759,7 +783,7 @@ public class WxCarController extends BaseController { |
|
|
|
} else { |
|
|
|
return new ResultData(ErrorCode.ETCP_QUAN_SEND_FAIL.getCode(), retObj.getString("message")); |
|
|
|
} |
|
|
|
} else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()){ |
|
|
|
} else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) { |
|
|
|
String tradeId = paramMap.get("tradeId"); |
|
|
|
String accountId = paramMap.get("accountId"); |
|
|
|
if (StringUtils.isBlank(tradeId)) { |
|
|
|
@@ -799,7 +823,7 @@ public class WxCarController extends BaseController { |
|
|
|
}) |
|
|
|
public ResultData list(@ModelAttribute WxCouponOrder wxCouponOrder, Integer pageNum, Integer pageSize) { |
|
|
|
|
|
|
|
if(pageNum == null || pageSize == null) { |
|
|
|
if (pageNum == null || pageSize == null) { |
|
|
|
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); |
|
|
|
} |
|
|
|
if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderCarCVo(); |
|
|
|
@@ -828,7 +852,7 @@ public class WxCarController extends BaseController { |
|
|
|
|
|
|
|
private ResultData etcpParkStatus(WxPark park) { |
|
|
|
String params = park.getVendorParams(); |
|
|
|
if(params == null) { |
|
|
|
if (params == null) { |
|
|
|
return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "车场不支持"); |
|
|
|
} |
|
|
|
JSONObject objParams = JSON.parseObject(params); |
|
|
|
|