Commit 3bd2fc56 authored by 周健威's avatar 周健威

Merge branch 'dev' into 'master'

Dev-master-merge

See merge request !9
parents 6850d486 da611461
...@@ -10,6 +10,8 @@ import com.github.wxiaoqi.security.common.util.EntityUtils; ...@@ -10,6 +10,8 @@ import com.github.wxiaoqi.security.common.util.EntityUtils;
import com.github.wxiaoqi.security.common.util.IpUtil; import com.github.wxiaoqi.security.common.util.IpUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.util.result.JsonResultUtil; import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -22,6 +24,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; ...@@ -22,6 +24,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@Api(tags = "用户登录")
@RestController @RestController
@RequestMapping("jwt") @RequestMapping("jwt")
@Slf4j @Slf4j
......
...@@ -209,6 +209,24 @@ ...@@ -209,6 +209,24 @@
<artifactId>spring-boot</artifactId> <artifactId>spring-boot</artifactId>
<version>2.1.3.RELEASE</version> <version>2.1.3.RELEASE</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-openfeign-core</artifactId>
<version>2.1.0.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-openfeign-core</artifactId>
<version>2.1.0.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-core</artifactId>
<version>10.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
......
package com.github.wxiaoqi.security.common.config.feign;
import feign.Logger;
import feign.codec.Decoder;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.support.ResponseEntityDecoder;
import org.springframework.cloud.openfeign.support.SpringDecoder;
import org.springframework.context.annotation.Bean;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.util.ArrayList;
import java.util.List;
//@Configuration
public class FeignConfig {
@Bean
Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
@Bean
public Decoder feignDecoder() {
return new ResponseEntityDecoder(new SpringDecoder(feignHttpMessageConverter()));
}
public ObjectFactory<HttpMessageConverters> feignHttpMessageConverter() {
final HttpMessageConverters httpMessageConverters = new HttpMessageConverters(new XXMappingJackson2HttpMessageConverter());
return new ObjectFactory<HttpMessageConverters>() {
@Override
public HttpMessageConverters getObject() throws BeansException {
return httpMessageConverters;
}
};
}
public class XXMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
XXMappingJackson2HttpMessageConverter(){
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(MediaType.valueOf(MediaType.TEXT_HTML_VALUE + ";charset=UTF-8nnn")); //关键
setSupportedMediaTypes(mediaTypes);
}
}
}
\ No newline at end of file
package com.github.wxiaoqi.security.common.config.global; package com.github.wxiaoqi.security.common.config.global;
import com.github.wxiaoqi.security.common.handler.GlobalExceptionHandler;
import com.github.wxiaoqi.security.common.handler.PlatformExceptionHandler;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
...@@ -13,6 +17,17 @@ public class GlobalBasicConfiguration implements ApplicationRunner{ ...@@ -13,6 +17,17 @@ public class GlobalBasicConfiguration implements ApplicationRunner{
private static Logger log = LoggerFactory.getLogger(GlobalBasicConfiguration.class); private static Logger log = LoggerFactory.getLogger(GlobalBasicConfiguration.class);
private static Environment env; private static Environment env;
@Bean
@ConditionalOnMissingBean
private GlobalExceptionHandler addGlobalExceptionHandler() {
return new GlobalExceptionHandler();
}
@Bean
@ConditionalOnMissingBean
private PlatformExceptionHandler addPlatformExceptionHandler() {
return new PlatformExceptionHandler();
}
@Autowired @Autowired
private void setEnv(Environment env) { private void setEnv(Environment env) {
GlobalBasicConfiguration.env = env; GlobalBasicConfiguration.env = env;
......
package com.github.wxiaoqi.security.common.config; package com.github.wxiaoqi.security.common.config.rabbit;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.common.config.rabbit.BindDTO; import com.github.wxiaoqi.security.common.config.rabbit.BindDTO;
......
...@@ -7,7 +7,7 @@ import ch.qos.logback.core.spi.FilterReply; ...@@ -7,7 +7,7 @@ import ch.qos.logback.core.spi.FilterReply;
public class AcceptFilter extends Filter<ILoggingEvent> { public class AcceptFilter extends Filter<ILoggingEvent> {
@Override @Override
public FilterReply decide(ILoggingEvent event) { public FilterReply decide(ILoggingEvent event) {
if(event.getLoggerName().startsWith("com.xxfc.platform") || event.getLoggerName().startsWith("com.github.wxiaoqi")) { if(event.getLoggerName().startsWith("com.xxfc.platform") || event.getLoggerName().startsWith("com.github.wxiaoqi") || event.getLoggerName().contains("Exception")) {
return FilterReply.ACCEPT; return FilterReply.ACCEPT;
} else { } else {
return FilterReply.DENY; return FilterReply.DENY;
......
...@@ -7,7 +7,7 @@ import ch.qos.logback.core.spi.FilterReply; ...@@ -7,7 +7,7 @@ import ch.qos.logback.core.spi.FilterReply;
public class DenyFilter extends Filter<ILoggingEvent> { public class DenyFilter extends Filter<ILoggingEvent> {
@Override @Override
public FilterReply decide(ILoggingEvent event) { public FilterReply decide(ILoggingEvent event) {
if (event.getLoggerName().startsWith("com.alibaba.nacos") || event.getLoggerName().startsWith("com.xxfc.platform") || event.getLoggerName().startsWith("com.github.wxiaoqi")) { if (event.getLoggerName().startsWith("com.alibaba.nacos") || event.getLoggerName().startsWith("com.xxfc.platform") || event.getLoggerName().startsWith("com.github.wxiaoqi") || event.getLoggerName().contains("Exception")) {
return FilterReply.DENY; return FilterReply.DENY;
} else { } else {
return FilterReply.ACCEPT; return FilterReply.ACCEPT;
......
...@@ -3,10 +3,13 @@ package com.github.wxiaoqi.security.common.handler; ...@@ -3,10 +3,13 @@ package com.github.wxiaoqi.security.common.handler;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.BaseResponse; import com.github.wxiaoqi.security.common.msg.BaseResponse;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice("com.xxfc.platform") @RestControllerAdvice("com.xxfc.platform")
@Slf4j
public class PlatformExceptionHandler { public class PlatformExceptionHandler {
@ExceptionHandler(value = {BaseException.class}) @ExceptionHandler(value = {BaseException.class})
...@@ -18,4 +21,25 @@ public class PlatformExceptionHandler { ...@@ -18,4 +21,25 @@ public class PlatformExceptionHandler {
return new BaseResponse(400,e.getMessage()); return new BaseResponse(400,e.getMessage());
} }
//服务器异常
@ExceptionHandler(Exception.class)
public ObjectRestResponse<?> exceptionHandler(Exception e){
Throwable cause = e.getCause();
if(cause != null && cause.toString().contains("Exception")) {
log.error(cause.getMessage(), e);
return assembleResult(ObjectRestResponse.createFailedResult(5000, "服务器开小差了,请稍后重试!"), "Server exception: " + e.getMessage());
}
log.error("Server exception: ", e);
return assembleResult(ObjectRestResponse.createFailedResult(5000, "服务器开小差了,请稍后重试!"), "Server exception: " + e.getMessage());
}
protected ObjectRestResponse<?> assembleResult(ObjectRestResponse<?> error, String msg) {
log.debug("Exception: " + msg);
return error;
}
protected ObjectRestResponse<?> assembleResult(ObjectRestResponse<?> error, Throwable e) {
return assembleResult(error, e.getClass().getSimpleName() + ": " + e.getMessage());
}
} }
...@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.common.log.entity.LogEntity; ...@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.common.log.entity.LogEntity;
import com.github.wxiaoqi.security.common.log.entity.XxLogEntity; import com.github.wxiaoqi.security.common.log.entity.XxLogEntity;
import com.github.wxiaoqi.security.common.msg.BaseResponse; import com.github.wxiaoqi.security.common.msg.BaseResponse;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.reflect.MethodSignature; import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -25,6 +26,7 @@ import java.util.concurrent.ThreadPoolExecutor; ...@@ -25,6 +26,7 @@ import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@Service @Service
@Slf4j
public class CommonLogServiceImpl implements CommonLogService { public class CommonLogServiceImpl implements CommonLogService {
@Value("${spring.application.name}") @Value("${spring.application.name}")
...@@ -86,6 +88,9 @@ public class CommonLogServiceImpl implements CommonLogService { ...@@ -86,6 +88,9 @@ public class CommonLogServiceImpl implements CommonLogService {
} }
@Override @Override
public void run() { public void run() {
if(!xxLogEntity.getServletPath().contains("/vehicleInfo/app/unauth/getVehiclePlanList")) {
log.info("用户请求信息:xxLogEntity = {}", xxLogEntity.toString());
}
mongoTemplate.insert(xxLogEntity, xxLogEntity.getMongoKey()); mongoTemplate.insert(xxLogEntity, xxLogEntity.getMongoKey());
} }
} }
......
...@@ -14,13 +14,13 @@ import java.util.Date; ...@@ -14,13 +14,13 @@ import java.util.Date;
public class XxLogEntity implements Serializable { public class XxLogEntity implements Serializable {
private String app; private String app;
private String method;
private String createDate;
private String servletPath; private String servletPath;
private String requestPath;
private String requestData; private String requestData;
private String responseData; private String responseData;
private String createDate;
private String endDate; private String endDate;
private String requestPath;
private String method;
private String mongoKey; private String mongoKey;
public XxLogEntity() { public XxLogEntity() {
......
...@@ -8,8 +8,8 @@ public class ResultCode { ...@@ -8,8 +8,8 @@ public class ResultCode {
////////////////////////////参数相关/////////////////////////// ////////////////////////////参数相关///////////////////////////
//参数非法,请修改 //参数非法,请修改
public static int PARAM_ILLEGAL_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_ILLEGAL_CODE")); public static int PARAM_ILLEGAL_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_ILLEGAL_CODE"));
//参数时效已过时,不能使用 //参数时效已过时,不能使用X
public static int PARAM_EXPIRE_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_EXPIRE_CODE")); public static int PARAM_EPIRE_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_EXPIRE_CODE"));
public static int VEHICLE_IS_BOOKED = Integer.valueOf(SystemProperty.getResultConfig("VEHICLE_IS_BOOKED")); public static int VEHICLE_IS_BOOKED = Integer.valueOf(SystemProperty.getResultConfig("VEHICLE_IS_BOOKED"));
// 操作成功 // 操作成功
public static int SUCCESS_CODE = Integer.valueOf(SystemProperty.getResultConfig("SUCCESS_CODE")); public static int SUCCESS_CODE = Integer.valueOf(SystemProperty.getResultConfig("SUCCESS_CODE"));
......
...@@ -21,6 +21,7 @@ import javax.annotation.Resource; ...@@ -21,6 +21,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Parameter; import java.lang.reflect.Parameter;
import java.util.Objects;
/** /**
* @author libin * @author libin
...@@ -72,7 +73,11 @@ public class TokenAop { ...@@ -72,7 +73,11 @@ public class TokenAop {
args[i]= new AppUserDTO(); args[i]= new AppUserDTO();
break; break;
} }
args[i]= userFeign.userDetailByToken(token).getData(); AppUserDTO userDTO = userFeign.userDetailByToken(token).getData();
if (Objects.isNull(userDTO)){
userDTO = new AppUserDTO();
}
args[i]= userDTO;
break; break;
} }
if (UserDTO.class.equals(parameter.getType())){ if (UserDTO.class.equals(parameter.getType())){
......
...@@ -25,6 +25,7 @@ import tk.mybatis.mapper.weekend.WeekendSqls; ...@@ -25,6 +25,7 @@ import tk.mybatis.mapper.weekend.WeekendSqls;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
...@@ -257,4 +258,10 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -257,4 +258,10 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
} }
public void deleteByUserIds(Collection<Integer> userIds) {
Example example = new Example(BaseUserMember.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("userId",userIds);
mapper.deleteByExample(example);
}
} }
\ No newline at end of file
...@@ -364,4 +364,10 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> { ...@@ -364,4 +364,10 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> {
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
public void deleteByUserIds(Collection<Integer> userIds) {
Example example =new Example(MyWallet.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("userId",userIds);
mapper.deleteByExample(example);
}
} }
...@@ -126,4 +126,11 @@ public class MyWalletCathBiz extends BaseBiz<MyWalletCathMapper, MyWalletCath> { ...@@ -126,4 +126,11 @@ public class MyWalletCathBiz extends BaseBiz<MyWalletCathMapper, MyWalletCath> {
public WalletCathSumDto sumCathAmount(Integer userId,Integer type){ public WalletCathSumDto sumCathAmount(Integer userId,Integer type){
return mapper.sumCathAmount(userId,type); return mapper.sumCathAmount(userId,type);
} }
public void deleteByUserIds(Collection<Integer> userIds) {
Example example = new Example(MyWalletCath.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("userId",userIds);
mapper.deleteByExample(example);
}
} }
...@@ -76,7 +76,7 @@ public class UserBiz extends BaseBiz<UserMapper,User> { ...@@ -76,7 +76,7 @@ public class UserBiz extends BaseBiz<UserMapper,User> {
if(query.entrySet().size()>0) { if(query.entrySet().size()>0) {
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
for (Map.Entry<String, Object> entry : query.entrySet()) { for (Map.Entry<String, Object> entry : query.entrySet()) {
criteria.andLike(entry.getKey(), "%" + entry.getValue().toString() + "%"); criteria.orLike(entry.getKey(), "%" + entry.getValue().toString() + "%");
} }
} }
example.createCriteria().andGreaterThan("id",1); example.createCriteria().andGreaterThan("id",1);
...@@ -88,7 +88,7 @@ public class UserBiz extends BaseBiz<UserMapper,User> { ...@@ -88,7 +88,7 @@ public class UserBiz extends BaseBiz<UserMapper,User> {
if(query.entrySet().size()>0) { if(query.entrySet().size()>0) {
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
for (Map.Entry<String, Object> entry : query.entrySet()) { for (Map.Entry<String, Object> entry : query.entrySet()) {
criteria.andLike(entry.getKey(), "%" + entry.getValue().toString() + "%"); criteria.orLike(entry.getKey(), "%" + entry.getValue().toString() + "%");
} }
} }
if(StringUtils.isNotBlank(currentUser.getDataCompany())){ if(StringUtils.isNotBlank(currentUser.getDataCompany())){
......
package com.github.wxiaoqi.security.admin.config; package com.github.wxiaoqi.security.admin.config;
import com.github.wxiaoqi.security.common.config.RabbitCommonConfig; import com.github.wxiaoqi.security.common.config.rabbit.RabbitCommonConfig;
import com.github.wxiaoqi.security.common.config.rabbit.BindDTO; import com.github.wxiaoqi.security.common.config.rabbit.BindDTO;
import com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import java.util.ArrayList; import java.util.ArrayList;
......
...@@ -9,7 +9,6 @@ import com.github.wxiaoqi.security.admin.dto.AppUserManageDTO; ...@@ -9,7 +9,6 @@ import com.github.wxiaoqi.security.admin.dto.AppUserManageDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin; import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserManage; import com.github.wxiaoqi.security.admin.entity.AppUserManage;
import com.github.wxiaoqi.security.admin.entity.User; import com.github.wxiaoqi.security.admin.entity.User;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserManageVo; import com.github.wxiaoqi.security.admin.vo.AppUserManageVo;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
...@@ -17,16 +16,11 @@ import com.github.wxiaoqi.security.common.exception.BaseException; ...@@ -17,16 +16,11 @@ 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;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
/** /**
* app用户管理类 * app用户管理类
......
...@@ -5,11 +5,18 @@ import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO; ...@@ -5,11 +5,18 @@ import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO; import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserManage; import com.github.wxiaoqi.security.admin.entity.AppUserManage;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember; import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
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;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.Objects;
/** /**
* 用户会员 * 用户会员
...@@ -17,20 +24,45 @@ import java.lang.reflect.InvocationTargetException; ...@@ -17,20 +24,45 @@ import java.lang.reflect.InvocationTargetException;
*/ */
@RestController @RestController
@RequestMapping("baseUserMember") @RequestMapping("baseUserMember")
@Api(tags = "后台获取和修改用户会员信息")
public class BaseUserMemberController extends BaseController<BaseUserMemberBiz, BaseUserMember> { public class BaseUserMemberController extends BaseController<BaseUserMemberBiz, BaseUserMember> {
@Autowired
private UserFeign userFeign;
@Autowired
private UserAuthConfig userAuthConfig;
/** /**
* 获取用户会员 * 获取用户会员
* @param userId * @param userId
* @return * @return
*/ */
@RequestMapping("/findOne/{userId}") @ApiOperation(value = "根据用户id获取用户会员信息")
@GetMapping("/findOne/{userId}")
public ObjectRestResponse<BaseUserMemberVO> findOneByUserId(@PathVariable Integer userId){ public ObjectRestResponse<BaseUserMemberVO> findOneByUserId(@PathVariable Integer userId){
return ObjectRestResponse.succ(baseBiz.findOneByUserId(userId)); return ObjectRestResponse.succ(baseBiz.findOneByUserId(userId));
} }
/**
* 根据token获取用户会员信息
* @return
*/
@GetMapping("app/getUserMember")
@ApiOperation(value = "根据token获取用户会员信息")
public ObjectRestResponse<BaseUserMemberVO> findOneByToken(){
try {
AppUserDTO user = userFeign.userDetailByToken(userAuthConfig.getToken(request)).getData();
return ObjectRestResponse.succ(baseBiz.findOneByUserId(user.getUserid()));
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
}
// /** // /**
// * 设置用户会员 // * 设置用户会员
...@@ -51,12 +83,21 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz, ...@@ -51,12 +83,21 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz,
* @return * @return
*/ */
@PutMapping("/setUserMember") @PutMapping("/setUserMember")
@ApiOperation(value = "修改用户会员信息")
public ObjectRestResponse UpdateUserMember(@RequestBody UserMemberDTO userMemberDTO) public ObjectRestResponse UpdateUserMember(@RequestBody UserMemberDTO userMemberDTO)
throws Exception { throws Exception {
if (userMemberDTO==null||userMemberDTO.getRentFreeDays()<0||userMemberDTO.getTotalNumber()<0) {
if (userMemberDTO==null) {
return ObjectRestResponse.createDefaultFail(); return ObjectRestResponse.createDefaultFail();
} }
if (Objects.nonNull(userMemberDTO.getRentFreeDays())&&userMemberDTO.getRentFreeDays()<0){
return ObjectRestResponse.createDefaultFail();
}
if (Objects.nonNull(userMemberDTO.getTotalNumber())&& userMemberDTO.getTotalNumber()<0){
return ObjectRestResponse.createDefaultFail();
}
baseBiz.UpdateUserMember(userMemberDTO); baseBiz.UpdateUserMember(userMemberDTO);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
......
package com.github.wxiaoqi.security.admin.rest; package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz; import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.biz.AppUserLoginBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserRelationBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserSellingWaterBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.feign.ActivityFeign; import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.feign.OrderFeign;
import lombok.RequiredArgsConstructor;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.util.*; import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/** /**
* @author libin * @author libin
...@@ -22,42 +24,55 @@ import java.util.*; ...@@ -22,42 +24,55 @@ import java.util.*;
* @description * @description
* @data 2019/7/24 15:11 * @data 2019/7/24 15:11
*/ */
@ConditionalOnProperty(prefix = "data.clean", name = "enable",havingValue = "true") @ConditionalOnProperty(prefix = "data.clean", name = "enable", havingValue = "true")
@RequiredArgsConstructor(onConstructor = @__({@Autowired}))
@RestController @RestController
@RequestMapping("/app/unauth/user_data") @RequestMapping("/app/unauth/user_data")
public class DataController { public class DataController {
@PostConstruct private final AppUserLoginBiz appUserLoginBiz;
public void init(){
System.out.println("启动了****************************"); private final AppUserDetailBiz appUserDetailBiz;
}
private final AppUserRelationBiz appUserRelationBiz;
private final AppUserSellingWaterBiz appUserSellingWaterBiz;
private final ActivityFeign activityFeign;
@Autowired private final MyWalletBiz walletBiz;
private AppUserLoginBiz appUserLoginBiz;
@Autowired private final MyWalletCathBiz walletCathBiz;
private AppUserDetailBiz appUserDetailBiz;
@Autowired private final BaseUserMemberBiz userMemberBiz;
private AppUserRelationBiz appUserRelationBiz;
@Autowired private final OrderFeign orderFeign;
private AppUserSellingWaterBiz appUserSellingWaterBiz;
@Autowired
private ActivityFeign activityFeign;
@GetMapping("/clearwithphone") @GetMapping("/clearwithphone")
public ObjectRestResponse<Void> clearData(@RequestParam("phones") List<String> phons) { public ObjectRestResponse<Void> clearData(@RequestParam("phones") List<String> phons) {
Map<String, Integer> phoneAndUserIdMapByPhones = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phons); Map<String, Integer> phoneAndUserIdMapByPhones = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phons);
if (Objects.nonNull(phoneAndUserIdMapByPhones)){ if (Objects.nonNull(phoneAndUserIdMapByPhones)) {
Collection<Integer> userIds = phoneAndUserIdMapByPhones.values(); Collection<Integer> userIds = phoneAndUserIdMapByPhones.values();
//1.删除登录表信息
appUserLoginBiz.deleteByPhones(phons); appUserLoginBiz.deleteByPhones(phons);
//2.删除用户详情信息
appUserDetailBiz.deleteByUserIds(userIds); appUserDetailBiz.deleteByUserIds(userIds);
//3.删除用户关系表信息
appUserRelationBiz.deleteByMemberIds(userIds); appUserRelationBiz.deleteByMemberIds(userIds);
//4.删除用户钱包
walletBiz.deleteByUserIds(userIds);
//5.删除用户提现记录
walletCathBiz.deleteByUserIds(userIds);
//6.删除会员信息
userMemberBiz.deleteByUserIds(userIds);
//7.删除佣金数据
appUserSellingWaterBiz.deleteByMemberIds(userIds); appUserSellingWaterBiz.deleteByMemberIds(userIds);
activityFeign.clearDate(new ArrayList<>(userIds)); //8.清除活动和用户优惠券信息
activityFeign.clearDate(new ArrayList(userIds));
//9.消除租车订单与旅游订单信息
// orderFeign.clearDateByUserIds(new ArrayList(userIds));
} }
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
...@@ -66,7 +81,7 @@ public class DataController { ...@@ -66,7 +81,7 @@ public class DataController {
public ObjectRestResponse<Void> clearRelationphone(@RequestParam("phones") List<String> phons) { public ObjectRestResponse<Void> clearRelationphone(@RequestParam("phones") List<String> phons) {
Map<String, Integer> phoneAndUserIdMapByPhones = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phons); Map<String, Integer> phoneAndUserIdMapByPhones = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phons);
if (Objects.nonNull(phoneAndUserIdMapByPhones)){ if (Objects.nonNull(phoneAndUserIdMapByPhones)) {
Collection<Integer> userIds = phoneAndUserIdMapByPhones.values(); Collection<Integer> userIds = phoneAndUserIdMapByPhones.values();
appUserRelationBiz.deleteByMemberIds(userIds); appUserRelationBiz.deleteByMemberIds(userIds);
appUserSellingWaterBiz.deleteByMemberIds(userIds); appUserSellingWaterBiz.deleteByMemberIds(userIds);
......
...@@ -68,26 +68,28 @@ ...@@ -68,26 +68,28 @@
m.total_number as totalNumber, m.total_number as totalNumber,
m.rent_free_days as rentFreeDays, m.rent_free_days as rentFreeDays,
m.crt_time as timeOfMembership, m.crt_time as timeOfMembership,
m.recent_recharge as recentRecharge, m.recent_recharge as recentRecharge,
m.name as memberName, m.name as memberName,
ul.username as inviter, ul.username as inviter,
aup.name as `positionName` aup.name as `positionName`
from from
app_user_login l app_user_login l
inner join inner join
(select * from app_user_detail where 1=1 <if test="postionState != null"> (select * from app_user_detail where 1=1
<choose> <if test="postionState != null">
<when test="postionState == 6"> <choose>
and `position_id`=#{postionState} <when test="postionState == 6">
</when> and `position_id`=#{postionState}
<otherwise> </when>
and <![CDATA[`position_id`<>6]]> <otherwise>
</otherwise> and <![CDATA[`position_id`<>6]]>
</choose> </otherwise>
</if>) d </choose>
</if>
) d
on on
d.userid = l.id d.userid = l.id
left join left join
app_user_login ul app_user_login ul
on on
ul.id=d.inviter_account ul.id=d.inviter_account
...@@ -110,7 +112,7 @@ ...@@ -110,7 +112,7 @@
on aup.id = d.position_id on aup.id = d.position_id
where l.isdel = 0 where l.isdel = 0
<if test="mobile !=null and mobile !='' "> <if test="mobile !=null and mobile !='' ">
and l.username like CONCAT('%',#{mobile},'%') and l.username like CONCAT('%',#{mobile},'%')
</if> </if>
<if test="channel !=null "> <if test="channel !=null ">
and d.channel=#{channel} and d.channel=#{channel}
...@@ -131,10 +133,10 @@ ...@@ -131,10 +133,10 @@
<if test="source !=null "> <if test="source !=null ">
and d.source = #{source} and d.source = #{source}
</if> </if>
order by l.id ASC order by l.id ASC
</select> </select>
<update id="updateUserMemberStatusByUserId"> <update id="updateUserMemberStatusByUserId">
update `app_user_detail` set `is_member`={status} where `userid`=#{userId} update `app_user_detail` set `is_member`={status} where `userid`=#{userId}
</update> </update>
<update id="updateUserPositionByUserId"> <update id="updateUserPositionByUserId">
......
...@@ -49,6 +49,8 @@ ...@@ -49,6 +49,8 @@
m.user_id=#{userId} m.user_id=#{userId}
and and
m.is_del=0 m.is_del=0
limit 1
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -166,22 +166,31 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> { ...@@ -166,22 +166,31 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> {
} }
UserCouponVo userCouponVo=null; UserCouponVo userCouponVo=null;
if (list2.size()>0){ if (list2.size()>0){
userCouponVo=list2.get(0); list2.sort(Comparator.comparing(UserCouponVo::getStatus));
userCouponVo=list2.get(0);
if (userCouponVo!=null){ if (userCouponVo!=null){
userCouponVo.setIsChecked(1); userCouponVo.setIsChecked(1);
list2.set(0,userCouponVo); list2.set(0,userCouponVo);
} }
list2.sort(Comparator.comparing(UserCouponVo::getStatus));
} }
if (list1.size()>0){ if (list1.size()>0){
list1.sort(Comparator.comparing(UserCouponVo::getStatus));
if (userCouponVo==null){ if (userCouponVo==null){
userCouponVo=list1.get(0); int num=0;
for (UserCouponVo couponVo:list1) {
if (couponVo.getStatus()==1){
userCouponVo=couponVo;
break;
}
num++;
}
if (userCouponVo!=null){ if (userCouponVo!=null){
userCouponVo.setIsChecked(1); userCouponVo.setIsChecked(1);
list1.set(0,userCouponVo); list1.set(num,userCouponVo);
} }
} }
list1.sort(Comparator.comparing(UserCouponVo::getStatus));
} }
JSONArray array = new JSONArray(); JSONArray array = new JSONArray();
JSONObject object=new JSONObject(); JSONObject object=new JSONObject();
......
package com.xxfc.platform.activity.config; package com.xxfc.platform.activity.config;
import com.github.wxiaoqi.security.common.config.RabbitCommonConfig; import com.github.wxiaoqi.security.common.config.rabbit.RabbitCommonConfig;
import com.github.wxiaoqi.security.common.config.rabbit.BindDTO; import com.github.wxiaoqi.security.common.config.rabbit.BindDTO;
import com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import java.util.ArrayList; import java.util.ArrayList;
......
...@@ -5,18 +5,11 @@ import com.github.pagehelper.PageInfo; ...@@ -5,18 +5,11 @@ import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.constant.RestCode; import com.github.wxiaoqi.security.common.constant.RestCode;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.EntityUtils;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.util.process.SystemConfig;
import com.xxfc.platform.app.vo.appVersionQuery; import com.xxfc.platform.app.vo.appVersionQuery;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.RedisKey;
import io.swagger.annotations.ApiOperation;
import lombok.extern.log4j.Log4j;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.session.RowBounds;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.DateTimeFormatter;
...@@ -32,18 +25,13 @@ import com.xxfc.platform.app.entity.AppVersion; ...@@ -32,18 +25,13 @@ import com.xxfc.platform.app.entity.AppVersion;
import com.xxfc.platform.app.mapper.AppVersionMapper; import com.xxfc.platform.app.mapper.AppVersionMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
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.List;
import java.util.concurrent.TimeUnit;
/** /**
* *
......
...@@ -4,37 +4,18 @@ import com.github.pagehelper.PageInfo; ...@@ -4,37 +4,18 @@ import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.constant.AppFormat; import com.github.wxiaoqi.security.admin.constant.AppFormat;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
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;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.app.biz.AppVersionBiz; import com.xxfc.platform.app.biz.AppVersionBiz;
import com.xxfc.platform.app.entity.AppVersion; import com.xxfc.platform.app.entity.AppVersion;
import com.xxfc.platform.app.entity.Cofig;
import com.xxfc.platform.app.vo.appVersionQuery; import com.xxfc.platform.app.vo.appVersionQuery;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Delete;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@RestController @RestController
@RequestMapping("version") @RequestMapping("version")
......
package com.xxfc.platform.order.entity; package com.xxfc.platform.order.entity;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.xxfc.platform.tour.entity.TourUser;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -245,5 +246,5 @@ public class OrderTourDetail implements Serializable { ...@@ -245,5 +246,5 @@ public class OrderTourDetail implements Serializable {
private Integer isOutside; private Integer isOutside;
@Transient @Transient
private List<AppUserVo> userVoList; private List<TourUser> userVoList;
} }
...@@ -31,6 +31,11 @@ public class OrderPageVO extends BaseOrder { ...@@ -31,6 +31,11 @@ public class OrderPageVO extends BaseOrder {
private String telephone; private String telephone;
/**
* 車輛編碼
*/
private Integer code;
/** /**
* 是否是用户匹配公司 * 是否是用户匹配公司
*/ */
......
...@@ -26,6 +26,7 @@ import com.xxfc.platform.order.pojo.order.OrderPageVO; ...@@ -26,6 +26,7 @@ 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.order.pojo.order.QueryOrderDTO; import com.xxfc.platform.order.pojo.order.QueryOrderDTO;
import com.xxfc.platform.order.rest.BaseOrderController; import com.xxfc.platform.order.rest.BaseOrderController;
import com.xxfc.platform.tour.entity.TourUser;
import com.xxfc.platform.tour.feign.TourFeign; import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.dto.SendMsgDTO; import com.xxfc.platform.universal.dto.SendMsgDTO;
...@@ -179,17 +180,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -179,17 +180,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
orderPageVo.setVehicalNumberPlat(response.getData().getNumberPlate()); orderPageVo.setVehicalNumberPlat(response.getData().getNumberPlate());
} }
} else if (orderPageVo.getOrderTourDetail() != null) { } else if (orderPageVo.getOrderTourDetail() != null) {
List<Integer> ids = Lists.newArrayList(); if(StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
if (orderPageVo.getOrderTourDetail().getTourUserIds().contains(",")) { List<TourUser> list = tourFeign.getTourUsers(orderPageVo.getOrderTourDetail().getTourUserIds()).getData();
String[] strings = orderPageVo.getOrderTourDetail().getTourUserIds().split(","); orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
for (int i = 0; i < strings.length; i++) {
ids.add(Integer.parseInt(StringUtils.isNotBlank(strings[i]) ? strings[i] : "0"));
}
} else {
ids.add(Integer.parseInt(orderPageVo.getOrderTourDetail().getTourUserIds()));
} }
List<AppUserVo> list = userFeign.getByUserIds(ids).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
} }
//设置保留金 //设置保留金
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
...@@ -268,18 +262,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -268,18 +262,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
orderPageVo.setVehicalNumberPlat(restResponse.getData().getNumberPlate()); orderPageVo.setVehicalNumberPlat(restResponse.getData().getNumberPlate());
} }
} else if (orderPageVo.getOrderTourDetail() != null) { } else if (orderPageVo.getOrderTourDetail() != null) {
List<Integer> ids = Lists.newArrayList(); if(StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
if (orderPageVo.getOrderTourDetail().getTourUserIds().contains(",")) { List<TourUser> list = tourFeign.getTourUsers(orderPageVo.getOrderTourDetail().getTourUserIds()).getData();
String[] strings = orderPageVo.getOrderTourDetail().getTourUserIds().split(","); orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
for (int i = 0; i < strings.length; i++) {
ids.add(Integer.parseInt(StringUtils.isNotBlank(strings[i]) ? strings[i] : "0"));
}
} else {
ids.add(Integer.parseInt(orderPageVo.getOrderTourDetail().getTourUserIds()));
} }
List<AppUserVo> list = userFeign.getByUserIds(ids).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
} }
//设置保留金 //设置保留金
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
......
...@@ -16,6 +16,10 @@ import com.xxfc.platform.vehicle.entity.BranchCompany; ...@@ -16,6 +16,10 @@ import com.xxfc.platform.vehicle.entity.BranchCompany;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.Instant;
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -89,13 +93,13 @@ public class OrderTourVerificationBiz{ ...@@ -89,13 +93,13 @@ public class OrderTourVerificationBiz{
} }
// 出发时间 是否已经发车 // 出发时间 是否已经发车
/* Date departureDate = tourFeign.selectDepartureDataBySpeId(tourDetail.getSpePriceId()); Date departureDate = tourFeign.selectDepartureDataBySpeId(tourDetail.getSpePriceId());
Long departureTime = tourFeign.selectDepartureTimeByStartCompanyIdAndRouteId(tourDetail.getStartCompanyId(), tourDetail.getGoodId()); //Long departureTime = tourFeign.selectDepartureTimeByStartCompanyIdAndRouteId(tourDetail.getStartCompanyId(), tourDetail.getGoodId());
Integer departureStatus = tourFeign.selectDepartureStatusByVerificationId(verificationId); Integer departureStatus = tourFeign.selectDepartureStatusByVerificationId(verificationId);
LocalTime localDepartureTime = LocalTime.ofSecondOfDay(departureTime); //LocalTime localDepartureTime = LocalTime.ofSecondOfDay(departureTime);
departureDate.setHours(localDepartureTime.getHour()); departureDate.setHours(0);
departureDate.setMinutes(localDepartureTime.getMinute()); departureDate.setMinutes(0);
departureDate.setSeconds(localDepartureTime.getSecond()); departureDate.setSeconds(0);
if (Instant.now().toEpochMilli()<departureDate.toInstant().toEpochMilli()){ if (Instant.now().toEpochMilli()<departureDate.toInstant().toEpochMilli()){
return ObjectRestResponse.createFailedResultWithObj(400,"还未到发车时间",0); return ObjectRestResponse.createFailedResultWithObj(400,"还未到发车时间",0);
...@@ -110,7 +114,7 @@ public class OrderTourVerificationBiz{ ...@@ -110,7 +114,7 @@ public class OrderTourVerificationBiz{
if (departureStatus==1){ if (departureStatus==1){
return ObjectRestResponse.createFailedResultWithObj(400,"已经发车",1); return ObjectRestResponse.createFailedResultWithObj(400,"已经发车",1);
}*/ }
baseOrder=new BaseOrder(); baseOrder=new BaseOrder();
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
...@@ -163,16 +164,16 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -163,16 +164,16 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
OrderRentVehicleDetail orderRentVehicleDetail = orderRentVehicleBiz.selectById(baseOrder.getDetailId()); OrderRentVehicleDetail orderRentVehicleDetail = orderRentVehicleBiz.selectById(baseOrder.getDetailId());
if(orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.DEPARTURE.getCode()) { if(orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.DEPARTURE.getCode()) {
boolean flag = getTodayTime(orderRentVehicleDetail.getStartTime()); boolean flag = getTodayTime(orderRentVehicleDetail.getEndTime());
if (!flag) { if (!flag) {
return ObjectRestResponse.createFailedResult(3501, "今日不是交车日期"); return ObjectRestResponse.createFailedResult(3502, "今日不是交车日期");
} }
if(userDTO.getCompanyId() != orderRentVehicleDetail.getStartCompanyId()) { if(userDTO.getCompanyId() != orderRentVehicleDetail.getStartCompanyId()) {
return ObjectRestResponse.createFailedResult(3501, "无交车权限"); return ObjectRestResponse.createFailedResult(3501, "无交车权限");
} }
} else { } else {
if(userDTO.getCompanyId() != orderRentVehicleDetail.getEndCompanyId()) { if(userDTO.getCompanyId() != orderRentVehicleDetail.getEndCompanyId()) {
return ObjectRestResponse.createFailedResult(3501, "无收车权限"); return ObjectRestResponse.createFailedResult(3503, "无收车权限");
} }
} }
if(baseOrder.getStatus() != -1) { if(baseOrder.getStatus() != -1) {
...@@ -193,7 +194,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -193,7 +194,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
} }
} }
AppUserDTO appUserDTO = userFeign.userDetailById(baseOrder.getUserId()).getData();
//调用车辆管理的出车还车 //调用车辆管理的出车还车
//出车 //出车
if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.DEPARTURE.getCode()) { //交车 if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.DEPARTURE.getCode()) { //交车
...@@ -203,27 +204,36 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -203,27 +204,36 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleDepartureVo.setDepartureBranchCompanyId(orderRentVehicleDetail.getStartCompanyId()); vehicleDepartureVo.setDepartureBranchCompanyId(orderRentVehicleDetail.getStartCompanyId());
vehicleDepartureVo.setExpectArrivalBranchCompanyId(orderRentVehicleDetail.getEndCompanyId()); vehicleDepartureVo.setExpectArrivalBranchCompanyId(orderRentVehicleDetail.getEndCompanyId());
vehicleDepartureVo.setMileage(orderVehicleCrosstownDto.getMileage()); vehicleDepartureVo.setMileage(orderVehicleCrosstownDto.getMileage());
if(appUserDTO != null) {
vehicleDepartureVo.setUser(appUserDTO.getNickname());
vehicleDepartureVo.setUserTel(appUserDTO.getUsername());
} else {
vehicleDepartureVo.setUser("APP用戶");
vehicleDepartureVo.setUserTel("13656235623");
}
vehicleDepartureVo.setUse("用户租车"); vehicleDepartureVo.setUse("用户租车");
vehicleDepartureVo.setBookRecordId(Integer.parseInt(orderRentVehicleDetail.getBookRecordId() + "")); vehicleDepartureVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId());
vehicleDepartureVo.setUser(userDTO.getUsername());
vehicleDepartureVo.setUserTel(userDTO.getTelPhone());
vehicleDepartureVo.setCheckMan(orderVehicleCrosstownDto.getLicenseName()); vehicleDepartureVo.setCheckMan(orderVehicleCrosstownDto.getLicenseName());
vehicleDepartureVo.setCheckManTel(orderVehicleCrosstownDto.getLicensePhone()); vehicleDepartureVo.setCheckManTel(orderVehicleCrosstownDto.getLicensePhone());
try { try {
vehicleFeign.departureBySmall(vehicleDepartureVo); RestResponse restResponse = vehicleFeign.departureBySmall(vehicleDepartureVo);
log.info("返回信息: " + restResponse);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return ObjectRestResponse.createFailedResult(500, e.getMessage()); return ObjectRestResponse.createFailedResult(1001, e.getMessage());
} }
} else if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.ARRIVE.getCode() || orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.FIXED_LOSS.getCode()) { //还车 } else if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.ARRIVE.getCode() || orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.FIXED_LOSS.getCode()) { //还车
VehicleArrivalVo vehicleArrivalVo = new VehicleArrivalVo(); VehicleArrivalVo vehicleArrivalVo = new VehicleArrivalVo();
vehicleArrivalVo.setVehicleId(orderRentVehicleDetail.getVehicleId()); vehicleArrivalVo.setVehicleId(orderRentVehicleDetail.getVehicleId());
vehicleArrivalVo.setArrivalBranchCompanyId(userDTO.getCompanyId()); vehicleArrivalVo.setArrivalBranchCompanyId(userDTO.getCompanyId());
vehicleArrivalVo.setMileage(orderVehicleCrosstownDto.getMileage()); vehicleArrivalVo.setMileage(orderVehicleCrosstownDto.getMileage());
vehicleArrivalVo.setRecycleMan(userDTO.getName()); vehicleArrivalVo.setRecycleMan(userDTO.getName());
vehicleArrivalVo.setRecycleManTel(userDTO.getTelPhone()); vehicleArrivalVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId());
if(appUserDTO != null) {
vehicleArrivalVo.setRecycleManTel(appUserDTO.getUsername());
} else {
vehicleArrivalVo.setRecycleManTel("13565235623");
}
try { try {
vehicleFeign.arrivalBySmall(vehicleArrivalVo); vehicleFeign.arrivalBySmall(vehicleArrivalVo);
} catch (Exception e) { } catch (Exception e) {
...@@ -262,7 +272,6 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -262,7 +272,6 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
return ObjectRestResponse.succ(oldValue.get(0)); return ObjectRestResponse.succ(oldValue.get(0));
} else if (oldValue.size() <= 0) { } else if (oldValue.size() <= 0) {
getOrderLicense(orderVehicleCrosstownDto); getOrderLicense(orderVehicleCrosstownDto);
orderVehicleCrosstownBiz.insertSelective(orderVehicleCrosstownDto); orderVehicleCrosstownBiz.insertSelective(orderVehicleCrosstownDto);
OrderVehicleCrosstown orderVehicleCrosstown = orderVehicleCrosstownBiz.selectOne(orderVehicleCrosstownDto); OrderVehicleCrosstown orderVehicleCrosstown = orderVehicleCrosstownBiz.selectOne(orderVehicleCrosstownDto);
handleOrderStatus(baseOrder, orderRentVehicleDetail, orderVehicleCrosstown); handleOrderStatus(baseOrder, orderRentVehicleDetail, orderVehicleCrosstown);
...@@ -367,8 +376,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -367,8 +376,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
public boolean getTodayTime(Long time) { public boolean getTodayTime(Long time) {
long current = System.currentTimeMillis(); long current = System.currentTimeMillis();
long startTime = current / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset(); if (current <= (time / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset() )+ 24 * 60 * 60 * 1000 -1) {
if (time >= startTime && time <= startTime + 24 * 60 * 60 * 1000 - 1) {
return true; return true;
} }
return false; return false;
......
package com.xxfc.platform.order.config; package com.xxfc.platform.order.config;
import com.github.wxiaoqi.security.common.config.RabbitCommonConfig; import com.github.wxiaoqi.security.common.config.rabbit.RabbitCommonConfig;
import com.github.wxiaoqi.security.common.config.rabbit.BindDTO; import com.github.wxiaoqi.security.common.config.rabbit.BindDTO;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
......
...@@ -25,6 +25,8 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail; ...@@ -25,6 +25,8 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.pojo.OrderAccompanyDTO; import com.xxfc.platform.order.pojo.OrderAccompanyDTO;
import com.xxfc.platform.order.pojo.order.*; import com.xxfc.platform.order.pojo.order.*;
import com.xxfc.platform.order.service.OrderRentVehicleService; import com.xxfc.platform.order.service.OrderRentVehicleService;
import com.xxfc.platform.tour.entity.TourUser;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus; import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
...@@ -78,6 +80,9 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -78,6 +80,9 @@ public class BackStageOrderController extends CommonBaseController implements Us
@Autowired @Autowired
UserFeign userFeign; UserFeign userFeign;
@Autowired
TourFeign tourFeign;
@Resource @Resource
VehicleFeign vehicleFeign; VehicleFeign vehicleFeign;
...@@ -180,10 +185,9 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -180,10 +185,9 @@ public class BackStageOrderController extends CommonBaseController implements Us
if (startResponse.getData() != null) { if (startResponse.getData() != null) {
orderPageVO.setStartCompanyName(startResponse.getData().getName()); orderPageVO.setStartCompanyName(startResponse.getData().getName());
} }
List<Integer> tourUserIds = Arrays.asList(orderPageVO.getOrderTourDetail().getTourUserIds().split(",")).parallelStream().map(s -> Integer.valueOf(s.trim())).collect(Collectors.toList()); if(StringUtils.isNotBlank(orderPageVO.getOrderTourDetail().getTourUserIds())) {
ObjectRestResponse<List<AppUserVo>> users = userFeign.getByUserIds(tourUserIds); List<TourUser> tourUsers = tourFeign.getTourUsers(orderPageVO.getOrderTourDetail().getTourUserIds()).getData();
if (users.getData() != null) { orderPageVO.getOrderTourDetail().setUserVoList(tourUsers == null || tourUsers.size() <= 0 ? new ArrayList<>() : tourUsers);
orderPageVO.getOrderTourDetail().setUserVoList(users.getData() == null? users.getData() : new ArrayList<>());
} }
} }
...@@ -231,6 +235,7 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -231,6 +235,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
log.info("获取车辆信息返回消息:{}", restResponse.getMessage()); log.info("获取车辆信息返回消息:{}", restResponse.getMessage());
if (restResponse.getData() != null) { if (restResponse.getData() != null) {
orderPageVO.setVehicalNumberPlat(restResponse.getData().getNumberPlate()); orderPageVO.setVehicalNumberPlat(restResponse.getData().getNumberPlate());
orderPageVO.setCode(restResponse.getData().getCode());
} }
} }
......
...@@ -239,7 +239,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -239,7 +239,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//如果用户存在,并且为会员,并且车辆有优惠价 //如果用户存在,并且为会员,并且车辆有优惠价
if(null != dto && null != detail.getRentFreeDay() && detail.getRentFreeDay() > 0 ) { if(null != dto && null != detail.getRentFreeDay() && detail.getRentFreeDay() > 0 ) {
if(null == dto.getRentFreeDays() || dto.getRentFreeDays() <= 0) { if(null == dto.getRentFreeDays() || dto.getRentFreeDays() <= 0) {
throw new BaseException(ResultCode.PARAM_EXPIRE_CODE, new HashSet<String>() {{ throw new BaseException(ResultCode.PARAM_EPIRE_CODE, new HashSet<String>() {{
add("免费租车天数不存在或为0"); add("免费租车天数不存在或为0");
}}); }});
} }
......
...@@ -35,6 +35,7 @@ import com.xxfc.platform.vehicle.entity.SysRegion; ...@@ -35,6 +35,7 @@ import com.xxfc.platform.vehicle.entity.SysRegion;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail; import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import lombok.extern.log4j.Log4j; import lombok.extern.log4j.Log4j;
import org.mockito.internal.util.collections.Sets;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -47,7 +48,7 @@ import java.util.HashSet; ...@@ -47,7 +48,7 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.*;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service @Service
...@@ -135,8 +136,18 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -135,8 +136,18 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
setSiteId(bo.getSiteId()); setSiteId(bo.getSiteId());
}})).getData().get(0).getId()); }})).getData().get(0).getId());
Integer departureStatus = tourFeign.selectDepartureStatusByVerificationId(bo.getVerificationId());
//1为已发车
if(!SYS_FALSE.equals(departureStatus)) {
throw new BaseException(ResultCode.PARAM_EPIRE_CODE, Sets.newSet("旅程已发车,不能下单"));
}
//扣減庫存 //扣減庫存
tourFeign.stock(bo.getSpePriceId(), bo.getTotalNumber(), TourFeign.STOCK_SUBTRACT); ObjectRestResponse<TourSpePriceVo> response = tourFeign.stock(bo.getSpePriceId(), bo.getTotalNumber(), TourFeign.STOCK_SUBTRACT);
if(!SYS_JSON_TRUE.equals(response.getStatus())) {
throw new BaseException(ResultCode.PARAM_EPIRE_CODE, Sets.newSet("库存不足"));
}
OrderItem tourAdultItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_ADULT); OrderItem tourAdultItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_ADULT);
OrderItem tourChildItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_CHILD); OrderItem tourChildItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_CHILD);
......
...@@ -28,7 +28,9 @@ public enum ResCode { ...@@ -28,7 +28,9 @@ public enum ResCode {
USERNAME_AND_TELE_NOT_NULL(104000, "使用人和电话不能为空"), USERNAME_AND_TELE_NOT_NULL(104000, "使用人和电话不能为空"),
VEHICLE_DEPARTURE_VEHICLE_UNEXIST(104001,"车辆不存在"), VEHICLE_DEPARTURE_VEHICLE_UNEXIST(104001,"车辆不存在"),
VEHICLE_DEPARTURE_VEHICLE_DISABLE(104002,"车辆不可用"), VEHICLE_DEPARTURE_VEHICLE_DISABLE(104002,"车辆不可用"),
VEHICLE_DEPARTURE_VEHICLE_DELETE(104007,"车辆已下架"),
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE(104003,"车辆未出车"), VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE(104003,"车辆未出车"),
VEHICLE_DEPARTURE_DATE_IS_NOT_ABLED(104006,"车辆不在出车范围内,请按照预定日期出车!"),
VEHICLE_BOOK_RECORD_IS_NOT_EXIST(104004, "预约记录不存在"), VEHICLE_BOOK_RECORD_IS_NOT_EXIST(104004, "预约记录不存在"),
VEHICLE_UNBOOK_FAIL(104005, "取消预定失败!"), VEHICLE_UNBOOK_FAIL(104005, "取消预定失败!"),
......
...@@ -87,7 +87,7 @@ public class VehicleDepartureLog { ...@@ -87,7 +87,7 @@ public class VehicleDepartureLog {
/** /**
* 预约记录id * 预约记录id
*/ */
Integer bookRecordId; Long bookRecordId;
//违章图片,逗号分隔 //违章图片,逗号分隔
String illegalPic; String illegalPic;
//违章金额 //违章金额
......
...@@ -38,6 +38,6 @@ public class VehicleArrivalVo { ...@@ -38,6 +38,6 @@ public class VehicleArrivalVo {
//违章金额 //违章金额
Integer illegalAmount; Integer illegalAmount;
Integer bookRecordId; Long bookRecordId;
} }
...@@ -33,7 +33,11 @@ public class VehicleBookRecordVo extends VehicleBookRecord { ...@@ -33,7 +33,11 @@ public class VehicleBookRecordVo extends VehicleBookRecord {
private Integer liftStatus; private Integer liftStatus;
private Integer retStatus; private Integer retStatus;
private Integer state; private Integer state;
private Integer code;
List<VehicleUpkeepItem> vehicleUpkeepItems; List<VehicleUpkeepItem> vehicleUpkeepItems;
} }
...@@ -48,7 +48,7 @@ public class VehicleDepartureVo { ...@@ -48,7 +48,7 @@ public class VehicleDepartureVo {
/** /**
* 预约记录id * 预约记录id
*/ */
Integer bookRecordId; Long bookRecordId;
//出车图片 //出车图片
String departurePic; String departurePic;
......
...@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Objects;
import static com.github.wxiaoqi.security.auth.common.constatns.CommonConstants.DATA_ALL_FALSE; import static com.github.wxiaoqi.security.auth.common.constatns.CommonConstants.DATA_ALL_FALSE;
...@@ -48,8 +49,12 @@ public class AreaBiz extends BaseBiz<AreaMapper, Area> implements UserRestInterf ...@@ -48,8 +49,12 @@ public class AreaBiz extends BaseBiz<AreaMapper, Area> implements UserRestInterf
return RestResponse.suc(mapper.findAllByIds(list)); return RestResponse.suc(mapper.findAllByIds(list));
} else { } else {
Area area = mapper.selectByPrimaryKey(ids);
if (Objects.isNull(area)){
return null;
}
List<Area> areas = Lists.newArrayList(); List<Area> areas = Lists.newArrayList();
areas.add(mapper.selectByPrimaryKey(ids)); areas.add(area);
return RestResponse.suc(areas); return RestResponse.suc(areas);
} }
} else { //拥有全部权限 } else { //拥有全部权限
......
...@@ -3,12 +3,16 @@ package com.xxfc.platform.vehicle.biz; ...@@ -3,12 +3,16 @@ package com.xxfc.platform.vehicle.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.*; import com.xxfc.platform.vehicle.constant.*;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.mapper.*; import com.xxfc.platform.vehicle.mapper.*;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -17,7 +21,9 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -17,7 +21,9 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
public class VehicleActiveService { public class VehicleActiveService {
...@@ -39,6 +45,12 @@ public class VehicleActiveService { ...@@ -39,6 +45,12 @@ public class VehicleActiveService {
@Autowired @Autowired
VehicleBookRecordBiz vehicleBookRecordBiz; VehicleBookRecordBiz vehicleBookRecordBiz;
@Autowired
VehicleBiz vehicleBiz;
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
@Value("${vehicle.mileage}") @Value("${vehicle.mileage}")
private Integer Mileage; private Integer Mileage;
...@@ -54,10 +66,6 @@ public class VehicleActiveService { ...@@ -54,10 +66,6 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(), throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode());
} }
if(StringUtils.isBlank(departureVo.getUser()) || StringUtils.isBlank(departureVo.getUserTel())) {
throw new BaseException(ResCode.USERNAME_AND_TELE_NOT_NULL.getDesc(),
ResCode.USERNAME_AND_TELE_NOT_NULL.getCode());
}
if(StringUtils.isBlank(departureVo.getCheckMan()) || StringUtils.isBlank(departureVo.getCheckManTel())) { if(StringUtils.isBlank(departureVo.getCheckMan()) || StringUtils.isBlank(departureVo.getCheckManTel())) {
throw new BaseException(ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getDesc(), throw new BaseException(ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getDesc(),
ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getCode()); ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getCode());
...@@ -66,6 +74,8 @@ public class VehicleActiveService { ...@@ -66,6 +74,8 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()), throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
} }
//添加出车时间过滤 再出车开始时间前一天至结束时间内可以出车,并且预定记录为已审核状态
checkDateInvalide(departureVo);
Integer MileageLift=vehicle.getMileageLastUpdate(); Integer MileageLift=vehicle.getMileageLastUpdate();
Integer MileageLift1=departureVo.getMileage(); Integer MileageLift1=departureVo.getMileage();
if(MileageLift1==null){ if(MileageLift1==null){
...@@ -101,6 +111,7 @@ public class VehicleActiveService { ...@@ -101,6 +111,7 @@ public class VehicleActiveService {
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode()); departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setDepartureRemark(departureVo.getRemark()); departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) { if(vehicleBookRecord != null) {
departureLog.setDepartureBranchCompanyId(vehicleBookRecord.getLiftCompany());
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType())); departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername()); departureLog.setUser(vehicleBookRecord.getVehicleUsername());
departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone()); departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone());
...@@ -117,6 +128,7 @@ public class VehicleActiveService { ...@@ -117,6 +128,7 @@ public class VehicleActiveService {
departureLog.setBookRecordId(departureVo.getBookRecordId()); departureLog.setBookRecordId(departureVo.getBookRecordId());
departureLog.setDepartureRemark(departureVo.getRemark()); departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) { if(vehicleBookRecord != null) {
departureLog.setDepartureBranchCompanyId(vehicleBookRecord.getLiftCompany());
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType())); departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername()); departureLog.setUser(vehicleBookRecord.getVehicleUsername());
departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone()); departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone());
...@@ -190,10 +202,17 @@ public class VehicleActiveService { ...@@ -190,10 +202,17 @@ public class VehicleActiveService {
ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode()); ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
} }
if (Mileagerest != null && Mileagerest1 >= Mileagerest) { if (Mileagerest != null && Mileagerest1 >= Mileagerest) {
VehicleBookRecord vehicleBookRecord = null;
if(arrivalVo.getBookRecordId() != null) {
vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 2);
}
// 写入车辆公里数,还车分公司id // 写入车辆公里数,还车分公司id
vehicle.setMileageLastUpdate(Mileagerest1); vehicle.setMileageLastUpdate(Mileagerest1);
vehicle.setParkBranchCompanyId(arrivalVo.getArrivalBranchCompanyId()); if(vehicleBookRecord != null) {
vehicle.setParkBranchCompanyId(vehicleBookRecord.getRetCompany());
}
vehicle.setExpectDestinationBranchCompanyId(0); vehicle.setExpectDestinationBranchCompanyId(0);
vehicleMapper.updateByPrimaryKeySelective(vehicle); vehicleMapper.updateByPrimaryKeySelective(vehicle);
...@@ -205,11 +224,6 @@ public class VehicleActiveService { ...@@ -205,11 +224,6 @@ public class VehicleActiveService {
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
} }
if(arrivalVo.getBookRecordId() != null) {
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 2);
}
// 出车记录 // 出车记录
VehicleDepartureLog departureLog = vehicleDepartureLogMapper.selectLastByVehicleId(arrivalVo.getVehicleId()); VehicleDepartureLog departureLog = vehicleDepartureLogMapper.selectLastByVehicleId(arrivalVo.getVehicleId());
...@@ -228,6 +242,9 @@ public class VehicleActiveService { ...@@ -228,6 +242,9 @@ public class VehicleActiveService {
departureLog.setIllegalAmount(arrivalVo.getIllegalAmount()); departureLog.setIllegalAmount(arrivalVo.getIllegalAmount());
departureLog.setArrivalPic(arrivalVo.getArrivalPic()); departureLog.setArrivalPic(arrivalVo.getArrivalPic());
departureLog.setArrivalRemark(arrivalVo.getRemark()); departureLog.setArrivalRemark(arrivalVo.getRemark());
if(vehicleBookRecord != null) {
departureLog.setArrivalBranchCompanyId(vehicleBookRecord.getRetCompany());
}
vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog); vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog);
// 车辆活动日志 // 车辆活动日志
VehicleActiveLog activeLog = vehicleActiveLogMapper.selectLastByVehicleId(arrivalVo.getVehicleId()); VehicleActiveLog activeLog = vehicleActiveLogMapper.selectLastByVehicleId(arrivalVo.getVehicleId());
...@@ -239,12 +256,48 @@ public class VehicleActiveService { ...@@ -239,12 +256,48 @@ public class VehicleActiveService {
activeLog.setUpdateTime(new Date()); activeLog.setUpdateTime(new Date());
vehicleActiveLogMapper.updateByPrimaryKeySelective(activeLog); vehicleActiveLogMapper.updateByPrimaryKeySelective(activeLog);
//取消预定时间 bookInfo和bookRecord
// BookVehicleVO bookVehicleVo = new BookVehicleVO();
// BeanUtils.copyProperties(vehicleBookRecord, bookVehicleVo);
// bookVehicleVo.setNotCheckTimeLegal(Boolean.TRUE);
// bookVehicleVo.setBookStartDate(null);
// bookVehicleVo.setBookEndDate(null);
// bookVehicleVo.setUnbookStartDate(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DATE_TIME_FORMATTER));
// bookVehicleVo.setUnbookEndDate(new DateTime(vehicleBookRecord.getBookEndDate()).toString(DATE_TIME_FORMATTER));
// try {
// Boolean hasSuc = vehicleBiz.unbookVehicle(bookVehicleVo);
// if(!hasSuc){
// throw new BaseException(ResCode.VEHICLE_UNBOOK_FAIL.getDesc(), ResCode.VEHICLE_UNBOOK_FAIL.getCode());
// }
// } catch ( Exception e) {
// e.printStackTrace();
// }
} else { } else {
throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(), throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(),
ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode()); ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
} }
} }
//添加出车时间过滤 再出车开始时间前一天至结束时间内可以出车,并且预定记录为已审核状态
public void checkDateInvalide(VehicleDepartureVo arrivalVo) {
if(arrivalVo.getBookRecordId() != null) {
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId());
if(vehicleBookRecord != null) {
DateTime startDate = new DateTime(vehicleBookRecord.getBookStartDate());
DateTime endDate = new DateTime(vehicleBookRecord.getBookEndDate());
Map<String, Object> param = new HashMap<>();
param.put("vehicleId", vehicleBookRecord.getVehicleId());
param.put("bookedEndDate", vehicleBookRecord.getBookStartDate());
List<VehicleBookRecord> list = vehicleBookRecordBiz.selectByVehicleIdAndTime(param);
if(!(startDate.minusDays(1).compareTo(DateTime.now()) <= 0 && DateTime.now().compareTo(endDate) <= 0 && vehicleBookRecord.getStatus() == VehicleBookRecordStatus.APPROVE.getCode() && (list == null || list.size() <= 0))) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_DATE_IS_NOT_ABLED.getDesc(),
ResCode.VEHICLE_DEPARTURE_DATE_IS_NOT_ABLED.getCode());
}
}
}
}
public void updateBookRecordStatus(VehicleBookRecord vehicleBookRecord, Integer type) { public void updateBookRecordStatus(VehicleBookRecord vehicleBookRecord, Integer type) {
if(vehicleBookRecord != null) { if(vehicleBookRecord != null) {
...@@ -357,4 +410,12 @@ public class VehicleActiveService { ...@@ -357,4 +410,12 @@ public class VehicleActiveService {
} }
public static void main(String[] args) {
DateTime startDate = DateTime.parse("2019-08-21 17:00:00", DATE_TIME_FORMATTER);
DateTime endDate = DateTime.parse("2019-08-21 21:00:00", DATE_TIME_FORMATTER);
System.out.println();
System.out.println(!(DateTime.now().compareTo(endDate) <= 0) && (startDate.minusDays(1).compareTo(DateTime.now()) <= 0));
}
} }
...@@ -412,7 +412,18 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -412,7 +412,18 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
public VehicleBookRecord applyVehicle(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception{ public VehicleBookRecord applyVehicle(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception{
log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName); log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName);
//检查车辆信息是否合法 //检查车辆信息是否合法
checkIfVehicleExists(bookVehicleVo.getVehicleId()); Vehicle vehicle = mapper.selectByPrimaryKey(bookVehicleVo.getVehicleId());
if(vehicle == null) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(), ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode());
}
if (vehicle.getStatus().equals(VehicleStatus.DISCARD.getCode())) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
if (vehicle.getIsDel() == 1) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DELETE.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DELETE.getCode());
}
if(StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())) { if(StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())) {
throw new BaseException(ResultCode.DATE_TIME_IS_NULL); throw new BaseException(ResultCode.DATE_TIME_IS_NULL);
} }
...@@ -443,6 +454,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -443,6 +454,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
vehicleBookRecord.setStatus(bookVehicleVo.getStatus()); vehicleBookRecord.setStatus(bookVehicleVo.getStatus());
vehicleBookRecord.setBookUser(userId); vehicleBookRecord.setBookUser(userId);
vehicleBookRecord.setBookUserName(userName); vehicleBookRecord.setBookUserName(userName);
vehicleBookRecord.setLiftCompany(vehicle.getParkBranchCompanyId());
vehicleBookRecordBiz.save(vehicleBookRecord); vehicleBookRecordBiz.save(vehicleBookRecord);
} else { } else {
vehicleBookRecord = vehicleBookRecordBiz.selectById(bookVehicleVo.getVehicleBookRecordId()); vehicleBookRecord = vehicleBookRecordBiz.selectById(bookVehicleVo.getVehicleBookRecordId());
...@@ -513,7 +525,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -513,7 +525,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
vehicleBookHourInfoDto.setVehicleId(vehicleId); vehicleBookHourInfoDto.setVehicleId(vehicleId);
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto); List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
if(vehicleBookHourInfos != null && vehicleBookHourInfos.size() >0) { if(vehicleBookHourInfos != null && vehicleBookHourInfos.size() >0) {
if((vehicleBookHourInfos.get(0).getBookedHour() & entry.getValue()) == entry.getValue()) { // 已经被预定 if((vehicleBookHourInfos.get(0).getBookedHour() & entry.getValue()) != 0) { // 已经被预定
log.info(entry.getKey() + "预定的时间段已经被预约!"); log.info(entry.getKey() + "预定的时间段已经被预约!");
return Boolean.FALSE; return Boolean.FALSE;
} }
...@@ -744,15 +756,47 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -744,15 +756,47 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
* @param id * @param id
*/ */
public boolean checkIfVehicleExists(String id){ public boolean checkIfVehicleExists(String id){
Integer count = mapper.selectCount(new Vehicle(){{
setId(id); Vehicle vehicle = mapper.selectByPrimaryKey(id);
}}); if(vehicle == null) {
if(count<=0){
return false; return false;
} }
if (vehicle.getStatus().equals(VehicleStatus.DISCARD.getCode())) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
return true; return true;
} }
public String getVehicleStatus(Integer status, String vehicleId) {
StringBuilder stringBuilder = new StringBuilder();
switch (status) {
case 1:
stringBuilder.append("正常运行");
break;
case 2:
stringBuilder.append("维修");
break;
case 3:
stringBuilder.append("报废");
break;
case 4:
stringBuilder.append("出车");
break;
case 5:
stringBuilder.append("保养");
break;
}
// List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByVehicleId(vehicleId);
// if(vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) {
// stringBuilder.append("中,使用人:");
// stringBuilder.append(vehicleBookRecordVos.get(0).getVehicleUsername());
// stringBuilder.append(" 使用人电话:");
// stringBuilder.append(vehicleBookRecordVos.get(0).getVehicleUserPhone());
// }
return stringBuilder.toString();
}
/** /**
* 把日期范围转换为列表,并检查操作范围是否合法 * 把日期范围转换为列表,并检查操作范围是否合法
* @param yearMonthAndDate * @param yearMonthAndDate
...@@ -859,25 +903,23 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -859,25 +903,23 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
vehicleBookHourInfoDto.setVehicleId(vehicleId); vehicleBookHourInfoDto.setVehicleId(vehicleId);
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto); List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
if (vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) { if (vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) {
if((vehicleBookHourInfos.get(0).getBookedHour() | 0) == 0) { vehicleBookHourInfos.get(0).setBookedHour((vehicleBookHourInfos.get(0).getBookedHour() & ~entry.getValue()));
if(!flag) { if((vehicleBookHourInfos.get(0).getBookedHour() & ~entry.getValue()) == 0) {
Integer effected = vehicleBookInfoMapper.updateBookedInfo(params); if(!flag) { //解决重复执行的问题
if (effected < 1) { Integer effected = vehicleBookInfoMapper.updateBookedInfo(params);
return Boolean.FALSE; if (effected < 1) {
} else { return Boolean.FALSE;
}
flag = true; flag = true;
continue;
} }
} }
} else {
vehicleBookHourInfos.get(0).setBookedHour((vehicleBookHourInfos.get(0).getBookedHour() & ~entry.getValue()));
int effect = vehicleBookHourInfoBiz.updateByIdRe(vehicleBookHourInfos.get(0)); int effect = vehicleBookHourInfoBiz.updateByIdRe(vehicleBookHourInfos.get(0));
if (effect < 1) { if (effect < 0) {
return Boolean.FALSE; return Boolean.FALSE;
} else { } else {
continue; continue;
} }
}
} else { } else {
return Boolean.FALSE; return Boolean.FALSE;
} }
......
...@@ -71,7 +71,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -71,7 +71,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
} }
} }
if(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER).equals(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER))) {//同一天预定 if(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER).equals(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER))) {//同一天预定
predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour & endPredictableHour); predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour | endPredictableHour);
} else { } else {
predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour); predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour);
predictableHours.put(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), endPredictableHour); predictableHours.put(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), endPredictableHour);
...@@ -147,8 +147,8 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -147,8 +147,8 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
} }
public static void main(String[] args) throws Exception{ public static void main(String[] args) throws Exception{
int b = 16744448; int b = 24;
Integer a = b | 0; Integer a = b & 4;
System.out.println(a); System.out.println(a);
} }
......
...@@ -7,20 +7,19 @@ import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; ...@@ -7,20 +7,19 @@ import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface; import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
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.Query; import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.xxfc.platform.universal.utils.DateUtil;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.BookType; import com.xxfc.platform.vehicle.constant.BookType;
import com.xxfc.platform.vehicle.constant.RedisKey; import com.xxfc.platform.vehicle.constant.RedisKey;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus; import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.BookRecordAccItem; import com.xxfc.platform.vehicle.entity.*;
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.BookRecordAccItemMapper;
import com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper; import com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
...@@ -57,6 +56,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -57,6 +56,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
public static final String TB_ACC_ITEM_NAME_REAL = "book_record_acc_item";//实际表名 public static final String TB_ACC_ITEM_NAME_REAL = "book_record_acc_item";//实际表名
public static final DateTimeFormatter YEAR_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy"); public static final DateTimeFormatter YEAR_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy");
public static final DateTimeFormatter YEARMONTH_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM"); public static final DateTimeFormatter YEARMONTH_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM");
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
public static final Integer DEL_BATCH_SIZE = 1000; public static final Integer DEL_BATCH_SIZE = 1000;
public static final Integer COPY_BATCH_SIZE = 100; public static final Integer COPY_BATCH_SIZE = 100;
...@@ -73,6 +73,11 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -73,6 +73,11 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
@Autowired @Autowired
VehicleUpkeepService vehicleUpkeepService; VehicleUpkeepService vehicleUpkeepService;
@Autowired
VehicleBookHourInfoBiz vehicleBookHourInfoBiz;
@Autowired
VehicleDepartureService vehicleDepartureService;
@Override @Override
public UserFeign getUserFeign() { public UserFeign getUserFeign() {
return userFeign; return userFeign;
...@@ -82,6 +87,10 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -82,6 +87,10 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
insertSelectiveRe(vehicleBookRecord); insertSelectiveRe(vehicleBookRecord);
} }
public List<VehicleBookRecord> selectByVehicleIdAndTime(Map<String, Object> param) {
return mapper.selectByVehicleIdAndTime(param);
}
public int changeRecordStatus(Map<String, Object> updateParam) { public int changeRecordStatus(Map<String, Object> updateParam) {
return mapper.changeRecordStatus(updateParam); return mapper.changeRecordStatus(updateParam);
} }
...@@ -340,6 +349,49 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -340,6 +349,49 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
return rs; return rs;
} }
/**
* 检验数据库预定记录日期是否和时间,日期表中的二进制数据一致
* @return
*/
public ObjectRestResponse checkDateInvalide(){
List<VehicleBookRecord> list = mapper.selectAll();
List<VehicleBookRecord> unRightList = new ArrayList<>();
if(list != null && list.size() > 0) {
for(VehicleBookRecord vehicleBookRecord : list) {
log.info("vehicleBookRecord = {}", vehicleBookRecord);
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(DateUtil.dateToStr(vehicleBookRecord.getBookStartDate(), "yyyy-MM-dd HH:mm:ss"), DateUtil.dateToStr(vehicleBookRecord.getBookStartDate(), "yyyy-MM-dd HH:mm:ss"), Boolean.TRUE);
log.info("转换为时间二进制:map = {}", map);
//检验数据有效性
if(vehicleBookRecord.getStatus() == 2) {
VehicleDepartureLogVo vehicleDepartureLog = vehicleDepartureService.getByRecordId(vehicleBookRecord.getId());
if(vehicleDepartureLog == null || vehicleDepartureLog.getState() != 1) { //未出车或未还车
for(Map.Entry<String, Integer> entry : map.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setVehicleId(vehicleBookRecord.getVehicleId());
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
log.info("预定时间信息:vehicleBookHourInfos = {}", vehicleBookHourInfos);
if(vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) {
//检验数据是否存在
if((vehicleBookHourInfos.get(0).getBookedHour() & entry.getValue()) == entry.getValue()) {
log.info("时间正确,已经存在");
} else {
log.info("时间不正确");
vehicleBookHourInfos.get(0).setBookedHour((vehicleBookHourInfos.get(0).getBookedHour() | entry.getValue()));
log.info("更新预定时间数据:vehicleBookHourInfos = {}", vehicleBookHourInfos);
vehicleBookHourInfoBiz.updateSelectiveByIdRe(vehicleBookHourInfos.get(0));
unRightList.add(vehicleBookRecord);
}
}
}
}
}
}
}
return ObjectRestResponse.succ(unRightList);
}
/** /**
* 迁移数据到历史表 * 迁移数据到历史表
......
...@@ -50,6 +50,10 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper, ...@@ -50,6 +50,10 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
return new PageInfo<>(mapper.selectByVehicleId(vehicleId)); return new PageInfo<>(mapper.selectByVehicleId(vehicleId));
} }
public VehicleDepartureLogVo getByRecordId(Long vehicleBookRecordId) {
return mapper.selectByBookRecordId(vehicleBookRecordId);
}
public VehicleDepartureStatisticDataVo statistic(String numberPlate) { public VehicleDepartureStatisticDataVo statistic(String numberPlate) {
Vehicle vehicle = vehicleMapper.selectByNumberPlate(numberPlate); Vehicle vehicle = vehicleMapper.selectByNumberPlate(numberPlate);
if (vehicle == null) { if (vehicle == null) {
......
...@@ -35,4 +35,6 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> { ...@@ -35,4 +35,6 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> {
public List<VehicleBookRecordVo> getBookRecord(VehicleBookRecordQueryVo vehicleBookRecordQueryVo); public List<VehicleBookRecordVo> getBookRecord(VehicleBookRecordQueryVo vehicleBookRecordQueryVo);
public List<VehicleBookRecordVo> getBookRecordInfo(Map<String, Object> param); public List<VehicleBookRecordVo> getBookRecordInfo(Map<String, Object> param);
public List<VehicleBookRecord> selectByVehicleIdAndTime(Map<String, Object> param);
} }
\ No newline at end of file
...@@ -22,5 +22,5 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo ...@@ -22,5 +22,5 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo
String selectDayByVehicleId(String vehicleId); String selectDayByVehicleId(String vehicleId);
VehicleDepartureLogVo selectByBookRecordId(Integer bookRecordId); VehicleDepartureLogVo selectByBookRecordId(Long bookRecordId);
} }
...@@ -209,6 +209,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -209,6 +209,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPROVE.getCode()); bookVehicleVo.setStatus(VehicleBookRecordStatus.APPROVE.getCode());
bookVehicleVo.setNotCheckTimeLegal(Boolean.TRUE);
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName); baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc(); return RestResponse.suc();
} }
...@@ -225,6 +226,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -225,6 +226,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode()); bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode());
bookVehicleVo.setNotCheckTimeLegal(Boolean.FALSE);
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName); baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc(); return RestResponse.suc();
} }
...@@ -497,4 +499,11 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -497,4 +499,11 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
vehicleJobHandler.execute(month); vehicleJobHandler.execute(month);
return RestResponse.suc(); return RestResponse.suc();
} }
@GetMapping("/app/unauth/checkHourInfo")
@IgnoreClientToken
@IgnoreUserToken
public ObjectRestResponse checkHourInfo() {
return vehicleBookRecordBiz.checkDateInvalide();
}
} }
...@@ -325,6 +325,11 @@ ...@@ -325,6 +325,11 @@
order by vbr.id desc order by vbr.id desc
</select> </select>
<select id="selectByVehicleIdAndTime" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord">
select v1.* from vehicle_book_record v1
where v1.vehicle_id = #{vehicleId} and v1.book_end_date &lt;= #{bookedEndDate} and v1.status BETWEEN 1 and 2
</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 select
vbr.`id`, vbr.`id`,
...@@ -400,7 +405,7 @@ ...@@ -400,7 +405,7 @@
parameterType="com.xxfc.platform.vehicle.pojo.VehicleBookRecordQueryVo"> parameterType="com.xxfc.platform.vehicle.pojo.VehicleBookRecordQueryVo">
select bc3.name parkCompanyName,bc4.name subordinateBranchName, conv(v4.booked_hour,10,2) 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, startHour,conv(v5.booked_hour,10,2) endHour, bc1.`name` lift_company_name, bc2.`name` ret_company_name,
v3.number_plate,v1.* v3.number_plate,v1.*,v3.code
from vehicle_book_record 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) = 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) YEAR(v1.book_start_date) AND MONTH(v4.year_month_day) = MONTH(v1.book_start_date) AND DAY(v4.year_month_day)
...@@ -421,6 +426,9 @@ ...@@ -421,6 +426,9 @@
<if test="numberPlate != null"> <if test="numberPlate != null">
and v3.number_plate = #{numberPlate} and v3.number_plate = #{numberPlate}
</if> </if>
<if test="code != null">
and v3.code = #{code}
</if>
<if test="bookType != null"> <if test="bookType != null">
and v1.book_type = #{bookType} and v1.book_type = #{bookType}
</if> </if>
...@@ -444,7 +452,7 @@ ...@@ -444,7 +452,7 @@
<select id="getBookRecordInfo" resultMap="searchBookRecord" parameterType="java.util.Map"> <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 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, #{userCompany} THEN 1 ELSE 0 end) retStatus,bc4.name subordinateBranchName, bc1.`name` lift_company_name,
bc2.`name` ret_company_name, v3.number_plate,v1.* bc2.`name` ret_company_name, v3.number_plate,v1.*,v3.code
from vehicle_book_record v1 from vehicle_book_record v1
LEFT JOIN branch_company bc1 ON v1.lift_company = bc1.id LEFT JOIN branch_company bc1 ON v1.lift_company = bc1.id
LEFT JOIN branch_company bc2 on v1.ret_company = bc2.id LEFT JOIN branch_company bc2 on v1.ret_company = bc2.id
...@@ -482,6 +490,9 @@ ...@@ -482,6 +490,9 @@
<if test="status != null and status == -1 "> <if test="status != null and status == -1 ">
and v4.state = 1 and v4.state = 1
</if> </if>
<if test="code != null">
and v3.code = #{code}
</if>
and v1.book_user != -2 and v1.book_user != -2
</where> </where>
group by v1.id group by v1.id
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
order by create_time desc order by create_time desc
</select> </select>
<select id="selectByBookRecordId" parameterType="java.lang.Integer" resultType="com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo"> <select id="selectByBookRecordId" parameterType="java.lang.Long" resultType="com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo">
select vehicle_departure_log.* select vehicle_departure_log.*
from vehicle_departure_log from vehicle_departure_log
where vehicle_departure_log.book_record_id = #{id} where vehicle_departure_log.book_record_id = #{id}
......
...@@ -344,7 +344,7 @@ ...@@ -344,7 +344,7 @@
</select> </select>
<select id="selectByNumberPlate" resultType="com.xxfc.platform.vehicle.entity.Vehicle"> <select id="selectByNumberPlate" resultType="com.xxfc.platform.vehicle.entity.Vehicle">
select * from vehicle select * from vehicle
where number_plate = #{numberPlate} where number_plate = #{numberPlate} and is_del=0
</select> </select>
<select id="selectById" resultMap="searchModel"> <select id="selectById" resultMap="searchModel">
......
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