Commit 7aaef639 authored by 周健威's avatar 周健威

Merge branch 'dev' into 'master'

Dev-master-merge

See merge request !8
parents b984700b 9d964acd
......@@ -24,6 +24,7 @@ public class ResultCode {
// 预定时间不能小于当前时间
public static int ONLY_BOOK_FROM_TODAY = Integer.valueOf(SystemProperty.getResultConfig("ONLY_BOOK_FROM_TODAY"));
public static int END_TIME_FROM_TODAY = Integer.valueOf(SystemProperty.getResultConfig("END_TIME_FROM_TODAY"));
// 只能预定两个月内的车辆
public static int ONLY_BOOK_TWO_MONTH = Integer.valueOf(SystemProperty.getResultConfig("ONLY_BOOK_TWO_MONTH"));
......
......@@ -247,4 +247,7 @@ RET_COMPANY_CAN_NOT_BE_NULL = 4018
4018 = 停靠公司不能为空
NUMBER_PLAT_CAN_NOT_BE_NULL = 4019
4019 = 车牌不能为空
\ No newline at end of file
4019 = 车牌不能为空
END_TIME_FROM_TODAY = 4020
4020 = 结束时间不能小于开始时间
\ No newline at end of file
......@@ -66,6 +66,8 @@ public class UserMemberDTO {
@ApiModelProperty(value = "有效期;0代表永久")
private Long validTime;
@Column(name = "member_name")
@ApiModelProperty("会员名")
private String memberName;
......
......@@ -73,7 +73,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
return;
}
Integer userId = userMemberDTO.getUserId();
UserMemberVo userMemberVo = getMemberInfoByUserId(userId);
BaseUserMember baseUserMember = new BaseUserMember();
BeanUtils.copyProperties(baseUserMember, userMemberDTO);
Integer freeDays = baseUserMember.getRentFreeDays();
......@@ -106,6 +108,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
baseUserMember.setBuyCount(userMemberVo.getBuyCount() + buyCount);
baseUserMember.setTotalNumber(totalNumber);
baseUserMember.setRentFreeDays(freeDays);
getMyBiz().updateSelectiveById(baseUserMember);
}
AppUserVo userVo = detailBiz.getUserInfoById(userId);
......@@ -212,42 +215,46 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
/**
* 设置用户会员
*
* @param baseUserMemberVO
* @param userMemberDTO
*/
@Transactional(rollbackFor = Exception.class)
public void UpdateUserMember(BaseUserMemberVO baseUserMemberVO) throws InvocationTargetException, IllegalAccessException {
Example exa = Example.builder(BaseUserMember.class).where(
WeekendSqls.<BaseUserMember>custom()
.andEqualTo(BaseUserMember::getUserId, baseUserMemberVO.getUserId())
).build();
List<BaseUserMember> baseUserMembers = mapper.selectByExample(exa);
BaseUserMember baseUserMember = new BaseUserMember();
BeanUtilsBean.getInstance().copyProperties(baseUserMember, baseUserMemberVO);
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public void UpdateUserMember(UserMemberDTO userMemberDTO) throws InvocationTargetException, IllegalAccessException {
if (CollectionUtils.isEmpty(baseUserMembers)) {
if (baseUserMemberVO.getMemberLevel() == null || baseUserMember.getValidTime() == null||baseUserMember.getValidTime()<0) {
throw new BaseException("设置无效!无会员等级、会员有效期或会员有效期为负数!");
}
baseUserMember.setCrtTime(System.currentTimeMillis());
baseUserMember.setIsDel(0);
baseUserMember.setPayCount(0);
baseUserMember.setCardLeave(1);
baseUserMember.setRecentRecharge(System.currentTimeMillis());
Integer buyCount = baseUserMember.getBuyCount() == null ? 0 : baseUserMember.getBuyCount();
baseUserMember.setBuyCount(buyCount + 1);
Integer userId = userMemberDTO.getUserId();
BaseUserMember baseUserMember = new BaseUserMember();
BeanUtils.copyProperties(baseUserMember, userMemberDTO);
Integer freeDays = baseUserMember.getRentFreeDays() == null ? 0 : baseUserMember.getRentFreeDays();
Integer totalNumber = baseUserMember.getTotalNumber() == null ? 0 : baseUserMember.getTotalNumber();
if (totalNumber < freeDays) {
freeDays = totalNumber;
}
Integer buyCount = userMemberDTO.getBuyCount() == null ? 1:userMemberDTO.getBuyCount() ;
UserMemberVo userMemberVo = getMemberInfoByUserId(userMemberDTO.getUserId());
if (userMemberVo == null) {
baseUserMember.setRentFreeDays(freeDays);
baseUserMember.setBuyCount(buyCount);
insertSelective(baseUserMember);
return;
} else if (baseUserMembers.size() == 1) {
baseUserMember.setUpdTime(System.currentTimeMillis());
baseUserMember.setBuyCount(baseUserMembers.get(0).getBuyCount() + 1);
baseUserMember.setId(baseUserMembers.get(0).getId());
mapper.updateByPrimaryKeySelective(baseUserMember);
} else {
throw new BaseException("错误!该账号有多条会员信息!");
baseUserMember.setId(userMemberVo.getId());
Integer number = userMemberVo.getTotalNumber() == null ? 0 : userMemberVo.getTotalNumber();
Integer days = userMemberVo.getRentFreeDays() == null ? 0 : userMemberVo.getRentFreeDays();
baseUserMember.setBuyCount(userMemberVo.getBuyCount() + buyCount);
number=(totalNumber-number)+number;
days=(freeDays-days)+days;
baseUserMember.setTotalNumber(number);
baseUserMember.setRentFreeDays(days);
getMyBiz().updateSelectiveById(baseUserMember);
}
AppUserVo userVo = detailBiz.getUserInfoById(userId);
if (userVo != null && (userVo.getIsMember() == null || userVo.getIsMember() == 0)) {
AppUserVo userVo1 = new AppUserVo();
userVo1.setId(userVo.getId());
userVo1.setUserid(userId);
userVo1.setIsMember(1);
detailBiz.updUuserInfoById(userVo1);
}
}
}
\ No newline at end of file
......@@ -53,7 +53,12 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz,
@PutMapping("/setUserMember")
public ObjectRestResponse UpdateUserMember(@RequestBody UserMemberDTO userMemberDTO)
throws Exception {
baseBiz.updUserMemberByUserId(userMemberDTO);
if (userMemberDTO==null||userMemberDTO.getRentFreeDays()<0||userMemberDTO.getTotalNumber()<0) {
return ObjectRestResponse.createDefaultFail();
}
baseBiz.UpdateUserMember(userMemberDTO);
return ObjectRestResponse.succ();
}
}
......@@ -57,6 +57,31 @@ public enum BookType {
this.desc = desc;
}
public static String getByCode(Integer code) {
switch (code) {
case 2:
return EMPLOYEE_APPLY.getDesc();
case 1:
return USER_RENT.getDesc();
case 3:
return REPAIRING.getDesc();
case 4:
return SHOW.getDesc();
case 5:
return TOUR.getDesc();
case 6:
return MAINTAIN.getDesc();
case 7:
return BOOKING.getDesc();
case 8:
return DISABLE.getDesc();
case 9:
return CUSTOMER_APPLY.getDesc();
case 10:
return OTHER.getDesc();
}
return "";
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
......
......@@ -148,4 +148,6 @@ public class ResultVehicleVo {
* 收车时间
*/
private Date receiveTime;
private Integer modelId;
}
\ No newline at end of file
......@@ -128,5 +128,9 @@ public class VehiclePageQueryVo {
*/
private Integer haveViolation;
/**
* 车型id
*/
private Integer modelId;
}
......@@ -39,4 +39,8 @@ public class VehiclePlanDto extends PageParam {
*/
private Integer useType;
/**
* 车型id
*/
private Integer modelId;
}
......@@ -3,10 +3,8 @@ package com.xxfc.platform.vehicle.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.vehicle.constant.*;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleActiveType;
import com.xxfc.platform.vehicle.constant.VehicleDepartureState;
import com.xxfc.platform.vehicle.constant.VehicleStatus;
import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.mapper.*;
import com.xxfc.platform.vehicle.pojo.*;
......@@ -89,8 +87,10 @@ public class VehicleActiveService {
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
//修改预约记录状态
VehicleBookRecord vehicleBookRecord = null;
if(departureVo.getBookRecordId() != null) {
updateBookRecordStatus(departureVo.getBookRecordId(), 1);
vehicleBookRecord = vehicleBookRecordBiz.selectById(departureVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 1);
}
VehicleDepartureLogVo vehicleDepartureLogVo = vehicleDepartureLogMapper.selectByBookRecordId(departureVo.getBookRecordId());
if(vehicleDepartureLogVo != null) {
......@@ -100,6 +100,11 @@ public class VehicleActiveService {
departureLog.setUpdateTime(new Date());
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) {
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername());
departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone());
}
vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog);
} else {
// 出车记录
......@@ -111,6 +116,11 @@ public class VehicleActiveService {
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setBookRecordId(departureVo.getBookRecordId());
departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) {
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername());
departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone());
}
vehicleDepartureLogMapper.insert(departureLog);
}
......@@ -128,6 +138,7 @@ public class VehicleActiveService {
}
}
public String getVehicleStatus(Integer status, String vehicleId) {
StringBuilder stringBuilder = new StringBuilder();
switch (status) {
......@@ -195,7 +206,8 @@ public class VehicleActiveService {
}
if(arrivalVo.getBookRecordId() != null) {
updateBookRecordStatus(arrivalVo.getBookRecordId(), 2);
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 2);
}
......@@ -233,8 +245,8 @@ public class VehicleActiveService {
}
}
public void updateBookRecordStatus(Integer bookRecordId, Integer type) {
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId);
public void updateBookRecordStatus(VehicleBookRecord vehicleBookRecord, Integer type) {
if(vehicleBookRecord != null) {
if(type == 1) {
vehicleBookRecord.setActualStartDate(new Date());
......
......@@ -413,6 +413,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName);
//检查车辆信息是否合法
checkIfVehicleExists(bookVehicleVo.getVehicleId());
if(StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())) {
throw new BaseException(ResultCode.DATE_TIME_IS_NULL);
}
//提取日期和相应的预定目标日期
Map<String,List<String>> yearMonthAndDate = Maps.newHashMap();
DateTime startDay =DateTime.parse(bookVehicleVo.getBookStartDate(), DATE_TIME_FORMATTER);
......@@ -807,7 +810,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
DateTime endDay =DateTime.parse(bookVehicleVo.getUnbookEndDate(), DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法
uinbookDateList4DatePeriod(yearMonthAndDate,startDay,endDay);
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getUnbookStartDate(), bookVehicleVo.getUnbookEndDate(), bookVehicleVo.getNotCheckTimeLegal());
//原设计为 读取 bookVehicleVo.getNotCheckTimeLegal(), 现在取消/拒绝 true
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getUnbookStartDate(), bookVehicleVo.getUnbookEndDate(), Boolean.TRUE);
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_UNBOOK_TWO_MONTH);
}
......@@ -848,6 +852,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
}
public boolean unbookHourInfo(String vehicleId, Map<String, Integer> hourInfo, Map<String,Object> params) {
boolean flag = false;
for (Map.Entry<String, Integer> entry : hourInfo.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
......@@ -855,11 +860,14 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
if (vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) {
if((vehicleBookHourInfos.get(0).getBookedHour() | 0) == 0) {
Integer effected = vehicleBookInfoMapper.updateBookedInfo(params);
if (effected < 1) {
return Boolean.FALSE;
} else {
continue;
if(!flag) {
Integer effected = vehicleBookInfoMapper.updateBookedInfo(params);
if (effected < 1) {
return Boolean.FALSE;
} else {
flag = true;
continue;
}
}
} else {
vehicleBookHourInfos.get(0).setBookedHour((vehicleBookHourInfos.get(0).getBookedHour() & ~entry.getValue()));
......@@ -1045,6 +1053,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
//处理预定日期相关参数
adjustBookedInfoParam(params,vehiclePageQueryVo);
params.get("yearMonthAndParam");
if(vehiclePageQueryVo.getModelId() == null) {
params.remove("modelId");
}
PageHelper.startPage(pageNo,pageSize);
List<ResultVehicleVo> vehicles = mapper.getByPage(params);
PageInfo<ResultVehicleVo> vehiclePageInfo = new PageInfo<>(vehicles);
......
......@@ -47,11 +47,10 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
if (bookStartDate.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
}
if (bookStartDate.compareTo(bookEndDate) > 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
}
}
if (bookStartDate.compareTo(bookEndDate) > 0) {
throw new BaseException(ResultCode.END_TIME_FROM_TODAY);
}
Map<String, Integer> predictableHours = Maps.newHashMap();
//预定开始小时
int hour = new DateTime(startDate).hourOfDay().get();
......
......@@ -46,7 +46,6 @@ public class VehicleActiveController {
@PostMapping("small/departure")
@IgnoreUserToken
public RestResponse departureBySmall(@RequestBody VehicleDepartureVo departureVo) {
if (departureVo == null || departureVo.getVehicleId() == null
|| departureVo.getMileage() == null || departureVo.getDepartureBranchCompanyId() == null
|| departureVo.getExpectArrivalBranchCompanyId() == null) {
......
......@@ -70,6 +70,7 @@
v.manufacturer,
v.receive_time,
v.update_time,
v.model_id,
v.mileage_last_update as mileage
<if test=" yearMonthAndParam != null ">
,vbi.booked_date
......@@ -92,6 +93,9 @@
<if test="mRangeDateEnd !=null">
and v.maintenance_date &lt;= #{mRangeDateEnd}
</if>
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="mRangeDateStart !=null">
and v.maintenance_date &gt;= #{mRangeDateStart}
</if>
......@@ -202,6 +206,7 @@
v.manufacturer,
v.receive_time,
v.update_time,
v.model_id,
v.mileage_last_update as mileage
<if test=" yearMonthAndParam !=null ">
,vbi.booked_date
......@@ -245,6 +250,9 @@
<if test="mRangeDateEnd !=null">
and v.maintenance_date &lt;= #{mRangeDateEnd}
</if>
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="mRangeDateStart !=null">
and v.maintenance_date &gt;= #{mRangeDateStart}
</if>
......@@ -392,6 +400,9 @@
<if test="useType != null">
and v1.use_type = #{useType}
</if>
<if test="modelId != null and modelId != ''">
and v1.model_id = #{modelId}
</if>
and v1.is_del != 1
</where>
</select>
......@@ -415,6 +426,9 @@
#{id}
</foreach>
</if>
<if test="modelId != null and modelId != ''">
and v1.model_id = #{modelId}
</if>
and v1.is_del != 1
</where>
ORDER BY parkCompanyName
......@@ -493,6 +507,9 @@
#{id}
</foreach>
</if>
<if test="modelId != null and modelId != ''">
and v2.model_id = #{modelId}
</if>
and v2.is_del != 1
</where>
</select>
......
......@@ -58,6 +58,9 @@
<if test="status != null">
and v.status = #{status}
</if>
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="companyIds != null and companyIds.size > 0">
and v.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
......
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