Commit 8313a91b authored by libin's avatar libin

Merge remote-tracking branch 'origin/dev' into dev

parents 5787342e 72a68c9f
......@@ -2,24 +2,29 @@ package com.github.wxiaoqi.security.admin.biz;
import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.mapper.AppUserLoginMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant;
import com.github.wxiaoqi.security.common.constant.UserConstant;
import com.xxfc.platform.universal.entity.IdInformation;
import com.xxfc.platform.universal.feign.MQSenderFeign;
import com.xxfc.platform.universal.feign.ThirdFeign;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.time.Instant;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -36,6 +41,11 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
private static final String WX_TYPE="wx";
private static final String QQ_TYPE="q";
@Autowired
ThirdFeign thirdFeign;
@Autowired
MQSenderFeign mqSenderFeign;
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
@Override
public void insertSelective(AppUserLogin entity) {
......@@ -62,6 +72,44 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
super.updateSelectiveById(entity);
}
public Object test() {
threadRunner();
return "success";
}
public void threadRunner() {
List<AppUserLogin> list = mapper.selectAll();
ExecutorService executorService = Executors.newCachedThreadPool();
executorService.execute(new Runnable() {
@Override
public void run() {
if(list != null && list.size() > 0) {
for(AppUserLogin appUserLogin : list) {
try {
Thread.sleep(3000);
} catch (Exception e){}
IdInformation idInformation = thirdFeign.getOneByUserId(appUserLogin.getId());
if(idInformation != null) { //实名认证
JSONObject jsonObject = new JSONObject();
jsonObject.put("userId", appUserLogin.getId());
jsonObject.put("integralRuleCode", "CRETIFICATION");
jsonObject.put("channelId", idInformation.getId());
mqSenderFeign.sendMessage(RabbitConstant.INTEGRAL_TOPIC, RabbitConstant.INTEGRAL_ROUTING_KEY, jsonObject.toJSONString());
}
try {
Thread.sleep(3000);
} catch (Exception e){}
JSONObject jsonObject = new JSONObject();
jsonObject.put("userId", appUserLogin.getId());
jsonObject.put("integralRuleCode", "REGISTER");
jsonObject.put("channelId", appUserLogin.getId());
mqSenderFeign.sendMessage(RabbitConstant.INTEGRAL_TOPIC, RabbitConstant.INTEGRAL_ROUTING_KEY, jsonObject.toJSONString());
}
}
}
});
}
/**
* 根据用户名获取用户信息
......
......@@ -66,6 +66,16 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
log.info("----userId==="+userId+"----parentId===="+parentId+"----自己不能成为自己的上线");
return;
}
AppUserVo appUserVo=userDetailBiz.getUserInfoById(userId);
if (appUserVo==null){
log.info("----userId==="+userId+"----parentId===="+parentId+"----该用户不存在");
return;
}
appUserVo=userDetailBiz.getUserInfoById(parentId);
if (appUserVo==null){
log.info("----userId==="+userId+"----parentId===="+parentId+"----该上线用户不存在");
return;
}
AppUserRelation relation=getMyBiz().getRelationByUserId(parentId);
Long time=System.currentTimeMillis();
if(relation==null){
......@@ -122,7 +132,6 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
}
}
/**
* 小程序分享上下线绑定
* @param userid 当前人小程序id
......@@ -218,9 +227,10 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
//获取用户的下线总数
public int getCountByParentId(Integer parentId,Long time){
Example example=new Example(AppUserRelation.class);
example.createCriteria().andEqualTo("parentId",parentId).andNotEqualTo("isForever",1).andGreaterThan("bindTime",time);
return mapper.selectCountByExample(example);
if (validTime<=0){
time= validTime;
}
return mapper.countByParentId(parentId,time);
}
@CacheClear(key="user:relation{1.userId}")
......
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppUserRelation;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
......@@ -16,4 +17,7 @@ public interface AppUserRelationMapper extends Mapper<AppUserRelation> {
List<AppUserRelation> selectByLeaderId(Integer leaderId);
//获取有效的下级
public int countByParentId(@Param("parentId")Integer parentId,@Param("bindTime")Long bindTime);
}
package com.github.wxiaoqi.security.admin.rest;
import com.ace.cache.annotation.Cache;
import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.entity.*;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.admin.vo.AppUserGroups;
import com.github.wxiaoqi.security.admin.vo.AppUserInfoVo;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
......@@ -14,24 +12,20 @@ import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.msg.TableResultResponse;
import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.feign.OrderFeign;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import java.util.List;
import java.util.Map;
......@@ -153,7 +147,7 @@ public class AppUserController extends CommonBaseController{
UserMemberVo memberVo=userMemberBiz.getMemberInfoByUserId(userid);
if(memberVo!=null){
BeanUtils.copyProperties(userDTO,memberVo);
userDTO.setPayCount(orderFeign.baseOrderCount(SYS_TRUE, "4,5,6,7", null, userid).getData());
userDTO.setPayCount(orderFeign.baseOrderCount(SYS_TRUE, "4,5,6,-1", null, userid).getData());
Integer level=memberVo.getMemberLevel();
BaseUserMemberLevel memberLevel=userMemberLevelBiz.getLevel(level);
if (memberLevel!=null){
......@@ -285,4 +279,11 @@ public class AppUserController extends CommonBaseController{
AppUserInfoVo appUserInfoVo = userDetailBiz.findUserInfoByCode(code);
return ObjectRestResponse.succ(appUserInfoVo);
}
@GetMapping("/app/unauth/test")
@IgnoreUserToken
@IgnoreClientToken
public Object test() {
return appUserLoginBiz.test();
}
}
......@@ -6,4 +6,12 @@
<select id="selectByLeaderId" resultType="com.github.wxiaoqi.security.admin.entity.AppUserRelation">
select `parent_id` as `parentId`,`user_id`as `userId`,`bind_time` as `bindTime` from `app_user_relation` where `parent_id`=#{leaderId} and `is_del`=0 order by `bind_time` DESC
</select>
<select id="countByParentId">
select count(*) from `app_user_relation` where
`parent_id`=#{parentId} and `is_del`=0
<if test="bindTime!='' and bindTime!=null and bindTime>0">
and (is_forever=2 or bind_time>#{bindTime})
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -181,7 +181,7 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
} else {
integralUserRecordDto.setStartTime(null);
Integer count = mapper.countByUserAndCode(integralUserRecordDto);
integralUserStatus.setIntegralStatus(count == number);
integralUserStatus.setIntegralStatus(true);
}
integralUserStatusBiz.save(integralUserStatus);
}
......
......@@ -38,4 +38,6 @@ public class IntegralUserRecordController {
public ObjectRestResponse getListByCode(IntegralUserRecordDto integralUserRecordDto) {
return integralUserRecordBiz.getByUserAndTime(integralUserRecordDto);
}
}
......@@ -41,6 +41,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;
......@@ -169,7 +170,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
ids.add(Integer.parseInt(orderPageVo.getOrderTourDetail().getTourUserIds()));
}
List<AppUserVo> list = userFeign.getByUserIds(ids).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? null : list);
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
}
//设置保留金
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
......@@ -259,7 +260,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
ids.add(Integer.parseInt(orderPageVo.getOrderTourDetail().getTourUserIds()));
}
List<AppUserVo> list = userFeign.getByUserIds(ids).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? null : list);
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
}
//设置保留金
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
......@@ -322,6 +323,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
setOrderId(baseOrder.getId());
}});
//车辆预定审核通过
RestResponse<Integer> result = vehicleFeign.proveVehicleBooking(orvd.getBookRecordId());
//确认免费天数
if (orvd.getFreeDays() > 0) {
......
package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.order.entity.DailyMembersOrderStatistics;
import com.xxfc.platform.order.entity.DailyTravelOrderStatistics;
import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.DailyMembersOrderStatisticsMapper;
import com.xxfc.platform.order.mapper.DailyTravelOrderStatisticsMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -38,13 +37,25 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta
public boolean memberOrderStatistics() {
try {
List<Map<String, Object>> travelGmv = mapper.getTravelGmv(day);
if (CollectionUtils.isEmpty(travelGmv)) {
Map<String, Object> travelGmv = mapper.getTravelGmv(day);
if (travelGmv.isEmpty()) {
return true;
}
for (Map<String, Object> stringObjectMap : travelGmv) {
DailyMembersOrderStatistics MembersStatistics = new DailyMembersOrderStatistics();
BeanUtils.copyProperties(MembersStatistics, stringObjectMap);
DailyMembersOrderStatistics MembersStatistics = new DailyMembersOrderStatistics();
BeanUtils.copyProperties(MembersStatistics, travelGmv);
String oneDay = MembersStatistics.getOneDay();
if (StringUtils.isBlank(oneDay)) {
throw new BaseException();
}
Example exa = new Example(DailyMembersOrderStatistics.class);
exa.createCriteria().andEqualTo("oneDay", oneDay);
List<DailyMembersOrderStatistics> statistics = selectByExample(exa);
if (CollectionUtils.isEmpty(statistics)) {
insertSelective(MembersStatistics);
}
return true;
......
......@@ -3,16 +3,21 @@ package com.xxfc.platform.order.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.order.entity.DailyTravelOrderStatistics;
import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.DailyTravelOrderStatisticsMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.stream.Collectors;
/**
* 每日旅游订单统计
......@@ -20,6 +25,7 @@ import java.util.*;
* @author Administrator
*/
@Service
@Slf4j
public class DailyTravelOrderStatisticsBiz extends BaseBiz<DailyTravelOrderStatisticsMapper, DailyTravelOrderStatistics> {
@Value("${order.day}")
private Integer day;
......@@ -58,10 +64,26 @@ public class DailyTravelOrderStatisticsBiz extends BaseBiz<DailyTravelOrderStati
BeanUtil.copyProperties(object, statistics, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
}
String oneDay = map.entrySet().parallelStream().map(Map.Entry::getValue).collect(Collectors.toList()).get(0).getOneDay();
for (Map.Entry<Integer, DailyTravelOrderStatistics> e : map.entrySet()) {
insertSelectiveRe(e.getValue());
if (StringUtils.isBlank(oneDay)) {
throw new BaseException();
}
Example exa= new Example(DailyTravelOrderStatistics.class);
exa.createCriteria().andEqualTo("oneDay",oneDay);
List<DailyTravelOrderStatistics> statistics= selectByExample(exa);
if (CollectionUtils.isEmpty(statistics)){
for (Map.Entry<Integer, DailyTravelOrderStatistics> entry : map.entrySet()) {
insertSelectiveRe(entry.getValue());
}
}else {
log.error("今日已统计车辆订单,请不要重复统计!");
}
//
// for (Map.Entry<Integer, DailyTravelOrderStatistics> e : map.entrySet()) {
// insertSelectiveRe(e.getValue());
// }
}
}
......
......@@ -4,19 +4,27 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.alibaba.fastjson.JSON;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.order.entity.DailyOrderStatistics;
import com.xxfc.platform.order.entity.DailyVehicleOrderStatistics;
import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.DailyVehicleOrderStatisticsMapper;
import com.xxfc.platform.order.pojo.DedDetailDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import sun.rmi.runtime.Log;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.print.attribute.standard.MediaSize;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* 每日租车订单统计
......@@ -24,6 +32,7 @@ import java.util.*;
* @author Administrator
*/
@Service
@Slf4j
public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderStatisticsMapper, DailyVehicleOrderStatistics> {
private final Integer TYPE_DEFERRED = 1;
......@@ -73,8 +82,8 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta
}
private void InsertByList(ArrayList<DailyVehicleOrderStatistics> result) throws Exception {
if (CollectionUtils.isNotEmpty(result)) {
if(CollectionUtils.isNotEmpty(result)) {
Map<Integer, DailyVehicleOrderStatistics> map = new HashMap<>();
for (DailyVehicleOrderStatistics value : result) {
......@@ -89,11 +98,22 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta
value,
statistics,
CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
}
String oneDay = map.entrySet().parallelStream().map(Map.Entry::getValue).collect(Collectors.toList()).get(0).getOneDay();
if (StringUtils.isBlank(oneDay)) {
throw new BaseException();
}
Example exa= new Example(DailyVehicleOrderStatistics.class);
exa.createCriteria().andEqualTo("oneDay",oneDay);
List<DailyVehicleOrderStatistics> statistics= selectByExample(exa);
for (Map.Entry<Integer, DailyVehicleOrderStatistics> entry : map.entrySet()) {
insertSelectiveRe(entry.getValue());
if (CollectionUtils.isEmpty(statistics)){
for (Map.Entry<Integer, DailyVehicleOrderStatistics> entry : map.entrySet()) {
insertSelectiveRe(entry.getValue());
}
}else {
log.error("今日已统计车辆订单,请不要重复统计!");
}
}
......
......@@ -14,7 +14,7 @@ import java.util.Map;
*/
public interface DailyMembersOrderStatisticsMapper extends Mapper<DailyMembersOrderStatistics> {
List<Map<String, Object>> getTravelGmv(@Param("day") Integer day);
Map<String, Object> getTravelGmv(@Param("day") Integer day);
OrderStatistics monthOrderTotal(@Param("companyId") Integer companyId);
......
......@@ -35,22 +35,22 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
/**
* 租车订单
*/
private final Integer TYEP_VEHICLE = 1;
private final Integer TYPE_VEHICLE = 1;
/**
* 旅游订单
* 旅游订单
*/
private final Integer TYEP_TOUR = 2;
private final Integer TYPE_TOUR = 2;
/**
* 购买会员订单
*/
private final Integer TYEP_MEMBER = 3;
private final Integer TYPE_MEMBER = 3;
/**
* 月总数据
*/
private final Integer TYEP_TOTAL = 4;
private final Integer TYPE_TOTAL = 4;
@Autowired
private DailyVehicleOrderStatisticsBiz vehicleBiz;
......@@ -77,22 +77,23 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
UserDTO user = userDTOObjectRestResponse.getData();
Integer companyId = user.getCompanyId();
if (TYEP_VEHICLE.equals(type)) {
if (TYPE_VEHICLE.equals(type)) {
OrderStatistics vehicle = vehicleBiz.findAll(companyId);
return ObjectRestResponse.succ(vehicle);
}
if (TYEP_TOUR.equals(type)) {
if (TYPE_TOUR.equals(type)) {
OrderStatistics tour = TravelBiz.findAll(companyId);
return ObjectRestResponse.succ(tour);
}
if (TYEP_MEMBER.equals(type)) {
if (TYPE_MEMBER.equals(type)) {
OrderStatistics member = membersBiz.findAll(companyId);
return ObjectRestResponse.succ(member);
}
if (TYEP_TOTAL.equals(type)) {
if (TYPE_TOTAL.equals(type)) {
return ObjectRestResponse.succ(baseBiz.getTotalOrder(companyId));
}
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "参数错误!");
} catch (Exception e) {
e.printStackTrace();
......
......@@ -22,7 +22,7 @@
daily_members_order_statistics
WHERE
branch_company_id =#{companyId}
and
DATE_FORMAT(one_day,'%Y-%c')=DATE_FORMAT(DATE_SUB(NOW(),interval 1 day),'%Y-%c')
-- and
-- DATE_FORMAT(one_day,'%Y-%c')=DATE_FORMAT(DATE_SUB(NOW(),interval 1 day),'%Y-%c')
</select>
</mapper>
\ No newline at end of file
......@@ -58,7 +58,7 @@
daily_travel_order_statistics
WHERE
branch_company_id =#{branchCompanyId}
AND
DATE_FORMAT(one_day,'%Y-%c')=DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%c')
-- AND
-- DATE_FORMAT(one_day,'%Y-%c')=DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%c')
</select>
</mapper>
\ No newline at end of file
......@@ -139,9 +139,8 @@
<select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics">
SELECT
IFNULL(sum(gmv),0) as totalGmv,
IFNULL(sum(security_deposit),0) as totalSecurityDeposit,
(IFNULL(sum(security_deposit),0)-IFNULL(sum(refund_security_deposit) ,0)) as totalSecurityDeposit,
IFNULL(sum(refund_security_deposit) ,0) as totalRefundSecurityDeposit,
IFNULL(sum(compensation) ,0) as totalCompensation,
IFNULL(sum(forfeit) ,0) as totalForfeit,
......@@ -151,7 +150,7 @@
daily_vehicle_order_statistics
WHERE
branch_company_id =#{companyId}
and
DATE_FORMAT(one_day,'%Y-%c')=DATE_FORMAT(DATE_SUB(NOW(),interval 1 day),'%Y-%c')
-- and
-- DATE_FORMAT(one_day,'%Y-%c')=DATE_FORMAT(DATE_SUB(NOW(),interval 1 day),'%Y-%c')
</select>
</mapper>
\ No newline at end of file
......@@ -47,7 +47,7 @@ public class IdInformation implements Serializable {
* 用户id
*/
@Column(name = "user_login_id")
private Integer userLonginId;
private Integer userLoginId;
/**
*
......
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.universal.dto.SmsTemplateDTO;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.entity.IdInformation;
import com.xxfc.platform.universal.vo.OrderPayVo;
import com.xxfc.platform.universal.vo.OrderRefundVo;
import com.xxfc.platform.universal.vo.TrafficViolations;
......@@ -74,7 +75,8 @@ public interface ThirdFeign {
@PostMapping("/dictionary/type_code")
public Dictionary findDictionaryByTypeAndCode(@RequestParam(value = "type") String type,@RequestParam(value = "code") String code);
@GetMapping(value = "/certif/app/unauth/selectByUser")
public IdInformation getOneByUserId(@RequestParam(value = "userId")Integer userId);
/***************************************** 违章 ********************************************/
@GetMapping("/3p/tv/getRentViolation")
......
......@@ -12,14 +12,10 @@ import com.xxfc.platform.universal.biz.MQServiceBiZ;
import com.xxfc.platform.universal.entity.IdInformation;
import com.xxfc.platform.universal.service.CertificationService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.task.TaskExecutor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.concurrent.CompletableFuture;
......@@ -45,7 +41,6 @@ public class CertificationController {
private UserFeign userFeign;
@Qualifier("applicationTaskExecutor")
@Autowired
private TaskExecutor executor;
......@@ -79,11 +74,11 @@ public class CertificationController {
return ObjectRestResponse.createFailedResult(ResultCode.GET_APPUSER_FAILED_CODE,"无法识别,请重新上传");
}
AppUserDTO appUserDTO = appUserDTOObjectRestResponse.getData();
idInformation.setUserLonginId(appUserDTO.getUserid());
idInformation.setUserLoginId(appUserDTO.getUserid());
//获取用户认证信息
ObjectRestResponse orr = null;
try {
orr = userFeign.authentication(idInformation.getUserLonginId(), null,null, 0);
orr = userFeign.authentication(idInformation.getUserLoginId(), null,null, 0);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -125,4 +120,8 @@ public class CertificationController {
mqServiceBiZ.sendMessage(RabbitConstant.INTEGRAL_TOPIC, RabbitConstant.INTEGRAL_ROUTING_KEY, jsonObject.toJSONString());
}
@GetMapping(value = "/app/unauth/selectByUser")
public IdInformation getOneByUserId(Integer userId) {
return certificationService.getByUser(userId);
}
}
......@@ -2,8 +2,6 @@ package com.xxfc.platform.universal.mapper;
import com.xxfc.platform.universal.entity.IdInformation;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;
......@@ -11,6 +9,8 @@ import tk.mybatis.mapper.common.Mapper;
public interface IdInformationMapper extends Mapper<IdInformation> {
@Insert(value = "insert into id_information (user_login_id,name,id_number,certificate_type,front_url,back_url,expiration_date) " +
"values (#{userLonginId},#{name},#{idNumber},#{certificateType},#{frontUrl},#{backUrl},#{expirationDate})")
"values (#{userLoginId},#{name},#{idNumber},#{certificateType},#{frontUrl},#{backUrl},#{expirationDate})")
void addIdInformation(IdInformation idInformation);
IdInformation selectByUserId(Integer userLoginId);
}
......@@ -10,7 +10,6 @@ import com.xxfc.platform.universal.entity.IdInformation;
import com.xxfc.platform.universal.mapper.IdInformationMapper;
import com.xxfc.platform.universal.utils.CertifHttpUtils;
import com.xxfc.platform.universal.utils.Validation;
import javafx.application.Application;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.map.HashedMap;
......@@ -22,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import tk.mybatis.mapper.entity.Example;
......@@ -335,7 +333,7 @@ public class CertificationService {
Example exa = new Example(IdInformation.class);
Example.Criteria criteria = exa.createCriteria();
criteria.andEqualTo("idNumber",idInformation.getIdNumber());
criteria.andEqualTo("userLonginId",idInformation.getUserLonginId());
criteria.andEqualTo("userLoginId",idInformation.getUserLoginId());
List<IdInformation> idInformations = idInformationMapper.selectByExample(exa);
if (CollectionUtils.isEmpty(idInformations)) {
idInformation.setCrtTime(new Date());
......@@ -346,22 +344,20 @@ public class CertificationService {
idInformation.setUpdTime(new Date());
idInformationMapper.updateByPrimaryKeySelective(idInformation);
}
log.info("----addIdInformation---userid==="+idInformation.getUserLonginId()+"----name====" + idInformation.getName()+"---IdNumber==="+idInformation.getIdNumber());
log.info("----addIdInformation---userid==="+idInformation.getUserLoginId()+"----name====" + idInformation.getName()+"---IdNumber==="+idInformation.getIdNumber());
//认证成功后修改用户,用户认证状态
ObjectRestResponse authentication = userFeign.authentication(idInformation.getUserLonginId(), idInformation.getName(), idInformation.getIdNumber(), 1);
ObjectRestResponse authentication = userFeign.authentication(idInformation.getUserLoginId(), idInformation.getName(), idInformation.getIdNumber(), 1);
return ObjectRestResponse.succ(idInformation.getId());
} catch (Exception e) {
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus();
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA,"无法识别,请重新上传");
}
}
public IdInformation getByUser(Integer userId) {
return idInformationMapper.selectByUserId(userId);
}
}
......
......@@ -6,14 +6,16 @@
<result property="id" column="id"/>
<result property="idNumber" column="id_number"/>
<result property="name" column="name"/>
<result property="userLonginId" column="user_login_id"/>
<result property="userLoginId" column="user_login_id"/>
<result property="certificateType" column="certificate_type"/>
<result property="frontUrl" column="front_url"/>
<result property="backUrl" column="back_url"/>
<result property="expirationDate" column="expiration_date"/>
<result property="authenticationMethods" column="authentication_methods"/>
</resultMap>
<select id="selectByUserId" resultType="com.xxfc.platform.universal.entity.IdInformation" parameterType="java.lang.Integer">
select * from id_information where user_login_id = #{userLoginId}
</select>
</mapper>
\ No newline at end of file
......@@ -29,6 +29,7 @@ public enum ResCode {
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE(104003,"车辆未出车"),
VEHICLE_BOOK_RECORD_IS_NOT_EXIST(104004, "预约记录不存在"),
VEHICLE_UNBOOK_FAIL(104005, "取消预定失败!"),
BRANCH_COMPANY_UNEXIST(105001, "分公司信息不存在"),
BRANCH_COMPANY_STOCK_EXISTED(105002, "分公司股权信息已存在"),
......
......@@ -103,4 +103,9 @@ public class BookVehicleVO {
private String upkeepIds;
private String orderNo;
/**
* book_record状态
*/
private Integer status;
}
\ No newline at end of file
......@@ -14,9 +14,6 @@ public class CompanyDetail extends BranchCompany {
StringBuilder detailAddrStr = new StringBuilder("");
if(null != this.getSysRegions() && this.getSysRegions().size() > 0) {
for(SysRegion sysRegion : this.getSysRegions()) {
// if(0 != detailAddrStr.length()) {
//
// }
String name = sysRegion.getName()
.replace("省", "")
.replace("市", "")
......@@ -27,7 +24,9 @@ public class CompanyDetail extends BranchCompany {
}
}
}
if(this.getAddrDetail().contains(detailAddrStr)) {
return this.getAddrDetail();
}
detailAddrStr.append(this.getAddrDetail());
return detailAddrStr.toString();
}
......
......@@ -29,4 +29,6 @@ public class QueryVehicleWarningMsgVo {
private Integer page;
private Integer limit;
private Integer colorType;
}
......@@ -56,7 +56,7 @@ public class VehicleActiveService {
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode());
}
if (!vehicle.getStatus().equals(VehicleStatus.NORMAL.getCode())) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc(),
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
Integer MileageLift=vehicle.getMileageLastUpdate();
......@@ -75,8 +75,8 @@ public class VehicleActiveService {
int result = vehicleMapper.updateStatusByIdAndStatus(departureVo.getVehicleId(), VehicleStatus.DEPARTURE.getCode(),
VehicleStatus.NORMAL.getCode());
if (result == 0) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc(),
if (!vehicle.getStatus().equals(VehicleStatus.NORMAL.getCode())) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
//修改预约记录状态
......@@ -117,10 +117,35 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(),
ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
}
}
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();
}
@Transactional
......@@ -131,7 +156,7 @@ public class VehicleActiveService {
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode());
}
if (!vehicle.getStatus().equals(VehicleStatus.DEPARTURE.getCode())) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc(),
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()),
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
}
Integer Mileagerest = vehicle.getMileageLastUpdate();
......
......@@ -31,7 +31,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
public static Map<String, Integer> getPredictableHours(String bookStartDate, String bookEndDate) {
public Map<String, Integer> getPredictableHours(String bookStartDate, String bookEndDate) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = null;
Date endDate = null;
......@@ -68,12 +68,14 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
endPredictableHour |= 1 << (curentHour);
}
}
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);
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);
} else {
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);
}
DateTime startDay = DateTime.parse(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), DATE_TIME_FORMATTER);
DateTime endDay = DateTime.parse(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), DATE_TIME_FORMATTER);
if(endDay.getDayOfMonth() - startDay.getDayOfMonth() >1){ //
for (DateTime curDate = startDay.plusDays(1); curDate.compareTo(endDay) < 0; curDate = curDate.plusDays(1)) {
String curDateStr = curDate.toString(DATE_TIME_FORMATTER);
......@@ -143,18 +145,9 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
}
public static void main(String[] args) throws Exception{
String result = Integer.toBinaryString(16777200);
String newString = new StringBuilder(result).reverse().toString();
int i=newString.length()-result.replace("1", "").length();
System.out.println(i);
Map<String, Integer> map = getPredictableHours("2019-07-28 00:00:00","2019-07-29 00:00:00");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
log.info(entry.getKey());
log.info(entry.getValue() + "");
}
int b = 16744448;
Integer a = b | 31;
System.out.println(a);
}
}
......@@ -299,7 +299,9 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
return PageDataVO.pageInfo(vehiclePageInfo);
}
public List<VehicleBookRecordVo> selectByVehicleId(String vehicleId) {
return mapper.selectByVehicleId(vehicleId);
}
/**
......
......@@ -30,7 +30,7 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> {
public List<VehicleRecordInfoVo> getByParam(Map<String, Object> params);
public List<VehicleBookRecord> getByVehicleId(String vehicleId);
public List<VehicleBookRecordVo> selectByVehicleId(String vehicleId);
public List<VehicleBookRecordVo> getBookRecord(VehicleBookRecordQueryVo vehicleBookRecordQueryVo);
......
......@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
......@@ -13,17 +14,16 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.biz.VehicleBookRecordBiz;
import com.xxfc.platform.vehicle.biz.VehiclePlatCataBiz;
import com.xxfc.platform.vehicle.biz.VehicleWarningMsgBiz;
import com.xxfc.platform.vehicle.biz.*;
import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.BookType;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookInfo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
......@@ -46,6 +46,7 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP_NAME;
......@@ -55,7 +56,7 @@ import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP_NAME;
@Slf4j
@IgnoreClientToken
@Api(value="车辆管理controller",tags={"车辆管理接口"})
public class VehicleController extends BaseController<VehicleBiz> {
public class VehicleController extends BaseController<VehicleBiz> implements UserRestInterface {
@Autowired
private VehicleBookRecordBiz vehicleBookRecordBiz;
......@@ -78,7 +79,11 @@ public class VehicleController extends BaseController<VehicleBiz> {
@Autowired
private VehicleJobHandler vehicleJobHandler;
@Autowired
BranchCompanyBiz branchCompanyBiz;
public UserFeign getUserFeign() {
return userFeign;
}
private static Integer MAX_DRIVING_LICENSE_SIZE = 10 * 1024 * 1024;//10M
public static final DateTimeFormatter DEFAULT_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
......@@ -213,6 +218,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
public RestResponse<Integer> applyVehicle(@RequestBody BookVehicleVO bookVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode());
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc();
}
......@@ -228,7 +234,8 @@ public class VehicleController extends BaseController<VehicleBiz> {
public RestResponse<Integer> applyForVehicle(@RequestBody BookVehicleVO bookVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
baseBiz.applyForVehicle(operatorId, bookVehicleVo, userName);
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode());
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc();
}
......@@ -440,7 +447,8 @@ public class VehicleController extends BaseController<VehicleBiz> {
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
bookVehicleVo.setBookType(BookType.USER_RENT.getCode());
bookVehicleVo.setVehicleId(pageDataVO.getData().get(0).getId());
VehicleBookRecord vehicleBookRecord = baseBiz.applyVehicle4Employee(operatorId, bookVehicleVo, userName);
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode());
VehicleBookRecord vehicleBookRecord = baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return ObjectRestResponse.succ(vehicleBookRecord);
}
......@@ -450,6 +458,34 @@ public class VehicleController extends BaseController<VehicleBiz> {
@IgnoreClientToken
@IgnoreUserToken
public ObjectRestResponse<Map<String, Object>> getVehiclePlanList(VehiclePlanDto vehiclePlanDto) {
UserDTO userDTO = getAdminUserInfo();
if(userDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, "token失效");
}
List<Integer> companyList = Lists.newArrayList();
List<BranchCompany> branchCompany = branchCompanyBiz.getListByUser(userDTO);
companyList = branchCompany.stream().map(BranchCompany::getId).collect(Collectors.toList());
if(vehiclePlanDto.getParkBranchCompanyId() != null) {
if(companyList.size() > 0) {
if(companyList.contains(vehiclePlanDto.getParkBranchCompanyId())) {
companyList.clear();
companyList.add(vehiclePlanDto.getParkBranchCompanyId());
} else {
return ObjectRestResponse.succ();
}
}
}
if(vehiclePlanDto.getSubordinateBranch() != null) {
if(companyList.size() > 0) {
if(companyList.contains(vehiclePlanDto.getSubordinateBranch())) {
companyList.clear();
companyList.add(vehiclePlanDto.getSubordinateBranch());
} else {
return ObjectRestResponse.succ();
}
}
}
vehiclePlanDto.setCompanyIds(companyList);
//获取列表
PageDataVO<VehicleAndModelInfoVo> pageDataVO = baseBiz.getAllVehicle(vehiclePlanDto);
//获取警告信息
......
......@@ -367,11 +367,9 @@
</select>
<select id="getByVehicleId" parameterType="java.lang.String"
resultType="com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo">
SELECT v1.*, conv(v2.booked_hour,10,2) startHour,conv(v3.booked_hour,10,2) endHour,bc2.name retCompanyName from vehicle_book_record v1
LEFT JOIN vehicle_book_hour_info v2 on v2.book_record_id = v1.id and YEAR(v2.year_month_day) = YEAR(v1.book_start_date) AND MONTH(v2.year_month_day) = MONTH(v1.book_start_date) AND DAY(v2.year_month_day) =DAY(v1.book_start_date)
LEFT JOIN vehicle_book_hour_info v3 on v3.book_record_id = v1.id and YEAR(v3.year_month_day) = YEAR(v1.book_end_date) AND MONTH(v3.year_month_day) = MONTH(v1.book_end_date) AND DAY(v3.year_month_day) =DAY(v1.book_end_date)
LEFT JOIN branch_company bc2 on v1.ret_company = bc2.id
where v1.vehicle_id = #{vehicleId} and v1.status BETWEEN 1 and 2 and v1.book_end_date
SELECT v1.*,bc2.name retCompanyName from vehicle_book_record v1
LEFT JOIN branch_company bc2 on v1.ret_company = bc2.id
where v1.vehicle_id = #{vehicleId} and v1.status BETWEEN 1 and 2
</select>
<select id="getByParam" parameterType="java.util.Map" resultMap="getVehicleMap">
select v1.* from vehicle_book_record v1
......
......@@ -380,16 +380,16 @@
<if test="status != null">
and v1.status = #{status}
</if>
<if test="subordinateBranch != null">
and v1.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v1.park_branch_company_id = #{parkBranchCompanyId}
<if test="companyIds != null and companyIds.size > 0">
and v1.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="zoneId !=null">
and bc2.zone_id = #{zoneId}
</if>
and is_del != 1
and is_del != 1
</where>
</select>
......@@ -397,7 +397,7 @@
select v1.*,bc3.name parkCompanyName from vehicle v1
LEFT JOIN branch_company bc3 ON v1.park_branch_company_id = bc3.id
<where>
<if test="numberPlate != null">
<if test="numberPlate != null and numberPlate != ''">
and v1.number_plate = #{numberPlate}
</if>
<if test="companyIds != null and companyIds.size > 0">
......@@ -455,21 +455,19 @@
<if test="startTime != null">
and v1.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
<if test="numberPlate != null and numberPlate != ''">
and v1.number_plate = #{numberPlate}
</if>
<if test="status != null">
and v1.status = #{status}
</if>
<if test="subordinateBranch != null">
and v1.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v1.park_branch_company_id = #{parkBranchCompanyId}
</if>
<if test="zoneId !=null">
and bc1.zone_id = #{zoneId}
<if test="companyIds != null and companyIds.size > 0">
and v1.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
and v1.is_del != 1
</where>
GROUP BY v1.status
union all
......@@ -480,21 +478,19 @@
<if test="startTime != null">
and v2.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
<if test="numberPlate != null and numberPlate != ''">
and v2.number_plate = #{numberPlate}
</if>
<if test="status != null">
and v2.status = #{status}
</if>
<if test="subordinateBranch != null">
and v2.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v2.park_branch_company_id = #{parkBranchCompanyId}
</if>
<if test="zoneId !=null">
and bc2.zone_id = #{zoneId}
<if test="companyIds != null and companyIds.size > 0">
and v2.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
and v1.is_del != 1
</where>
</select>
......
......@@ -44,20 +44,17 @@
<if test="startTime != null">
and w.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
<if test="numberPlate != null and numberPlate != ''">
and v.number_plate = #{numberPlate}
</if>
<if test="status != null">
and v.status = #{status}
</if>
<if test="subordinateBranch != null">
and v.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v.park_branch_company_id = #{parkBranchCompanyId}
</if>
<if test="zoneId !=null">
and bc2.zone_id = #{zoneId}
<if test="companyIds != null and companyIds.size > 0">
and v.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
</select>
......@@ -76,6 +73,12 @@
<if test="numberPlate != null and numberPlate != '' ">
and number_plate = #{numberPlate}
</if>
<if test="type != null">
and type = #{type}
</if>
<if test="colorType != null">
and color_type = #{colorType}
</if>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment