Commit 6a531951 authored by jiaorz's avatar jiaorz

Merge remote-tracking branch 'origin/master'

parents c9ee400c 61614a8d
......@@ -27,6 +27,7 @@ public class Coupon implements Serializable {
public static final Integer CHANNEL_RENT = 1;
public static final Integer CHANNEL_TOUR = 2;
public static final Integer CHANNEL_CAMPSITE = 3;
public static final Integer CHANNEL_MEMBER = 4;
/**
* 主键id
......
......@@ -59,11 +59,17 @@ public class UserCouponVo {
@ApiModelProperty(value = "开始时间", hidden = true )
private Long startTime;
/**
* 到期时间
*/
@ApiModelProperty(value = "到期时间", hidden = true )
private Long expireTime;
@ApiModelProperty(value = "到期时间字符串")
private String expireDate;
/**
* 使用时间
......
......@@ -124,9 +124,12 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> {
if(type==1){
startTime=coupon.getStartTime();
expireTime=coupon.getValidEndTime();
}else {
}else if (type==2){
startTime=expireTime;
expireTime+=DAY*coupon.getValidDays();
} else {
startTime=expireTime;
expireTime=-1L;
}
String ticker_no=Snowflake.build()+"";
UserCoupon userCoupon=new UserCoupon();
......
......@@ -13,6 +13,7 @@
<result property="crtTime" column="crt_time"/>
<result property="startTime" column="start_time"/>
<result property="expireTime" column="expire_time"/>
<result property="expireDate" column="expireDate"/>
<result property="useTime" column="use_time"/>
<result property="title" column="title"/>
<result property="subtitle" column="subtitle"/>
......@@ -32,20 +33,20 @@
<select id="getUserCouponsByType" resultMap="userCouponMap">
SELECT
*
*,IF(expire_time=-1,'永久有效',CONCAT('有效期至',FROM_UNIXTIME(expire_time/1000,'%Y-%m-%d'))) as expireDate
FROM
user_coupon u
LEFT JOIN coupon c ON u.coupon_id = c.id
WHERE
u.is_del = 0 and u.user_id=#{userId}
<if test="type==0">
and u.is_use=0 and u.expire_time >=#{time}
and u.is_use=0 and (u.expire_time >=#{time} or u.expire_time=-1)
</if>
<if test="type==1">
and u.is_use=1
</if>
<if test="type==2">
and u.is_use=0 and u.expire_time &lt;#{time}
and u.is_use=0 and u.expire_time &lt;#{time} and u.expire_time!=-1
</if>
<if test="channel!=null and channel!=''">
and (c.channel=#{channel} or c.channel=0 )
......
......@@ -293,4 +293,9 @@ public class BaseOrder implements Serializable {
@ApiModelProperty(value = "促成人联系方式")
@Column(name = "facilitate_phone")
String facilitatePhone;
//支付类型
@ApiModelProperty(value = "支付方式")
@Column(name = "pay_way")
private Integer payWay;
}
......@@ -15,4 +15,10 @@ public class AddMemberDTO extends AddOrderCommonDTO{
@ApiModelProperty(value = "会员等级")
private Integer memberLevel;
/**
* 优惠券*
*/
@ApiModelProperty(value = "优惠卷卷号")
private String tickerNos;
}
......@@ -20,4 +20,8 @@ public class NotifyUrlDTO {
//支付类型
@ApiModelProperty(value = "支付类型")
private Integer type;
//支付类型
@ApiModelProperty(value = "支付方式")
private Integer payWay;
}
\ No newline at end of file
......@@ -563,7 +563,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
* @param tradeNo
*/
@Transactional
public void payNotifyHandle(String orderNo, String tradeNo, Integer type) {
public void payNotifyHandle(String orderNo, String tradeNo, Integer type, Integer payWay) {
OrderRentVehicleDetail orvd = new OrderRentVehicleDetail();
OrderTourDetail otd = new OrderTourDetail();
OrderMemberDetail omd = new OrderMemberDetail();
......@@ -578,6 +578,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
setHasPay(SYS_TRUE);
setPayTime(System.currentTimeMillis());
setPayOrigin(type);
setPayWay(payWay);
setVersion(baseOrder.getVersion());
}};
......
......@@ -387,7 +387,20 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
}});
if(null == crosstown) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet(StrUtil.format("退款第一部分押金失败,获取不了还车/定损记录,订单号:{}, crosstownTypeEnum: {}", orderMQDTO.getId(), crosstownTypeEnum)));
//设置等待时间 5秒
try {
Thread.sleep(5000L);
crosstown = crosstownBiz.selectOne(new OrderVehicleCrosstown(){{
setOrderId(orderMQDTO.getId());
setType(crosstownTypeEnum);
}});
if(null == crosstown) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet(StrUtil.format("退款第一部分押金失败,获取不了还车/定损记录,订单号:{}, crosstownTypeEnum: {}", orderMQDTO.getId(), crosstownTypeEnum)));
}
} catch (InterruptedException e) {
e.printStackTrace();
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet(StrUtil.format("退款第一部分押金失败,获取不了还车/定损记录,订单号:{}, crosstownTypeEnum: {}", orderMQDTO.getId(), crosstownTypeEnum)));
}
}
if(null == crosstown.getRestDeposit()
......
......@@ -114,10 +114,10 @@ public class OrderDepositRefundRecordBiz extends BaseBiz<DepositRefundRecordMapp
}
if(depositRefundRecord.getStatus() == DepositRefundStatus.VIOLATIONARRIVAL.getCode()) {
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
Integer rentDepositAutoRefundTime = new Integer(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail());
Long rentDepositAutoRefundTime = new Long(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail());
if(rentDepositAutoRefundTime != null) {
Long time = Long.parseLong(rentDepositAutoRefundTime + "");
depositRefundRecord.setRentDepositAutoRefundTime(depositRefundRecord.getCrtTime() + time * 60 * 60 * 1000);
// Long time = Long.parseLong(rentDepositAutoRefundTime + "");
depositRefundRecord.setRentDepositAutoRefundTime(depositRefundRecord.getCrtTime() + (rentDepositAutoRefundTime * 60L * 1000L));
}
}
}
......
......@@ -612,7 +612,7 @@ public class OrderMsgBiz {
break;
case SmsTemplateDTO.REFUND_A:
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
Integer rentDepositAutoRefundTime = new Integer(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail());
Long rentDepositAutoRefundTime = new Long(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail());
if(SYS_TRUE.equals(appUserDTO.getIsMember()) && !NONE.getCode().equals(appUserDTO.getMemberLevel()) ) {
smsParams.add(USER_M+ appUserDTO.getRealname());
}else {
......@@ -623,7 +623,7 @@ public class OrderMsgBiz {
smsParams.add(violateAmount.toString());
smsParams.add(refundAmount.toString());
smsParams.add(residueAmount.toString());
smsParams.add(DateUtil.formatDateTime(DateUtil.date(baseOrder.getRefundTime() + Long.valueOf(rentDepositAutoRefundTime * 60 * 60 * 1000))));
smsParams.add(DateUtil.formatDateTime(DateUtil.date(baseOrder.getRefundTime() + (rentDepositAutoRefundTime * 60L * 1000L))));
break;
case SmsTemplateDTO.REFUND_B:
if(SYS_TRUE.equals(appUserDTO.getIsMember()) && !NONE.getCode().equals(appUserDTO.getMemberLevel()) ) {
......
......@@ -62,9 +62,6 @@ public class RemindMsgJobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String idLastNumInterval) {
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
Integer rentDepositAutoRefundTime = new Integer(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail());
try {
Date tomorrow = DateUtil.offsetDay(DateUtil.parse(DateUtil.today(), "yyyy-MM-dd"), 1);
Date tomorrowBegin = DateUtil.beginOfDay(tomorrow);
......@@ -75,8 +72,6 @@ public class RemindMsgJobHandler extends IJobHandler {
.where(WeekendSqls.<BaseOrder>custom()
.andIn(BaseOrder::getType, CollectionUtil.newArrayList(OrderTypeEnum.RENT_VEHICLE.getCode(), OrderTypeEnum.TOUR.getCode()))
.andEqualTo(BaseOrder::getStatus, OrderStatusEnum.ORDER_TOSTART.getCode()) //待出发的订单
// .andLessThanOrEqualTo(BaseOrder::getCrtTime, DateUtil.beginOfDay(tomorrow))
// .andGreaterThanOrEqualTo(BaseOrder::getCrtTime, DateUtil.endOfDay(tomorrow))
).build());
for(BaseOrder baseOrder : lists) {
......
......@@ -5,6 +5,7 @@ import cn.hutool.json.JSONUtil;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.order.biz.OrderAccountBiz;
import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
......@@ -46,7 +47,10 @@ public class RefundMQHandler {
String msg = new String(message.getBody(), "UTF-8");
OrderMQDTO orderMQDTO = JSONUtil.toBean(msg, OrderMQDTO.class);
orderAccountBiz.refundPartDeposit(orderMQDTO);
//租车订单完成
if(OrderTypeEnum.RENT_VEHICLE.getCode().equals(orderMQDTO.getType())) {
orderAccountBiz.refundPartDeposit(orderMQDTO);
}
executorService.shutdown();
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
......
......@@ -283,7 +283,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes
public ObjectRestResponse notifyUrl(NotifyUrlDTO dto) {
//判断是否成功,并且订单是未支付状态,则添加支付编号和修改状态
if (StrUtil.isNotBlank(dto.getOrderNo())) {
baseOrderBiz.payNotifyHandle(dto.getOrderNo(), dto.getTradeNo(), dto.getType());
baseOrderBiz.payNotifyHandle(dto.getOrderNo(), dto.getTradeNo(), dto.getType(), dto.getPayWay());
} else {
log.error(" exception notifyUrl : " + JSONUtil.toJsonStr(dto));
}
......
package com.xxfc.platform.order.rest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
......@@ -46,7 +47,8 @@ public class OrderMemberController extends BaseController<OrderMemberDetailBiz,
@ApiOperation(value = "确认会员订单")
public ObjectRestResponse<BaseOrder> add(@RequestBody AddMemberDTO dto) {
MemberBO bo = BeanUtil.toBean(dto, MemberBO.class);
bo.setTickerNo(StrUtil.isNotBlank(dto.getTickerNos())?
StrUtil.splitTrim(dto.getTickerNos(), ","):null);
//查询会员等级实体
// bo.setBaseUserMemberLevel(userFeign.memberEntityList(BeanUtil.beanToMap(new BaseUserMemberLevel(){{
// setId(dto.getMemberLevelId());
......
......@@ -150,8 +150,8 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
if(BigDecimal.ZERO.compareTo(realAmount) > 0) {
throw new BaseException(ResultCode.FAILED_CODE);
}else if(BigDecimal.ZERO.compareTo(realAmount) == 0) {
//直接支付
baseOrderBiz.payNotifyHandle(detail.getOrder().getNo(), null, detail.getOrderOrigin());
//直接支付 0表示不需要支付
baseOrderBiz.payNotifyHandle(detail.getOrder().getNo(), null, detail.getOrderOrigin(), 0);
}
}
/**
......
......@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderCostDetailBiz;
......@@ -99,6 +100,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
@PostConstruct
public void init() {
this.channel = Coupon.CHANNEL_MEMBER;
this.orderTypeEnum = OrderTypeEnum.MEMBER;
}
......
......@@ -1180,17 +1180,19 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
public PageDataVO<UsableVehicleModelVO> searchUsableModel(UsableVeicleDTO dto) {
Map<String, Object> params = BeanUtil.beanToMap(dto);
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) {
Map<String, Object> params = BeanUtil.beanToMap(dto);
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) {
......@@ -1199,7 +1201,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
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();
if (StringUtils.isNotBlank(dto.getStartDate()) &&
StringUtils.isNotBlank(dto.getEndDate())) {
......@@ -1211,6 +1213,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
dto.getEndDate());
dto.setStartDateExtend(dto.getStartDate());
dto.setEndDateExtend(dto.getEndDate());
params = BeanUtil.beanToMap(dto);
}
}
......@@ -1230,6 +1233,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
//加入预定信息查询条件
fillBookedDateSearchParam(params, yearMonthAndDate, yearMonthAndDateNotBooked);
return params;
}
public PageDataVO<Vehicle> searchUsableVehicle(RentVehicleBookDTO dto) {
......@@ -1238,7 +1242,6 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
dto.setUseType(null);
}
Map<String, Object> params = BeanUtil.beanToMap(dto);
List<String> notBookedDates = Lists.newArrayList();
if (StringUtils.isNotBlank(dto.getBookEndDate()) &&
StringUtils.isNotBlank(dto.getBookEndDate())) {
......@@ -1246,10 +1249,13 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
dto.getBookEndDate());
dto.setStartDateExtend(dto.getBookStartDate());
dto.setEndDateExtend(dto.getBookEndDate());
// notBookedDates = convertDatePeriod2List(dto.getStartDateExtend(),
// dto.getEndDateExtend());
}
Map<String, Object> params = BeanUtil.beanToMap(dto);
//若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月)
if (CollectionUtils.isEmpty(notBookedDates)) {
//return;
......
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