7.3 添加拼团有效时间:倒计时
This commit is contained in:
parent
ca9faa403b
commit
90345c7171
@ -17,6 +17,7 @@
|
|||||||
<result column="deduction_price" property="deductionPrice"/>
|
<result column="deduction_price" property="deductionPrice"/>
|
||||||
<result column="status" property="status"/>
|
<result column="status" property="status"/>
|
||||||
<result column="out_trade_no" property="outTradeNo"/>
|
<result column="out_trade_no" property="outTradeNo"/>
|
||||||
|
<result column="out_trade_time" property="outTradeTime"/>
|
||||||
<result column="biz_id" property="bizId"/>
|
<result column="biz_id" property="bizId"/>
|
||||||
<result column="create_time" property="createTime"/>
|
<result column="create_time" property="createTime"/>
|
||||||
<result column="update_time" property="updateTime"/>
|
<result column="update_time" property="updateTime"/>
|
||||||
@ -49,7 +50,7 @@
|
|||||||
|
|
||||||
<update id="updateOrderStatus2COMPLETE" parameterType="edu.whut.infrastructure.dao.po.GroupBuyOrderList">
|
<update id="updateOrderStatus2COMPLETE" parameterType="edu.whut.infrastructure.dao.po.GroupBuyOrderList">
|
||||||
update group_buy_order_list
|
update group_buy_order_list
|
||||||
set status = 1, update_time = now()
|
set status = 1, out_trade_time = #{outTradeTime}, update_time = now()
|
||||||
where out_trade_no = #{outTradeNo} and user_id = #{userId}
|
where out_trade_no = #{outTradeNo} and user_id = #{userId}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
<result column="complete_count" property="completeCount"/>
|
<result column="complete_count" property="completeCount"/>
|
||||||
<result column="lock_count" property="lockCount"/>
|
<result column="lock_count" property="lockCount"/>
|
||||||
<result column="status" property="status"/>
|
<result column="status" property="status"/>
|
||||||
|
<result column="valid_start_time" property="validStartTime"/>
|
||||||
|
<result column="valid_end_time" property="validEndTime"/>
|
||||||
<result column="create_time" property="createTime"/>
|
<result column="create_time" property="createTime"/>
|
||||||
<result column="update_time" property="updateTime"/>
|
<result column="update_time" property="updateTime"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
@ -22,10 +24,11 @@
|
|||||||
<insert id="insert" parameterType="edu.whut.infrastructure.dao.po.GroupBuyOrder">
|
<insert id="insert" parameterType="edu.whut.infrastructure.dao.po.GroupBuyOrder">
|
||||||
insert into group_buy_order(
|
insert into group_buy_order(
|
||||||
team_id, activity_id, source, channel, original_price,
|
team_id, activity_id, source, channel, original_price,
|
||||||
deduction_price, pay_price, target_count, complete_count, lock_count, status, create_time, update_time
|
deduction_price, pay_price, target_count, complete_count,
|
||||||
|
lock_count, status, valid_start_time, valid_end_time, create_time, update_time
|
||||||
) values(
|
) values(
|
||||||
#{teamId}, #{activityId}, #{source}, #{channel}, #{originalPrice},
|
#{teamId}, #{activityId}, #{source}, #{channel}, #{originalPrice},
|
||||||
#{deductionPrice}, #{payPrice}, #{targetCount}, #{completeCount}, #{lockCount}, 0, now(), now()
|
#{deductionPrice}, #{payPrice}, #{targetCount}, #{completeCount}, #{lockCount}, 0, #{validStartTime}, #{validEndTime} ,now(), now()
|
||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
@ -5,6 +5,8 @@ import lombok.Builder;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 拼团组队实体对象
|
* 拼团组队实体对象
|
||||||
*/
|
*/
|
||||||
@ -26,5 +28,9 @@ public class GroupBuyTeamEntity {
|
|||||||
private Integer lockCount;
|
private Integer lockCount;
|
||||||
/** 状态(0-拼单中、1-完成、2-失败) */
|
/** 状态(0-拼单中、1-完成、2-失败) */
|
||||||
private GroupBuyOrderStatusEnumVO status;
|
private GroupBuyOrderStatusEnumVO status;
|
||||||
|
/** 拼团开始时间 - 参与拼团时间 */
|
||||||
|
private Date validStartTime;
|
||||||
|
/** 拼团结束时间 - 拼团有效时长 */
|
||||||
|
private Date validEndTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,8 @@ public class PayActivityEntity {
|
|||||||
private Date startTime;
|
private Date startTime;
|
||||||
/** 拼团结束时间 */
|
/** 拼团结束时间 */
|
||||||
private Date endTime;
|
private Date endTime;
|
||||||
|
/** 拼团时长(分钟)*/
|
||||||
|
private Integer validTime;
|
||||||
/** 目标数量 */
|
/** 目标数量 */
|
||||||
private Integer targetCount;
|
private Integer targetCount;
|
||||||
|
|
||||||
|
@ -5,6 +5,8 @@ import lombok.Builder;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 交易支付订单实体对象
|
* 交易支付订单实体对象
|
||||||
*/
|
*/
|
||||||
@ -22,5 +24,6 @@ public class TradePaySuccessEntity {
|
|||||||
private String userId;
|
private String userId;
|
||||||
/** 外部交易单号 */
|
/** 外部交易单号 */
|
||||||
private String outTradeNo;
|
private String outTradeNo;
|
||||||
|
/** 外部交易时间 */
|
||||||
|
private Date outTradeTime;
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ import edu.whut.infrastructure.dao.po.GroupBuyActivity;
|
|||||||
import edu.whut.infrastructure.dao.po.GroupBuyOrder;
|
import edu.whut.infrastructure.dao.po.GroupBuyOrder;
|
||||||
import edu.whut.infrastructure.dao.po.GroupBuyOrderList;
|
import edu.whut.infrastructure.dao.po.GroupBuyOrderList;
|
||||||
import edu.whut.infrastructure.dao.po.NotifyTask;
|
import edu.whut.infrastructure.dao.po.NotifyTask;
|
||||||
|
import edu.whut.infrastructure.dcc.DCCService;
|
||||||
import edu.whut.types.common.Constants;
|
import edu.whut.types.common.Constants;
|
||||||
import edu.whut.types.enums.ActivityStatusEnumVO;
|
import edu.whut.types.enums.ActivityStatusEnumVO;
|
||||||
import edu.whut.types.enums.GroupBuyOrderStatusEnumVO;
|
import edu.whut.types.enums.GroupBuyOrderStatusEnumVO;
|
||||||
@ -28,6 +29,8 @@ import org.springframework.dao.DuplicateKeyException;
|
|||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -49,6 +52,8 @@ public class TradeRepository implements ITradeRepository {
|
|||||||
|
|
||||||
private final INotifyTaskDao notifyTaskDao;
|
private final INotifyTaskDao notifyTaskDao;
|
||||||
|
|
||||||
|
private final DCCService dccService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据外部交易号 & 用户id 查询未支付的锁单记录(用于幂等)
|
* 根据外部交易号 & 用户id 查询未支付的锁单记录(用于幂等)
|
||||||
*/
|
*/
|
||||||
@ -96,6 +101,11 @@ public class TradeRepository implements ITradeRepository {
|
|||||||
if (StringUtils.isBlank(teamId)) {
|
if (StringUtils.isBlank(teamId)) {
|
||||||
// 新建团队,随机 8 位数字作 teamId(示例中用 RandomStringUtils,线上可换雪花算法等)
|
// 新建团队,随机 8 位数字作 teamId(示例中用 RandomStringUtils,线上可换雪花算法等)
|
||||||
teamId = RandomStringUtils.randomNumeric(8);
|
teamId = RandomStringUtils.randomNumeric(8);
|
||||||
|
// 日期处理
|
||||||
|
Date currentDate = new Date();
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(currentDate);
|
||||||
|
calendar.add(Calendar.MINUTE, activity.getValidTime());
|
||||||
|
|
||||||
// 构建拼团订单
|
// 构建拼团订单
|
||||||
GroupBuyOrder orderPo = GroupBuyOrder.builder()
|
GroupBuyOrder orderPo = GroupBuyOrder.builder()
|
||||||
@ -109,6 +119,8 @@ public class TradeRepository implements ITradeRepository {
|
|||||||
.targetCount(activity.getTargetCount())
|
.targetCount(activity.getTargetCount())
|
||||||
.completeCount(0)
|
.completeCount(0)
|
||||||
.lockCount(1) // 首单已锁定
|
.lockCount(1) // 首单已锁定
|
||||||
|
.validStartTime(currentDate)
|
||||||
|
.validEndTime(calendar.getTime())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
groupBuyOrderDao.insert(orderPo);
|
groupBuyOrderDao.insert(orderPo);
|
||||||
@ -220,6 +232,8 @@ public class TradeRepository implements ITradeRepository {
|
|||||||
.completeCount(groupBuyOrder.getCompleteCount())
|
.completeCount(groupBuyOrder.getCompleteCount())
|
||||||
.lockCount(groupBuyOrder.getLockCount())
|
.lockCount(groupBuyOrder.getLockCount())
|
||||||
.status(GroupBuyOrderStatusEnumVO.valueOf(groupBuyOrder.getStatus()))
|
.status(GroupBuyOrderStatusEnumVO.valueOf(groupBuyOrder.getStatus()))
|
||||||
|
.validStartTime(groupBuyOrder.getValidStartTime())
|
||||||
|
.validEndTime(groupBuyOrder.getValidEndTime())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,6 +259,8 @@ public class TradeRepository implements ITradeRepository {
|
|||||||
GroupBuyOrderList req = new GroupBuyOrderList();
|
GroupBuyOrderList req = new GroupBuyOrderList();
|
||||||
req.setUserId(user.getUserId());
|
req.setUserId(user.getUserId());
|
||||||
req.setOutTradeNo(payOK.getOutTradeNo());
|
req.setOutTradeNo(payOK.getOutTradeNo());
|
||||||
|
req.setOutTradeTime(payOK.getOutTradeTime());
|
||||||
|
|
||||||
//更新订单状态到已完成
|
//更新订单状态到已完成
|
||||||
int rows = groupBuyOrderListDao.updateOrderStatus2COMPLETE(req);
|
int rows = groupBuyOrderListDao.updateOrderStatus2COMPLETE(req);
|
||||||
if (rows != 1) {
|
if (rows != 1) {
|
||||||
|
@ -41,6 +41,10 @@ public class GroupBuyOrder {
|
|||||||
private Integer lockCount;
|
private Integer lockCount;
|
||||||
/** 状态(0-拼单中、1-完成、2-失败) */
|
/** 状态(0-拼单中、1-完成、2-失败) */
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
/** 拼团开始时间 - 参与拼团时间 */
|
||||||
|
private Date validStartTime;
|
||||||
|
/** 拼团结束时间 - 拼团有效时长 */
|
||||||
|
private Date validEndTime;
|
||||||
/** 创建时间 */
|
/** 创建时间 */
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
/** 更新时间 */
|
/** 更新时间 */
|
||||||
|
@ -45,6 +45,8 @@ public class GroupBuyOrderList {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
/** 外部交易单号-确保外部调用唯一幂等 */
|
/** 外部交易单号-确保外部调用唯一幂等 */
|
||||||
private String outTradeNo;
|
private String outTradeNo;
|
||||||
|
/** 外部交易时间 */
|
||||||
|
private Date outTradeTime;
|
||||||
/** 唯一业务ID */
|
/** 唯一业务ID */
|
||||||
private String bizId;
|
private String bizId;
|
||||||
/** 创建时间 */
|
/** 创建时间 */
|
||||||
|
@ -131,6 +131,7 @@ public class MarketTradeController implements IMarketTradeService {
|
|||||||
.activityName(discountVO.getActivityName())
|
.activityName(discountVO.getActivityName())
|
||||||
.startTime(discountVO.getStartTime())
|
.startTime(discountVO.getStartTime())
|
||||||
.endTime(discountVO.getEndTime())
|
.endTime(discountVO.getEndTime())
|
||||||
|
.validTime(discountVO.getValidTime())
|
||||||
.targetCount(discountVO.getTarget())
|
.targetCount(discountVO.getTarget())
|
||||||
.build(),
|
.build(),
|
||||||
PayDiscountEntity.builder()
|
PayDiscountEntity.builder()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user