Commit cc79e000 authored by 周健威's avatar 周健威

Merge remote-tracking branch 'origin/base-modify' into base-modify

parents 879723f8 46ce7753
......@@ -12,7 +12,6 @@ import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.SignatureException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
......@@ -50,7 +49,6 @@ public class ServiceAuthUtil{
@Scheduled(cron = "0/30 * * * * ?")
public void refreshAllowedClient() {
log.debug("refresh allowedClient.....");
BaseResponse resp = serviceAuthFeign.getAllowedClient(serviceAuthConfig.getClientId(), serviceAuthConfig.getClientSecret());
if (resp.getStatus() == 200) {
ObjectRestResponse<List<String>> allowedClient = (ObjectRestResponse<List<String>>) resp;
......
......@@ -9,11 +9,12 @@ import com.ace.cache.constants.CacheScope;
import com.ace.cache.parser.IKeyGenerator;
import com.ace.cache.parser.IUserKeyGenerator;
import com.ace.cache.utils.ReflectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class DefaultKeyGenerator extends IKeyGenerator {
......
......@@ -25,7 +25,7 @@ public class GlobalBasicConfiguration implements ApplicationRunner{
showApplicationProperties("Redis连接端口: ", "spring.redis.port");
showApplicationProperties("rabbitmq连接主机", "spring.rabbitmq.host");
showApplicationProperties("rabbitmq连接虚拟机", "spring.rabbitmq.virtual-host");
}
}
public static void showApplicationProperties(String key, String value) {
if(env != null) {
......
......@@ -20,17 +20,17 @@ public class HeaderConfig implements RequestInterceptor {
@Override
public void apply(RequestTemplate template) {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
if (requestAttributes instanceof ServletRequestAttributes){
if (requestAttributes instanceof ServletRequestAttributes) {
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
HttpServletRequest request = servletRequestAttributes.getRequest();
//请求头设置
Enumeration<String> headerNames = request.getHeaderNames();
if (headerNames!=null){
while (headerNames.hasMoreElements()){
if (headerNames != null) {
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
String headerValue = request.getHeader(headerName);
if("Authorization".equals(headerName)) {
template.header(headerName,headerValue);
if ("Authorization".equals(headerName) || "authorization".equals(headerName)) {
template.header("Authorization", headerValue);
}
}
}
......
......@@ -64,15 +64,15 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
IntegralRule oldValue = ruleObjectRestResponse.getData();
if (integralUserRecord.getPoint() == null) {
Integer point = 0;
if(oldValue.getPoint() == 0) {//没有基础分需要计算分数
if (oldValue.getPoint() == 0) {//没有基础分需要计算分数
//Integer amount = Integer.parseInt(new BigDecimal(integralUserRecord.getAmount()).divide(new BigDecimal("100"), 0, BigDecimal.ROUND_DOWN).toString());
Integer amount = Integer.parseInt(integralUserRecord.getAmount());
JSONObject jsonObject = JSONObject.parseObject(oldValue.getOtherRule());
log.info("查询的其他规则json信息:jsonObject = {}", jsonObject);
if(jsonObject == null) {
if (jsonObject == null) {
point = ruleObjectRestResponse.getData().getPoint();
} else {
point = jsonObject.getInteger("rule") == null? 0 * amount: jsonObject.getInteger("rule") * amount;
point = jsonObject.getInteger("rule") == null ? 0 * amount : jsonObject.getInteger("rule") * amount;
}
} else {
......@@ -101,7 +101,7 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
}
}
insertSelective(integralUserRecord.getIntegralUserRecord());
if(oldValue != null) {
if (oldValue != null) {
getUserRecordStatus(integralUserRecord, oldValue.getPeriod(), oldValue.getNumber());
}
return ObjectRestResponse.succ();
......@@ -160,9 +160,9 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
}
/**
* //判断用户获取积分是否达标
*
* @param integralUserRecordDto 积分记录实体
* @param period 周期
* number 周期内可获得积分的次数
......@@ -172,7 +172,7 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
IntegralUserStatus integralUserStatus = new IntegralUserStatus();
integralUserStatus.setUserId(integralUserRecordDto.getUserId());
integralUserStatus.setIntegralRuleCode(integralUserRecordDto.getIntegralRuleCode());
if(period == IntegralRulePeriod.DAY.getCode()) {//按天
if (period == IntegralRulePeriod.DAY.getCode()) {//按天
integralUserRecordDto.setStartTime(IntegralToolsUtils.getDayStart());
integralUserRecordDto.setEndTime(IntegralToolsUtils.getDayStart() + 24 * 60 * 60 * 1000);
Integer count = mapper.countByUserAndCode(integralUserRecordDto);
......
package com.xxfc.platform.order.contant.enumerate;
import java.util.HashMap;
import java.util.Map;
public enum DepositRefundStatus {
INITIATEREFUND(1,"发起退还"),
REFUNDARRIVAL(2,"退还到账"),
VIOLATIONARRIVAL (3,"违章到账"),
FIXLOSS(4,"定损中"),
FIXLOSSREFUND(5,"定损押金退还"),
FIXLOSSREFUNDARRIVAL(6,"定损押金已到账"),
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
DepositRefundStatus(Integer code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
}
package com.xxfc.platform.order.entity;
import lombok.Data;
import javax.persistence.*;
import java.math.BigDecimal;
@Table(name = "deposit_refund_record")
@Data
public class DepositRefundRecord {
@Id
private Integer id;
/**
* 定损状态:1、押金退还已经发起,2、押金退还已到账,3、违章押金已到账,4、定损中,5、完成定损退还剩余押金,6、剩余押金退还到账,
*/
private Integer status;
/**
* 创建时间
*/
@Column(name = "crt_time")
private Long crtTime;
/**
* 更新时间
*/
@Column(name = "upd_time")
private Long updTime;
/**
* 交还车记录ID
*/
@Column(name = "crosstown_id")
private Integer crosstownId;
/**
* 退换押金
*/
private BigDecimal amount;
/**
* 剩余押金
*/
private BigDecimal restAmount;
/**
* 总共押金
*/
private BigDecimal totalAmount;
/**
* 是否显示
*/
private Boolean isshow;
/**
* 是否完成
*/
private Boolean iscomplete;
/**
* 违章记录
*/
@Transient
OrderViolation orderViolation;
@Transient
Long rentDepositAutoRefundTime;
}
\ No newline at end of file
......@@ -106,7 +106,7 @@ public class OrderVehicleCrosstown {
private String dedDetail;
/**
* 1、交车, 2、还车
* 1、交车, 2、还车, 3、定损还车
*/
private Integer type;
......
package com.xxfc.platform.order.pojo;
public class DepositeRefundRecordVo {
}
......@@ -6,7 +6,6 @@ import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@Data
public class OrderPageVO extends BaseOrder {
......@@ -26,6 +25,11 @@ public class OrderPageVO extends BaseOrder {
*/
private String username;
/**
* 是否是用户匹配公司
*/
private boolean userCompanyStatus = false;
/**
* 车牌
*/
......
package com.xxfc.platform.order.pojo.order;
import com.xxfc.platform.order.entity.DepositRefundRecord;
import com.xxfc.platform.order.entity.OrderVehicleCrosstown;
import lombok.Data;
import java.util.List;
@Data
public class OrderVehicleCrosstownDto extends OrderVehicleCrosstown {
String userLicenses;
......@@ -30,4 +33,5 @@ public class OrderVehicleCrosstownDto extends OrderVehicleCrosstown {
private String username;
List<DepositRefundRecord> depositRefundRecord;
}
package com.xxfc.platform.order.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.contant.enumerate.CrosstownTypeEnum;
import com.xxfc.platform.order.contant.enumerate.DepositRefundStatus;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.mapper.DepositRefundRecordMapper;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service
@Slf4j
public class OrderDepositRefundRecordBiz extends BaseBiz<DepositRefundRecordMapper, DepositRefundRecord> {
@Autowired
ThirdFeign thirdFeign;
@Autowired
BaseOrderBiz baseOrderBiz;
@Autowired
OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
OrderVehicleCrosstownBiz orderVehicleCrosstownBiz;
@Autowired
OrderViolationBiz orderViolationBiz;
/**
* 添加正常记录
*/
@Transactional
public void saveNormalRecord(DepositRefundRecord depositRefundRecord) {
depositRefundRecord.setStatus(DepositRefundStatus.INITIATEREFUND.getCode());
depositRefundRecord.setIscomplete(true);
insertSelectiveRe(depositRefundRecord);
depositRefundRecord.setStatus(DepositRefundStatus.REFUNDARRIVAL.getCode());
depositRefundRecord.setIscomplete(false);
insertSelectiveRe(depositRefundRecord);
depositRefundRecord.setStatus(DepositRefundStatus.VIOLATIONARRIVAL.getCode());
depositRefundRecord.setRestAmount(getAmount());
insertSelectiveRe(depositRefundRecord);
}
/**
* 添加定损记录
* @param depositRefundRecord
*/
@Transactional
public void saveFixLossRecord(DepositRefundRecord depositRefundRecord) {
depositRefundRecord.setStatus(DepositRefundStatus.FIXLOSS.getCode());
depositRefundRecord.setIscomplete(true);
insertSelectiveRe(depositRefundRecord);
depositRefundRecord.setIscomplete(false);
depositRefundRecord.setStatus(DepositRefundStatus.FIXLOSSREFUND.getCode());
insertSelectiveRe(depositRefundRecord);
depositRefundRecord.setStatus(DepositRefundStatus.FIXLOSSREFUNDARRIVAL.getCode());
insertSelectiveRe(depositRefundRecord);
depositRefundRecord.setStatus(DepositRefundStatus.VIOLATIONARRIVAL.getCode());
depositRefundRecord.setRestAmount(getAmount());
insertSelectiveRe(depositRefundRecord);
}
public DepositRefundRecord findByCrossIdAndStatus(Integer crossId, Integer status) {
Map<String, Object> map = new HashMap<>();
map.put("crossId", crossId);
map.put("status", status);
return mapper.findByCrossIdAndStatus(map);
}
public List<DepositRefundRecord> selectByCrossId(Integer cross) {
List<DepositRefundRecord> list = mapper.selectByCrossId(cross);
for(DepositRefundRecord depositRefundRecord : list) {
if(depositRefundRecord.getIscomplete() == true && depositRefundRecord.getStatus() == DepositRefundStatus.VIOLATIONARRIVAL.getCode()) {//查询违章记录
OrderVehicleCrosstown orderVehicleCrosstown = orderVehicleCrosstownBiz.selectById(depositRefundRecord.getCrosstownId());
if(orderVehicleCrosstown != null) {
BaseOrder baseOrder = baseOrderBiz.selectById(orderVehicleCrosstown.getOrderId());
if(baseOrder != null) {
OrderViolation orderViolation = orderViolationBiz.getOneByDetailId(baseOrder.getDetailId());
depositRefundRecord.setOrderViolation(orderViolation);
}
}
}
if(depositRefundRecord.getStatus() == DepositRefundStatus.VIOLATIONARRIVAL.getCode()) {
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
Integer rentDepositAutoRefundTime = new Integer(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail());
depositRefundRecord.setRentDepositAutoRefundTime(depositRefundRecord.getCrtTime() + (rentDepositAutoRefundTime == null?0:rentDepositAutoRefundTime*60*60*1000));
}
}
return list;
}
public void saveViolationDeposit(OrderViolation orderViolation) {
log.info("添加违章押金记录:orderViolation = {}", orderViolation.toString());
String logInfo = "";
OrderRentVehicleDetail orderRentVehicleDetail = orderRentVehicleBiz.selectById(orderViolation.getDetailId());
if(orderRentVehicleDetail != null) {
OrderVehicleCrosstownDto orderVehicleCrosstown = new OrderVehicleCrosstownDto();
orderVehicleCrosstown.setOrderId(orderRentVehicleDetail.getOrderId());
orderVehicleCrosstown.setType(CrosstownTypeEnum.ARRIVE.getCode());
OrderVehicleCrosstownDto orderVehicleCrosstownDto = orderVehicleCrosstownBiz.getByOrderId(orderVehicleCrosstown);
if(orderVehicleCrosstownDto != null) {
insertDeposit(orderVehicleCrosstownDto, orderViolation, logInfo);
} else {
orderVehicleCrosstown.setType(CrosstownTypeEnum.FIXED_LOSS.getCode());
OrderVehicleCrosstownDto depositCross = orderVehicleCrosstownBiz.getByOrderId(orderVehicleCrosstown);
insertDeposit(depositCross, orderViolation, logInfo);
logInfo = "还车记录不存在";
}
} else {
logInfo = "订单详情不存在";
}
log.info("添加违章押金记录失败:" + logInfo);
}
public BigDecimal getAmount() {
//设置保留金
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER + "_" + DictionaryKey.ILLEGAL_RESERVE).getDetail());
return illegalReserve;
}
public void insertDeposit(OrderVehicleCrosstownDto orderVehicleCrosstownDto, OrderViolation orderViolation, String logInfo) {
DepositRefundRecord depositRefundRecord = findByCrossIdAndStatus(orderVehicleCrosstownDto.getId(), DepositRefundStatus.VIOLATIONARRIVAL.getCode());
if(depositRefundRecord != null) {
DepositRefundRecord newValue = new DepositRefundRecord();
BeanUtil.copyProperties(depositRefundRecord, newValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
newValue.setAmount(orderViolation.getPrice());
newValue.setRestAmount(depositRefundRecord.getTotalAmount().subtract(orderViolation.getPrice()));//减去违章金之后的押金
newValue.setIscomplete(true);
newValue.setId(null);
insertSelectiveRe(newValue);
depositRefundRecord.setIsshow(false);
updateSelectiveByIdRe(depositRefundRecord);
} else {
logInfo = "押金记录不存在";
}
}
}
......@@ -50,7 +50,7 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
OrderVehicalCrosstownBiz crosstownBiz;
OrderVehicleCrosstownBiz crosstownBiz;
@Autowired
OrderViolationBiz orderViolationBiz;
......
......@@ -28,11 +28,11 @@ public class OrderUserLicenseBiz extends BaseBiz<OrderUserLicenseMapper, OrderUs
}
OrderUserLicense oldValue = mapper.selectByLicenseIdCard(orderUserLicense.getLicenseIdCard());
if(oldValue == null) {
mapper.insertSelective(orderUserLicense);
insertSelective(orderUserLicense);
return ObjectRestResponse.succ(mapper.selectByLicenseIdCard(orderUserLicense.getLicenseIdCard()));
}
BeanUtil.copyProperties(orderUserLicense, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
mapper.updateByPrimaryKeySelective(oldValue);
updateSelectiveByIdRe(oldValue);
return ObjectRestResponse.succ(mapper.selectByLicenseIdCard(oldValue.getLicenseIdCard()));
}
......
......@@ -7,7 +7,6 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.entity.OrderViolation;
import com.xxfc.platform.order.mapper.OrderRentVehicleDetailMapper;
import com.xxfc.platform.order.mapper.OrderViolationMapper;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.RedisKey;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
......@@ -24,14 +23,15 @@ import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import tk.mybatis.mapper.common.Mapper;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**订单违章记录biz
/**
* 订单违章记录biz
*
* @author Administrator
*/
@Service
......@@ -47,8 +47,10 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat
@Autowired
private RedisTemplate redisTemplate;
/**
* 保存违章记录
*
* @param orderViolation
*/
@Transactional(rollbackFor = Exception.class)
......@@ -59,10 +61,10 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat
Map<String, Object> status = mapper.getOrderAndVehicleStatus(orderViolation.getDetailId());
Integer orderStatus = (Integer) status.get("status");
Integer refundStatus = (Integer) status.get("refundStatus");
if (orderStatus>=6||(refundStatus<=2&&refundStatus!=1)) {
mapper.insertSelective(orderViolation);
if (orderStatus >= 6 || (refundStatus <= 2 && refundStatus != 1)) {
insertSelective(orderViolation);
detailMapper.updateByPrimaryKeySelective(orderRentVehicleDetail);
}else {
} else {
throw new BaseException("The operation cannot be changed at this time");
}
......@@ -70,6 +72,7 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat
/**
* 修改违章记录
*
* @param orderViolation
*/
@Transactional(rollbackFor = Exception.class)
......@@ -77,9 +80,9 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat
Map<String, Object> status = mapper.getOrderAndVehicleStatus(orderViolation.getDetailId());
Integer orderStatus = (Integer) status.get("status");
Integer refundStatus = (Integer) status.get("refundStatus");
if (orderStatus>=6||(refundStatus<=2&&refundStatus!=1)) {
mapper.updateByPrimaryKeySelective(orderViolation);
}else {
if (orderStatus >= 6 || (refundStatus <= 2 && refundStatus != 1)) {
updateSelectiveByIdRe(orderViolation);
} else {
throw new BaseException("The operation cannot be changed at this time");
}
......@@ -90,11 +93,11 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat
String dirPathToday = File.separator + now.toString(DEFAULT_DATE_TIME_FORMATTER);
String redisNoKey = RedisKey.UPLOAD_FILE_NO_PREFIX + now.toString(DEFAULT_DATE_TIME_FORMATTER);
Long no = redisTemplate.opsForValue().increment(redisNoKey);
if(no.equals(1L)){
redisTemplate.expire(redisNoKey,1, TimeUnit.DAYS);
if (no.equals(1L)) {
redisTemplate.expire(redisNoKey, 1, TimeUnit.DAYS);
}
String fileName = file.getOriginalFilename();
String realFileRelPath = dirPathToday + File.separator+no+fileName.substring(fileName.lastIndexOf("."));
String realFileRelPath = dirPathToday + File.separator + no + fileName.substring(fileName.lastIndexOf("."));
String filePath = ovUpload + realFileRelPath;
......@@ -105,18 +108,26 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat
/**
* 下载行驶证图片
*
* @param realFileRelPath
* @return
* @throws Exception
*/
public ResponseEntity<byte[]> downloadViolation(String realFileRelPath) throws Exception{
public ResponseEntity<byte[]> downloadViolation(String realFileRelPath) throws Exception {
String filePath = ovUpload + realFileRelPath;
File file = new File(filePath);//新建一个文件
HttpHeaders headers = new HttpHeaders();//http头信息
String downloadFileName = new String(file.getName());//设置编码
headers.setContentDispositionFormData("attachment", downloadFileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
}
/**
* 根据订单详情查询违章记录
*/
public OrderViolation getOneByDetailId(Integer detailId) {
return mapper.getOneByDetailId(detailId);
}
}
......@@ -44,7 +44,7 @@ public class FeignHeadConfiguration {
log.debug("添加自定义请求头key:" + name + ",value:" + value);
requestTemplate.header(name, value);
} else {
log.debug("FeignHeadConfiguration", "非自定义请求头key:" + name + ",value:" + value + "不需要添加!");
//log.debug("FeignHeadConfiguration", "非自定义请求头key:" + name + ",value:" + value + "不需要添加!");
}
}
} else {
......
......@@ -57,7 +57,8 @@ public class WebConfiguration implements WebMvcConfigurer {
"/baseOrder/**",
"/orderTour/**",
"/orderMember/**",
"/orderRefund/**"
"/orderRefund/**",
"/orderVehicle/**"
};
Collections.addAll(list, urls);
return list;
......
package com.xxfc.platform.order.jobhandler;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.common.util.IntervalUtil;
import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.biz.inner.OrderMsgBiz;
import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.contant.enumerate.RefundStatusEnum;
import com.xxfc.platform.order.contant.enumerate.RefundTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder;
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.pojo.DedDetailDTO;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
......@@ -48,7 +47,7 @@ public class RentDepositJobHandler extends IJobHandler {
OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
OrderVehicalCrosstownBiz crosstownBiz;
OrderVehicleCrosstownBiz crosstownBiz;
@Autowired
OrderViolationBiz orderViolationBiz;
......
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.DepositRefundRecord;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map;
public interface DepositRefundRecordMapper extends Mapper<DepositRefundRecord> {
DepositRefundRecord findByCrossIdAndStatus(Map<String, Object> map);
List<DepositRefundRecord> selectByCrossId(Integer crossId);
}
\ No newline at end of file
......@@ -5,9 +5,10 @@ import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map;
public interface OrderVehicaleCrosstownMapper extends Mapper<OrderVehicleCrosstown> {
List<OrderVehicleCrosstownDto> selectByOrderId(OrderVehicleCrosstownDto orderVehicleCrosstownDto);
OrderVehicleCrosstownDto selectByOrderNo(Map<String, Object> map);
}
\ No newline at end of file
......@@ -12,4 +12,6 @@ import java.util.Map;
public interface OrderViolationMapper extends Mapper<OrderViolation> {
Map<String,Object> getOrderAndVehicleStatus(@Param("vId") Integer detailId);
OrderViolation getOneByDetailId(Integer detailId);
}
......@@ -139,7 +139,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
if (startResponse.getData() != null) {
orderPageVO.setStartCompanyName(startResponse.getData().getName());
}
List<Integer> tourUserIds = Arrays.asList(orderPageVO.getOrderTourDetail().getTourUserIds().split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
List<Integer> tourUserIds = Arrays.asList(orderPageVO.getOrderTourDetail().getTourUserIds().split(",")).parallelStream().map(s -> Integer.valueOf(s.trim())).collect(Collectors.toList());
ObjectRestResponse<List<AppUserVo>> users = userFeign.getByUserIds(tourUserIds);
if (users.getData() != null) {
orderPageVO.getOrderTourDetail().setUserVoList(users.getData() == null? users.getData() : new ArrayList<>());
......@@ -157,7 +157,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
@ApiOperation(value = "交还车租车订单列表")
@IgnoreClientToken
public ObjectRestResponse<List<OrderPageVO>> getVehicleList(BaseOrderController.QueryOrderList dto) {
log.info("请求参数:dto = {}", dto);
log.info("交还车租车订单列表请求参数:dto = {}", dto);
if (dto.getStartTime() != null) {
if (dto.getEndTime() == null) {
dto.setEndTime(new Date().getTime());
......@@ -199,10 +199,14 @@ public class BackStageOrderController extends CommonBaseController implements Us
@IgnoreClientToken
@ResponseBody
public ObjectRestResponse<OrderPageVO> getOrderDetail(String orderNo) {
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.succ(new PageDataVO<>());
}
if (StringUtils.isBlank(orderNo)) {
return ObjectRestResponse.paramIsEmpty();
}
return baseOrderBiz.getOrderDetail(orderNo);
return baseOrderBiz.getOrderDetail(orderNo, userDTO);
}
......
......@@ -3,11 +3,9 @@ package com.xxfc.platform.order.rest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
......@@ -18,25 +16,26 @@ import com.github.wxiaoqi.security.common.util.ClientUtil;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderItemBiz;
import com.xxfc.platform.order.biz.OrderMemberDetailBiz;
import com.xxfc.platform.order.biz.OrderUserLicenseBiz;
import com.xxfc.platform.order.biz.inner.OrderCancelBiz;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.OrderUserLicense;
import com.xxfc.platform.order.mqhandler.RabbitProduct;
import com.xxfc.platform.order.pojo.order.*;
import com.xxfc.platform.order.pojo.order.CancelOrderDTO;
import com.xxfc.platform.order.pojo.order.OrderAboutParamDTO;
import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.order.QueryOrderDTO;
import com.xxfc.platform.order.pojo.pay.NotifyUrlDTO;
import com.xxfc.platform.order.pojo.pay.OrderPayDTO;
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.vo.OrderPayVo;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
......@@ -53,8 +52,8 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import java.util.List;
import java.util.Map;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
......@@ -74,9 +73,6 @@ public class BaseOrderController extends CommonBaseController implements UserRes
@Autowired
OrderUserLicenseBiz orderUserLicenseBiz;
@Autowired
OrderVehicalCrosstownBiz orderVehicalCrosstownBiz;
@Autowired
OrderCancelBiz orderCancelBiz;
......
......@@ -3,14 +3,13 @@ package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderUserLicenseBiz;
import com.xxfc.platform.order.biz.OrderVehicalCrosstownBiz;
import com.xxfc.platform.order.biz.OrderVehicleCrosstownBiz;
import com.xxfc.platform.order.entity.OrderVehicleCrosstown;
import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -22,7 +21,7 @@ import java.util.List;
public class OrderVehicleCrosstownController {
@Autowired
OrderVehicalCrosstownBiz orderVehicalCrosstownBiz;
OrderVehicleCrosstownBiz orderVehicleCrosstownBiz;
@Autowired
OrderUserLicenseBiz orderUserLicenseBiz;
......@@ -32,16 +31,15 @@ public class OrderVehicleCrosstownController {
@PostMapping(value = "/add")
@ApiOperation(value = "添加交还车记录")
@Transactional
public ObjectRestResponse<OrderVehicleCrosstownDto> add(@RequestBody OrderVehicleCrosstownDto orderVehicleCrosstownDto) {
return orderVehicalCrosstownBiz.add(orderVehicleCrosstownDto);
return orderVehicleCrosstownBiz.add(orderVehicleCrosstownDto);
}
@GetMapping(value = "/{id}")
@ApiOperation(value = "查询记录信息")
public ObjectRestResponse<OrderVehicleCrosstown> get(@PathVariable Integer id) {
return ObjectRestResponse.succ(orderVehicalCrosstownBiz.get(id));
return ObjectRestResponse.succ(orderVehicleCrosstownBiz.get(id));
}
@GetMapping(value = "/getByOrderId")
......@@ -50,6 +48,15 @@ public class OrderVehicleCrosstownController {
if (orderVehicleCrosstownDto == null) {
return ObjectRestResponse.createFailedResult(500, "参数orderId为空");
}
return ObjectRestResponse.succ(orderVehicalCrosstownBiz.selectByOrderId(orderVehicleCrosstownDto));
return ObjectRestResponse.succ(orderVehicleCrosstownBiz.selectByOrderId(orderVehicleCrosstownDto));
}
@GetMapping(value = "/getByOrderNo")
@ApiOperation(value = "根据订单号返回交车和押金记录")
public ObjectRestResponse getByOrderNo(String no) {
if (no == null) {
return ObjectRestResponse.createFailedResult(500, "参数orderId为空");
}
return ObjectRestResponse.succ(orderVehicleCrosstownBiz.selectByOrderNo(no));
}
}
......@@ -3,12 +3,15 @@ package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.biz.OrderDepositRefundRecordBiz;
import com.xxfc.platform.order.biz.OrderViolationBiz;
import com.xxfc.platform.order.entity.OrderViolation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.util.Assert;
......@@ -19,7 +22,6 @@ import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.servlet.http.HttpServletRequest;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;
/**
......@@ -29,25 +31,21 @@ import java.util.List;
*/
@RestController
@RequestMapping("orderViolation")
public class OrderViolationController extends BaseController<OrderViolationBiz, OrderViolation> {
@Slf4j
public class OrderViolationController extends BaseController<OrderViolationBiz, OrderViolation> implements UserRestInterface {
@Autowired
private UserFeign userFeign;
@Autowired
OrderDepositRefundRecordBiz orderDepositRefundRecordBiz;
@Override
public UserFeign getUserFeign() {
return userFeign;
}
private Long MAX_DRIVING_LICENSE_SIZE = 1024 * 1024 * 50L;
private final String FILE_TYPE="JPG";
/**
* 获取操作用户信息
*/
private UserDTO getUserDTO() {
ObjectRestResponse<UserDTO> orrUserDTO = userFeign.userinfoByToken(request.getHeader("Authorization"));
if (orrUserDTO == null || orrUserDTO.getData() == null || orrUserDTO.getData().getId() == null) {
throw new BaseException("This user does not exist");
}
UserDTO userDTOD = orrUserDTO.getData();
return userDTOD;
}
/**
* 保存违章记录
......@@ -58,9 +56,8 @@ public class OrderViolationController extends BaseController<OrderViolationBiz,
*/
@PostMapping("/saveOrderViolation")
public ObjectRestResponse saveOrderViolation(@RequestBody OrderViolation orderViolation, HttpServletRequest request) {
UserDTO userDTOD = getUserDTO();
log.info("保存违章记录:orderViolation = {}", orderViolation.toString());
UserDTO userDTOD = getAdminUserInfo();
if (orderViolation.getId()==null) {
orderViolation.setIsDel(0);
orderViolation.setCrtHost(request.getRemoteHost());
......
......@@ -15,7 +15,7 @@
</plugin>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://10.5.52.3:3306/xxfc_activity?useUnicode=true&amp;characterEncoding=UTF8"
connectionURL="jdbc:mysql://10.5.52.4:3307/xxfc_order?useUnicode=true&amp;characterEncoding=UTF8"
userId="root"
password="sslcloud123*()">
</jdbcConnection>
......@@ -37,10 +37,6 @@
<!-- </table>-->
<!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>-->
<!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>-->
<table tableName="integral_rule" domainObjectName="IntegralRule"></table>
<table tableName="integral_sign_record" domainObjectName="IntegralSignRecord"></table>
<table tableName="integral_user_total" domainObjectName="IntegralUserTotal"></table>
<table tableName="integral_user_record" domainObjectName="IntegralUserRecord"></table>
<!-- <table tableName="integeral_user_record" domainObjectName="VehicleUpkeepLog"></table>-->
<table tableName="deposit_refund_record" domainObjectName="DepositRefundRecord"></table>
</context>
</generatorConfiguration>
\ No newline at end of file
......@@ -172,7 +172,11 @@
<if test="userId != null">
and b.user_id = #{userId}
</if>
<if test="status != null">
<if test="status != null and status == -1">
AND b.status in (6,-1)
and b.refund_status in (0,2)
</if>
<if test="status != null and status != -1">
and b.status = #{status}
</if>
<if test="no != null">
......@@ -181,13 +185,19 @@
<if test="startTime != null and status == 4">
and r.start_time between #{startTime} and #{endTime}
</if>
<if test="startTime != null and status == 5">
and r.start_time between #{startTime} and #{endTime}
<if test="startTime != null and (status == 5 || status == 6 || status == -1)">
and r.end_time between #{startTime} and #{endTime}
</if>
<if test="startCompanyId != null">
and r.start_company_id = #{startCompanyId}
</if>
order by b.crt_time desc
<if test="status == 4">
order by r.start_time
</if>
<if test="status == 5 || status == -1">
order by r.end_time
</if>
</select>
<select id="getTourList" parameterType="Map" resultMap="orderPageMap">
......@@ -220,5 +230,4 @@
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.order.mapper.DepositRefundRecordMapper">
<select id="findByCrossIdAndStatus" resultType="com.xxfc.platform.order.entity.DepositRefundRecord"
parameterType="java.util.Map">
select * from deposit_refund_record
where status = #{status} and crosstown_id = #{crossId} and isshow = 1
</select>
<select id="selectByCrossId" resultType="com.xxfc.platform.order.entity.DepositRefundRecord"
parameterType="java.lang.Integer">
select * from deposit_refund_record
where crosstown_id = #{crossId} and isshow = 1
order by status
</select>
</mapper>
\ No newline at end of file
......@@ -27,7 +27,12 @@
<result column="rest_deposit" jdbcType="INTEGER" property="restDeposit"/>
<result column="user_license_id" jdbcType="VARCHAR" property="userLicenseId"/>
</resultMap>
<resultMap id="orderMap" type="com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto">
<result column="id" javaType="java.lang.Integer" property="id"/>
<association column="id" property="depositRefundRecord"
select="com.xxfc.platform.order.mapper.DepositRefundRecordMapper.selectByCrossId"
javaType="com.xxfc.platform.order.entity.DepositRefundRecord"/>
</resultMap>
<select id="selectByOrderId" parameterType="com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto" resultType="com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto">
select *
from order_vehicle_crosstown
......@@ -46,4 +51,10 @@
</if>
</where>
</select>
<select id="selectByOrderNo" parameterType="java.util.Map" resultType="com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto">
select *
from order_vehicle_crosstown
where order_no = #{no} and type = #{type}
</select>
</mapper>
\ No newline at end of file
......@@ -14,4 +14,9 @@
where
v.id=#{vId}
</select>
<select id="getOneByDetailId" resultType="com.xxfc.platform.order.entity.OrderViolation" parameterType="java.lang.Integer">
select * from order_violation
where detail_id = #{detailId}
</select>
</mapper>
\ No newline at end of file
......@@ -33,7 +33,7 @@ public class TourGoodController extends BaseController<TourGoodBiz, TourGood> {
@RequestMapping(value = "/app/unauth/getGoodList", method = RequestMethod.GET)
@IgnoreClientToken
@ResponseBody
public ObjectRestResponse<TourGood> getGoodList(@RequestParam(value = "page", required = true) Integer page, @RequestParam(value = "limit", required = true) Integer limit,
public ObjectRestResponse<TourGood> getGoodList(@RequestParam(value = "page", required = true) Integer page, @RequestParam(value = "limit",defaultValue = "10") Integer limit,
@RequestParam(value = "query", required = false) String query, @RequestParam(value = "latitude", required = false) Double latitude,
@RequestParam(value = "longitude", required = false) Double longitude, @RequestParam(value = "tagId", required = false) Integer tagId,
@RequestParam(value = "distance", defaultValue = "100.00") Double distance) {
......
......@@ -56,7 +56,7 @@
SELECT t.* from tour_good t
left join (
select good_id,
IFNULL(ROUND(( (2 * ASIN( SQRT( POW( SIN((latitude * PI() / 180.0- #{params.latitude}* PI() / 180.0)/2), 2)+COS( latitude * PI() / 180.0)*COS( #{params.longitude} * PI() / 180.0)
IFNULL(ROUND(( (2 * ASIN( SQRT( POW( SIN((latitude * PI() / 180.0- #{params.latitude}* PI() / 180.0)/2), 2)+COS( latitude * PI() / 180.0)*COS( #{params.latitude} * PI() / 180.0)
*POW(SIN((longitude * PI() / 180.0 - #{params.longitude}* PI() /180.0)/2),2))))*6378.137)*10000)/10000 ,0 ) AS distance
FROM tour_good_site WHERE type=2 ) gs ON t.id=gs.good_id
where t.is_del=0 AND t.status=1 and gs.distance &lt; #{params.distance}
......
......@@ -57,33 +57,23 @@ public class CertificationController {
*/
@PostMapping("/app/certificate")
public ObjectRestResponse certificate(@RequestBody IdInformation idInformation, HttpServletRequest request) {
if (idInformation == null) {
ObjectRestResponse.createDefaultFail();
ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA,"无法识别,请重新上传");
}
String token = request.getHeader("Authorization");
log.info("------token======"+token);
if (StringUtils.isEmpty(token)) {
ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_NULL_CODE,"无法识别,请重新上传");
}
//获得用户信息
ObjectRestResponse<AppUserDTO> appUserDTOObjectRestResponse= userFeign.userDetailByToken(token);
log.info("----用户信息========="+appUserDTOObjectRestResponse.getData());
if (appUserDTOObjectRestResponse==null||appUserDTOObjectRestResponse.getData()==null||appUserDTOObjectRestResponse.getData().getId()==0) {
return ObjectRestResponse.createFailedResult(ResultCode.GET_APPUSER_FAILED_CODE,"无法识别,请重新上传");
}
AppUserDTO appUserDTO = appUserDTOObjectRestResponse.getData();
idInformation.setUserLonginId(appUserDTO.getUserid());
//获取用户认证信息
ObjectRestResponse orr = null;
try {
......@@ -91,12 +81,9 @@ public class CertificationController {
} catch (Exception e) {
e.printStackTrace();
}
if (orr==null) {
return ObjectRestResponse.createFailedResult(ResultCode.GET_AUTH_INFO_FAILED_CODE,"无法识别,请重新上传");
}
Integer type = idInformation.getCertificateType();
log.info("----type========="+type);
try {
......@@ -116,7 +103,6 @@ public class CertificationController {
} catch (Exception e) {
e.printStackTrace();
}
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"无法识别,请重新上传");
}
......
......@@ -147,60 +147,41 @@ public class CertificationService {
//携带返回参数的map
HashedMap hashMap = new HashedMap();
// 认证状态:true是认证过
//判断是否bean是否为null
if (idInformation == null) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "无法识别,请重新上传");
}
//判断是否有填写身份证号
if (StringUtils.isBlank(idInformation.getIdNumber())) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "未填写证件号");
}
if (!Validation.isIdCard(idInformation.getIdNumber())) {
return ObjectRestResponse.createFailedResult(ResultCode.WRONG_FORMAT_OF_ID_CARD, "填写的证件格式错误");
}
//判断是有否填写名字
if (StringUtils.isBlank(idInformation.getName())) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "未填写姓名");
}
//判断是否有正面照片
if (StringUtils.isBlank(idInformation.getFrontUrl())) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "请上传正面照");
}
//判断是否有背面照片
if (StringUtils.isBlank(idInformation.getBackUrl())) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "请上传背面照");
}
//2.解析
//正面进行解析
String front = imageParse(idInformation.getFrontUrl(), frontParameter);
//解析证件背面
String back = imageParse(idInformation.getBackUrl(), backParameter);
log.info("----解析front=========" + front);
log.info("----解析back=========" + back);
if (StringUtils.isBlank(front) || StringUtils.isBlank(back)) {
return ObjectRestResponse.createDefaultFail();
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA,"无法识别,请重新上传");
}
Map frontMap = (Map) JSONObject.parse(front);
//反面进行解析
Map backMap = (Map) JSONObject.parse(back);
......@@ -209,33 +190,21 @@ public class CertificationService {
|| !(frontMap.get(imageRet).equals(imageResultCode))
|| MapUtil.isEmpty(backMap)
|| !(backMap.get(imageRet).equals(imageResultCode))
) {
return ObjectRestResponse.createDefaultFail();
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA,"无法识别,请重新上传");
}
Map frontData = (Map) frontMap.get(dataNam);
Map backData = (Map) backMap.get(dataNam);
if (MapUtil.isEmpty(backData) || MapUtil.isEmpty(frontData)) {
return ObjectRestResponse.createDefaultFail();
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA,"无法识别,请重新上传");
}
//解析通过,进行匹配
String name = (String) frontData.get(iName);
String number = (String) frontData.get(numberName);
if (idInformation.getName().equals(name)) {
ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "姓名不一致");
}
if (idInformation.getIdNumber().equals(number)) {
ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "证件号不一致");
}
......@@ -243,33 +212,23 @@ public class CertificationService {
//map携带身份证和姓名进行认证
Map<String, String> authMap = new HashMap<>();
authMap.put(idCardName, (String) frontData.get(numberName));
authMap.put(cName, (String) frontData.get(cName));
//3.调用接口进行认证
String result = certificate(authMap);
log.info("----认证结果result=========" + result);
//认证返回的参数是否为空
if (!StringUtils.isBlank(result)) {
Map<String, Object> map = (Map<String, Object>) JSONObject.parse(result);
log.info("----certifRet=========" + certifRet);
if (MapUtil.isNotEmpty(map) || certifResultCode.equals(map.get(certifRet))) {
//认证成功后存入保存到数据库
//获得身份证正面记录的身份证号和真实姓名
//设置姓名
idInformation.setName((String) frontData.get(iName));
//设置身份证号
idInformation.setIdNumber((String) frontData.get(numberName));
//获得到期时间
String endDate = (String) backData.get(expirationDateName);
log.info("----获得到期时间endDate=========" + endDate);
if (StringUtils.isBlank(endDate)) {
return ObjectRestResponse.succ();
......@@ -281,16 +240,14 @@ public class CertificationService {
c.setTime(date);
c.add(Calendar.YEAR, 100);
expirationDate = c.getTime();
} else {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
formatter.setLenient(false);
try {
expirationDate = formatter.parse(endDate);
} catch (ParseException e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA,"无法识别,请重新上传");
}
}
idInformation.setExpirationDate(expirationDate);
......@@ -300,7 +257,6 @@ public class CertificationService {
if (objRR.getRel()) {
return ObjectRestResponse.succ(objRR.getData());
}
}
}
......@@ -313,34 +269,22 @@ public class CertificationService {
//认证
public String certificate(Map<String, String> querys) {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Authorization", "APPCODE " + cAppcode);
//
//
try {
log.info("----querys=========" + querys);
HttpResponse response = CertifHttpUtils.doGet(cHost, cPath, cMethod, headers, querys);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
/**
* 状态码: 200 正常;400 URL无效;401 appCode错误; 403 次数用完; 500 API网管错误
*/
//获取response的body
if (statusCode == 200) {
return EntityUtils.toString(response.getEntity());
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
......@@ -348,27 +292,16 @@ public class CertificationService {
//身份证照片解析
public String imageParse(String imageUrl, String type) {
Map<String, String> headers = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers.put("Authorization", "APPCODE " + iAppcode);
Map<String, String> querys = new HashMap<String, String>();
Map<String, String> bodys = new HashMap<String, String>();
bodys.put(picName, imageUrl);
//默认正面front,背面请传back
bodys.put(typeName, type);
try {
HttpResponse response = CertifHttpUtils.doPost(iHost, iPath, iMethod, headers, querys, bodys);
StatusLine statusLine = response.getStatusLine();
......@@ -383,9 +316,7 @@ public class CertificationService {
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
......@@ -422,7 +353,7 @@ public class CertificationService {
} catch (Exception e) {
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus();
return ObjectRestResponse.createDefaultFail();
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA,"无法识别,请重新上传");
}
......
......@@ -28,6 +28,8 @@ public enum ResCode {
VEHICLE_DEPARTURE_VEHICLE_DISABLE(104002,"车辆不可用"),
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE(104003,"车辆未出车"),
VEHICLE_BOOK_RECORD_IS_NOT_EXIST(104004, "预约记录不存在"),
BRANCH_COMPANY_UNEXIST(105001, "分公司信息不存在"),
BRANCH_COMPANY_STOCK_EXISTED(105002, "分公司股权信息已存在"),
BRANCH_COMPANY_STOCK_UNEXIST(105003, "分公司股权信息不存在"),
......
......@@ -77,7 +77,9 @@ public class VehicleDepartureLog {
* 还车分公司
*/
Integer arrivalBranchCompanyId;
Date createTime;
Date updateTime;
Integer state;
......@@ -86,8 +88,17 @@ public class VehicleDepartureLog {
* 预约记录id
*/
Integer bookRecordId;
//违章图片,逗号分隔
String illegalPic;
//违章金额
Integer illegalAmount;
//出车图片
String departurePic;
//收车图片
String arrivalPic;
//备注
String departureRemark;
String arrivalRemark;
}
......@@ -21,7 +21,7 @@ public interface VehicleFeign {
@GetMapping(value = "/vehicleModel/{id}")
public ObjectRestResponse<VehicleModel> get(@PathVariable(value = "id") int id);
@GetMapping(value = "/vehicleInfo/{id}")
@GetMapping(value = "/vehicleInfo/app/unauth/{id}")
public ObjectRestResponse<Vehicle> get(@PathVariable(value = "id") String id);
@RequestMapping(value = "/vehicleInfo/findById", method = RequestMethod.GET)
......
......@@ -27,4 +27,17 @@ public class VehicleArrivalVo {
*/
Integer arrivalBranchCompanyId;
//收车图片
String arrivalPic;
//备注
String remark;
//违章图片,逗号分隔
String illegalPic;
//违章金额
Integer illegalAmount;
Integer bookRecordId;
}
......@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.pojo;
import com.xxfc.platform.vehicle.entity.VehicleBookHourInfo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleUpkeepItem;
import lombok.Data;
import java.util.List;
......@@ -32,4 +33,7 @@ public class VehicleBookRecordVo extends VehicleBookRecord {
private Integer liftStatus;
private Integer retStatus;
List<VehicleUpkeepItem> vehicleUpkeepItems;
}
package com.xxfc.platform.vehicle.pojo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
import lombok.Data;
@Data
......@@ -31,4 +34,19 @@ public class VehicleDepartureLogVo {
String illegalPic;
Integer illegalAmount;
//出车图片
String departurePic;
//收车图片
String arrivalPic;
//备注
String departureRemark;
String arrivalRemark;
public VehicleDepartureLog getVehicleDeparture(VehicleDepartureLogVo vehicleDepartureLogVo) {
VehicleDepartureLog departureLog = new VehicleDepartureLog();
BeanUtil.copyProperties(vehicleDepartureLogVo, departureLog, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
return departureLog;
}
}
......@@ -50,4 +50,14 @@ public class VehicleDepartureVo {
*/
Integer bookRecordId;
//出车图片
String departurePic;
//备注
String remark;
//违章图片,逗号分隔
String illegalPic;
//违章金额
Integer illegalAmount;
}
......@@ -7,12 +7,12 @@ import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.RedisKey;
import com.xxfc.platform.vehicle.entity.AccompanyingItem;
import com.xxfc.platform.vehicle.mapper.AccompanyingItemMapper;
import com.xxfc.platform.vehicle.pojo.AddOrUpdateAccompanyingItem;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.pojo.QueryAccompanyItemVo;
import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import lombok.extern.slf4j.Slf4j;
......@@ -21,14 +21,15 @@ import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.lang.reflect.Array;
import java.util.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
......
package com.xxfc.platform.vehicle.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleActiveType;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.constant.VehicleDepartureState;
import com.xxfc.platform.vehicle.constant.VehicleStatus;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleActiveLog;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
import com.xxfc.platform.vehicle.entity.VehicleUpkeepLog;
import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.mapper.*;
import com.xxfc.platform.vehicle.pojo.VehicleArrivalVo;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureVo;
import com.xxfc.platform.vehicle.pojo.VehicleUpkeepEndVo;
import com.xxfc.platform.vehicle.pojo.VehicleUpkeepVo;
import com.xxfc.platform.vehicle.pojo.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -39,6 +36,9 @@ public class VehicleActiveService {
@Autowired
VehicleUpkeepLogMapper vehicleUpkeepLogMapper;
@Autowired
VehicleBookRecordBiz vehicleBookRecordBiz;
@Autowired
VehicleUpkeepItemMapper vehicleUpkeepItemMapper;
@Value("${vehicle.mileage}")
......@@ -80,7 +80,20 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
//修改预约记录状态
if(departureVo.getBookRecordId() != null) {
updateBookRecordStatus(departureVo.getBookRecordId());
}
VehicleDepartureLogVo vehicleDepartureLogVo = vehicleDepartureLogMapper.selectByBookRecordId(departureVo.getBookRecordId());
if(vehicleDepartureLogVo != null) {
BeanUtil.copyProperties(departureVo, vehicleDepartureLogVo, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
VehicleDepartureLog departureLog = vehicleDepartureLogVo.getVehicleDeparture(vehicleDepartureLogVo);
departureLog.setDepartureTime(new Date());
departureLog.setUpdateTime(new Date());
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setDepartureRemark(departureVo.getRemark());
vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog);
} else {
// 出车记录
VehicleDepartureLog departureLog = new VehicleDepartureLog();
BeanUtils.copyProperties(departureVo, departureLog);
......@@ -89,7 +102,10 @@ public class VehicleActiveService {
departureLog.setMileageStart(departureVo.getMileage());
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setBookRecordId(departureVo.getBookRecordId());
departureLog.setDepartureRemark(departureVo.getRemark());
vehicleDepartureLogMapper.insert(departureLog);
}
// 车辆活动日志
VehicleActiveLog activeLog = new VehicleActiveLog();
......@@ -102,10 +118,6 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(),
ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
}
}
@Transactional
......@@ -141,6 +153,11 @@ public class VehicleActiveService {
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
}
if(arrivalVo.getBookRecordId() != null) {
updateBookRecordStatus(arrivalVo.getBookRecordId());
}
// 出车记录
VehicleDepartureLog departureLog = vehicleDepartureLogMapper.selectLastByVehicleId(arrivalVo.getVehicleId());
if (departureLog == null) {
......@@ -154,8 +171,11 @@ public class VehicleActiveService {
departureLog.setUpdateTime(new Date());
departureLog.setArrivalTime(new Date());
departureLog.setState(VehicleDepartureState.END.getCode());
departureLog.setIllegalPic(arrivalVo.getIllegalPic());
departureLog.setIllegalAmount(arrivalVo.getIllegalAmount());
departureLog.setArrivalPic(arrivalVo.getArrivalPic());
departureLog.setArrivalRemark(arrivalVo.getRemark());
vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog);
// 车辆活动日志
VehicleActiveLog activeLog = vehicleActiveLogMapper.selectLastByVehicleId(arrivalVo.getVehicleId());
if (activeLog == null) {
......@@ -172,6 +192,18 @@ public class VehicleActiveService {
}
}
public void updateBookRecordStatus(Integer bookRecordId) {
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId);
if(vehicleBookRecord != null) {
vehicleBookRecord.setStatus(VehicleBookRecordStatus.LIFTED.getCode());
vehicleBookRecordBiz.updateSelectiveByIdRe(vehicleBookRecord);
} else {
throw new BaseException(ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getDesc(),
ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getCode());
}
}
/**
* 车辆保养
* @param vehicleUpkeepVo
......
......@@ -14,12 +14,14 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.BookType;
import com.xxfc.platform.vehicle.constant.RedisKey;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.BookRecordAccItem;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleUpkeepItem;
import com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper;
import com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper;
import com.xxfc.platform.vehicle.pojo.*;
......@@ -70,6 +72,8 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
@Autowired
UserFeign userFeign;
@Autowired
VehicleUpkeepService vehicleUpkeepService;
@Override
public UserFeign getUserFeign() {return userFeign;}
......@@ -128,6 +132,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
vehicleBookRecordQueryVo.setCompanyIds(companyList);
Query query = new Query(vehicleBookRecordQueryVo);
PageDataVO<VehicleBookRecordVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getBookRecordInfo(query.getSuper()));
getupKeeps(pageDataVO.getData());
return RestResponse.suc(pageDataVO);
}
......@@ -158,13 +163,29 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
companyList.add(vehicleBookRecordQueryVo.getCompanyId());
}
}
vehicleBookRecordQueryVo.setCompanyIds(companyList);
Query query = new Query(vehicleBookRecordQueryVo);
PageDataVO<VehicleBookRecordVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getBookRecordInfo(query.getSuper()));
getupKeeps(pageDataVO.getData());
return RestResponse.suc(pageDataVO);
}
public List<VehicleBookRecordVo> getupKeeps(List<VehicleBookRecordVo> vehicleBookRecordVos) {
for(VehicleBookRecordVo vehicleBookRecordVo : vehicleBookRecordVos) {
if(vehicleBookRecordVo.getBookType() == BookType.MAINTAIN.getCode()) {//获取 保养项目
if(StringUtils.isNotBlank(vehicleBookRecordVo.getUpkeepIds())) {
List<Integer> upKeeps = Arrays.asList(vehicleBookRecordVo.getUpkeepIds().split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
if(upKeeps.size() > 0) {
List<VehicleUpkeepItem> vehicleUpkeepItems = vehicleUpkeepService.getUpkeepsByIds(upKeeps);
vehicleBookRecordVo.setVehicleUpkeepItems(vehicleUpkeepItems);
}
}
}
}
return vehicleBookRecordVos;
}
public RestResponse<Integer> lift(Integer operatorId, String userName, LiftVehicleVo liftVehicleVo) throws Exception{
Map<String, Object> params = PropertyUtils.describe(liftVehicleVo);
params.put("reviewerLift", operatorId);
......
......@@ -2,7 +2,6 @@ package com.xxfc.platform.vehicle.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.vehicle.entity.VehicleUpkeepItem;
import com.xxfc.platform.vehicle.entity.VehicleUpkeepLog;
import com.xxfc.platform.vehicle.mapper.VehicleUpkeepItemMapper;
......@@ -13,10 +12,11 @@ import org.apache.commons.beanutils.BeanUtilsBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import redis.clients.jedis.Transaction;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class VehicleUpkeepService {
......@@ -56,6 +56,12 @@ public class VehicleUpkeepService {
return new PageInfo<>(vehicleUpkeepLogMapper.selectVoAll(numberPlate, companyList));
}
public List<VehicleUpkeepItem> getUpkeepsByIds(List<Integer> ids) {
Map<String, Object> param = new HashMap<>();
param.put("ids", ids);
return vehicleUpkeepItemMapper.selectByIds(param);
}
public VehicleUpkeepLogVo getLogVoById(Integer id) {
VehicleUpkeepLogVo vehicleUpkeepLogVo = vehicleUpkeepLogMapper.selectVoById(id);
List<VehicleUpkeepLogItemVo> upkeepItems = vehicleUpkeepLogMapper.getItemsByLogId(id);
......
......@@ -3,5 +3,9 @@ package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleUpkeepItem;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map;
public interface VehicleUpkeepItemMapper extends Mapper<VehicleUpkeepItem> {
List<VehicleUpkeepItem> selectByIds(Map<String, Object> param);
}
\ No newline at end of file
......@@ -83,7 +83,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
public static final DateTimeFormatter DEFAULT_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@RequestMapping(value = "/app/unauth/{id}", method = RequestMethod.GET)
public RestResponse<Vehicle> get(@PathVariable String id) {
return RestResponse.data(baseBiz.get(id));
}
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper" >
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper">
<resultMap id="getVehicleMap" type="com.xxfc.platform.vehicle.pojo.VehicleRecordInfoVo">
<association property="vehicle" column="vehicle_id" select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectById" />
<association property="vehicle" column="vehicle_id"
select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectById"/>
</resultMap>
<resultMap id="searchBookRecord" type="com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo">
<result column="id" property="id" jdbcType="BIGINT" javaType="java.lang.Long"/>
<association property="vehicleDepartureLogVo" column="id" select="com.xxfc.platform.vehicle.mapper.VehicleDepartureLogMapper.selectByBookRecordId" />
<association property="vehicleDepartureLogVo" column="id"
select="com.xxfc.platform.vehicle.mapper.VehicleDepartureLogMapper.selectByBookRecordId"/>
</resultMap>
<resultMap id="getVehicleHourMap" type="com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo">
<association property="vehicleBookHourInfo" column="id" select="com.xxfc.platform.vehicle.mapper.VehicleBookHourInfoMapper.selectByBookRecordId" />
<association property="vehicleBookHourInfo" column="id"
select="com.xxfc.platform.vehicle.mapper.VehicleBookHourInfoMapper.selectByBookRecordId"/>
</resultMap>
<update id="changeRecordStatus" parameterType="java.util.Map">
......@@ -90,8 +93,8 @@
have_violation =#{haveViolation},
</if>
<choose>
<when test="targetStatus == 7"> `actual_start_date` = now() </when>
<when test="targetStatus == 3"> `actual_end_date` = now() </when>
<when test="targetStatus == 7">`actual_start_date` = now()</when>
<when test="targetStatus == 3">`actual_end_date` = now()</when>
</choose>
where id = #{id} and `status` = #{conditionStatus}
......@@ -129,7 +132,10 @@
mileage_ret,
have_violation,
ret_remark,
order_no
order_no,
vehicle_username,
vehicle_user_phone,
upkeep_ids
)
values(
#{id},
......@@ -162,11 +168,15 @@
#{mileageRet},
#{haveViolation},
#{retRemark},
#{orderNo}
#{orderNo},
#{vehicleUsername},
#{vehicleUserPhone},
#{upkeepIds}
);
</insert>
<select id="getByPage4Month" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord">
<select id="getByPage4Month" parameterType="java.util.Map"
resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord">
select
`id`,
`vehicle_id`,
......@@ -200,7 +210,10 @@
mileage_ret,
have_violation,
ret_remark,
order_no
order_no,
vehicle_username,
vehicle_user_phone,
upkeep_ids
from
vehicle_book_record
where
......@@ -209,7 +222,8 @@
limit #{pageStart},#{pageSize}
</select>
<select id="getByPage" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.pojo.QueryVehicleBookRecordVo">
<select id="getByPage" parameterType="java.util.Map"
resultType="com.xxfc.platform.vehicle.pojo.QueryVehicleBookRecordVo">
select
vbr.`id`,
vbr.`vehicle_id`,
......@@ -246,6 +260,9 @@
vbr.have_violation,
vbr.ret_remark,
vbr.order_no,
vbr.vehicle_username,
vbr.vehicle_user_phone,
vbr.upkeep_ids,
v.`code` as vehicleCode,
v.number_plate as numberPlate,
v.subordinate_branch,
......@@ -306,7 +323,7 @@
order by vbr.id desc
</select>
<select id="getById" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord" >
<select id="getById" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord">
select
vbr.`id`,
vbr.`vehicle_id`,
......@@ -340,12 +357,16 @@
vbr.mileage_ret,
vbr.have_violation,
vbr.ret_remark,
vbr.order_no
vbr.order_no,
vbr.vehicle_username,
vbr.vehicle_user_phone,
vbr.upkeep_ids,
from ${tbName} vbr
where id = #{id}
</select>
<select id="getByVehicleId" parameterType="java.lang.String" resultType="com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo" >
<select id="getByVehicleId" parameterType="java.lang.String"
resultType="com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo">
SELECT v1.*, conv(v2.booked_hour,10,2) startHour,conv(v3.booked_hour,10,2) endHour,bc2.name retCompanyName from vehicle_book_record v1
LEFT JOIN vehicle_book_hour_info v2 on v2.book_record_id = v1.id and YEAR(v2.year_month_day) = YEAR(v1.book_start_date) AND MONTH(v2.year_month_day) = MONTH(v1.book_start_date) AND DAY(v2.year_month_day) =DAY(v1.book_start_date)
LEFT JOIN vehicle_book_hour_info v3 on v3.book_record_id = v1.id and YEAR(v3.year_month_day) = YEAR(v1.book_end_date) AND MONTH(v3.year_month_day) = MONTH(v1.book_end_date) AND DAY(v3.year_month_day) =DAY(v1.book_end_date)
......@@ -375,11 +396,18 @@
order By v1.create_time DESC
</select>
<select id="getBookRecord" resultMap="searchBookRecord" parameterType="com.xxfc.platform.vehicle.pojo.VehicleBookRecordQueryVo">
select bc3.name parkCompanyName,bc4.name subordinateBranchName, conv(v4.booked_hour,10,2) startHour,conv(v5.booked_hour,10,2) endHour, bc1.`name` lift_company_name, bc2.`name` ret_company_name, v3.number_plate,v1.*
<select id="getBookRecord" resultMap="searchBookRecord"
parameterType="com.xxfc.platform.vehicle.pojo.VehicleBookRecordQueryVo">
select bc3.name parkCompanyName,bc4.name subordinateBranchName, conv(v4.booked_hour,10,2)
startHour,conv(v5.booked_hour,10,2) endHour, bc1.`name` lift_company_name, bc2.`name` ret_company_name,
v3.number_plate,v1.*
from vehicle_book_record v1
LEFT JOIN vehicle_book_hour_info v4 on v4.book_record_id = v1.id and YEAR(v4.year_month_day) = YEAR(v1.book_start_date) AND MONTH(v4.year_month_day) = MONTH(v1.book_start_date) AND DAY(v4.year_month_day) =DAY(v1.book_start_date)
LEFT JOIN vehicle_book_hour_info v5 on v5.book_record_id = v1.id and YEAR(v5.year_month_day) = YEAR(v1.book_end_date) AND MONTH(v5.year_month_day) = MONTH(v1.book_end_date) AND DAY(v5.year_month_day) =DAY(v1.book_end_date)
LEFT JOIN vehicle_book_hour_info v4 on v4.book_record_id = v1.id and YEAR(v4.year_month_day) =
YEAR(v1.book_start_date) AND MONTH(v4.year_month_day) = MONTH(v1.book_start_date) AND DAY(v4.year_month_day)
=DAY(v1.book_start_date)
LEFT JOIN vehicle_book_hour_info v5 on v5.book_record_id = v1.id and YEAR(v5.year_month_day) =
YEAR(v1.book_end_date) AND MONTH(v5.year_month_day) = MONTH(v1.book_end_date) AND DAY(v5.year_month_day)
=DAY(v1.book_end_date)
LEFT JOIN branch_company bc1 ON v1.lift_company = bc1.id
LEFT JOIN branch_company bc2 on v1.ret_company = bc2.id
LEFT JOIN vehicle v3 on v3.id = v1.vehicle_id
......@@ -387,7 +415,8 @@
LEFT JOIN branch_company bc4 on v3.subordinate_branch = bc4.id
<where>
<if test="selectedMonth != null">
and (v1.book_start_date like CONCAT(#{selectedMonth}, "%") or v1.book_end_date like CONCAT(#{selectedMonth}, "%"))
and (v1.book_start_date like CONCAT(#{selectedMonth}, "%") or v1.book_end_date like
CONCAT(#{selectedMonth}, "%"))
</if>
<if test="numberPlate != null">
and v3.number_plate = #{numberPlate}
......@@ -410,7 +439,9 @@
<select id="getBookRecordInfo" resultMap="searchBookRecord" parameterType="java.util.Map">
select (CASE v1.lift_company WHEN #{userCompany} THEN 1 ELSE 0 end) liftStatus,(CASE v1.ret_company WHEN #{userCompany} THEN 1 ELSE 0 end) retStatus,bc4.name subordinateBranchName, bc1.`name` lift_company_name, bc2.`name` ret_company_name, v3.number_plate,v1.*
select (CASE v1.lift_company WHEN #{userCompany} THEN 1 ELSE 0 end) liftStatus,(CASE v1.ret_company WHEN
#{userCompany} THEN 1 ELSE 0 end) retStatus,bc4.name subordinateBranchName, bc1.`name` lift_company_name,
bc2.`name` ret_company_name, v3.number_plate,v1.*
from vehicle_book_record v1
LEFT JOIN branch_company bc1 ON v1.lift_company = bc1.id
LEFT JOIN branch_company bc2 on v1.ret_company = bc2.id
......@@ -419,7 +450,8 @@
LEFT JOIN branch_company bc4 on v3.subordinate_branch = bc4.id
<where>
<if test="selectedMonth != null">
and (v1.book_start_date like CONCAT(#{selectedMonth}, "%") or v1.book_end_date like CONCAT(#{selectedMonth}, "%"))
and (v1.book_start_date like CONCAT(#{selectedMonth}, "%") or v1.book_end_date like
CONCAT(#{selectedMonth}, "%"))
</if>
<if test="numberPlate != null">
and v3.number_plate = #{numberPlate}
......@@ -447,8 +479,6 @@
</select>
<insert id="createTbIfNotExists" parameterType="java.lang.String">
CREATE TABLE IF NOT EXISTS ${_parameter} (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
......@@ -493,8 +523,4 @@
</insert>
</mapper>
\ No newline at end of file
......@@ -453,6 +453,7 @@
<if test="zoneId !=null">
and bc2.zone_id = #{zoneId}
</if>
and is_del != 1
</where>
</select>
......
......@@ -8,4 +8,13 @@
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
</resultMap>
<select id="selectByIds" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleUpkeepItem">
select * from vehicle_upkeep_item
where id in
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>
\ No newline at end of file
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