加入新逻辑

This commit is contained in:
2024-11-04 16:59:35 +08:00
parent 10abbae7c8
commit 025fe1b0b6
15 changed files with 1871 additions and 179 deletions

View File

@@ -0,0 +1,30 @@
package com.buy507.mall.mapper;
import com.buy507.mall.model.UmsMemberOrderQueue;
import com.buy507.mall.model.UmsMemberOrderQueueExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface UmsMemberOrderQueueMapper {
long countByExample(UmsMemberOrderQueueExample example);
int deleteByExample(UmsMemberOrderQueueExample example);
int deleteByPrimaryKey(Long id);
int insert(UmsMemberOrderQueue record);
int insertSelective(UmsMemberOrderQueue record);
List<UmsMemberOrderQueue> selectByExample(UmsMemberOrderQueueExample example);
UmsMemberOrderQueue selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") UmsMemberOrderQueue record, @Param("example") UmsMemberOrderQueueExample example);
int updateByExample(@Param("record") UmsMemberOrderQueue record, @Param("example") UmsMemberOrderQueueExample example);
int updateByPrimaryKeySelective(UmsMemberOrderQueue record);
int updateByPrimaryKey(UmsMemberOrderQueue record);
}

View File

@@ -6,6 +6,14 @@ import java.math.BigDecimal;
import java.util.Date;
public class UmsMemberAccountTransaction implements Serializable {
//0 未转账状态
public static Integer TRANSACTION_STATE_NO = 0;
//1 已转账状态
public static Integer TRANSACTION_STATE_YES = 1;
//1 已退款状态
public static Integer TRANSACTION_STATE_OUT = 2;
@ApiModelProperty(value = "主键id")
private Long id;
@@ -18,6 +26,9 @@ public class UmsMemberAccountTransaction implements Serializable {
@ApiModelProperty(value = "进帐金额")
private BigDecimal revenueAmount;
@ApiModelProperty(value = "转账状态 0 未转账1 转账, 2 退款")
private Integer transactionState;
@ApiModelProperty(value = "备注")
private String remarks;
@@ -27,6 +38,9 @@ public class UmsMemberAccountTransaction implements Serializable {
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "转账时间")
private Date transferPaymentTime;
private static final long serialVersionUID = 1L;
public Long getId() {
@@ -61,6 +75,14 @@ public class UmsMemberAccountTransaction implements Serializable {
this.revenueAmount = revenueAmount;
}
public Integer getTransactionState() {
return transactionState;
}
public void setTransactionState(Integer transactionState) {
this.transactionState = transactionState;
}
public String getRemarks() {
return remarks;
}
@@ -85,6 +107,14 @@ public class UmsMemberAccountTransaction implements Serializable {
this.createTime = createTime;
}
public Date getTransferPaymentTime() {
return transferPaymentTime;
}
public void setTransferPaymentTime(Date transferPaymentTime) {
this.transferPaymentTime = transferPaymentTime;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@@ -95,9 +125,11 @@ public class UmsMemberAccountTransaction implements Serializable {
sb.append(", memberId=").append(memberId);
sb.append(", orderId=").append(orderId);
sb.append(", revenueAmount=").append(revenueAmount);
sb.append(", transactionState=").append(transactionState);
sb.append(", remarks=").append(remarks);
sb.append(", commissionRatio=").append(commissionRatio);
sb.append(", createTime=").append(createTime);
sb.append(", transferPaymentTime=").append(transferPaymentTime);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();

View File

@@ -346,6 +346,66 @@ public class UmsMemberAccountTransactionExample {
return (Criteria) this;
}
public Criteria andTransactionStateIsNull() {
addCriterion("transaction_state is null");
return (Criteria) this;
}
public Criteria andTransactionStateIsNotNull() {
addCriterion("transaction_state is not null");
return (Criteria) this;
}
public Criteria andTransactionStateEqualTo(Integer value) {
addCriterion("transaction_state =", value, "transactionState");
return (Criteria) this;
}
public Criteria andTransactionStateNotEqualTo(Integer value) {
addCriterion("transaction_state <>", value, "transactionState");
return (Criteria) this;
}
public Criteria andTransactionStateGreaterThan(Integer value) {
addCriterion("transaction_state >", value, "transactionState");
return (Criteria) this;
}
public Criteria andTransactionStateGreaterThanOrEqualTo(Integer value) {
addCriterion("transaction_state >=", value, "transactionState");
return (Criteria) this;
}
public Criteria andTransactionStateLessThan(Integer value) {
addCriterion("transaction_state <", value, "transactionState");
return (Criteria) this;
}
public Criteria andTransactionStateLessThanOrEqualTo(Integer value) {
addCriterion("transaction_state <=", value, "transactionState");
return (Criteria) this;
}
public Criteria andTransactionStateIn(List<Integer> values) {
addCriterion("transaction_state in", values, "transactionState");
return (Criteria) this;
}
public Criteria andTransactionStateNotIn(List<Integer> values) {
addCriterion("transaction_state not in", values, "transactionState");
return (Criteria) this;
}
public Criteria andTransactionStateBetween(Integer value1, Integer value2) {
addCriterion("transaction_state between", value1, value2, "transactionState");
return (Criteria) this;
}
public Criteria andTransactionStateNotBetween(Integer value1, Integer value2) {
addCriterion("transaction_state not between", value1, value2, "transactionState");
return (Criteria) this;
}
public Criteria andRemarksIsNull() {
addCriterion("remarks is null");
return (Criteria) this;
@@ -535,6 +595,66 @@ public class UmsMemberAccountTransactionExample {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeIsNull() {
addCriterion("transfer_payment_time is null");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeIsNotNull() {
addCriterion("transfer_payment_time is not null");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeEqualTo(Date value) {
addCriterion("transfer_payment_time =", value, "transferPaymentTime");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeNotEqualTo(Date value) {
addCriterion("transfer_payment_time <>", value, "transferPaymentTime");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeGreaterThan(Date value) {
addCriterion("transfer_payment_time >", value, "transferPaymentTime");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeGreaterThanOrEqualTo(Date value) {
addCriterion("transfer_payment_time >=", value, "transferPaymentTime");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeLessThan(Date value) {
addCriterion("transfer_payment_time <", value, "transferPaymentTime");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeLessThanOrEqualTo(Date value) {
addCriterion("transfer_payment_time <=", value, "transferPaymentTime");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeIn(List<Date> values) {
addCriterion("transfer_payment_time in", values, "transferPaymentTime");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeNotIn(List<Date> values) {
addCriterion("transfer_payment_time not in", values, "transferPaymentTime");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeBetween(Date value1, Date value2) {
addCriterion("transfer_payment_time between", value1, value2, "transferPaymentTime");
return (Criteria) this;
}
public Criteria andTransferPaymentTimeNotBetween(Date value1, Date value2) {
addCriterion("transfer_payment_time not between", value1, value2, "transferPaymentTime");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

View File

@@ -0,0 +1,142 @@
package com.buy507.mall.model;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
public class UmsMemberOrderQueue implements Serializable {
//0 普通队列
public static Integer QUEUE_TYPE_ORDINARY = 0;
//1 加速队列
public static Integer QUEUE_TYPE_FAST = 1;
//0 未退出
public static Integer QUEUE_STATUS_WAIT = 0;
//1 准备退队列
public static Integer QUEUE_PREPARE_QUIT = 1;
//1 退出队列
public static Integer QUEUE_STATUS_QUIT = 2;
@ApiModelProperty(value = "主键id")
private Long id;
@ApiModelProperty(value = "会员id")
private Long memberId;
@ApiModelProperty(value = "订单id")
private Long orderId;
@ApiModelProperty(value = "订单金额")
private BigDecimal orderAmount;
@ApiModelProperty(value = "队列位置")
private Long queueIndex;
@ApiModelProperty(value = "0 未退出1 准备退队列, 2退出队列")
private Integer quitQueueMark;
@ApiModelProperty(value = "0 普通队列1 加速队列")
private Integer queueType;
@ApiModelProperty(value = "加速单剩余数量")
private Integer remainNumber;
@ApiModelProperty(value = "创建时间")
private Date createTime;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getMemberId() {
return memberId;
}
public void setMemberId(Long memberId) {
this.memberId = memberId;
}
public Long getOrderId() {
return orderId;
}
public void setOrderId(Long orderId) {
this.orderId = orderId;
}
public BigDecimal getOrderAmount() {
return orderAmount;
}
public void setOrderAmount(BigDecimal orderAmount) {
this.orderAmount = orderAmount;
}
public Long getQueueIndex() {
return queueIndex;
}
public void setQueueIndex(Long queueIndex) {
this.queueIndex = queueIndex;
}
public Integer getQuitQueueMark() {
return quitQueueMark;
}
public void setQuitQueueMark(Integer quitQueueMark) {
this.quitQueueMark = quitQueueMark;
}
public Integer getQueueType() {
return queueType;
}
public void setQueueType(Integer queueType) {
this.queueType = queueType;
}
public Integer getRemainNumber() {
return remainNumber;
}
public void setRemainNumber(Integer remainNumber) {
this.remainNumber = remainNumber;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", memberId=").append(memberId);
sb.append(", orderId=").append(orderId);
sb.append(", orderAmount=").append(orderAmount);
sb.append(", queueIndex=").append(queueIndex);
sb.append(", quitQueueMark=").append(quitQueueMark);
sb.append(", queueType=").append(queueType);
sb.append(", remainNumber=").append(remainNumber);
sb.append(", createTime=").append(createTime);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}

View File

@@ -0,0 +1,742 @@
package com.buy507.mall.model;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class UmsMemberOrderQueueExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public UmsMemberOrderQueueExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andMemberIdIsNull() {
addCriterion("member_id is null");
return (Criteria) this;
}
public Criteria andMemberIdIsNotNull() {
addCriterion("member_id is not null");
return (Criteria) this;
}
public Criteria andMemberIdEqualTo(Long value) {
addCriterion("member_id =", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdNotEqualTo(Long value) {
addCriterion("member_id <>", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdGreaterThan(Long value) {
addCriterion("member_id >", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {
addCriterion("member_id >=", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdLessThan(Long value) {
addCriterion("member_id <", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdLessThanOrEqualTo(Long value) {
addCriterion("member_id <=", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdIn(List<Long> values) {
addCriterion("member_id in", values, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdNotIn(List<Long> values) {
addCriterion("member_id not in", values, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdBetween(Long value1, Long value2) {
addCriterion("member_id between", value1, value2, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdNotBetween(Long value1, Long value2) {
addCriterion("member_id not between", value1, value2, "memberId");
return (Criteria) this;
}
public Criteria andOrderIdIsNull() {
addCriterion("order_id is null");
return (Criteria) this;
}
public Criteria andOrderIdIsNotNull() {
addCriterion("order_id is not null");
return (Criteria) this;
}
public Criteria andOrderIdEqualTo(Long value) {
addCriterion("order_id =", value, "orderId");
return (Criteria) this;
}
public Criteria andOrderIdNotEqualTo(Long value) {
addCriterion("order_id <>", value, "orderId");
return (Criteria) this;
}
public Criteria andOrderIdGreaterThan(Long value) {
addCriterion("order_id >", value, "orderId");
return (Criteria) this;
}
public Criteria andOrderIdGreaterThanOrEqualTo(Long value) {
addCriterion("order_id >=", value, "orderId");
return (Criteria) this;
}
public Criteria andOrderIdLessThan(Long value) {
addCriterion("order_id <", value, "orderId");
return (Criteria) this;
}
public Criteria andOrderIdLessThanOrEqualTo(Long value) {
addCriterion("order_id <=", value, "orderId");
return (Criteria) this;
}
public Criteria andOrderIdIn(List<Long> values) {
addCriterion("order_id in", values, "orderId");
return (Criteria) this;
}
public Criteria andOrderIdNotIn(List<Long> values) {
addCriterion("order_id not in", values, "orderId");
return (Criteria) this;
}
public Criteria andOrderIdBetween(Long value1, Long value2) {
addCriterion("order_id between", value1, value2, "orderId");
return (Criteria) this;
}
public Criteria andOrderIdNotBetween(Long value1, Long value2) {
addCriterion("order_id not between", value1, value2, "orderId");
return (Criteria) this;
}
public Criteria andOrderAmountIsNull() {
addCriterion("order_amount is null");
return (Criteria) this;
}
public Criteria andOrderAmountIsNotNull() {
addCriterion("order_amount is not null");
return (Criteria) this;
}
public Criteria andOrderAmountEqualTo(BigDecimal value) {
addCriterion("order_amount =", value, "orderAmount");
return (Criteria) this;
}
public Criteria andOrderAmountNotEqualTo(BigDecimal value) {
addCriterion("order_amount <>", value, "orderAmount");
return (Criteria) this;
}
public Criteria andOrderAmountGreaterThan(BigDecimal value) {
addCriterion("order_amount >", value, "orderAmount");
return (Criteria) this;
}
public Criteria andOrderAmountGreaterThanOrEqualTo(BigDecimal value) {
addCriterion("order_amount >=", value, "orderAmount");
return (Criteria) this;
}
public Criteria andOrderAmountLessThan(BigDecimal value) {
addCriterion("order_amount <", value, "orderAmount");
return (Criteria) this;
}
public Criteria andOrderAmountLessThanOrEqualTo(BigDecimal value) {
addCriterion("order_amount <=", value, "orderAmount");
return (Criteria) this;
}
public Criteria andOrderAmountIn(List<BigDecimal> values) {
addCriterion("order_amount in", values, "orderAmount");
return (Criteria) this;
}
public Criteria andOrderAmountNotIn(List<BigDecimal> values) {
addCriterion("order_amount not in", values, "orderAmount");
return (Criteria) this;
}
public Criteria andOrderAmountBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("order_amount between", value1, value2, "orderAmount");
return (Criteria) this;
}
public Criteria andOrderAmountNotBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("order_amount not between", value1, value2, "orderAmount");
return (Criteria) this;
}
public Criteria andQueueIndexIsNull() {
addCriterion("queue_index is null");
return (Criteria) this;
}
public Criteria andQueueIndexIsNotNull() {
addCriterion("queue_index is not null");
return (Criteria) this;
}
public Criteria andQueueIndexEqualTo(Long value) {
addCriterion("queue_index =", value, "queueIndex");
return (Criteria) this;
}
public Criteria andQueueIndexNotEqualTo(Long value) {
addCriterion("queue_index <>", value, "queueIndex");
return (Criteria) this;
}
public Criteria andQueueIndexGreaterThan(Long value) {
addCriterion("queue_index >", value, "queueIndex");
return (Criteria) this;
}
public Criteria andQueueIndexGreaterThanOrEqualTo(Long value) {
addCriterion("queue_index >=", value, "queueIndex");
return (Criteria) this;
}
public Criteria andQueueIndexLessThan(Long value) {
addCriterion("queue_index <", value, "queueIndex");
return (Criteria) this;
}
public Criteria andQueueIndexLessThanOrEqualTo(Long value) {
addCriterion("queue_index <=", value, "queueIndex");
return (Criteria) this;
}
public Criteria andQueueIndexIn(List<Long> values) {
addCriterion("queue_index in", values, "queueIndex");
return (Criteria) this;
}
public Criteria andQueueIndexNotIn(List<Long> values) {
addCriterion("queue_index not in", values, "queueIndex");
return (Criteria) this;
}
public Criteria andQueueIndexBetween(Long value1, Long value2) {
addCriterion("queue_index between", value1, value2, "queueIndex");
return (Criteria) this;
}
public Criteria andQueueIndexNotBetween(Long value1, Long value2) {
addCriterion("queue_index not between", value1, value2, "queueIndex");
return (Criteria) this;
}
public Criteria andQuitQueueMarkIsNull() {
addCriterion("quit_queue_mark is null");
return (Criteria) this;
}
public Criteria andQuitQueueMarkIsNotNull() {
addCriterion("quit_queue_mark is not null");
return (Criteria) this;
}
public Criteria andQuitQueueMarkEqualTo(Integer value) {
addCriterion("quit_queue_mark =", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkNotEqualTo(Integer value) {
addCriterion("quit_queue_mark <>", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkGreaterThan(Integer value) {
addCriterion("quit_queue_mark >", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkGreaterThanOrEqualTo(Integer value) {
addCriterion("quit_queue_mark >=", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkLessThan(Integer value) {
addCriterion("quit_queue_mark <", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkLessThanOrEqualTo(Integer value) {
addCriterion("quit_queue_mark <=", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkIn(List<Integer> values) {
addCriterion("quit_queue_mark in", values, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkNotIn(List<Integer> values) {
addCriterion("quit_queue_mark not in", values, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkBetween(Integer value1, Integer value2) {
addCriterion("quit_queue_mark between", value1, value2, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkNotBetween(Integer value1, Integer value2) {
addCriterion("quit_queue_mark not between", value1, value2, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQueueTypeIsNull() {
addCriterion("queue_type is null");
return (Criteria) this;
}
public Criteria andQueueTypeIsNotNull() {
addCriterion("queue_type is not null");
return (Criteria) this;
}
public Criteria andQueueTypeEqualTo(Integer value) {
addCriterion("queue_type =", value, "queueType");
return (Criteria) this;
}
public Criteria andQueueTypeNotEqualTo(Integer value) {
addCriterion("queue_type <>", value, "queueType");
return (Criteria) this;
}
public Criteria andQueueTypeGreaterThan(Integer value) {
addCriterion("queue_type >", value, "queueType");
return (Criteria) this;
}
public Criteria andQueueTypeGreaterThanOrEqualTo(Integer value) {
addCriterion("queue_type >=", value, "queueType");
return (Criteria) this;
}
public Criteria andQueueTypeLessThan(Integer value) {
addCriterion("queue_type <", value, "queueType");
return (Criteria) this;
}
public Criteria andQueueTypeLessThanOrEqualTo(Integer value) {
addCriterion("queue_type <=", value, "queueType");
return (Criteria) this;
}
public Criteria andQueueTypeIn(List<Integer> values) {
addCriterion("queue_type in", values, "queueType");
return (Criteria) this;
}
public Criteria andQueueTypeNotIn(List<Integer> values) {
addCriterion("queue_type not in", values, "queueType");
return (Criteria) this;
}
public Criteria andQueueTypeBetween(Integer value1, Integer value2) {
addCriterion("queue_type between", value1, value2, "queueType");
return (Criteria) this;
}
public Criteria andQueueTypeNotBetween(Integer value1, Integer value2) {
addCriterion("queue_type not between", value1, value2, "queueType");
return (Criteria) this;
}
public Criteria andRemainNumberIsNull() {
addCriterion("remain_number is null");
return (Criteria) this;
}
public Criteria andRemainNumberIsNotNull() {
addCriterion("remain_number is not null");
return (Criteria) this;
}
public Criteria andRemainNumberEqualTo(Integer value) {
addCriterion("remain_number =", value, "remainNumber");
return (Criteria) this;
}
public Criteria andRemainNumberNotEqualTo(Integer value) {
addCriterion("remain_number <>", value, "remainNumber");
return (Criteria) this;
}
public Criteria andRemainNumberGreaterThan(Integer value) {
addCriterion("remain_number >", value, "remainNumber");
return (Criteria) this;
}
public Criteria andRemainNumberGreaterThanOrEqualTo(Integer value) {
addCriterion("remain_number >=", value, "remainNumber");
return (Criteria) this;
}
public Criteria andRemainNumberLessThan(Integer value) {
addCriterion("remain_number <", value, "remainNumber");
return (Criteria) this;
}
public Criteria andRemainNumberLessThanOrEqualTo(Integer value) {
addCriterion("remain_number <=", value, "remainNumber");
return (Criteria) this;
}
public Criteria andRemainNumberIn(List<Integer> values) {
addCriterion("remain_number in", values, "remainNumber");
return (Criteria) this;
}
public Criteria andRemainNumberNotIn(List<Integer> values) {
addCriterion("remain_number not in", values, "remainNumber");
return (Criteria) this;
}
public Criteria andRemainNumberBetween(Integer value1, Integer value2) {
addCriterion("remain_number between", value1, value2, "remainNumber");
return (Criteria) this;
}
public Criteria andRemainNumberNotBetween(Integer value1, Integer value2) {
addCriterion("remain_number not between", value1, value2, "remainNumber");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

View File

@@ -11,11 +11,11 @@ public class UmsMemberRelationTree implements Serializable {
@ApiModelProperty(value = "会员id")
private Long memberId;
@ApiModelProperty(value = "级会员id")
private Integer higherLevelId;
@ApiModelProperty(value = "级会员id")
private Long lowerLevelId;
@ApiModelProperty(value = "0 未退出1 退出队列")
private Integer quitQueueMark;
@ApiModelProperty(value = "上级会员id")
private Long higherLevelId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@@ -38,22 +38,22 @@ public class UmsMemberRelationTree implements Serializable {
this.memberId = memberId;
}
public Integer getHigherLevelId() {
public Long getLowerLevelId() {
return lowerLevelId;
}
public void setLowerLevelId(Long lowerLevelId) {
this.lowerLevelId = lowerLevelId;
}
public Long getHigherLevelId() {
return higherLevelId;
}
public void setHigherLevelId(Integer higherLevelId) {
public void setHigherLevelId(Long higherLevelId) {
this.higherLevelId = higherLevelId;
}
public Integer getQuitQueueMark() {
return quitQueueMark;
}
public void setQuitQueueMark(Integer quitQueueMark) {
this.quitQueueMark = quitQueueMark;
}
public Date getCreateTime() {
return createTime;
}
@@ -70,8 +70,8 @@ public class UmsMemberRelationTree implements Serializable {
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", memberId=").append(memberId);
sb.append(", lowerLevelId=").append(lowerLevelId);
sb.append(", higherLevelId=").append(higherLevelId);
sb.append(", quitQueueMark=").append(quitQueueMark);
sb.append(", createTime=").append(createTime);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");

View File

@@ -225,6 +225,66 @@ public class UmsMemberRelationTreeExample {
return (Criteria) this;
}
public Criteria andLowerLevelIdIsNull() {
addCriterion("lower_level_id is null");
return (Criteria) this;
}
public Criteria andLowerLevelIdIsNotNull() {
addCriterion("lower_level_id is not null");
return (Criteria) this;
}
public Criteria andLowerLevelIdEqualTo(Long value) {
addCriterion("lower_level_id =", value, "lowerLevelId");
return (Criteria) this;
}
public Criteria andLowerLevelIdNotEqualTo(Long value) {
addCriterion("lower_level_id <>", value, "lowerLevelId");
return (Criteria) this;
}
public Criteria andLowerLevelIdGreaterThan(Long value) {
addCriterion("lower_level_id >", value, "lowerLevelId");
return (Criteria) this;
}
public Criteria andLowerLevelIdGreaterThanOrEqualTo(Long value) {
addCriterion("lower_level_id >=", value, "lowerLevelId");
return (Criteria) this;
}
public Criteria andLowerLevelIdLessThan(Long value) {
addCriterion("lower_level_id <", value, "lowerLevelId");
return (Criteria) this;
}
public Criteria andLowerLevelIdLessThanOrEqualTo(Long value) {
addCriterion("lower_level_id <=", value, "lowerLevelId");
return (Criteria) this;
}
public Criteria andLowerLevelIdIn(List<Long> values) {
addCriterion("lower_level_id in", values, "lowerLevelId");
return (Criteria) this;
}
public Criteria andLowerLevelIdNotIn(List<Long> values) {
addCriterion("lower_level_id not in", values, "lowerLevelId");
return (Criteria) this;
}
public Criteria andLowerLevelIdBetween(Long value1, Long value2) {
addCriterion("lower_level_id between", value1, value2, "lowerLevelId");
return (Criteria) this;
}
public Criteria andLowerLevelIdNotBetween(Long value1, Long value2) {
addCriterion("lower_level_id not between", value1, value2, "lowerLevelId");
return (Criteria) this;
}
public Criteria andHigherLevelIdIsNull() {
addCriterion("higher_level_id is null");
return (Criteria) this;
@@ -235,116 +295,56 @@ public class UmsMemberRelationTreeExample {
return (Criteria) this;
}
public Criteria andHigherLevelIdEqualTo(Integer value) {
public Criteria andHigherLevelIdEqualTo(Long value) {
addCriterion("higher_level_id =", value, "higherLevelId");
return (Criteria) this;
}
public Criteria andHigherLevelIdNotEqualTo(Integer value) {
public Criteria andHigherLevelIdNotEqualTo(Long value) {
addCriterion("higher_level_id <>", value, "higherLevelId");
return (Criteria) this;
}
public Criteria andHigherLevelIdGreaterThan(Integer value) {
public Criteria andHigherLevelIdGreaterThan(Long value) {
addCriterion("higher_level_id >", value, "higherLevelId");
return (Criteria) this;
}
public Criteria andHigherLevelIdGreaterThanOrEqualTo(Integer value) {
public Criteria andHigherLevelIdGreaterThanOrEqualTo(Long value) {
addCriterion("higher_level_id >=", value, "higherLevelId");
return (Criteria) this;
}
public Criteria andHigherLevelIdLessThan(Integer value) {
public Criteria andHigherLevelIdLessThan(Long value) {
addCriterion("higher_level_id <", value, "higherLevelId");
return (Criteria) this;
}
public Criteria andHigherLevelIdLessThanOrEqualTo(Integer value) {
public Criteria andHigherLevelIdLessThanOrEqualTo(Long value) {
addCriterion("higher_level_id <=", value, "higherLevelId");
return (Criteria) this;
}
public Criteria andHigherLevelIdIn(List<Integer> values) {
public Criteria andHigherLevelIdIn(List<Long> values) {
addCriterion("higher_level_id in", values, "higherLevelId");
return (Criteria) this;
}
public Criteria andHigherLevelIdNotIn(List<Integer> values) {
public Criteria andHigherLevelIdNotIn(List<Long> values) {
addCriterion("higher_level_id not in", values, "higherLevelId");
return (Criteria) this;
}
public Criteria andHigherLevelIdBetween(Integer value1, Integer value2) {
public Criteria andHigherLevelIdBetween(Long value1, Long value2) {
addCriterion("higher_level_id between", value1, value2, "higherLevelId");
return (Criteria) this;
}
public Criteria andHigherLevelIdNotBetween(Integer value1, Integer value2) {
public Criteria andHigherLevelIdNotBetween(Long value1, Long value2) {
addCriterion("higher_level_id not between", value1, value2, "higherLevelId");
return (Criteria) this;
}
public Criteria andQuitQueueMarkIsNull() {
addCriterion("quit_queue_mark is null");
return (Criteria) this;
}
public Criteria andQuitQueueMarkIsNotNull() {
addCriterion("quit_queue_mark is not null");
return (Criteria) this;
}
public Criteria andQuitQueueMarkEqualTo(Integer value) {
addCriterion("quit_queue_mark =", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkNotEqualTo(Integer value) {
addCriterion("quit_queue_mark <>", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkGreaterThan(Integer value) {
addCriterion("quit_queue_mark >", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkGreaterThanOrEqualTo(Integer value) {
addCriterion("quit_queue_mark >=", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkLessThan(Integer value) {
addCriterion("quit_queue_mark <", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkLessThanOrEqualTo(Integer value) {
addCriterion("quit_queue_mark <=", value, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkIn(List<Integer> values) {
addCriterion("quit_queue_mark in", values, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkNotIn(List<Integer> values) {
addCriterion("quit_queue_mark not in", values, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkBetween(Integer value1, Integer value2) {
addCriterion("quit_queue_mark between", value1, value2, "quitQueueMark");
return (Criteria) this;
}
public Criteria andQuitQueueMarkNotBetween(Integer value1, Integer value2) {
addCriterion("quit_queue_mark not between", value1, value2, "quitQueueMark");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;

View File

@@ -6,9 +6,11 @@
<result column="member_id" jdbcType="BIGINT" property="memberId" />
<result column="order_id" jdbcType="BIGINT" property="orderId" />
<result column="revenue_amount" jdbcType="DECIMAL" property="revenueAmount" />
<result column="transaction_state" jdbcType="INTEGER" property="transactionState" />
<result column="remarks" jdbcType="VARCHAR" property="remarks" />
<result column="commission_ratio" jdbcType="INTEGER" property="commissionRatio" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="transfer_payment_time" jdbcType="TIMESTAMP" property="transferPaymentTime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@@ -69,7 +71,8 @@
</where>
</sql>
<sql id="Base_Column_List">
id, member_id, order_id, revenue_amount, remarks, commission_ratio, create_time
id, member_id, order_id, revenue_amount, transaction_state, remarks, commission_ratio,
create_time, transfer_payment_time
</sql>
<select id="selectByExample" parameterType="com.buy507.mall.model.UmsMemberAccountTransactionExample" resultMap="BaseResultMap">
select
@@ -106,11 +109,11 @@
SELECT LAST_INSERT_ID()
</selectKey>
insert into ums_member_account_transaction (member_id, order_id, revenue_amount,
remarks, commission_ratio, create_time
)
transaction_state, remarks, commission_ratio,
create_time, transfer_payment_time)
values (#{memberId,jdbcType=BIGINT}, #{orderId,jdbcType=BIGINT}, #{revenueAmount,jdbcType=DECIMAL},
#{remarks,jdbcType=VARCHAR}, #{commissionRatio,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}
)
#{transactionState,jdbcType=INTEGER}, #{remarks,jdbcType=VARCHAR}, #{commissionRatio,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP}, #{transferPaymentTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.buy507.mall.model.UmsMemberAccountTransaction">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
@@ -127,6 +130,9 @@
<if test="revenueAmount != null">
revenue_amount,
</if>
<if test="transactionState != null">
transaction_state,
</if>
<if test="remarks != null">
remarks,
</if>
@@ -136,6 +142,9 @@
<if test="createTime != null">
create_time,
</if>
<if test="transferPaymentTime != null">
transfer_payment_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="memberId != null">
@@ -147,6 +156,9 @@
<if test="revenueAmount != null">
#{revenueAmount,jdbcType=DECIMAL},
</if>
<if test="transactionState != null">
#{transactionState,jdbcType=INTEGER},
</if>
<if test="remarks != null">
#{remarks,jdbcType=VARCHAR},
</if>
@@ -156,6 +168,9 @@
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="transferPaymentTime != null">
#{transferPaymentTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.buy507.mall.model.UmsMemberAccountTransactionExample" resultType="java.lang.Long">
@@ -179,6 +194,9 @@
<if test="record.revenueAmount != null">
revenue_amount = #{record.revenueAmount,jdbcType=DECIMAL},
</if>
<if test="record.transactionState != null">
transaction_state = #{record.transactionState,jdbcType=INTEGER},
</if>
<if test="record.remarks != null">
remarks = #{record.remarks,jdbcType=VARCHAR},
</if>
@@ -188,6 +206,9 @@
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
<if test="record.transferPaymentTime != null">
transfer_payment_time = #{record.transferPaymentTime,jdbcType=TIMESTAMP},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@@ -199,9 +220,11 @@
member_id = #{record.memberId,jdbcType=BIGINT},
order_id = #{record.orderId,jdbcType=BIGINT},
revenue_amount = #{record.revenueAmount,jdbcType=DECIMAL},
transaction_state = #{record.transactionState,jdbcType=INTEGER},
remarks = #{record.remarks,jdbcType=VARCHAR},
commission_ratio = #{record.commissionRatio,jdbcType=INTEGER},
create_time = #{record.createTime,jdbcType=TIMESTAMP}
create_time = #{record.createTime,jdbcType=TIMESTAMP},
transfer_payment_time = #{record.transferPaymentTime,jdbcType=TIMESTAMP}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@@ -218,6 +241,9 @@
<if test="revenueAmount != null">
revenue_amount = #{revenueAmount,jdbcType=DECIMAL},
</if>
<if test="transactionState != null">
transaction_state = #{transactionState,jdbcType=INTEGER},
</if>
<if test="remarks != null">
remarks = #{remarks,jdbcType=VARCHAR},
</if>
@@ -227,6 +253,9 @@
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="transferPaymentTime != null">
transfer_payment_time = #{transferPaymentTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@@ -235,9 +264,11 @@
set member_id = #{memberId,jdbcType=BIGINT},
order_id = #{orderId,jdbcType=BIGINT},
revenue_amount = #{revenueAmount,jdbcType=DECIMAL},
transaction_state = #{transactionState,jdbcType=INTEGER},
remarks = #{remarks,jdbcType=VARCHAR},
commission_ratio = #{commissionRatio,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP}
create_time = #{createTime,jdbcType=TIMESTAMP},
transfer_payment_time = #{transferPaymentTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

View File

@@ -0,0 +1,274 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.buy507.mall.mapper.UmsMemberOrderQueueMapper">
<resultMap id="BaseResultMap" type="com.buy507.mall.model.UmsMemberOrderQueue">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="member_id" jdbcType="BIGINT" property="memberId" />
<result column="order_id" jdbcType="BIGINT" property="orderId" />
<result column="order_amount" jdbcType="DECIMAL" property="orderAmount" />
<result column="queue_index" jdbcType="BIGINT" property="queueIndex" />
<result column="quit_queue_mark" jdbcType="INTEGER" property="quitQueueMark" />
<result column="queue_type" jdbcType="INTEGER" property="queueType" />
<result column="remain_number" jdbcType="INTEGER" property="remainNumber" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, member_id, order_id, order_amount, queue_index, quit_queue_mark, queue_type,
remain_number, create_time
</sql>
<select id="selectByExample" parameterType="com.buy507.mall.model.UmsMemberOrderQueueExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from ums_member_order_queue
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from ums_member_order_queue
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from ums_member_order_queue
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.buy507.mall.model.UmsMemberOrderQueueExample">
delete from ums_member_order_queue
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.buy507.mall.model.UmsMemberOrderQueue">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into ums_member_order_queue (member_id, order_id, order_amount,
queue_index, quit_queue_mark, queue_type,
remain_number, create_time)
values (#{memberId,jdbcType=BIGINT}, #{orderId,jdbcType=BIGINT}, #{orderAmount,jdbcType=DECIMAL},
#{queueIndex,jdbcType=BIGINT}, #{quitQueueMark,jdbcType=INTEGER}, #{queueType,jdbcType=INTEGER},
#{remainNumber,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.buy507.mall.model.UmsMemberOrderQueue">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into ums_member_order_queue
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="memberId != null">
member_id,
</if>
<if test="orderId != null">
order_id,
</if>
<if test="orderAmount != null">
order_amount,
</if>
<if test="queueIndex != null">
queue_index,
</if>
<if test="quitQueueMark != null">
quit_queue_mark,
</if>
<if test="queueType != null">
queue_type,
</if>
<if test="remainNumber != null">
remain_number,
</if>
<if test="createTime != null">
create_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="memberId != null">
#{memberId,jdbcType=BIGINT},
</if>
<if test="orderId != null">
#{orderId,jdbcType=BIGINT},
</if>
<if test="orderAmount != null">
#{orderAmount,jdbcType=DECIMAL},
</if>
<if test="queueIndex != null">
#{queueIndex,jdbcType=BIGINT},
</if>
<if test="quitQueueMark != null">
#{quitQueueMark,jdbcType=INTEGER},
</if>
<if test="queueType != null">
#{queueType,jdbcType=INTEGER},
</if>
<if test="remainNumber != null">
#{remainNumber,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.buy507.mall.model.UmsMemberOrderQueueExample" resultType="java.lang.Long">
select count(*) from ums_member_order_queue
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update ums_member_order_queue
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.memberId != null">
member_id = #{record.memberId,jdbcType=BIGINT},
</if>
<if test="record.orderId != null">
order_id = #{record.orderId,jdbcType=BIGINT},
</if>
<if test="record.orderAmount != null">
order_amount = #{record.orderAmount,jdbcType=DECIMAL},
</if>
<if test="record.queueIndex != null">
queue_index = #{record.queueIndex,jdbcType=BIGINT},
</if>
<if test="record.quitQueueMark != null">
quit_queue_mark = #{record.quitQueueMark,jdbcType=INTEGER},
</if>
<if test="record.queueType != null">
queue_type = #{record.queueType,jdbcType=INTEGER},
</if>
<if test="record.remainNumber != null">
remain_number = #{record.remainNumber,jdbcType=INTEGER},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update ums_member_order_queue
set id = #{record.id,jdbcType=BIGINT},
member_id = #{record.memberId,jdbcType=BIGINT},
order_id = #{record.orderId,jdbcType=BIGINT},
order_amount = #{record.orderAmount,jdbcType=DECIMAL},
queue_index = #{record.queueIndex,jdbcType=BIGINT},
quit_queue_mark = #{record.quitQueueMark,jdbcType=INTEGER},
queue_type = #{record.queueType,jdbcType=INTEGER},
remain_number = #{record.remainNumber,jdbcType=INTEGER},
create_time = #{record.createTime,jdbcType=TIMESTAMP}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.buy507.mall.model.UmsMemberOrderQueue">
update ums_member_order_queue
<set>
<if test="memberId != null">
member_id = #{memberId,jdbcType=BIGINT},
</if>
<if test="orderId != null">
order_id = #{orderId,jdbcType=BIGINT},
</if>
<if test="orderAmount != null">
order_amount = #{orderAmount,jdbcType=DECIMAL},
</if>
<if test="queueIndex != null">
queue_index = #{queueIndex,jdbcType=BIGINT},
</if>
<if test="quitQueueMark != null">
quit_queue_mark = #{quitQueueMark,jdbcType=INTEGER},
</if>
<if test="queueType != null">
queue_type = #{queueType,jdbcType=INTEGER},
</if>
<if test="remainNumber != null">
remain_number = #{remainNumber,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.buy507.mall.model.UmsMemberOrderQueue">
update ums_member_order_queue
set member_id = #{memberId,jdbcType=BIGINT},
order_id = #{orderId,jdbcType=BIGINT},
order_amount = #{orderAmount,jdbcType=DECIMAL},
queue_index = #{queueIndex,jdbcType=BIGINT},
quit_queue_mark = #{quitQueueMark,jdbcType=INTEGER},
queue_type = #{queueType,jdbcType=INTEGER},
remain_number = #{remainNumber,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

View File

@@ -4,8 +4,8 @@
<resultMap id="BaseResultMap" type="com.buy507.mall.model.UmsMemberRelationTree">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="member_id" jdbcType="BIGINT" property="memberId" />
<result column="higher_level_id" jdbcType="INTEGER" property="higherLevelId" />
<result column="quit_queue_mark" jdbcType="INTEGER" property="quitQueueMark" />
<result column="lower_level_id" jdbcType="BIGINT" property="lowerLevelId" />
<result column="higher_level_id" jdbcType="BIGINT" property="higherLevelId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Example_Where_Clause">
@@ -67,7 +67,7 @@
</where>
</sql>
<sql id="Base_Column_List">
id, member_id, higher_level_id, quit_queue_mark, create_time
id, member_id, lower_level_id, higher_level_id, create_time
</sql>
<select id="selectByExample" parameterType="com.buy507.mall.model.UmsMemberRelationTreeExample" resultMap="BaseResultMap">
select
@@ -103,9 +103,9 @@
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into ums_member_relation_tree (member_id, higher_level_id, quit_queue_mark,
insert into ums_member_relation_tree (member_id, lower_level_id, higher_level_id,
create_time)
values (#{memberId,jdbcType=BIGINT}, #{higherLevelId,jdbcType=INTEGER}, #{quitQueueMark,jdbcType=INTEGER},
values (#{memberId,jdbcType=BIGINT}, #{lowerLevelId,jdbcType=BIGINT}, #{higherLevelId,jdbcType=BIGINT},
#{createTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.buy507.mall.model.UmsMemberRelationTree">
@@ -117,12 +117,12 @@
<if test="memberId != null">
member_id,
</if>
<if test="lowerLevelId != null">
lower_level_id,
</if>
<if test="higherLevelId != null">
higher_level_id,
</if>
<if test="quitQueueMark != null">
quit_queue_mark,
</if>
<if test="createTime != null">
create_time,
</if>
@@ -131,11 +131,11 @@
<if test="memberId != null">
#{memberId,jdbcType=BIGINT},
</if>
<if test="higherLevelId != null">
#{higherLevelId,jdbcType=INTEGER},
<if test="lowerLevelId != null">
#{lowerLevelId,jdbcType=BIGINT},
</if>
<if test="quitQueueMark != null">
#{quitQueueMark,jdbcType=INTEGER},
<if test="higherLevelId != null">
#{higherLevelId,jdbcType=BIGINT},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
@@ -157,11 +157,11 @@
<if test="record.memberId != null">
member_id = #{record.memberId,jdbcType=BIGINT},
</if>
<if test="record.higherLevelId != null">
higher_level_id = #{record.higherLevelId,jdbcType=INTEGER},
<if test="record.lowerLevelId != null">
lower_level_id = #{record.lowerLevelId,jdbcType=BIGINT},
</if>
<if test="record.quitQueueMark != null">
quit_queue_mark = #{record.quitQueueMark,jdbcType=INTEGER},
<if test="record.higherLevelId != null">
higher_level_id = #{record.higherLevelId,jdbcType=BIGINT},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
@@ -175,8 +175,8 @@
update ums_member_relation_tree
set id = #{record.id,jdbcType=BIGINT},
member_id = #{record.memberId,jdbcType=BIGINT},
higher_level_id = #{record.higherLevelId,jdbcType=INTEGER},
quit_queue_mark = #{record.quitQueueMark,jdbcType=INTEGER},
lower_level_id = #{record.lowerLevelId,jdbcType=BIGINT},
higher_level_id = #{record.higherLevelId,jdbcType=BIGINT},
create_time = #{record.createTime,jdbcType=TIMESTAMP}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@@ -188,11 +188,11 @@
<if test="memberId != null">
member_id = #{memberId,jdbcType=BIGINT},
</if>
<if test="higherLevelId != null">
higher_level_id = #{higherLevelId,jdbcType=INTEGER},
<if test="lowerLevelId != null">
lower_level_id = #{lowerLevelId,jdbcType=BIGINT},
</if>
<if test="quitQueueMark != null">
quit_queue_mark = #{quitQueueMark,jdbcType=INTEGER},
<if test="higherLevelId != null">
higher_level_id = #{higherLevelId,jdbcType=BIGINT},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
@@ -203,8 +203,8 @@
<update id="updateByPrimaryKey" parameterType="com.buy507.mall.model.UmsMemberRelationTree">
update ums_member_relation_tree
set member_id = #{memberId,jdbcType=BIGINT},
higher_level_id = #{higherLevelId,jdbcType=INTEGER},
quit_queue_mark = #{quitQueueMark,jdbcType=INTEGER},
lower_level_id = #{lowerLevelId,jdbcType=BIGINT},
higher_level_id = #{higherLevelId,jdbcType=BIGINT},
create_time = #{createTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT}
</update>

View File

@@ -87,6 +87,17 @@ public class OmsPortalOrderController {
public CommonResult deleteOrder(@RequestParam Long orderId){
return portalOrderService.deleteOrder(orderId);
}
/**
* 对已付款订单退款
* @param orderId
* @return
*/
@ApiOperation("退款订单")
@RequestMapping(value = "/refundOrder",method = RequestMethod.POST)
public CommonResult refundOrder(@RequestParam Long orderId){
return portalOrderService.refundOrder(orderId);
}
/*
@ApiOperation("自动取消超时订单")
@@ -165,6 +176,11 @@ public class OmsPortalOrderController {
portalOrderService.wxPayCallback(request, response);
}
@ApiOperation("加速订单")
@RequestMapping(value = "/accelerateOrder",method = RequestMethod.POST)
public CommonResult accelerateOrder(@RequestParam Long orderId){
return portalOrderService.accelerateOrder(orderId);
}
/**

View File

@@ -54,6 +54,13 @@ public interface OmsPortalOrderService {
*/
CommonResult deleteOrder(Long orderId);
/**
* 对已付款订单退款
* @param orderId
* @return
*/
CommonResult refundOrder(Long orderId);
/**
* 直接购买,根据提交信息生成订单
*/
@@ -103,8 +110,14 @@ public interface OmsPortalOrderService {
void wxPayCallback(HttpServletRequest request, HttpServletResponse response) throws Exception;
/**
* 支付宝支付成功回调方法
* @param request
* @param response
* @param params
*/
void alipayCallback(Map<String, String> params);
/**
* 加速订单
* @param orderId
* @return
*/
CommonResult accelerateOrder(Long orderId);
}

View File

@@ -1,13 +1,17 @@
package com.buy507.mall.portal.service.impl;
import com.buy507.mall.mapper.UmsMemberAccountTransactionMapper;
import com.buy507.mall.mapper.UmsMemberMapper;
import com.buy507.mall.mapper.UmsMemberOrderQueueMapper;
import com.buy507.mall.mapper.UmsMemberRelationTreeMapper;
import com.buy507.mall.model.OmsOrder;
import com.buy507.mall.model.UmsMember;
import com.buy507.mall.model.*;
import com.buy507.mall.portal.service.MemberCommissionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -19,33 +23,129 @@ public class MemberCommissionServiceImpl implements MemberCommissionService {
*/
@Resource
private UmsMemberRelationTreeMapper umsMemberRelationTreeMapper;
/**
* 会员分成流水
*/
@Resource
private UmsMemberAccountTransactionMapper umsMemberAccountTransactionMapper;
@Resource
private UmsMemberOrderQueueMapper umsMemberOrderQueueMapper;
@Autowired
private UmsMemberMapper memberMapper;
/**
* 线程池处理逻辑
*/
private ExecutorService executorService = Executors.newFixedThreadPool(10);
static Long modulus = new Long(5);
@Override
public void computeCommission(OmsOrder order, UmsMember currentMember) {
executorService.submit(()->{
/**
* 会员排队分红逻辑,及流水记账
*/
System.out.println(order.getBillType());
//普通队列计算
this.ordinaryOrderQueue(order);
this.superiorMembersShareProfits(order, currentMember);
});
}
/***
* 五联单排队分红逻辑
**/
private void orderQueueBusiness(OmsOrder order, UmsMember currentMember) {
//查看该订单所属上级是否开启了加速5连单
UmsMemberRelationTreeExample relationTreeExample = new UmsMemberRelationTreeExample();
relationTreeExample.createCriteria().andMemberIdEqualTo(currentMember.getId());
List<UmsMemberRelationTree> relationTreeList = umsMemberRelationTreeMapper.selectByExample(relationTreeExample);
if(!relationTreeList.isEmpty()){
//找到上级关系
UmsMemberRelationTree relationTree = relationTreeList.get(0);
//订单加入队列
UmsMemberOrderQueueExample orderQueueExample = new UmsMemberOrderQueueExample();
orderQueueExample.createCriteria()
.andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_WAIT)
.andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_FAST)
.andMemberIdEqualTo(relationTree.getHigherLevelId());
List<UmsMemberOrderQueue> orderQueueList = umsMemberOrderQueueMapper.selectByExample(orderQueueExample);
//上级订单队列中是否有加速5联单
if(!orderQueueList.isEmpty()){
UmsMemberOrderQueue umoq = orderQueueList.get(0);
if(umoq.getRemainNumber() < 5){
//没有加速满5单
umoq.setRemainNumber(umoq.getRemainNumber()+1);
}
}
}
}
/**
* 普通排队队列
* @param order
*/
private void ordinaryOrderQueue(OmsOrder order) {
UmsMemberOrderQueueExample memberOrderQueueExample = new UmsMemberOrderQueueExample();
memberOrderQueueExample.createCriteria().andOrderIdEqualTo(order.getId());
List<UmsMemberOrderQueue> queues = umsMemberOrderQueueMapper.selectByExample(memberOrderQueueExample);
/**
* 查看当前 普通排队位置
*/
if(!queues.isEmpty()){
UmsMemberOrderQueue record = queues.get(0);
Long indexId = record.getId();
//订单排队id减1求5的模
Long result = (indexId - 1) % modulus;
//模为0 则有订单可以退出
if(result == 0){
//退出订单排队id
Long quitId = indexId / modulus;
if(quitId !=0 ){
//找到退出队列的订单
UmsMemberOrderQueueExample indexQuery = new UmsMemberOrderQueueExample();
indexQuery.createCriteria().andQueueIndexEqualTo(quitId);
queues = umsMemberOrderQueueMapper.selectByExample(indexQuery);
record = queues.get(0);
record.setQuitQueueMark(UmsMemberOrderQueue.QUEUE_STATUS_QUIT);
//更新为退出状态
umsMemberOrderQueueMapper.updateByPrimaryKeySelective(record);
//该订单退出后金额加入会员账户
UmsMember member = memberMapper.selectByPrimaryKey(record.getMemberId());
BigDecimal newBalance = member.getBalance().add(record.getOrderAmount());
member.setBalance(newBalance);
memberMapper.updateByPrimaryKey(member);
}
}
}
}
/**
* 所以上级会员分配利润
* @param order
* @param currentMember
*/
private void superiorMembersShareProfits(OmsOrder order, UmsMember currentMember) {
UmsMemberRelationTreeExample treeExample = new UmsMemberRelationTreeExample();
treeExample.createCriteria().andMemberIdEqualTo(currentMember.getId());
List<UmsMemberRelationTree> treeList = umsMemberRelationTreeMapper.selectByExample(treeExample);
if(!treeList.isEmpty()){
UmsMemberRelationTree treeMember = treeList.get(0);
UmsMember higherMember = memberMapper.selectByPrimaryKey(treeMember.getHigherLevelId());
}
}

View File

@@ -9,14 +9,16 @@ import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ExecutorService;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.json.JSON;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayConfig;
import com.alipay.api.internal.util.AlipaySignature;
import com.buy507.mall.mapper.*;
import com.buy507.mall.model.*;
import com.buy507.mall.portal.domain.*;
import com.buy507.mall.portal.service.*;
@@ -35,19 +37,6 @@ import org.springframework.web.util.UriComponentsBuilder;
import com.buy507.mall.common.api.CommonResult;
import com.buy507.mall.common.util.MD5Util;
import com.buy507.mall.mapper.DmsMemberTradeRecordMapper;
import com.buy507.mall.mapper.DmsOfflinePaymentRecordMapper;
import com.buy507.mall.mapper.DmsSellerBankAccountMapper;
import com.buy507.mall.mapper.OmsCartItemMapper;
import com.buy507.mall.mapper.OmsExpressCompanyMapper;
import com.buy507.mall.mapper.OmsOrderItemMapper;
import com.buy507.mall.mapper.OmsOrderMapper;
import com.buy507.mall.mapper.OmsOrderOperateHistoryMapper;
import com.buy507.mall.mapper.OmsOrderSettingMapper;
import com.buy507.mall.mapper.PmsProductMapper;
import com.buy507.mall.mapper.PmsSkuStockMapper;
import com.buy507.mall.mapper.UmsMemberMapper;
import com.buy507.mall.mapper.UmsMemberReceiveAddressMapper;
import com.buy507.mall.portal.component.CancelOrderSender;
import com.buy507.mall.portal.component.DistributeSender;
import com.buy507.mall.portal.component.RedisLock;
@@ -140,6 +129,21 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
@Autowired
private MemberCommissionService memberCommissionService;
/**
* 会员上下关系
*/
@Resource
private UmsMemberRelationTreeMapper umsMemberRelationTreeMapper;
/**
* 会员分成流水
*/
@Resource
private UmsMemberAccountTransactionMapper umsMemberAccountTransactionMapper;
@Autowired
private UmsMemberOrderQueueMapper umsMemberOrderQueueMapper;
@Value("${kuaidi100.url}")
private String KUAIDI100_URL;
@@ -786,23 +790,17 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
}
//冻结用户余额
while(true) {
long time = System.currentTimeMillis() + RedisLock.TIMEOUT;
if(redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) {
member = memberMapper.selectByPrimaryKey(member.getId());
//flag = -1,表示balance小于integerationflag = 0,表示balance等于integerationflag = 1,表示balance大于integeration
flag = member.getBalance().compareTo(integeration);
if(flag == -1) {
throw new RuntimeException("森态积分不足,无法抵扣");
}
member.setBalance(member.getBalance().subtract(integeration)); //修改余额值
member.setFreeze(member.getFreeze().add(integeration)); //修改冻结值
memberMapper.updateByPrimaryKey(member);
redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time));
break;
}
member = memberMapper.selectByPrimaryKey(member.getId());
//flag = -1,表示balance小于integerationflag = 0,表示balance等于integerationflag = 1,表示balance大于integeration
flag = member.getBalance().compareTo(integeration);
if(flag == -1) {
throw new RuntimeException("森态积分不足,无法抵扣");
}
member.setBalance(member.getBalance().subtract(integeration)); //修改余额值
member.setFreeze(member.getFreeze().add(integeration)); //修改冻结值
memberMapper.updateByPrimaryKey(member);
} else {
order.setPayAmount(totalAmount); //实际支付金额
order.setIntegrationAmount(zero);
@@ -825,7 +823,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
order.setOrderSn(generateOrderSn(order));
//订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单
order.setStatus(0);
//订单类型0->正常订单1->秒杀订单
//订单类型0->正常订单1->秒杀订单 2->5连订单
order.setOrderType(0);
OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L);
@@ -1111,6 +1109,105 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
return CommonResult.success(null);
}
@Override
public CommonResult refundOrder(Long orderId) {
OmsOrder order = orderMapper.selectByPrimaryKey(orderId);
if(order == null) {
return CommonResult.validateFailed("未查询到订单信息");
}
UmsMember currentMember = memberService.getCurrentMember();
if(!order.getMemberId().equals(currentMember.getId())) {
return CommonResult.validateFailed("未查询到订单信息");
}
DateTime nextPaymentTime = DateUtil.offsetDay(order.getPaymentTime(), 1);
//支付时间是否超过24小时
if(nextPaymentTime.isAfter(DateTime.now())){
return CommonResult.validateFailed("订单信息已超过24小时");
}
//退货状态满足 1->待发货;
if(order.getStatus() == 1) {
//删除状态0->未删除1->已删除
order.setDeleteStatus(1);
order.setModifyTime(new Date());
orderMapper.updateByPrimaryKey(order);
executorService.execute(()->{
//修改退款后队列业务
this.checkQueueOrderInfo(order, currentMember);
//支付宝退款
// alipayService.refundPayment(order);
});
}
return CommonResult.success(null);
}
private void checkQueueOrderInfo(OmsOrder order, UmsMember currentMember) {
UmsMemberOrderQueueExample queueExample = new UmsMemberOrderQueueExample();
queueExample.createCriteria().andOrderIdEqualTo(order.getId());
List<UmsMemberOrderQueue> orderQueueList = umsMemberOrderQueueMapper.selectByExample(queueExample);
//排队队列状态改变为退出
if(!orderQueueList.isEmpty()){
UmsMemberOrderQueue memberOrderQueue = orderQueueList.get(0);
memberOrderQueue.setQuitQueueMark(UmsMemberOrderQueue.QUEUE_STATUS_QUIT);
umsMemberOrderQueueMapper.updateByPrimaryKeySelective(memberOrderQueue);
}
UmsMemberRelationTreeExample relationTreeExample = new UmsMemberRelationTreeExample();
relationTreeExample.createCriteria().andMemberIdEqualTo(currentMember.getId());
List<UmsMemberRelationTree> relationTreeList = umsMemberRelationTreeMapper.selectByExample(relationTreeExample);
if(!relationTreeList.isEmpty()) {
//找到上级关系
UmsMemberRelationTree relationTree = relationTreeList.get(0);
//订单加入队列
UmsMemberOrderQueueExample orderQueueExample = new UmsMemberOrderQueueExample();
orderQueueExample.createCriteria()
.andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_PREPARE_QUIT)
.andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_FAST)
.andMemberIdEqualTo(relationTree.getHigherLevelId());
List<UmsMemberOrderQueue> upQueueList = umsMemberOrderQueueMapper.selectByExample(orderQueueExample);
//更新五连单中的上级订单,修改装备为继续排队数量减去1
if(!upQueueList.isEmpty()){
UmsMemberOrderQueue upQueue = upQueueList.get(0);
upQueue.setQuitQueueMark(UmsMemberOrderQueue.QUEUE_STATUS_WAIT);
upQueue.setRemainNumber((upQueue.getRemainNumber() - 1));
umsMemberOrderQueueMapper.updateByPrimaryKeySelective(upQueue);
//上级的冻结金额修改
this.modifyFreezeAmountForRefund(upQueue);
}
}
}
private void modifyFreezeAmountForRefund(UmsMemberOrderQueue upQueue) {
//冻结上级会费的冻结金额
UmsMember higherMember = memberMapper.selectByPrimaryKey(upQueue.getMemberId());
//订单金额加入冻结余额
BigDecimal freeze = higherMember.getFreeze();
BigDecimal orderAmount = upQueue.getOrderAmount();
higherMember.setFreeze(freeze.subtract(orderAmount));
//更新数据库
memberMapper.updateByPrimaryKeySelective(higherMember);
UmsMemberAccountTransactionExample accountTransactionExample = new UmsMemberAccountTransactionExample();
accountTransactionExample.createCriteria()
.andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_NO)
.andOrderIdEqualTo(upQueue.getOrderId());
List<UmsMemberAccountTransaction> transactionList = umsMemberAccountTransactionMapper.selectByExample(accountTransactionExample);
//该笔流水账
if(!transactionList.isEmpty()){
UmsMemberAccountTransaction umat = transactionList.get(0);
umat.setTransactionState(UmsMemberAccountTransaction.TRANSACTION_STATE_OUT);
umsMemberAccountTransactionMapper.updateByPrimaryKeySelective(umat);
}
}
@Transactional
@Override
public CommonResult getLogistics(Long orderId) {
@@ -1684,6 +1781,48 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
}
}
/**
* 线程池处理逻辑
*/
@Override
public CommonResult accelerateOrder(Long orderId) {
OmsOrder order = orderMapper.selectByPrimaryKey(orderId);
if(order == null) {
return CommonResult.validateFailed("未查询到订单信息");
}
UmsMember currentMember = memberService.getCurrentMember();
if(!order.getMemberId().equals(currentMember.getId())) {
return CommonResult.validateFailed("未查询到订单信息");
}
//只能加速 1->待发货2->已发货
if(order.getStatus() == 1 || order.getStatus() == 2) {
order.setOrderType(2);
order.setModifyTime(new Date());
orderMapper.updateByPrimaryKey(order);
executorService.submit(()->{
//修改队列类型为 加速订单
UmsMemberOrderQueueExample queueExample = new UmsMemberOrderQueueExample();
queueExample.createCriteria().andOrderIdEqualTo(order.getId());
List<UmsMemberOrderQueue> queueList = umsMemberOrderQueueMapper.selectByExample(queueExample);
if(!queueList.isEmpty()){
UmsMemberOrderQueue moq = queueList.get(0);
moq.setQueueType(UmsMemberOrderQueue.QUEUE_TYPE_FAST);
umsMemberOrderQueueMapper.updateByPrimaryKeySelective(moq);
}
//五单加速单验证
this.fiveQuickQueueBusiness(currentMember);
});
}
return CommonResult.success(null);
}
private void updateOderAndMemberInfo(OmsOrder order) {
Date date = new Date();
@@ -1700,7 +1839,6 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
orderMapper.updateByPrimaryKey(order);
//新增用户位普通用户订单支付成功后满一定金额成为vip普通会员
UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId());
//普通用户
if(member.getMemberLevel().equals(MemberLevel.Member) ){
@@ -1710,26 +1848,80 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
if(order.getPayAmount().compareTo(new BigDecimal(becomeVipAmount)) >= 0 ){
member.setMemberLevel(MemberLevel.Consumer);
memberMapper.updateByPrimaryKey(member);
//订单加入队列
UmsMemberOrderQueueExample example = new UmsMemberOrderQueueExample();
example.createCriteria().andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_WAIT)
.andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_ORDINARY);
long allQueue = umsMemberOrderQueueMapper.countByExample(example);
UmsMemberOrderQueue record = new UmsMemberOrderQueue();
record.setOrderId(order.getId());
record.setMemberId(member.getId());
record.setOrderAmount(order.getPayAmount());
record.setQuitQueueMark(UmsMemberOrderQueue.QUEUE_STATUS_WAIT);
record.setQueueType(UmsMemberOrderQueue.QUEUE_TYPE_ORDINARY);
record.setQueueIndex(++allQueue);
umsMemberOrderQueueMapper.insert(record);
}
// else {
// /**
// * 订单统计累计
// */
// OmsOrderExample example = new OmsOrderExample();
// example.createCriteria().andMemberIdEqualTo(order.getMemberId()).andStatusEqualTo(3);
// List<OmsOrder> list = orderMapper.selectByExample(example);
// if(list != null && !list.isEmpty()){
// BigDecimal totalAmount = list.stream().map(OmsOrder::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
// totalAmount = totalAmount.add(order.getPayAmount());
// if(totalAmount.compareTo(vipAmount) >= 0 ){
// member.setMemberLevel(MemberLevel.Partner);
// memberMapper.updateByPrimaryKey(member);
// }
// }
// }
}
}
/***
* 五联单排队分红逻辑,该订单支付后处理
**/
private void fiveQuickQueueBusiness(UmsMember currentMember) {
//查看该订单所属上级是否开启了加速5连单
UmsMemberRelationTreeExample relationTreeExample = new UmsMemberRelationTreeExample();
relationTreeExample.createCriteria().andMemberIdEqualTo(currentMember.getId());
List<UmsMemberRelationTree> relationTreeList = umsMemberRelationTreeMapper.selectByExample(relationTreeExample);
if(!relationTreeList.isEmpty()){
//找到上级关系
UmsMemberRelationTree relationTree = relationTreeList.get(0);
//订单加入队列
UmsMemberOrderQueueExample orderQueueExample = new UmsMemberOrderQueueExample();
orderQueueExample.createCriteria()
.andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_WAIT)
.andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_FAST)
.andMemberIdEqualTo(relationTree.getHigherLevelId());
List<UmsMemberOrderQueue> orderQueueList = umsMemberOrderQueueMapper.selectByExample(orderQueueExample);
//上级订单队列中是否有加速5联单
if(!orderQueueList.isEmpty()){
UmsMemberOrderQueue umoq = orderQueueList.get(0);
if(umoq.getRemainNumber() <= 4){
//没有加速满5单
umoq.setRemainNumber(1 + umoq.getRemainNumber());
umsMemberOrderQueueMapper.updateByPrimaryKeySelective(umoq);
}else {
//设置本单待退出且5单满24小时未退款
umoq.setQuitQueueMark(UmsMemberOrderQueue.QUEUE_PREPARE_QUIT);
//冻结上级会费的冻结金额
UmsMember higherMember = memberMapper.selectByPrimaryKey(umoq.getMemberId());
//订单金额加入冻结余额
BigDecimal freeze = higherMember.getFreeze();
BigDecimal orderAmount = umoq.getOrderAmount();
higherMember.setFreeze(freeze.add(orderAmount));
//更新数据库
memberMapper.updateByPrimaryKeySelective(higherMember);
umsMemberOrderQueueMapper.updateByPrimaryKeySelective(umoq);
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
accountTransaction.setCommissionRatio(100);
accountTransaction.setMemberId(umoq.getMemberId());
accountTransaction.setOrderId(umoq.getOrderId());
accountTransaction.setRemarks("满五单加速流水");
accountTransaction.setTransactionState(UmsMemberAccountTransaction.TRANSACTION_STATE_NO);
//24小时后到账
accountTransaction.setTransferPaymentTime(DateUtil.tomorrow());
umsMemberAccountTransactionMapper.insert(accountTransaction);
}
}
}
}
}

View File

@@ -3,7 +3,7 @@ server:
spring:
datasource:
url: jdbc:mysql://192.168.31.162:3306/hui-mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
url: jdbc:mysql://192.168.10.107:3306/hui-mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: lion
password: leeqiang
druid:
@@ -18,12 +18,12 @@ spring:
data:
mongodb:
host: 192.168.31.162
host: 192.168.10.107
port: 40001
database: mall-port
redis:
host: 192.168.31.162 # Redis服务器地址
host: 192.168.10.107 # Redis服务器地址
database: 0 # Redis数据库索引默认为0
port: 6379 # Redis服务器连接端口
password: leeqiang # Redis服务器连接密码默认为空
@@ -88,4 +88,4 @@ alipay:
payCallBackUrl: https://yusenrong.507buy.com/member/order/alipay/callback
# 成为vip金额
m: 899
becomeVipAmount: 899