Commit 045118e6 authored by hezhen's avatar hezhen

Merge branch 'dev-chw' of http://113.105.137.151:22280/youjj/cloud-platform into dev-chw

parents 8f1527ba ed312e22
...@@ -74,6 +74,8 @@ public class SystemConfig { ...@@ -74,6 +74,8 @@ public class SystemConfig {
public static final String ALIPAY_ACOUNT = SystemProperty.getConfig("ALIPAY_ACOUNT"); public static final String ALIPAY_ACOUNT = SystemProperty.getConfig("ALIPAY_ACOUNT");
public static final String ALIPAY_PRIVATE_KEY = SystemProperty.getConfig("ALIPAY_PRIVATE_KEY"); public static final String ALIPAY_PRIVATE_KEY = SystemProperty.getConfig("ALIPAY_PRIVATE_KEY");
public static final String VEHICLE_VIOLATE_KEY = SystemProperty.getConfig("VEHICLE_VIOLATE_KEY");
/** /**
* 交易创建,等待买家付款 * 交易创建,等待买家付款
*/ */
......
...@@ -34,6 +34,9 @@ spring.mail.properties.smtp.auth=false ...@@ -34,6 +34,9 @@ spring.mail.properties.smtp.auth=false
spring.mail.properties.smtp.timeout=25000 spring.mail.properties.smtp.timeout=25000
spring.mail.username=xinxinmanager@126.com spring.mail.username=xinxinmanager@126.com
#违章appkey
VEHICLE_VIOLATE_KEY=714ac24873c6a8b76114dca575a3748b
#ios #ios
APP_ID_IOS=wx3f51779d49171d63 APP_ID_IOS=wx3f51779d49171d63
APP_PARTNER_IOS=1492557632 APP_PARTNER_IOS=1492557632
......
...@@ -74,6 +74,11 @@ public class AppUserManageDTO { ...@@ -74,6 +74,11 @@ public class AppUserManageDTO {
*/ */
private String realName; private String realName;
/**
* 昵称
*/
private String nickname;
/** /**
* 注册来源 * 注册来源
......
...@@ -12,11 +12,15 @@ import com.github.wxiaoqi.security.admin.mapper.UserCommentMapper; ...@@ -12,11 +12,15 @@ import com.github.wxiaoqi.security.admin.mapper.UserCommentMapper;
import com.github.wxiaoqi.security.admin.vo.UserCommentVo; import com.github.wxiaoqi.security.admin.vo.UserCommentVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.feign.OrderFeign;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date; import java.util.Date;
...@@ -26,7 +30,8 @@ import java.util.List; ...@@ -26,7 +30,8 @@ import java.util.List;
@Service @Service
@Slf4j @Slf4j
public class UserCommentBiz extends BaseBiz<UserCommentMapper, UserComment>{ public class UserCommentBiz extends BaseBiz<UserCommentMapper, UserComment>{
@Autowired
private OrderFeign orderFeign;
...@@ -142,11 +147,25 @@ public class UserCommentBiz extends BaseBiz<UserCommentMapper, UserComment>{ ...@@ -142,11 +147,25 @@ public class UserCommentBiz extends BaseBiz<UserCommentMapper, UserComment>{
} }
/** /**
* 订单评论
* 处理维度 * 处理维度
* 总分 * 总分
* @param userComment * @param userComment
*/ */
public void saveComment(UserComment userComment){ public void saveComment(UserComment userComment){
String no = userComment.getOrderNo();
if(no == null || ("").equals(no)){
throw new BaseException("订单号不能为空", ResultCode.FAILED_CODE);
}
ObjectRestResponse<BaseOrder> ba = orderFeign.queryByNo(no);
if(ba.getData() == null){
throw new BaseException("订单错误", ResultCode.FAILED_CODE);
}
BaseOrder baseOrder = ba.getData();
if(baseOrder.getIsAppraise() == 1){
throw new BaseException("订单已评价,不能重复评论", ResultCode.FAILED_CODE);
}
JSONArray jsonArray = JSONArray.parseArray(userComment.getAppraiseJson()); JSONArray jsonArray = JSONArray.parseArray(userComment.getAppraiseJson());
if(jsonArray == null || jsonArray.size() == 0){ if(jsonArray == null || jsonArray.size() == 0){
throw new BaseException("评论维度不能为空", ResultCode.FAILED_CODE); throw new BaseException("评论维度不能为空", ResultCode.FAILED_CODE);
...@@ -191,6 +210,9 @@ public class UserCommentBiz extends BaseBiz<UserCommentMapper, UserComment>{ ...@@ -191,6 +210,9 @@ public class UserCommentBiz extends BaseBiz<UserCommentMapper, UserComment>{
mapper.addreplyNum(rootParentId); mapper.addreplyNum(rootParentId);
} }
} }
baseOrder.setIsAppraise(1);
orderFeign.updateBaseOrder(baseOrder);
} }
......
...@@ -363,4 +363,7 @@ public class BaseOrder implements Serializable { ...@@ -363,4 +363,7 @@ public class BaseOrder implements Serializable {
@Column(name = "order_sign") @Column(name = "order_sign")
private Integer orderSign; private Integer orderSign;
@Column(name = "is_appraise")
private Integer isAppraise;
} }
...@@ -35,6 +35,21 @@ public class OrderViolation { ...@@ -35,6 +35,21 @@ public class OrderViolation {
@Column(name = "picture") @Column(name = "picture")
private String picture; private String picture;
/**
* 违章日期
*/
@Column(name = "violate_date")
private Long violateDate;
/**
* 违章地点
*/
private String area;
/**
* 违章行为
*/
private String act;
/** /**
* 创建人id * 创建人id
......
...@@ -52,4 +52,11 @@ public interface OrderFeign { ...@@ -52,4 +52,11 @@ public interface OrderFeign {
@PostMapping(value = "chw/orderPulishReceive/add") @PostMapping(value = "chw/orderPulishReceive/add")
ObjectRestResponse<BaseOrder> add(@RequestBody PulishReceiveBO bo); ObjectRestResponse<BaseOrder> add(@RequestBody PulishReceiveBO bo);
@GetMapping(value = "/baseOrder/queryByNo")
ObjectRestResponse<BaseOrder> queryByNo(@RequestParam("no")String no);
@PostMapping(value = "/baseOrder/updateBaseOrder")
BaseOrder updateBaseOrder(@RequestBody BaseOrder baseOrder);
} }
package com.xxfc.platform.order.pojo;
import lombok.Data;
import java.util.Date;
/**
* @ClassName : OrderViolateVo
* @Description : 车辆违章信息
* @Author : jiaoruizhen
* @Date: 2020-11-19 17:19
*/
@Data
public class OrderViolateVo {
//违章时间
Date date;
//违章地点
String area;
//违章行为
String act;
//违章代码(仅供参考,不一定有值)
String code;
//违章扣分(仅供参考,不一定有值)
String fen;
//违章城市(不一定有值)
String wzcity;
// 违章罚款(仅供参考,不一定有值)
String money;
// 处理状态。0-未处理未交费,1-已处理未交费,默认不返回已处理已缴费的违章
String handled;
//文书编号(不一定会获取到)
String archiveno;
}
...@@ -29,8 +29,6 @@ import com.xxfc.platform.order.pojo.mq.OrderMQDTO; ...@@ -29,8 +29,6 @@ import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.order.pojo.order.CheckUserInfoDto; import com.xxfc.platform.order.pojo.order.CheckUserInfoDto;
import com.xxfc.platform.order.pojo.order.OrderPageVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto; import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
...@@ -51,13 +49,12 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -51,13 +49,12 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TimeZone; import java.util.TimeZone;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service @Service
@Slf4j @Slf4j
public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapper, OrderVehicleCrosstown> implements UserRestInterface { public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapper, OrderVehicleCrosstown> implements UserRestInterface {
...@@ -542,6 +539,15 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -542,6 +539,15 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
} }
} }
public List<OrderVehicleCrosstown> selectOrderList(List<Integer> orderIdList, Integer type, Integer time) {
Map<String, Object> params = new HashMap<>();
params.put("orderIdList", orderIdList);
params.put("type", type);
params.put("time", time);
return mapper.selectOrderList(params);
}
// public BigDecimal getAmount() { // public BigDecimal getAmount() {
// //设置保留金 // //设置保留金
// Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); // Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
......
...@@ -32,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -32,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -184,4 +185,9 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat ...@@ -184,4 +185,9 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat
public OrderViolation getOneByDetailId(Integer detailId) { public OrderViolation getOneByDetailId(Integer detailId) {
return mapper.getOneByDetailId(detailId); return mapper.getOneByDetailId(detailId);
} }
public void batchSave(List<OrderViolation> list) {
mapper.batchSave(list);
}
} }
...@@ -11,4 +11,6 @@ public interface OrderVehicaleCrosstownMapper extends Mapper<OrderVehicleCrossto ...@@ -11,4 +11,6 @@ public interface OrderVehicaleCrosstownMapper extends Mapper<OrderVehicleCrossto
List<OrderVehicleCrosstownDto> selectByOrderId(OrderVehicleCrosstownDto orderVehicleCrosstownDto); List<OrderVehicleCrosstownDto> selectByOrderId(OrderVehicleCrosstownDto orderVehicleCrosstownDto);
OrderVehicleCrosstownDto selectByOrderNo(Map<String, Object> map); OrderVehicleCrosstownDto selectByOrderNo(Map<String, Object> map);
List<OrderVehicleCrosstown> selectOrderList(Map<String, Object> map);
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ import com.xxfc.platform.order.entity.OrderViolation; ...@@ -4,6 +4,7 @@ import com.xxfc.platform.order.entity.OrderViolation;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -14,4 +15,6 @@ public interface OrderViolationMapper extends Mapper<OrderViolation> { ...@@ -14,4 +15,6 @@ public interface OrderViolationMapper extends Mapper<OrderViolation> {
Map<String,Object> getOrderAndVehicleStatus(@Param("vId") Integer detailId); Map<String,Object> getOrderAndVehicleStatus(@Param("vId") Integer detailId);
OrderViolation getOneByDetailId(Integer detailId); OrderViolation getOneByDetailId(Integer detailId);
void batchSave(List<OrderViolation> list);
} }
...@@ -523,4 +523,17 @@ public class BaseOrderController extends CommonBaseController implements UserRes ...@@ -523,4 +523,17 @@ public class BaseOrderController extends CommonBaseController implements UserRes
return baseOrderBiz.updateBaseOrder(baseOrder); return baseOrderBiz.updateBaseOrder(baseOrder);
} }
@RequestMapping(value = "/queryByNo", method = RequestMethod.GET)
@ResponseBody
public ObjectRestResponse<BaseOrder> queryByNo(String no) {
BaseOrder baseOrder = new BaseOrder();
baseOrder.setNo(no);
return ObjectRestResponse.succ(baseOrderBiz.selectOne(baseOrder));
}
@RequestMapping(value = "/updateBaseOrder", method = RequestMethod.POST)
@IgnoreClientToken
public void updateBaseOrder(@RequestBody BaseOrder baseOrder) {
baseOrderBiz.updateSelectiveById(baseOrder);
}
} }
...@@ -2,6 +2,7 @@ package com.xxfc.platform.order.rest; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
...@@ -9,6 +10,7 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode; ...@@ -9,6 +10,7 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.biz.OrderDepositRefundRecordBiz; import com.xxfc.platform.order.biz.OrderDepositRefundRecordBiz;
import com.xxfc.platform.order.biz.OrderViolationBiz; import com.xxfc.platform.order.biz.OrderViolationBiz;
import com.xxfc.platform.order.entity.OrderViolation; import com.xxfc.platform.order.entity.OrderViolation;
import com.xxfc.platform.order.service.OrderViolateService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -36,6 +38,9 @@ public class OrderViolationController extends BaseController<OrderViolationBiz, ...@@ -36,6 +38,9 @@ public class OrderViolationController extends BaseController<OrderViolationBiz,
@Autowired @Autowired
OrderDepositRefundRecordBiz orderDepositRefundRecordBiz; OrderDepositRefundRecordBiz orderDepositRefundRecordBiz;
@Autowired
OrderViolateService orderViolateService;
private Long MAX_DRIVING_LICENSE_SIZE = 1024 * 1024 * 50L; private Long MAX_DRIVING_LICENSE_SIZE = 1024 * 1024 * 50L;
...@@ -103,4 +108,11 @@ public class OrderViolationController extends BaseController<OrderViolationBiz, ...@@ -103,4 +108,11 @@ public class OrderViolationController extends BaseController<OrderViolationBiz,
public ResponseEntity<byte[]> downloadViolation(@RequestParam("realFileRelPath") String realFileRelPath) throws Exception { public ResponseEntity<byte[]> downloadViolation(@RequestParam("realFileRelPath") String realFileRelPath) throws Exception {
return baseBiz.downloadViolation(realFileRelPath); return baseBiz.downloadViolation(realFileRelPath);
} }
@GetMapping(value = "/app/unauth/get")
@IgnoreUserToken
public void get() {
orderViolateService.generateData();
}
} }
package com.xxfc.platform.order.service;
import com.alibaba.fastjson.JSONArray;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderVehicleCrosstownBiz;
import com.xxfc.platform.order.biz.OrderViolationBiz;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.entity.OrderVehicleCrosstown;
import com.xxfc.platform.order.entity.OrderViolation;
import com.xxfc.platform.order.mapper.OrderRentVehicleDetailMapper;
import com.xxfc.platform.order.pojo.OrderViolateVo;
import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.dto.VehicleViolateDto;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @ClassName : OrderViolateService
* @Description : 查询订单车辆违章
* @Author : jiaoruizhen
* @Date: 2020-11-19 11:23
*/
@Service
@Slf4j
public class OrderViolateService {
@Autowired
BaseOrderBiz baseOrderBiz;
@Autowired
OrderVehicleCrosstownBiz orderVehicleCrosstownBiz;
@Autowired
ThirdFeign thirdFeign;
@Autowired
OrderRentVehicleDetailMapper orderRentVehicleDetailMapper;
@Autowired
VehicleFeign vehicleFeign;
@Autowired
OrderViolationBiz orderViolationBiz;
//查询所有符合条件的订单,已交车,未扣押金
private List<OrderPageVO> getOrderList() {
Map<String, Object> params = new HashMap<>();
params.put("refundStatus", 2);
params.put("status", 6);
return baseOrderBiz.getRentVehicle(params);
}
//过滤时间,根据还车时间,符合几天后的订单执行查询违章操作
private List<OrderRentVehicleDetail> getAllVehicleCrosstown() {
List<OrderPageVO> orderPageVOList = getOrderList();
List<OrderRentVehicleDetail> orderRentVehicleDetailList = new ArrayList<>();
if (orderPageVOList != null && orderPageVOList.size() > 0) {
List<OrderVehicleCrosstown> arrayList = new ArrayList<>();
List<Integer> orderIdList = orderPageVOList.stream().map(OrderPageVO::getId).collect(Collectors.toList());
List<Integer> time = getTimeList();
if (time != null && time.size() > 0) {
time.parallelStream().forEach(time1-> {
List<OrderVehicleCrosstown> orderVehicleCrosstownList = orderVehicleCrosstownBiz.selectOrderList(orderIdList, 1, time1);
if (orderVehicleCrosstownList != null && orderVehicleCrosstownList.size() > 0) {
arrayList.addAll(orderVehicleCrosstownList);
}
});
} else {
List<OrderVehicleCrosstown> orderVehicleCrosstownList = orderVehicleCrosstownBiz.selectOrderList(orderIdList, 1, 0);
if (orderVehicleCrosstownList != null && orderVehicleCrosstownList.size() > 0) {
arrayList.addAll(orderVehicleCrosstownList);
}
}
List<Integer> idList = arrayList.stream().map(OrderVehicleCrosstown::getOrderId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(idList)) {
Example example = new Example(OrderRentVehicleDetail.class);
example.createCriteria().andIn("orderId", idList);
orderRentVehicleDetailList.addAll(orderRentVehicleDetailMapper.selectByExample(example));
}
}
return orderRentVehicleDetailList;
}
//获取所有车辆信息
private List<Vehicle> getAllVehicleInfo() {
List<OrderRentVehicleDetail> orderRentVehicleDetailList = getAllVehicleCrosstown();
if (CollectionUtils.isNotEmpty(orderRentVehicleDetailList)) {
String idString = orderRentVehicleDetailList.stream().map(OrderRentVehicleDetail::getVehicleId).collect(Collectors.joining(","));
ObjectRestResponse<List<Vehicle>> restResponse = vehicleFeign.getAllVehicleById(idString);
return restResponse.getData();
}
return new ArrayList<>();
}
//获取查询时间列表
private List<Integer> getTimeList() {
Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(DictionaryKey.VEHICLE, DictionaryKey.VEHICLE_VIOLATE_TIME);
if (dictionary != null && StringUtils.isNotBlank(dictionary.getDetail())) {
return JSONArray.parseArray(dictionary.getDetail(), Integer.class);
}
return new ArrayList<>();
}
//讲查询结果存入违章信息表中
@Scheduled(cron = "0 0 1 * * ?")
public void generateData() {
List<Vehicle> vehicleList = getAllVehicleInfo();
List<OrderRentVehicleDetail> orderRentVehicleDetailList = getAllVehicleCrosstown();
List<OrderViolation> orderViolationList = new ArrayList<>();
Map<String, List<OrderRentVehicleDetail>> orderRentVehicleMap = orderRentVehicleDetailList.stream().collect(Collectors.groupingBy(OrderRentVehicleDetail::getVehicleId));
if (vehicleList != null && vehicleList.size() > 0) {
vehicleList.parallelStream().forEach(vehicle -> {
List<OrderRentVehicleDetail> orderRentVehicleDetail = orderRentVehicleMap.get(vehicle.getId());
requestViolate(vehicle, orderRentVehicleDetail, orderViolationList);
});
}
if (orderViolationList.size() > 0) {
orderViolationBiz.batchSave(orderViolationList);
}
}
private void requestViolate(Vehicle vehicle, List<OrderRentVehicleDetail> orderRentVehicleDetailList, List<OrderViolation> orderViolationList) {
ObjectRestResponse response = thirdFeign.getVehicleViolate(new VehicleViolateDto(){{
setNumberPlate(vehicle.getNumberPlate());
setEngineNo(vehicle.getEngineNum());
setClassNo(vehicle.getVin());
}});
if (response.isRel() && response.getData() != null) {
List<OrderViolateVo> list = JSONArray.parseArray(response.getData().toString(), OrderViolateVo.class);
if (list != null) {
list.parallelStream().forEach(orderViolateVo -> {
if (orderRentVehicleDetailList.size() > 0) {
orderRentVehicleDetailList.parallelStream().forEach(orderRentVehicleDetail -> {
OrderViolation orderViolation = new OrderViolation();
orderViolation.setDetailId(orderRentVehicleDetail.getId());
orderViolation.setViolateDate(orderViolateVo.getDate().getTime());
orderViolation.setArea(orderViolateVo.getArea());
orderViolation.setAct(orderViolateVo.getAct());
orderViolation.setPrice(new BigDecimal(orderViolateVo.getMoney()));
orderViolationList.add(orderViolation);
});
}
});
}
}
log.error("违章查询失败: {}", response.getMessage());
}
}
...@@ -69,5 +69,14 @@ ...@@ -69,5 +69,14 @@
where order_no = #{no} and type = #{type} where order_no = #{no} and type = #{type}
</select> </select>
<select id="selectOrderList" resultType="com.xxfc.platform.order.entity.OrderVehicleCrosstown">
select order_id from order_vehicle_crosstown
where order_id in
<foreach collection="orderIdList" item="orderId" index="index" open="(" separator="," close=")">
#{orderId}
</foreach>
and type &gt; #{type}
and ((UNIX_TIMESTAMP(NOW()) - crt_time/1000)/(60*60*24)) > #{time}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -19,4 +19,27 @@ ...@@ -19,4 +19,27 @@
select * from order_violation select * from order_violation
where detail_id = #{detailId} where detail_id = #{detailId}
</select> </select>
<insert id="batchSave" parameterType="list">
insert into order_violation ( price, detail_id, violate_date, area, act, is_del)
VALUES
<foreach collection="list" item="emp" index="index" separator=",">
(
#{emp.price,jdbcType=DECIMAL},
#{emp.detailId,jdbcType=INTEGER},
#{emp.violateDate,jdbcType=BIGINT},
#{emp.area,jdbcType=VARCHAR},
#{emp.act,jdbcType=VARCHAR},
#{emp.isDel,jdbcType=INTEGER}
)
</foreach>
ON DUPLICATE KEY UPDATE
price = values(price),
detail_id = values(detail_id),
violate_date = values(violate_date),
area = values(area),
act = values(act),
is_del = values(is_del)
</insert>
</mapper> </mapper>
\ No newline at end of file
...@@ -78,6 +78,9 @@ public class DictionaryKey { ...@@ -78,6 +78,9 @@ public class DictionaryKey {
public static final String VEHICLE_MANUFACTURER = "VEHICLE_MANUFACTURER"; public static final String VEHICLE_MANUFACTURER = "VEHICLE_MANUFACTURER";
public static final String VEHICLE = "VEHICLE"; public static final String VEHICLE = "VEHICLE";
public static final String VEHICLE_VIOLATE_TIME = "VEHICLE_VIOLATE_TIME";
/** /**
* 支付价格减低 * 支付价格减低
*/ */
......
package com.xxfc.platform.universal.dto;
import lombok.Data;
/**
* @ClassName : VehicleViolateDto
* @Description : 车辆违章查询
* @Author : jiaoruizhen
* @Date: 2020-11-19 10:29
*/
@Data
public class VehicleViolateDto {
//车牌号
String numberPlate;
//发动机号
String engineNo;
//车架号
String classNo;
}
...@@ -3,6 +3,7 @@ package com.xxfc.platform.universal.feign; ...@@ -3,6 +3,7 @@ package com.xxfc.platform.universal.feign;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.universal.dto.SmsTemplateDTO; import com.xxfc.platform.universal.dto.SmsTemplateDTO;
import com.xxfc.platform.universal.dto.VehicleViolateDto;
import com.xxfc.platform.universal.entity.Dictionary; import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.entity.IdInformation; import com.xxfc.platform.universal.entity.IdInformation;
import com.xxfc.platform.universal.entity.vo.InvoiceVo; import com.xxfc.platform.universal.entity.vo.InvoiceVo;
...@@ -52,6 +53,9 @@ public interface ThirdFeign { ...@@ -52,6 +53,9 @@ public interface ThirdFeign {
@PostMapping("/trafficViolations") @PostMapping("/trafficViolations")
ObjectRestResponse queryTrafficViolations(@RequestBody TrafficViolations trafficViolations) ; ObjectRestResponse queryTrafficViolations(@RequestBody TrafficViolations trafficViolations) ;
@PostMapping(value = "/violate/get")
public ObjectRestResponse getVehicleViolate(@RequestBody VehicleViolateDto vehicleViolateDto);
/** /**
* 车辆类型查询 * 车辆类型查询
* @return * @return
......
package com.xxfc.platform.universal.controller;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.universal.dto.VehicleViolateDto;
import com.xxfc.platform.universal.service.VehicleViolateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName : VehicleViolateController
* @Description : 车辆违章查询
* @Author : jiaoruizhen
* @Date: 2020-11-19 11:14
*/
@RestController
@RequestMapping(value = "/violate")
public class VehicleViolateController {
@Autowired
VehicleViolateService vehicleViolateService;
@PostMapping(value = "get")
public ObjectRestResponse getVehicleViolate(@RequestBody VehicleViolateDto vehicleViolateDto) {
return vehicleViolateService.getRequest2(vehicleViolateDto);
}
}
package com.xxfc.platform.universal.service;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.SystemConfig;
import com.xxfc.platform.universal.dto.VehicleViolateDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
/**
* @ClassName : VehicleViolateService
* @Description : 车辆违章服务查询
* @Author : jiaoruizhen
* @Date: 2020-11-18 10:38
*/
@Service
@Slf4j
public class VehicleViolateService {
public static final String DEF_CHATSET = "UTF-8";
public static final int DEF_CONN_TIMEOUT = 30000;
public static final int DEF_READ_TIMEOUT = 30000;
public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
//1.获取支持城市参数接口
public void getRequest1() {
String result = null;
String url = "http://v.juhe.cn/wz/citys";//请求接口地址
Map params = new HashMap();//请求参数
params.put("key", SystemConfig.VEHICLE_VIOLATE_KEY);//你申请的key
try {
result = net(url, params, "GET");
JSONObject object = JSONObject.parseObject(result);
if (object.getInteger("error_code") == 0) {
System.out.println(object.get("result"));
} else {
System.out.println(object.get("error_code") + ":" + object.get("reason"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
//2.请求违章查询接口
public ObjectRestResponse getRequest2(VehicleViolateDto vehicleViolateDto) {
//
ObjectRestResponse<Integer> response = getRequest3();
if (response.isRel() && (response.getData() == null || response.getData() <= 0)) {
return response;
}
String result = null;
String url = "http://v.juhe.cn/wz/query";//请求接口地址
Map params = new HashMap();//请求参数
params.put("dtype", "json");//返回数据格式:json或xml或jsonp,默认json
params.put("key", SystemConfig.VEHICLE_VIOLATE_KEY);//你申请的key
params.put("hphm", vehicleViolateDto.getNumberPlate());//号牌号码 完整7位 ,需要utf8 urlencode*
params.put("hpzl", "02");//号牌类型,默认02
params.put("engineno", vehicleViolateDto.getEngineNo());//发动机号 (根据城市接口中的参数填写)
params.put("classno", vehicleViolateDto.getClassNo());//车架号 (根据城市接口中的参数填写)
try {
result = net(url, params, "GET");
log.info("查询违章记录:请求--> {}, 响应--> {}", vehicleViolateDto, result);
JSONObject object = JSONObject.parseObject(result);
if (object.getInteger("error_code") == 0) {
JSONObject resultObj = object.getJSONObject("result");
return ObjectRestResponse.succ(resultObj.getString("lists"));
} else {
return ObjectRestResponse.createFailedResult(500, object.getString("reason"));
}
} catch (Exception e) {
log.error("{}", e);
}
return ObjectRestResponse.createDefaultFail();
}
//3.接口剩余请求次数查询
public ObjectRestResponse<Integer> getRequest3() {
String result = null;
String url = "http://v.juhe.cn/wz/status";//请求接口地址
Map params = new HashMap();//请求参数
params.put("key", SystemConfig.VEHICLE_VIOLATE_KEY);//应用APPKEY(应用详细页查询)
params.put("dtype", "json");//返回数据的格式,xml或json,默认json
try {
result = net(url, params, "GET");
JSONObject object = JSONObject.parseObject(result);
if (object.getInteger("error_code") == 0) {
JSONObject jsonObject = object.getJSONObject("result");
if (jsonObject != null) {
return ObjectRestResponse.succ(jsonObject.getInteger("surplus"));
} else {
return ObjectRestResponse.createFailedResult(500, "查询次数不存在");
}
} else {
return ObjectRestResponse.createFailedResult(500, object.getString("reason"));
}
} catch (Exception e) {
log.error("{}", e);
}
return ObjectRestResponse.createDefaultFail();
}
/**
* @param strUrl 请求地址
* @param params 请求参数
* @param method 请求方法
* @return 网络请求字符串
* @throws Exception
*/
public static String net(String strUrl, Map params, String method) throws Exception {
HttpURLConnection conn = null;
BufferedReader reader = null;
String rs = null;
try {
StringBuffer sb = new StringBuffer();
if (method == null || method.equals("GET")) {
strUrl = strUrl + "?" + urlencode(params);
}
URL url = new URL(strUrl);
conn = (HttpURLConnection) url.openConnection();
if (method == null || method.equals("GET")) {
conn.setRequestMethod("GET");
} else {
conn.setRequestMethod("POST");
conn.setDoOutput(true);
}
conn.setRequestProperty("User-agent", userAgent);
conn.setUseCaches(false);
conn.setConnectTimeout(DEF_CONN_TIMEOUT);
conn.setReadTimeout(DEF_READ_TIMEOUT);
conn.setInstanceFollowRedirects(false);
conn.connect();
if (params != null && method.equals("POST")) {
try {
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes(urlencode(params));
} catch (Exception e) {
// TODO: handle exception
}
}
InputStream is = conn.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sb.append(strRead);
}
rs = sb.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
reader.close();
}
if (conn != null) {
conn.disconnect();
}
}
return rs;
}
//将map型转为请求参数型
public static String urlencode(Map<String, Object> data) {
StringBuilder sb = new StringBuilder();
for (Map.Entry i : data.entrySet()) {
try {
sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue() + "", "UTF-8")).append("&");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}
...@@ -13,7 +13,9 @@ import org.springframework.cloud.openfeign.FeignClient; ...@@ -13,7 +13,9 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.*; import java.util.List;
import java.util.Map;
import java.util.Set;
/** /**
* Created by ace on 2017/9/15. * Created by ace on 2017/9/15.
...@@ -35,6 +37,9 @@ public interface VehicleFeign { ...@@ -35,6 +37,9 @@ public interface VehicleFeign {
@RequestMapping(value = "/vehicleInfo/getByIds", method = RequestMethod.GET) @RequestMapping(value = "/vehicleInfo/getByIds", method = RequestMethod.GET)
public RestResponse<List<Vehicle>> getByIds(@RequestParam(value = "ids") List<String> id); public RestResponse<List<Vehicle>> getByIds(@RequestParam(value = "ids") List<String> id);
@GetMapping(value = "/vehicleInfo/app/unauth/getAllVehicleById")
public ObjectRestResponse<List<Vehicle>> getAllVehicleById(@RequestParam(value = "vehicleFindAppDTO") String vehicleFindAppDTO);
//提车 //提车
@PostMapping("/backstage/vehicle/unauth/app/updVehicleFeign") @PostMapping("/backstage/vehicle/unauth/app/updVehicleFeign")
public ObjectRestResponse updVehicleFeign(@RequestBody Vehicle vehicle); public ObjectRestResponse updVehicleFeign(@RequestBody Vehicle vehicle);
......
...@@ -59,4 +59,6 @@ public class VehicleFindDTO extends PageParam implements DataInter { ...@@ -59,4 +59,6 @@ public class VehicleFindDTO extends PageParam implements DataInter {
@ApiModelProperty("店铺状态:1-上架中;2-下架中;3-已调出") @ApiModelProperty("店铺状态:1-上架中;2-下架中;3-已调出")
private Integer goodStatus; private Integer goodStatus;
private List<String> vehicleIdList;
} }
...@@ -1787,6 +1787,12 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1787,6 +1787,12 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
} }
public ObjectRestResponse<List<Vehicle>> getAllVehicleById(String vehicleFindAppDTO) {
Example example = new Example(Vehicle.class);
example.createCriteria().andIn("id", Arrays.asList(vehicleFindAppDTO.split(",")));
return ObjectRestResponse.succ(mapper.selectByExample(example));
}
public Long countByCompanyId(Integer companyId){ public Long countByCompanyId(Integer companyId){
return mapper.countByCompamyId(companyId); return mapper.countByCompamyId(companyId);
......
...@@ -3,7 +3,6 @@ package com.xxfc.platform.vehicle.rest; ...@@ -3,7 +3,6 @@ package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONException;
...@@ -17,7 +16,6 @@ import com.github.wxiaoqi.security.common.context.BaseContextHandler; ...@@ -17,7 +16,6 @@ import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.xxfc.platform.vehicle.biz.*; import com.xxfc.platform.vehicle.biz.*;
import com.xxfc.platform.vehicle.common.BaseController; import com.xxfc.platform.vehicle.common.BaseController;
...@@ -715,6 +713,12 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -715,6 +713,12 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
return ObjectRestResponse.succ(baseBiz.appSelectList(vehicleFindAppDTO)); return ObjectRestResponse.succ(baseBiz.appSelectList(vehicleFindAppDTO));
} }
@GetMapping(value = "/app/unauth/getAllVehicleById")
@IgnoreUserToken
public ObjectRestResponse<List<Vehicle>> getAllVehicleById(@RequestParam("vehicleFindAppDTO") String vehicleFindAppDTO) {
return baseBiz.getAllVehicleById(vehicleFindAppDTO);
}
@Data @Data
static public class VehicleVO extends Vehicle { static public class VehicleVO extends Vehicle {
private VehicleModel vehicleModel; private VehicleModel vehicleModel;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment