Commit ab6e6898 authored by hanfeng's avatar hanfeng

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

# Conflicts:
#	xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/OrderVehicleCrosstownDto.java
parents b6e7a9ad dc55869c
...@@ -79,6 +79,11 @@ public class BaseUserMemberLevel implements Serializable { ...@@ -79,6 +79,11 @@ public class BaseUserMemberLevel implements Serializable {
@ApiModelProperty(value = "赠送免费天数") @ApiModelProperty(value = "赠送免费天数")
private Integer number; private Integer number;
//免费天数价值
@Column(name = "days_price")
@ApiModelProperty(value = "免费天数价值")
private BigDecimal daysPrice;
@Column(name = "big_icon") @Column(name = "big_icon")
@ApiModelProperty(value = "大图标") @ApiModelProperty(value = "大图标")
private String bigIcon; private String bigIcon;
......
...@@ -66,12 +66,12 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel ...@@ -66,12 +66,12 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
log.info("----userId==="+userId+"----parentId===="+parentId+"----自己不能成为自己的上线"); log.info("----userId==="+userId+"----parentId===="+parentId+"----自己不能成为自己的上线");
return; return;
} }
AppUserVo appUserVo=userDetailBiz.getUserInfoById(userId); /* AppUserVo appUserVo=userDetailBiz.getUserInfoById(userId);
if (appUserVo==null){ if (appUserVo==null){
log.info("----userId==="+userId+"----parentId===="+parentId+"----该用户不存在"); log.info("----userId==="+userId+"----parentId===="+parentId+"----该用户不存在");
return; return;
} }*/
appUserVo=userDetailBiz.getUserInfoById(parentId); AppUserVo appUserVo=userDetailBiz.getUserInfoById(parentId);
if (appUserVo==null){ if (appUserVo==null){
log.info("----userId==="+userId+"----parentId===="+parentId+"----该上线用户不存在"); log.info("----userId==="+userId+"----parentId===="+parentId+"----该上线用户不存在");
return; return;
......
...@@ -61,4 +61,8 @@ public class QuestionParamDto extends PageParam { ...@@ -61,4 +61,8 @@ public class QuestionParamDto extends PageParam {
private Long startTime; private Long startTime;
private Long endTime; private Long endTime;
private Integer commentCount;
private Integer praiseCount;
} }
\ No newline at end of file
...@@ -84,4 +84,6 @@ public class ImQuestion { ...@@ -84,4 +84,6 @@ public class ImQuestion {
*/ */
private Integer source; private Integer source;
private String address;
} }
\ No newline at end of file
package com.xxfc.platform.im.biz; package com.xxfc.platform.im.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin; import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
...@@ -8,6 +10,7 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -8,6 +10,7 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant; import com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; 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.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.im.dto.MsgTypeEnum; import com.xxfc.platform.im.dto.MsgTypeEnum;
import com.xxfc.platform.im.dto.QuestionParamDto; import com.xxfc.platform.im.dto.QuestionParamDto;
...@@ -51,6 +54,11 @@ public class ImQuestionBiz extends BaseBiz<ImQuestionMapper, ImQuestion> { ...@@ -51,6 +54,11 @@ public class ImQuestionBiz extends BaseBiz<ImQuestionMapper, ImQuestion> {
questionParamDto.setUserId(Long.parseLong(appUserLogin.getId() + "")); questionParamDto.setUserId(Long.parseLong(appUserLogin.getId() + ""));
} }
} }
if (questionParamDto.getStartTime() != null) {
if(questionParamDto.getEndTime() == null) {
questionParamDto.setEndTime(System.currentTimeMillis());
}
}
Query query = new Query(questionParamDto); Query query = new Query(questionParamDto);
PageDataVO<QuestionListVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getQuestionList(query.getSuper())); PageDataVO<QuestionListVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getQuestionList(query.getSuper()));
AppUserDTO appUserDTO = userBiz.getUserInfo(); AppUserDTO appUserDTO = userBiz.getUserInfo();
...@@ -94,6 +102,19 @@ public class ImQuestionBiz extends BaseBiz<ImQuestionMapper, ImQuestion> { ...@@ -94,6 +102,19 @@ public class ImQuestionBiz extends BaseBiz<ImQuestionMapper, ImQuestion> {
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
public ObjectRestResponse update(ImQuestion imQuestion) {
if (imQuestion == null || imQuestion.getId() == null) {
return ObjectRestResponse.paramIsEmpty();
}
ImQuestion oldValue = mapper.selectByPrimaryKey(imQuestion.getId());
if (oldValue == null) {
return ObjectRestResponse.createFailedResult(ResultCode.IM_MSG_NOT_EXIST_CODE, ResultCode.getMsg(ResultCode.IM_MSG_NOT_EXIST_CODE));
}
BeanUtil.copyProperties(imQuestion, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
updateSelectiveByIdRe(oldValue);
return ObjectRestResponse.succ();
}
/** /**
* 删除消息,修改isDel为true * 删除消息,修改isDel为true
* *
...@@ -117,6 +138,18 @@ public class ImQuestionBiz extends BaseBiz<ImQuestionMapper, ImQuestion> { ...@@ -117,6 +138,18 @@ public class ImQuestionBiz extends BaseBiz<ImQuestionMapper, ImQuestion> {
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
public ObjectRestResponse deleteById(Long id) {
if (id == null) {
return ObjectRestResponse.paramIsEmpty();
}
ImQuestion imQuestion = mapper.selectByPrimaryKey(id);
if (imQuestion == null) {
return ObjectRestResponse.createDefaultFail();
}
imQuestion.setIsDel(true);
updateSelectiveByIdRe(imQuestion);
return ObjectRestResponse.succ();
}
public ObjectRestResponse update(Long id, MsgTypeEnum type, UpdateTypeEnum updateType) { public ObjectRestResponse update(Long id, MsgTypeEnum type, UpdateTypeEnum updateType) {
if (id == null || type == null) { if (id == null || type == null) {
......
...@@ -366,12 +366,12 @@ public class MsgBiz { ...@@ -366,12 +366,12 @@ public class MsgBiz {
if (msgQueryDto.getSource() == 1) { if (msgQueryDto.getSource() == 1) {
query.addCriteria(Criteria.where("source").is(msgQueryDto.getSource())); query.addCriteria(Criteria.where("source").is(msgQueryDto.getSource()));
} else { } else {
query.addCriteria(Criteria.where("source").is(msgQueryDto.getSource()).orOperator(Criteria.where("source").is(null))); query.addCriteria(Criteria.where("source").is(2));
} }
} }
//下单时间 //下单时间
if (msgQueryDto.getStartTime() != null) { if (msgQueryDto.getStartTime() != null) {
query.addCriteria(Criteria.where("body.time").gte(msgQueryDto.getStartTime()).orOperator(Criteria.where("body.time").lte(msgQueryDto.getEndTime()))); query.addCriteria(Criteria.where("body.time").gte(msgQueryDto.getStartTime())).addCriteria((Criteria.where("body.time").lte(msgQueryDto.getEndTime())));
} }
//用户名 //用户名
if (StringUtils.isNotBlank(msgQueryDto.getUsername())) { if (StringUtils.isNotBlank(msgQueryDto.getUsername())) {
...@@ -386,6 +386,7 @@ public class MsgBiz { ...@@ -386,6 +386,7 @@ public class MsgBiz {
msgList = fetchAndAttach(mongoTemplate.find(query, Msg.class, "s_msg"), null); msgList = fetchAndAttach(mongoTemplate.find(query, Msg.class, "s_msg"), null);
PageInfo<MsgVo> goodPageInfo = new PageInfo<>(replaceMsgResult(msgList)); PageInfo<MsgVo> goodPageInfo = new PageInfo<>(replaceMsgResult(msgList));
goodPageInfo.setPageSize(totalSize % limit == 0 ? totalSize / limit : totalSize / limit + 1); goodPageInfo.setPageSize(totalSize % limit == 0 ? totalSize / limit : totalSize / limit + 1);
goodPageInfo.setTotal(totalSize);
return ObjectRestResponse.succ(goodPageInfo); return ObjectRestResponse.succ(goodPageInfo);
} else { } else {
List<Integer> ids = new ArrayList<>(); List<Integer> ids = new ArrayList<>();
...@@ -470,4 +471,20 @@ public class MsgBiz { ...@@ -470,4 +471,20 @@ public class MsgBiz {
return ObjectRestResponse.succ(newValue); return ObjectRestResponse.succ(newValue);
} }
public ObjectRestResponse deleteById(String id) {
if (StringUtils.isBlank(id)) {
return ObjectRestResponse.paramIsEmpty();
}
Query query = new Query(Criteria.where("_id").is(id));
Msg oldValue = mongoTemplate.findOne(query, Msg.class, "s_msg");
if (oldValue == null) {
return ObjectRestResponse.createFailedResult(ResultCode.IM_MSG_NOT_EXIST_CODE, ResultCode.getMsg(ResultCode.IM_MSG_NOT_EXIST_CODE));
}
DeleteResult deleteResult = mongoTemplate.remove(query, Msg.class, "s_msg");
if (deleteResult != null && deleteResult.getDeletedCount() == 1) {
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createFailedResult(ResultCode.IM_DELETE_FAIL_CODE, ResultCode.getMsg(ResultCode.IM_DELETE_FAIL_CODE));
}
} }
...@@ -41,4 +41,16 @@ public class ImQuestionController { ...@@ -41,4 +41,16 @@ public class ImQuestionController {
public ObjectRestResponse delete(Long id) { public ObjectRestResponse delete(Long id) {
return imQuestionBiz.delete(id); return imQuestionBiz.delete(id);
} }
@GetMapping(value = "/bg/app/unauth/delete")
@ApiOperation(value = "删除问答信息")
public ObjectRestResponse deleteById(Long id) {
return imQuestionBiz.deleteById(id);
}
@PostMapping(value = "/bg/app/unauth/update")
@ApiOperation(value = "修改问答信息")
public ObjectRestResponse update(@RequestBody ImQuestion imQuestion) {
return imQuestionBiz.update(imQuestion);
}
} }
...@@ -41,6 +41,10 @@ public class MsgController { ...@@ -41,6 +41,10 @@ public class MsgController {
return msgBiz.deleteByList(ids); return msgBiz.deleteByList(ids);
} }
@GetMapping(value = "/bg/app/unauth/delete")
public ObjectRestResponse deleteById(String id) {
return msgBiz.deleteById(id);
}
@PostMapping(value = "/bg/app/unauth/addMsg") @PostMapping(value = "/bg/app/unauth/addMsg")
public ObjectRestResponse addMsg(@RequestBody AddMsgParam param) { public ObjectRestResponse addMsg(@RequestBody AddMsgParam param) {
...@@ -56,4 +60,6 @@ public class MsgController { ...@@ -56,4 +60,6 @@ public class MsgController {
public ObjectRestResponse getMsgList(@RequestBody MsgQueryDto msgQueryDto) { public ObjectRestResponse getMsgList(@RequestBody MsgQueryDto msgQueryDto) {
return msgBiz.getMsgList(msgQueryDto); return msgBiz.getMsgList(msgQueryDto);
} }
} }
...@@ -81,5 +81,4 @@ public class InProgressVO { ...@@ -81,5 +81,4 @@ public class InProgressVO {
* 延期 详情列表 * 延期 详情列表
*/ */
List<VMCalendarPriceCostDTO> overAmountList = CollUtil.newArrayList(); List<VMCalendarPriceCostDTO> overAmountList = CollUtil.newArrayList();
} }
...@@ -45,6 +45,10 @@ public class OrderVehicleCrosstownDto extends OrderVehicleCrosstown { ...@@ -45,6 +45,10 @@ public class OrderVehicleCrosstownDto extends OrderVehicleCrosstown {
List<DepositRefundRecord> depositRefundRecord; List<DepositRefundRecord> depositRefundRecord;
private String checkUser;
private String checkTel;
/** /**
* 操作人 * 操作人
*/ */
......
...@@ -22,6 +22,13 @@ public class VehicleItemDTO extends OrderItem { ...@@ -22,6 +22,13 @@ public class VehicleItemDTO extends OrderItem {
public static final int topNum = 2; public static final int topNum = 2;
//已抵消天数 //已抵消天数
private Integer offsetNum = 0; private Integer offsetNum = 0;
//免费金额
private BigDecimal freeAmount;
//标记是否单价一样
private Integer sameUnitPrice = 1;
public BigDecimal calculateVehicleUnitPrice(BigDecimal vehicleAmount, BigDecimal metaVehicleAmount, Boolean isSetRealAmount) { public BigDecimal calculateVehicleUnitPrice(BigDecimal vehicleAmount, BigDecimal metaVehicleAmount, Boolean isSetRealAmount) {
if(isSetRealAmount) { if(isSetRealAmount) {
setRealAmount(vehicleAmount); setRealAmount(vehicleAmount);
...@@ -97,37 +104,88 @@ public class VehicleItemDTO extends OrderItem { ...@@ -97,37 +104,88 @@ public class VehicleItemDTO extends OrderItem {
} }
public BigDecimal getUsedAmount(Integer useDays) { public BigDecimal getUsedAmount(Integer useDays) {
List<VMCalendarPriceCostDTO> vmcpds = getVehicleDetail();
if(CollUtil.isEmpty(vmcpds)){
if(useDays > getTotalNum()) {
useDays = getTotalNum();
}
return getUnitPrice().multiply(new BigDecimal(useDays+ "")); return getUnitPrice().multiply(new BigDecimal(useDays+ ""));
} }
public BigDecimal getFreeAmount(Integer freeDays) { BigDecimal usedAmount = BigDecimal.ZERO;
for(VMCalendarPriceCostDTO vmcpcd : vmcpds) {
usedAmount.add(vmcpcd.getPrice());
}
return usedAmount;
}
//由于免费天数可以抵消不是完整的天数,所以处理比较不同
public BigDecimal getFreeAmount(Integer offsetDay) {
List<VMCalendarPriceCostDTO> vmcpds = getVehicleDetail(); List<VMCalendarPriceCostDTO> vmcpds = getVehicleDetail();
if(CollUtil.isEmpty(vmcpds)){ if(CollUtil.isEmpty(vmcpds)){
return getUnitPrice().multiply(new BigDecimal(freeDays+ "")); if(null == offsetDay) {
return getUnitPrice().multiply(new BigDecimal(getCutNum()+ ""));
}else {
return getUnitPrice().multiply(new BigDecimal(offsetDay+ ""));
}
} }
BigDecimal freeAmount = BigDecimal.ZERO; BigDecimal freeAmount = BigDecimal.ZERO;
for(int i = 0; i < getBuyNum(); i++) { if(null != offsetDay) {
freeAmount = freeAmount.add(vmcpds.get(i).getPrice()); for(int i = 0; i < offsetDay; i++) {
freeAmount.add(vmcpds.get(i).getFreeAmount());
}
}else {
for(VMCalendarPriceCostDTO vmcpcd : vmcpds) {
freeAmount.add(vmcpcd.getFreeAmount());
}
} }
return freeAmount; return freeAmount;
} }
// public Integer getActualNum() { public Integer mapFreeDays(Integer userDays) {
// List<VMCalendarPriceCostDTO> vmcpds = getVehicleDetail();
// } if(userDays < getTotalNum()) {
userDays = getTotalNum();
}
if(CollUtil.isEmpty(vmcpds)){
return userDays;
}
Integer mapFreeDays = 0;
for(int i = 0; i < userDays; i++) {
mapFreeDays += vmcpds.get(i).getFreeDays();
}
return mapFreeDays;
}
public void initDetail(Integer ableFreeDays) { public void initDetail(Integer ableFreeDays) {
if(StrUtil.isNotBlank(getDetail())) { if(StrUtil.isNotBlank(getDetail())) {
List<VehicleModelCalendarPriceDTO> metaList = JSONUtil.toList(JSONUtil.parseArray(getDetail()), VehicleModelCalendarPriceDTO.class); List<VehicleModelCalendarPriceDTO> metaList = JSONUtil.toList(JSONUtil.parseArray(getDetail()), VehicleModelCalendarPriceDTO.class);
//计算消费金额 //计算消费金额
List<VMCalendarPriceCostDTO> list = Convert.toList(VMCalendarPriceCostDTO.class, metaList); List<VMCalendarPriceCostDTO> list = Convert.toList(VMCalendarPriceCostDTO.class, metaList);
ParamDTO paramDTO = initParam(ableFreeDays, list);
this.sameUnitPrice = paramDTO.getSameUnitPrice();
setCutNum(paramDTO.getFreeNum());
setOffsetNum(paramDTO.getOffsetNum());
setDetail(JSONUtil.parseArray(list).toString());
}
}
public ParamDTO initParam(Integer ableFreeDays, List<VMCalendarPriceCostDTO> list) {
ParamDTO paramDTO = new ParamDTO();
//循环价格列表 获得对应消耗的免费天数 //循环价格列表 获得对应消耗的免费天数
//循环已标记的已使用免费天数 //循环已标记的已使用免费天数
Integer cycleNum = 0; Integer cycleNum = 0;
BigDecimal tempUnitPrice = null;
for(VMCalendarPriceCostDTO dto : list) { for(VMCalendarPriceCostDTO dto : list) {
if(null == tempUnitPrice) {
tempUnitPrice = dto.getPrice();
}else if( !tempUnitPrice.equals(dto.getPrice())) {
paramDTO.setSameUnitPrice(0);
}
if(ableFreeDays > cycleNum && cycleNum+ dto.getFreeDays() > ableFreeDays) { //本次累加天数 大于 可用免费天数 if(ableFreeDays > cycleNum && cycleNum+ dto.getFreeDays() > ableFreeDays) { //本次累加天数 大于 可用免费天数
setCutNum(ableFreeDays); paramDTO.setFreeNum(ableFreeDays);
Integer up = (ableFreeDays - cycleNum); Integer up = (ableFreeDays - cycleNum);
Integer down = dto.getFreeDays(); Integer down = dto.getFreeDays();
...@@ -135,19 +193,33 @@ public class VehicleItemDTO extends OrderItem { ...@@ -135,19 +193,33 @@ public class VehicleItemDTO extends OrderItem {
dto.setFreeAndConsumeAmount(dto.getPrice(), dto.getPrice().multiply( dto.setFreeAndConsumeAmount(dto.getPrice(), dto.getPrice().multiply(
new BigDecimal(up+ "").divide(new BigDecimal(down+ ""), 2, RoundingMode.HALF_UP)) new BigDecimal(up+ "").divide(new BigDecimal(down+ ""), 2, RoundingMode.HALF_UP))
.setScale(2, RoundingMode.HALF_UP)); .setScale(2, RoundingMode.HALF_UP));
paramDTO.setFreeAmount(paramDTO.getFreeAmount().add(dto.getFreeAmount()));
}else if(ableFreeDays > cycleNum){ //本次累加天数 小于等于 可用免费天数 }else if(ableFreeDays > cycleNum){ //本次累加天数 小于等于 可用免费天数
setCutNum(getCutNum()+ dto.getFreeDays()); paramDTO.setFreeNum(paramDTO.getFreeNum()+ dto.getFreeDays());
//直接设置价格 //直接设置价格
dto.setFreeAndConsumeAmount(dto.getPrice(), dto.getPrice()); dto.setFreeAndConsumeAmount(dto.getPrice(), dto.getPrice());
this.offsetNum += 1; paramDTO.offsetNum += 1;
}else { //上次累加天数 大于 可用天数 }else { //上次累加天数 大于 可用天数
//直接设置价格 //直接设置价格
dto.setFreeAndConsumeAmount(dto.getPrice(), BigDecimal.ZERO); dto.setFreeAndConsumeAmount(dto.getPrice(), BigDecimal.ZERO);
} }
cycleNum += dto.getFreeDays(); cycleNum += dto.getFreeDays();
} }
return paramDTO;
setDetail(JSONUtil.parseArray(list).toString());
} }
@Data
public class ParamDTO {
//已抵消天数
private Integer offsetNum = 0;
//标记是否单价一样
private Integer sameUnitPrice = 1;
//免费数量
private Integer freeNum = 0;
//免费金额
private BigDecimal freeAmount = BigDecimal.ZERO;
} }
} }
package com.xxfc.platform.order.pojo.price; package com.xxfc.platform.order.pojo.price;
import cn.hutool.core.collection.CollUtil;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO; import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import lombok.Data; import lombok.Data;
...@@ -69,9 +70,33 @@ public class CancelStartedVO extends CostDetailExtend { ...@@ -69,9 +70,33 @@ public class CancelStartedVO extends CostDetailExtend {
private BigDecimal damagesAmount = BigDecimal.ZERO; private BigDecimal damagesAmount = BigDecimal.ZERO;
/** /**
* 使用(消耗)详情列表 * 延期 详情列表
*/ */
List<VMCalendarPriceCostDTO> useAmountList; List<VMCalendarPriceCostDTO> overAmountList = CollUtil.newArrayList();
//= CollUtil.newArrayList();
//标记是否单价一样
private Integer sameUseUnitPrice = 1;
//标记是否单价一样
private Integer sameOverUnitPrice = 1;
public void setSameUseUnitPriceFromList(List<VMCalendarPriceCostDTO> useAmountList) {
this.sameUseUnitPrice = judgeSame(useAmountList);
}
public void setSameOverUnitPriceFromList(List<VMCalendarPriceCostDTO> overAmountList) {
this.sameOverUnitPrice = judgeSame(overAmountList);
}
private Integer judgeSame(List<VMCalendarPriceCostDTO> useAmountList) {
BigDecimal tempUnitPrice = null;
for(VMCalendarPriceCostDTO vmcpcd : useAmountList) {
if(null == tempUnitPrice) {
tempUnitPrice = vmcpcd.getPrice();
}else if(tempUnitPrice.equals(vmcpcd.getPrice())) {
return 0;
}
}
return 1;
}
} }
package com.xxfc.platform.order.pojo.price; package com.xxfc.platform.order.pojo.price;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
@Data @Data
public class CostDetailExtend { public class CostDetailExtend {
...@@ -36,6 +39,11 @@ public class CostDetailExtend { ...@@ -36,6 +39,11 @@ public class CostDetailExtend {
*/ */
public String paramJson = ""; public String paramJson = "";
/**
* 使用(消耗)详情列表
*/
List<VMCalendarPriceCostDTO> useAmountList = CollUtil.newArrayList();;
public void initParamJson() { public void initParamJson() {
paramJson = JSONUtil.toJsonStr(this); paramJson = JSONUtil.toJsonStr(this);
} }
......
...@@ -76,4 +76,7 @@ public class RentVehiclePriceVO extends OrderPriceVO{ ...@@ -76,4 +76,7 @@ public class RentVehiclePriceVO extends OrderPriceVO{
*/ */
List<VMCalendarPriceCostDTO> useAmountList; List<VMCalendarPriceCostDTO> useAmountList;
//标记是否单价一样
private Integer sameUnitPrice = 1;
} }
...@@ -302,9 +302,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -302,9 +302,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
if(inProgressVO.getExtraAmount() != null) { if(inProgressVO.getExtraAmount() != null) {
dedDetailDTO.setExcessCost(inProgressVO.getExtraAmount()); dedDetailDTO.setExcessCost(inProgressVO.getExtraAmount());
} }
stringBuilder.append("违约金( ¥"); // stringBuilder.append("违约金( ¥");
stringBuilder.append(amount); stringBuilder.append("违约金( ");
stringBuilder.append(" x "); // stringBuilder.append(amount);
// stringBuilder.append(" x ");
stringBuilder.append(noUsedDay); stringBuilder.append(noUsedDay);
stringBuilder.append("天) = "); stringBuilder.append("天) = ");
stringBuilder.append(inProgressVO.getViolateAmount()); stringBuilder.append(inProgressVO.getViolateAmount());
...@@ -315,12 +316,13 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -315,12 +316,13 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
*/ */
} else if (userUsedDay - actualDay > 0) { } else if (userUsedDay - actualDay > 0) {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("违约金( ¥"); // stringBuilder.append("违约金( ¥");
stringBuilder.append("违约金( ");
//延期的天数, 延期违约金是延期天数*200% //延期的天数, 延期违约金是延期天数*200%
int extraUsedDay = userUsedDay - actualDay; int extraUsedDay = userUsedDay - actualDay;
if(extraUsedDay > 0) { if(extraUsedDay > 0) {
stringBuilder.append(amount); // stringBuilder.append(amount);
stringBuilder.append(" x "); // stringBuilder.append(" x ");
stringBuilder.append(extraUsedDay); stringBuilder.append(extraUsedDay);
stringBuilder.append("(天)"); stringBuilder.append("(天)");
stringBuilder.append(" x 2)"); stringBuilder.append(" x 2)");
......
...@@ -305,6 +305,7 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta ...@@ -305,6 +305,7 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta
types.add(DeductionTypeEnum.VIOLATE_ADVANCE.getCode()); types.add(DeductionTypeEnum.VIOLATE_ADVANCE.getCode());
types.add(DeductionTypeEnum.VIOLATE_CANCEL.getCode()); types.add(DeductionTypeEnum.VIOLATE_CANCEL.getCode());
types.add(DeductionTypeEnum.VIOLATE_DELAY.getCode()); types.add(DeductionTypeEnum.VIOLATE_DELAY.getCode());
types.add(DeductionTypeEnum.VIOLATE_CHANGE_C.getCode());
orderStatistics.setDefaultMoney(get(OrderAccountDeductions, types)); orderStatistics.setDefaultMoney(get(OrderAccountDeductions, types));
......
...@@ -467,6 +467,11 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> { ...@@ -467,6 +467,11 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
csv.setUsedfreeDayNum(inProgressVO.getUsedfreeDays()); csv.setUsedfreeDayNum(inProgressVO.getUsedfreeDays());
csv.setUsedFreeAmount(inProgressVO.getUsedFreeDaysAmount()); csv.setUsedFreeAmount(inProgressVO.getUsedFreeDaysAmount());
csv.setHadConpon((StrUtil.isNotBlank(orderMQDTO.getCouponTickerNos())? Boolean.TRUE: Boolean.FALSE)); csv.setHadConpon((StrUtil.isNotBlank(orderMQDTO.getCouponTickerNos())? Boolean.TRUE: Boolean.FALSE));
csv.setSameUseUnitPriceFromList(inProgressVO.getUseAmountList());
csv.setSameOverUnitPriceFromList(inProgressVO.getOverAmountList());
csv.setUseAmountList(inProgressVO.getUseAmountList());
csv.setOverAmountList(inProgressVO.getOverAmountList());
if(csv.getUsedDayNum() == orderMQDTO.getOrderRentVehicleDetail().getDayNum()) { if(csv.getUsedDayNum() == orderMQDTO.getOrderRentVehicleDetail().getDayNum()) {
csv.setType(CostDetailExtend.FINLISH_ONTIME); csv.setType(CostDetailExtend.FINLISH_ONTIME);
......
...@@ -267,12 +267,8 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -267,12 +267,8 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
} }
vehicleDepartureVo.setUse("用户租车"); vehicleDepartureVo.setUse("用户租车");
vehicleDepartureVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId()); vehicleDepartureVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId());
vehicleDepartureVo.setCheckMan(userDTO.getName()); vehicleDepartureVo.setCheckMan(orderVehicleCrosstownDto.getCheckUser());
if(StringUtils.isNotBlank(orderVehicleCrosstownDto.getLicensePhone())) { vehicleDepartureVo.setCheckManTel(orderVehicleCrosstownDto.getCheckTel());
vehicleDepartureVo.setCheckManTel(orderVehicleCrosstownDto.getLicensePhone());
} else {
vehicleDepartureVo.setCheckManTel("13656235623");
}
try { try {
RestResponse restResponse = vehicleFeign.departureBySmall(vehicleDepartureVo); RestResponse restResponse = vehicleFeign.departureBySmall(vehicleDepartureVo);
log.error("返回信息: " + restResponse.toString()); log.error("返回信息: " + restResponse.toString());
...@@ -284,14 +280,9 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -284,14 +280,9 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
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(orderVehicleCrosstownDto.getCheckUser());
vehicleArrivalVo.setRecycleManTel("13656235623"); vehicleArrivalVo.setRecycleManTel(orderVehicleCrosstownDto.getCheckTel());
vehicleArrivalVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId()); vehicleArrivalVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId());
if (appUserDTO != null) {
vehicleArrivalVo.setRecycleManTel(appUserDTO.getUsername());
} else {
vehicleArrivalVo.setRecycleManTel("13565235623");
}
try { try {
RestResponse restResponse = vehicleFeign.arrivalBySmall(vehicleArrivalVo); RestResponse restResponse = vehicleFeign.arrivalBySmall(vehicleArrivalVo);
log.info("返回信息: " + restResponse.toString()); log.info("返回信息: " + restResponse.toString());
......
...@@ -84,16 +84,22 @@ public class OrderCalculateBiz { ...@@ -84,16 +84,22 @@ public class OrderCalculateBiz {
@Autowired @Autowired
BaseOrderBiz baseOrderBiz; BaseOrderBiz baseOrderBiz;
public InProgressVO inProgressCalculate(BaseOrder baseOrder, VehicleItemDTO vehicleItemDTO, Integer freeDays, Integer useDays, OrderAccountDetail oad, Boolean isCancel) { public InProgressVO inProgressCalculate(BaseOrder baseOrder, VehicleItemDTO vehicleItemDTO, Integer useDays, OrderAccountDetail oad, Boolean isCancel) {
BigDecimal refundAmount = BigDecimal.ZERO; BigDecimal refundAmount = BigDecimal.ZERO;
BigDecimal consumeAmount = BigDecimal.ZERO; BigDecimal consumeAmount = BigDecimal.ZERO;
BigDecimal topViolateAmount = BigDecimal.ZERO; BigDecimal topViolateAmount = BigDecimal.ZERO;
BigDecimal itemChangeAmount = BigDecimal.ZERO; BigDecimal itemChangeAmount = BigDecimal.ZERO;
//免费天数
Integer freeDays = (null == vehicleItemDTO.getCutNum())?0 :vehicleItemDTO.getCutNum();
//融入日期价格 //融入日期价格
List<VehicleModelCalendarPriceDTO> vmcpds = JSONUtil.toList(JSONUtil.parseArray(vehicleItemDTO.getDetail()), VehicleModelCalendarPriceDTO.class); List<VMCalendarPriceCostDTO> vmcpds = vehicleItemDTO.getVehicleDetail();
VehicleItemDTO.ParamDTO paramDTO = vehicleItemDTO.initParam(freeDays, vmcpds);
List<VMCalendarPriceCostDTO> useAmountList = CollUtil.newArrayList(); List<VMCalendarPriceCostDTO> useAmountList = CollUtil.newArrayList();
//抵消的天数
Integer offsetDays = paramDTO.getOffsetNum();
//商品真实价格 //商品真实价格
BigDecimal goodsRealAmount = baseOrder.getGoodsAmount().subtract(baseOrder.getCouponAmount()); BigDecimal goodsRealAmount = baseOrder.getGoodsAmount().subtract(baseOrder.getCouponAmount());
//其他消费金额 = 商品真实价格 - 主要商品真实价格 = (商品价格 - 优惠价格)- 主要商品真实价格 //其他消费金额 = 商品真实价格 - 主要商品真实价格 = (商品价格 - 优惠价格)- 主要商品真实价格
...@@ -103,24 +109,28 @@ public class OrderCalculateBiz { ...@@ -103,24 +109,28 @@ public class OrderCalculateBiz {
inProgressVO.setUsedDays(useDays); inProgressVO.setUsedDays(useDays);
inProgressVO.setUsedAmount(vehicleItemDTO.getUsedAmount(useDays)); inProgressVO.setUsedAmount(vehicleItemDTO.getUsedAmount(useDays));
//使用的天数对应的免费天数
Integer useDaysMapFreeDays = vehicleItemDTO.mapFreeDays(useDays);
//计算:剩余免费天数 //计算:剩余免费天数
Integer backFreeDays = freeDays - useDays; Integer backFreeDays = freeDays - useDaysMapFreeDays;
//待返还的免费天数 //待返还的优惠券编号
List<String> backCouponNos = Lists.newArrayList(); List<String> backCouponNos = Lists.newArrayList();
//剩余天数 //剩余天数
Integer residueDays = vehicleItemDTO.getTotalNum() - useDays; Integer residueDays = vehicleItemDTO.getTotalNum() - useDays;
//过了出发时间取消订单 ,优先使用免费天数 //过了出发时间取消订单 ,优先使用免费天数
if(backFreeDays <= 0) { if(backFreeDays <= 0) {
//设置免费天数 //设置免费天数
inProgressVO.setUsedfreeDays(freeDays); inProgressVO.setUsedfreeDays(freeDays);
inProgressVO.setUsedFreeDaysAmount(vehicleItemDTO.getFreeAmount(freeDays)); inProgressVO.setUsedFreeDaysAmount(vehicleItemDTO.getFreeAmount(null));
//消费天数 //消费天数
Integer consumeDays = useDays - freeDays; Integer consumeDays = useDays - offsetDays;
//如果使用天数 大于 总天数 //如果使用天数 大于 总天数
if(useDays > vehicleItemDTO.getTotalNum()) { if(useDays > vehicleItemDTO.getTotalNum()) {
//消费天数 //消费天数
consumeDays = vehicleItemDTO.getTotalNum() - freeDays; consumeDays = vehicleItemDTO.getTotalNum() - offsetDays;
} }
//需要扣除订单费用 //需要扣除订单费用
...@@ -128,8 +138,8 @@ public class OrderCalculateBiz { ...@@ -128,8 +138,8 @@ public class OrderCalculateBiz {
//计算使用天数的费用 //计算使用天数的费用
//融入日期价格 //融入日期价格
//consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+"")); //consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+""));
for(int i = freeDays; i < (freeDays+ consumeDays); i++) { for(int i = offsetDays; i < (offsetDays+ consumeDays); i++) {
consumeAmount = consumeAmount.add(vmcpds.get(i).getPrice()); consumeAmount = consumeAmount.add(vmcpds.get(i).getConsumeAmount());
} }
if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) { if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) {
...@@ -149,14 +159,14 @@ public class OrderCalculateBiz { ...@@ -149,14 +159,14 @@ public class OrderCalculateBiz {
} }
} }
//设置消费金额 //设置消费金额,添加租车以外的消费金额
consumeAmount = consumeAmount.add(otherItemRealAmount); consumeAmount = consumeAmount.add(otherItemRealAmount);
inProgressVO.setConsumeAmount(consumeAmount); inProgressVO.setConsumeAmount(consumeAmount);
refundAmount = handleConsumeAmount(oad, refundAmount, consumeAmount, goodsRealAmount, inProgressVO); refundAmount = handleConsumeAmount(oad, refundAmount, consumeAmount, goodsRealAmount, inProgressVO);
}else { }else {
//设置免费天数 //设置免费天数
inProgressVO.setUsedfreeDays(useDays); inProgressVO.setUsedfreeDays(useDaysMapFreeDays);
inProgressVO.setUsedFreeDaysAmount(vehicleItemDTO.getFreeAmount(useDays)); inProgressVO.setUsedFreeDaysAmount(vehicleItemDTO.getFreeAmount(useDays));
//返回剩余免费天数,返回优惠券,订单款 //返回剩余免费天数,返回优惠券,订单款
...@@ -165,27 +175,21 @@ public class OrderCalculateBiz { ...@@ -165,27 +175,21 @@ public class OrderCalculateBiz {
// inProgressVO.setBackFreeDays(backFreeDays); // inProgressVO.setBackFreeDays(backFreeDays);
//融入日期价格 //融入日期价格
Integer trueBackFreeDays = 0; Integer trueBackFreeDays = backFreeDays;
for(int i = (freeDays - backFreeDays); i < freeDays; i++) {
trueBackFreeDays += vmcpds.get(i).getFreeDays();
}
inProgressVO.setBackFreeDays(trueBackFreeDays); inProgressVO.setBackFreeDays(trueBackFreeDays);
//返回优惠券 //返回优惠券
if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) { if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) {
//返回所有优惠券 //没有租车消费金额,所以返回所有优惠券
inProgressVO.setBackCoupons(StrUtil.split(baseOrder.getCouponTickerNos(), ',')); inProgressVO.setBackCoupons(StrUtil.split(baseOrder.getCouponTickerNos(), ','));
} }
//设置消费金额 由于返回了优惠券,所以添加优惠券之前减免的金额 //设置消费金额,添加租车以外的消费金额
consumeAmount = consumeAmount.add(otherItemRealAmount); consumeAmount = consumeAmount.add(otherItemRealAmount);
//修改bug,消费金额不需要添加优惠券金额
//.add(baseOrder.getCouponAmount());
inProgressVO.setConsumeAmount(consumeAmount); inProgressVO.setConsumeAmount(consumeAmount);
refundAmount = handleConsumeAmount(oad, refundAmount, consumeAmount, goodsRealAmount, inProgressVO); refundAmount = handleConsumeAmount(oad, refundAmount, consumeAmount, goodsRealAmount, inProgressVO);
} }
inProgressVO.setRefundOrderAmount(refundAmount); inProgressVO.setRefundOrderAmount(refundAmount);
...@@ -208,7 +212,7 @@ public class OrderCalculateBiz { ...@@ -208,7 +212,7 @@ public class OrderCalculateBiz {
if(residueDays >= 2) { if(residueDays >= 2) {
residueDays = 2; residueDays = 2;
residueAmount = BigDecimal.ZERO; residueAmount = BigDecimal.ZERO;
for(int i = useDays; i < (useDays + residueDays + 1); i++) { for(int i = useDays; i < (useDays + residueDays); i++) {
residueAmount = residueAmount.add(vmcpds.get(i).getPrice()); residueAmount = residueAmount.add(vmcpds.get(i).getPrice());
} }
violateDesc += StrUtil.format("(封顶{}元)", residueAmount); violateDesc += StrUtil.format("(封顶{}元)", residueAmount);
...@@ -268,12 +272,11 @@ public class OrderCalculateBiz { ...@@ -268,12 +272,11 @@ public class OrderCalculateBiz {
setType(ItemTypeEnum.VEHICLE_MODEL.getCode()); setType(ItemTypeEnum.VEHICLE_MODEL.getCode());
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}), VehicleItemDTO.class); }}), VehicleItemDTO.class);
Integer freeDays = (null == vehicleItemDTO.getCutNum())?0 :vehicleItemDTO.getCutNum(); return inProgressCalculate(baseOrder, vehicleItemDTO, useDays, new OrderAccountDetail(), Boolean.FALSE);
return inProgressCalculate(baseOrder, vehicleItemDTO, freeDays, useDays, new OrderAccountDetail(), Boolean.FALSE);
} }
public InProgressVO calculateOrderComplete(BaseOrder baseOrder, OrderRentVehicleDetail orvd, OrderAccountDetail oad, VehicleItemDTO vehicleItemDTO, Integer useDays, Boolean isCancel) { public InProgressVO calculateOrderComplete(BaseOrder baseOrder, OrderRentVehicleDetail orvd, OrderAccountDetail oad, VehicleItemDTO vehicleItemDTO, Integer useDays, Boolean isCancel) {
InProgressVO inProgressVO = inProgressCalculate(baseOrder, vehicleItemDTO, vehicleItemDTO.getCutNum(), useDays, oad, isCancel); InProgressVO inProgressVO = inProgressCalculate(baseOrder, vehicleItemDTO, useDays, oad, isCancel);
//定金 - (额外消费金额 + 违约金) //定金 - (额外消费金额 + 违约金)
oad.setDepositAmount(orvd.getDeposit().subtract(inProgressVO.getExtraAmount().add(inProgressVO.getViolateAmount()))); oad.setDepositAmount(orvd.getDeposit().subtract(inProgressVO.getExtraAmount().add(inProgressVO.getViolateAmount())));
...@@ -297,6 +300,12 @@ public class OrderCalculateBiz { ...@@ -297,6 +300,12 @@ public class OrderCalculateBiz {
//计算:使用天数 当前时间 - 开始时间的0时0分0秒 //计算:使用天数 当前时间 - 开始时间的0时0分0秒
Long bookTimeLag = endLong - startLong; Long bookTimeLag = endLong - startLong;
//默认 已使用了一天
if(bookTimeLag <= 0) {
return 1;
}
log.info("bookTimeLag {}", new BigDecimal(bookTimeLag + "")); log.info("bookTimeLag {}", new BigDecimal(bookTimeLag + ""));
log.info("divide {}", new BigDecimal((24 * 60 * 60 * 1000)+ "")); log.info("divide {}", new BigDecimal((24 * 60 * 60 * 1000)+ ""));
Integer bookDays = new BigDecimal(bookTimeLag + "").divide(new BigDecimal(dayLong+ ""), 0, RoundingMode.DOWN).intValue(); Integer bookDays = new BigDecimal(bookTimeLag + "").divide(new BigDecimal(dayLong+ ""), 0, RoundingMode.DOWN).intValue();
...@@ -339,8 +348,7 @@ public class OrderCalculateBiz { ...@@ -339,8 +348,7 @@ public class OrderCalculateBiz {
if(timeLag < 0 ) { if(timeLag < 0 ) {
Integer useDays = getIncludeDays(orderPageVO.getOrderRentVehicleDetail().getStartTime(), DateTime.now().getMillis()); Integer useDays = getIncludeDays(orderPageVO.getOrderRentVehicleDetail().getStartTime(), DateTime.now().getMillis());
OrderAccountDetail oad = new OrderAccountDetail(); OrderAccountDetail oad = new OrderAccountDetail();
Integer freeDays = (null == vehicleItemDTO.getCutNum())?0 :vehicleItemDTO.getCutNum(); inProgressVO = inProgressCalculate(orderPageVO, vehicleItemDTO, useDays, new OrderAccountDetail(), Boolean.FALSE);
inProgressVO = inProgressCalculate(orderPageVO, vehicleItemDTO, freeDays, useDays, new OrderAccountDetail(), Boolean.FALSE);
topAmount = vehicleItemDTO.getTopAmount(useDays); topAmount = vehicleItemDTO.getTopAmount(useDays);
totalDeductAmount = oad.realTotalDeduct(); totalDeductAmount = oad.realTotalDeduct();
......
...@@ -175,7 +175,10 @@ public class OrderCancelBiz { ...@@ -175,7 +175,10 @@ public class OrderCancelBiz {
csv.setHadConpon((StrUtil.isNotBlank(baseOrder.getCouponTickerNos())? Boolean.TRUE: Boolean.FALSE)); csv.setHadConpon((StrUtil.isNotBlank(baseOrder.getCouponTickerNos())? Boolean.TRUE: Boolean.FALSE));
csv.setViolateAmount(BigDecimal.ZERO); csv.setViolateAmount(BigDecimal.ZERO);
csv.setViolateDesc(""); csv.setViolateDesc("");
csv.setSameUseUnitPriceFromList(inProgressVO.getUseAmountList());
csv.setSameOverUnitPriceFromList(inProgressVO.getOverAmountList());
csv.setUseAmountList(inProgressVO.getUseAmountList()); csv.setUseAmountList(inProgressVO.getUseAmountList());
csv.setOverAmountList(inProgressVO.getOverAmountList());
//如果有扣款项,则生成额外的费用明细 //如果有扣款项,则生成额外的费用明细
if(oad.getDeductions().size() > 0) { if(oad.getDeductions().size() > 0) {
......
...@@ -41,7 +41,7 @@ public class FeignHeadConfiguration { ...@@ -41,7 +41,7 @@ public class FeignHeadConfiguration {
* 遍历请求头里面的属性字段,将logId和token添加到新的请求头中转发到下游服务 * 遍历请求头里面的属性字段,将logId和token添加到新的请求头中转发到下游服务
* */ * */
if ("Authorization".equalsIgnoreCase(name)) { if ("Authorization".equalsIgnoreCase(name)) {
log.debug("添加自定义请求头key:" + name + ",value:" + value); // log.debug("添加自定义请求头key:" + name + ",value:" + value);
requestTemplate.header(name, value); requestTemplate.header(name, value);
} else { } else {
//log.debug("FeignHeadConfiguration", "非自定义请求头key:" + name + ",value:" + value + "不需要添加!"); //log.debug("FeignHeadConfiguration", "非自定义请求头key:" + name + ",value:" + value + "不需要添加!");
......
...@@ -111,7 +111,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -111,7 +111,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
return ObjectRestResponse.succ(baseBiz.getTourHomePageOrderData(companyIds)); return ObjectRestResponse.succ(baseBiz.getTourHomePageOrderData(companyIds));
} }
//只统计会员订单 //只统计会员订单
if (TYPE_MEMBER.equals(type)||DATA_AUTHORITY.equals(user.getDataAll())) { if (TYPE_MEMBER.equals(type)&&DATA_AUTHORITY.equals(user.getDataAll())) {
return ObjectRestResponse.succ(baseBiz.getMemberHomePageOrderData(companyIds)); return ObjectRestResponse.succ(baseBiz.getMemberHomePageOrderData(companyIds));
} }
//所有订单 //所有订单
......
...@@ -414,6 +414,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -414,6 +414,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rvp.setRealVehicleAmount(vehicleOrderItem.getRealAmount()); rvp.setRealVehicleAmount(vehicleOrderItem.getRealAmount());
rvp.setCouponDesc(couponDesc); rvp.setCouponDesc(couponDesc);
rvp.setUseAmountList(vehicleOrderItem.getVehicleDetail()); rvp.setUseAmountList(vehicleOrderItem.getVehicleDetail());
rvp.setSameUnitPrice(vehicleOrderItem.getSameUnitPrice());
rvp.initParamJson(); rvp.initParamJson();
//设置收费明细 //设置收费明细
......
...@@ -33,4 +33,6 @@ public class VehicleModelDayPriceVo extends VehicleModelDTO implements Serializa ...@@ -33,4 +33,6 @@ public class VehicleModelDayPriceVo extends VehicleModelDTO implements Serializa
* 会员等级 * 会员等级
*/ */
private Integer level; private Integer level;
private Integer freeDays;
} }
...@@ -15,6 +15,7 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO; ...@@ -15,6 +15,7 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
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.entity.Area; import com.xxfc.platform.vehicle.entity.Area;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.BranchCompanyStockInfo; import com.xxfc.platform.vehicle.entity.BranchCompanyStockInfo;
...@@ -416,4 +417,17 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -416,4 +417,17 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
public List<Integer> getCompanyIds(String dataZone ,String dataCompany) { public List<Integer> getCompanyIds(String dataZone ,String dataCompany) {
return vehicleBiz.dataCompany(dataZone, dataCompany); return vehicleBiz.dataCompany(dataZone, dataCompany);
} }
public ObjectRestResponse delCompanyByBaseId(Integer id) {
Example example = new Example(BranchCompany.class);
example.createCriteria().andEqualTo("companyBaseId", id);
example.createCriteria().andEqualTo("isDel", 0);
BranchCompany branchCompany = mapper.selectOneByExample(example);
if(branchCompany == null) {
return ObjectRestResponse.createFailedResult(ResCode.BRANCH_COMPANY_UNEXIST.getCode(), ResCode.BRANCH_COMPANY_UNEXIST.getDesc());
}
branchCompany.setIsDel(1);
updateSelectiveByIdRe(branchCompany);
return ObjectRestResponse.succ();
}
} }
...@@ -8,7 +8,6 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; ...@@ -8,7 +8,6 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.RandomUtil; import com.github.wxiaoqi.security.common.util.RandomUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.RedisKey; import com.xxfc.platform.vehicle.constant.RedisKey;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.mapper.BranchCompanyStockInfoMapper; import com.xxfc.platform.vehicle.mapper.BranchCompanyStockInfoMapper;
...@@ -32,7 +31,6 @@ import javax.servlet.http.HttpServletRequest; ...@@ -32,7 +31,6 @@ import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Scanner;
@Service @Service
@Slf4j @Slf4j
...@@ -388,6 +386,7 @@ public class CompanyBaseBiz extends BaseBiz<CompanyBaseMapper, CompanyBase> { ...@@ -388,6 +386,7 @@ public class CompanyBaseBiz extends BaseBiz<CompanyBaseMapper, CompanyBase> {
companyBase.setId(id); companyBase.setId(id);
companyBase.setIsDel(1); companyBase.setIsDel(1);
updateSelectiveById(companyBase); updateSelectiveById(companyBase);
branchCompanyBiz.delCompanyByBaseId(id);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
......
...@@ -1182,17 +1182,19 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1182,17 +1182,19 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
public PageDataVO<UsableVehicleModelVO> searchUsableModel(UsableVeicleDTO dto) { public PageDataVO<UsableVehicleModelVO> searchUsableModel(UsableVeicleDTO dto) {
Map<String, Object> params = BeanUtil.beanToMap(dto); Map<String, Object> params = BeanUtil.beanToMap(dto);
if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) { if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) {
initBookSearchParam(dto, params, Boolean.FALSE); params = initBookSearchParam(dto, params, Boolean.FALSE);
} }
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params)); Map<String, Object> finalParams = params;
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(finalParams));
} }
public PageDataVO<UsableVehicleModelVO> searchUsableModelBackStage(UsableVeicleDTO dto) { public PageDataVO<UsableVehicleModelVO> searchUsableModelBackStage(UsableVeicleDTO dto) {
Map<String, Object> params = BeanUtil.beanToMap(dto); Map<String, Object> params = BeanUtil.beanToMap(dto);
if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) { if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) {
initBookSearchParam(dto, params, Boolean.FALSE); params = initBookSearchParam(dto, params, Boolean.FALSE);
} }
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params)); Map<String, Object> finalParams = params;
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(finalParams));
} }
public PageDataVO<UsableVehicleModelVO> hotModel(HotVeicleDTO dto) { public PageDataVO<UsableVehicleModelVO> hotModel(HotVeicleDTO dto) {
...@@ -1201,7 +1203,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1201,7 +1203,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params)); return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params));
} }
private void initBookSearchParam(UsableVeicleDTO dto, Map<String, Object> params, Boolean needDateExtend) { private Map<String, Object> initBookSearchParam(UsableVeicleDTO dto, Map<String, Object> params, Boolean needDateExtend) {
List<String> notBookedDates = Lists.newArrayList(); List<String> notBookedDates = Lists.newArrayList();
if (StringUtils.isNotBlank(dto.getStartDate()) && if (StringUtils.isNotBlank(dto.getStartDate()) &&
StringUtils.isNotBlank(dto.getEndDate())) { StringUtils.isNotBlank(dto.getEndDate())) {
...@@ -1213,6 +1215,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1213,6 +1215,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
dto.getEndDate()); dto.getEndDate());
dto.setStartDateExtend(dto.getStartDate()); dto.setStartDateExtend(dto.getStartDate());
dto.setEndDateExtend(dto.getEndDate()); dto.setEndDateExtend(dto.getEndDate());
params = BeanUtil.beanToMap(dto);
} }
} }
...@@ -1232,6 +1235,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1232,6 +1235,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
//加入预定信息查询条件 //加入预定信息查询条件
fillBookedDateSearchParam(params, yearMonthAndDate, yearMonthAndDateNotBooked); fillBookedDateSearchParam(params, yearMonthAndDate, yearMonthAndDateNotBooked);
return params;
} }
public PageDataVO<Vehicle> searchUsableVehicle(RentVehicleBookDTO dto) { public PageDataVO<Vehicle> searchUsableVehicle(RentVehicleBookDTO dto) {
...@@ -1240,7 +1244,6 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1240,7 +1244,6 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
dto.setUseType(null); dto.setUseType(null);
} }
Map<String, Object> params = BeanUtil.beanToMap(dto);
List<String> notBookedDates = Lists.newArrayList(); List<String> notBookedDates = Lists.newArrayList();
if (StringUtils.isNotBlank(dto.getBookEndDate()) && if (StringUtils.isNotBlank(dto.getBookEndDate()) &&
StringUtils.isNotBlank(dto.getBookEndDate())) { StringUtils.isNotBlank(dto.getBookEndDate())) {
...@@ -1248,10 +1251,13 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1248,10 +1251,13 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
dto.getBookEndDate()); dto.getBookEndDate());
dto.setStartDateExtend(dto.getBookStartDate()); dto.setStartDateExtend(dto.getBookStartDate());
dto.setEndDateExtend(dto.getBookEndDate()); dto.setEndDateExtend(dto.getBookEndDate());
// notBookedDates = convertDatePeriod2List(dto.getStartDateExtend(), // notBookedDates = convertDatePeriod2List(dto.getStartDateExtend(),
// dto.getEndDateExtend()); // dto.getEndDateExtend());
} }
Map<String, Object> params = BeanUtil.beanToMap(dto);
//若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月) //若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月)
if (CollectionUtils.isEmpty(notBookedDates)) { if (CollectionUtils.isEmpty(notBookedDates)) {
//return; //return;
......
...@@ -146,6 +146,8 @@ public class VehicleModelCalendarPriceBiz extends BaseBiz<VehicleModelCalendarPr ...@@ -146,6 +146,8 @@ public class VehicleModelCalendarPriceBiz extends BaseBiz<VehicleModelCalendarPr
vehicleModelDayPriceVo.setPrice(aPrice); vehicleModelDayPriceVo.setPrice(aPrice);
Integer level = isNullOfVehicleModelPrice ? null : vehicleModelCalendarPriceMap.get(vehicleModelDTO.getVehicleModelId()).getLevel(); Integer level = isNullOfVehicleModelPrice ? null : vehicleModelCalendarPriceMap.get(vehicleModelDTO.getVehicleModelId()).getLevel();
vehicleModelDayPriceVo.setLevel(level); vehicleModelDayPriceVo.setLevel(level);
Integer freeDays = isNullOfVehicleModelPrice ? null : vehicleModelCalendarPriceMap.get(vehicleModelDTO.getVehicleModelId()).getFreeDays();
vehicleModelDayPriceVo.setFreeDays(freeDays);
vehicleModelDayPriceVos.add(vehicleModelDayPriceVo); vehicleModelDayPriceVos.add(vehicleModelDayPriceVo);
} }
return vehicleModelDayPriceVos; return vehicleModelDayPriceVos;
...@@ -239,6 +241,12 @@ public class VehicleModelCalendarPriceBiz extends BaseBiz<VehicleModelCalendarPr ...@@ -239,6 +241,12 @@ public class VehicleModelCalendarPriceBiz extends BaseBiz<VehicleModelCalendarPr
//计算:使用天数 当前时间 - 开始时间的0时0分0秒 //计算:使用天数 当前时间 - 开始时间的0时0分0秒
Long bookTimeLag = endLong - startLong; Long bookTimeLag = endLong - startLong;
//默认 已使用了一天
if(bookTimeLag <= 0) {
return 1;
}
log.info("bookTimeLag {}", new BigDecimal(bookTimeLag + "")); log.info("bookTimeLag {}", new BigDecimal(bookTimeLag + ""));
log.info("divide {}", new BigDecimal((24 * 60 * 60 * 1000) + "")); log.info("divide {}", new BigDecimal((24 * 60 * 60 * 1000) + ""));
Integer bookDays = new BigDecimal(bookTimeLag + "").divide(new BigDecimal(dayLong + ""), 0, RoundingMode.DOWN).intValue(); Integer bookDays = new BigDecimal(bookTimeLag + "").divide(new BigDecimal(dayLong + ""), 0, RoundingMode.DOWN).intValue();
......
...@@ -200,7 +200,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -200,7 +200,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
LocalDateTime ldt = LocalDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), ZoneOffset.ofHours(8)).plusSeconds(30L); LocalDateTime ldt = LocalDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), ZoneOffset.ofHours(8)).plusSeconds(30L);
dto.setBookStartDate(DateTimeFormatter.ofPattern(DATE_TIME_LINE).format(ldt)); dto.setBookStartDate(DateTimeFormatter.ofPattern(DATE_TIME_LINE).format(ldt));
}else { }else {
dto.setBookStartDate(dto.getBookEndDateTime()); dto.setBookStartDate(dto.getBookStartDateTime());
} }
dto.setBookEndDate(dto.getBookEndDateTime()); dto.setBookEndDate(dto.getBookEndDateTime());
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class); BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
......
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