Commit 16a28fa1 by huluobin

update

parent 0d112cd3
...@@ -2,7 +2,9 @@ package com.gogirl.application.market.coupon; ...@@ -2,7 +2,9 @@ package com.gogirl.application.market.coupon;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.market.coupon.Coupon; import com.gogirl.domain.market.coupon.Coupon;
import com.gogirl.infrastructure.common.exception.RRException;
import java.util.Collection;
import java.util.List; import java.util.List;
...@@ -49,4 +51,24 @@ public interface CouponService extends IService<Coupon> { ...@@ -49,4 +51,24 @@ public interface CouponService extends IService<Coupon> {
* @param couponIds 外部券配置id list * @param couponIds 外部券配置id list
*/ */
void techSubmitCoupons(Integer orderId, List<Integer> couponIds); void techSubmitCoupons(Integer orderId, List<Integer> couponIds);
/**
* 卡券集合中是否存在冲突的卡券
*
* @param couponIdList 卡券配置id
* @return
*/
Boolean existCouponConflict(Collection<Integer> couponIdList);
/**
* 卡券集合中是否存在冲突的卡券 如果存在 抛出异常
*
* @param couponIdList 卡券配置id
* @return
*/
void checkCouponConflict(Collection<Integer> couponIdList) throws RRException;
} }
package com.gogirl.application.market.coupon;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.market.coupon.CouponExcludeDetailed;
/**
* <p>
* 券 排斥明细 服务类
* </p>
*
* @author robbendev
* @since 2020-06-10
*/
public interface ICouponExcludeDetailedService extends IService<CouponExcludeDetailed> {
}
package com.gogirl.application.market.coupon;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.market.coupon.CouponStore;
/**
* <p>
* 优惠券限定使用店铺 服务类
* </p>
*
* @author robbendev
* @since 2020-06-10
*/
public interface ICouponStoreService extends IService<CouponStore> {
}
...@@ -54,13 +54,13 @@ public class CouponCustomerRelevanceServiceImpl extends ServiceImpl<CouponCustom ...@@ -54,13 +54,13 @@ public class CouponCustomerRelevanceServiceImpl extends ServiceImpl<CouponCustom
/*1、查询订单服务和订单*/ /*1、查询订单服务和订单*/
List<OrderServe> orderServeList = orderServeMapper.selectList(new LambdaQueryWrapper<OrderServe>().eq(OrderServe::getOrderId, orderId)); List<OrderServe> orderServeList = orderServeMapper.selectList(new LambdaQueryWrapper<OrderServe>().eq(OrderServe::getOrderId, orderId));
OrderManage orderManage = orderManageMapper.selectById(orderId); OrderManage orderManage = orderManageMapper.selectById(orderId);
return couponCustomerRelevanceMapper return couponCustomerRelevanceMapper.getOrderCoupon(currentCustomerId, orderManage.getDepartmentId())
.selectList(new LambdaQueryWrapper<CouponCustomerRelevance>() // .selectList(new LambdaQueryWrapper<CouponCustomerRelevance>()
.eq(CouponCustomerRelevance::getCustomerId, currentCustomerId) // .eq(CouponCustomerRelevance::getCustomerId, currentCustomerId)
//只查询内部券 // //只查询内部券
.eq(CouponCustomerRelevance::getSourceType, 0) // .eq(CouponCustomerRelevance::getSourceType, 0)
//只查询正常状态的卡券 // //只查询正常状态的卡券
.eq(CouponCustomerRelevance::getState, 1)) // .eq(CouponCustomerRelevance::getState, 1))
// //
.stream() .stream()
//只返回可以使用的优惠券 //只返回可以使用的优惠券
...@@ -81,14 +81,14 @@ public class CouponCustomerRelevanceServiceImpl extends ServiceImpl<CouponCustom ...@@ -81,14 +81,14 @@ public class CouponCustomerRelevanceServiceImpl extends ServiceImpl<CouponCustom
canUserServeIds.retainAll(orderServeList.stream() canUserServeIds.retainAll(orderServeList.stream()
.filter(orderServe -> orderServe.getBindOuterCoupon() == 2) .filter(orderServe -> orderServe.getBindOuterCoupon() == 2)
.filter(orderServe -> orderServe.getBindTimesCard() == 2) .filter(orderServe -> orderServe.getBindTimesCard() == 2)
.filter(orderServe -> orderServe.getPayPrice().compareTo(BigDecimal.ZERO)>0) .filter(orderServe -> orderServe.getPayPrice().compareTo(BigDecimal.ZERO) > 0)
.map(OrderServe::getServeId) .map(OrderServe::getServeId)
.collect(Collectors.toList())); .collect(Collectors.toList()));
} else { } else {
canUserServeIds.retainAll(orderServeList.stream() canUserServeIds.retainAll(orderServeList.stream()
.filter(orderServe -> orderServe.getBindOuterCoupon() == 2) .filter(orderServe -> orderServe.getBindOuterCoupon() == 2)
.filter(orderServe -> orderServe.getBindTimesCard() == 2) .filter(orderServe -> orderServe.getBindTimesCard() == 2)
.filter(orderServe -> orderServe.getPayPrice().compareTo(BigDecimal.ZERO)>0) .filter(orderServe -> orderServe.getPayPrice().compareTo(BigDecimal.ZERO) > 0)
//不是活动价格 //不是活动价格
.filter(orderServe -> !orderServe.isActivity()) .filter(orderServe -> !orderServe.isActivity())
.map(OrderServe::getServeId) .map(OrderServe::getServeId)
......
package com.gogirl.application.market.coupon.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gogirl.application.market.coupon.ICouponExcludeDetailedService;
import com.gogirl.domain.market.coupon.CouponExcludeDetailed;
import com.gogirl.infrastructure.mapper.market.coupon.CouponExcludeDetailedMapper;
import org.springframework.stereotype.Service;
/**
* <p>
* 券 排斥明细 服务实现类
* </p>
*
* @author robbendev
* @since 2020-06-10
*/
@Service
public class CouponExcludeDetailedServiceImpl extends ServiceImpl<CouponExcludeDetailedMapper, CouponExcludeDetailed> implements ICouponExcludeDetailedService {
}
...@@ -7,6 +7,7 @@ import com.gogirl.application.market.coupon.CouponService; ...@@ -7,6 +7,7 @@ import com.gogirl.application.market.coupon.CouponService;
import com.gogirl.application.market.coupon.MarketService; import com.gogirl.application.market.coupon.MarketService;
import com.gogirl.domain.market.coupon.Coupon; import com.gogirl.domain.market.coupon.Coupon;
import com.gogirl.domain.market.coupon.CouponCustomerRelevance; import com.gogirl.domain.market.coupon.CouponCustomerRelevance;
import com.gogirl.domain.market.coupon.CouponExcludeDetailed;
import com.gogirl.domain.order.serve.OrderManage; import com.gogirl.domain.order.serve.OrderManage;
import com.gogirl.domain.order.serve.OrderServe; import com.gogirl.domain.order.serve.OrderServe;
import com.gogirl.domain.xcx.GogirlConfig; import com.gogirl.domain.xcx.GogirlConfig;
...@@ -14,6 +15,7 @@ import com.gogirl.infrastructure.common.exception.RRException; ...@@ -14,6 +15,7 @@ import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.common.util.ListUtil; import com.gogirl.infrastructure.common.util.ListUtil;
import com.gogirl.infrastructure.common.util.StringUtils; import com.gogirl.infrastructure.common.util.StringUtils;
import com.gogirl.infrastructure.mapper.market.coupon.CouponCustomerRelevanceMapper; import com.gogirl.infrastructure.mapper.market.coupon.CouponCustomerRelevanceMapper;
import com.gogirl.infrastructure.mapper.market.coupon.CouponExcludeDetailedMapper;
import com.gogirl.infrastructure.mapper.market.coupon.CouponMapper; import com.gogirl.infrastructure.mapper.market.coupon.CouponMapper;
import com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper; import com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper;
import com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper; import com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper;
...@@ -24,6 +26,8 @@ import org.springframework.context.annotation.Lazy; ...@@ -24,6 +26,8 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -48,6 +52,8 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme ...@@ -48,6 +52,8 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
@Lazy @Lazy
@Resource @Resource
private MarketService marketService; private MarketService marketService;
@Resource
CouponExcludeDetailedMapper couponExcludeDetailedMapper;
@Override @Override
public Coupon checkNewCustomer(Integer customerId) { public Coupon checkNewCustomer(Integer customerId) {
...@@ -124,9 +130,7 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme ...@@ -124,9 +130,7 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
OrderManage orderManage = orderManageMapper.selectById(orderId); OrderManage orderManage = orderManageMapper.selectById(orderId);
List<OrderServe> orderServeList = orderServeMapper.selectList(new LambdaQueryWrapper<OrderServe>().eq(OrderServe::getOrderId, orderId)); List<OrderServe> orderServeList = orderServeMapper.selectList(new LambdaQueryWrapper<OrderServe>().eq(OrderServe::getOrderId, orderId));
return couponMapper return couponMapper
.selectList(new LambdaQueryWrapper<Coupon>() .getOrderExternalCoupon(orderManage.getDepartmentId())
.eq(Coupon::getSourceType, 1)
.eq(Coupon::getState, 1))
.stream() .stream()
//过滤所有可用在服务上的 //过滤所有可用在服务上的
.filter(coupon -> { .filter(coupon -> {
...@@ -163,4 +167,67 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme ...@@ -163,4 +167,67 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
marketService.calcOrderAmount(orderId); marketService.calcOrderAmount(orderId);
} }
@Override
public Boolean existCouponConflict(Collection<Integer> couponIdList) {
LinkedList<Integer> linkList = new LinkedList<>(couponIdList);
if (linkList.size() < 2) {
return false;
}
//终止条件
else if (linkList.size() == 2) {
CouponExcludeDetailed couponExcludeDetailed = couponExcludeDetailedMapper.selectExcludeDetailed(linkList.get(0), linkList.get(1));
return couponExcludeDetailed != null;
}
//
else {
boolean existCouponConflict = false;
Integer first = linkList.pollFirst();
for (Integer couponId : linkList) {
CouponExcludeDetailed couponExcludeDetailed = couponExcludeDetailedMapper.selectExcludeDetailed(couponId, first);
if (couponExcludeDetailed != null) {
existCouponConflict = true;
break;
}
}
if (existCouponConflict) {
return true;
}
return this.existCouponConflict(linkList);
}
}
@Override
public void checkCouponConflict(Collection<Integer> couponIdList) throws RRException {
LinkedList<Integer> linkList = new LinkedList<>(couponIdList);
//终止条件
if (linkList.size() == 2) {
Integer couponId = linkList.get(0);
Integer excludeCouponId = linkList.get(1);
CouponExcludeDetailed couponExcludeDetailed = couponExcludeDetailedMapper.selectExcludeDetailed(couponId, excludeCouponId);
if (couponExcludeDetailed != null) {
Coupon coupon = this.getById(couponId);
Coupon excludeCoupon = this.getById(excludeCouponId);
throw new RRException("卡券:{}和卡券{}不同同时使用", coupon.getName(), excludeCoupon.getName());
}
}
//
else {
Integer first = linkList.pollFirst();
for (Integer couponId : linkList) {
CouponExcludeDetailed couponExcludeDetailed = couponExcludeDetailedMapper.selectExcludeDetailed(couponId, first);
if (couponExcludeDetailed != null) {
Coupon coupon = this.getById(couponExcludeDetailed.getCouponId());
Coupon excludeCoupon = this.getById(couponExcludeDetailed.getExcludeCouponId());
throw new RRException("卡券:{}和卡券{}不同同时使用", coupon.getName(), excludeCoupon.getName());
}
}
this.checkCouponConflict(linkList);
}
}
} }
package com.gogirl.application.market.coupon.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gogirl.application.market.coupon.ICouponStoreService;
import com.gogirl.domain.market.coupon.CouponStore;
import com.gogirl.infrastructure.mapper.market.coupon.CouponStoreMapper;
import org.springframework.stereotype.Service;
/**
* <p>
* 优惠券限定使用店铺 服务实现类
* </p>
*
* @author robbendev
* @since 2020-06-10
*/
@Service
public class CouponStoreServiceImpl extends ServiceImpl<CouponStoreMapper, CouponStore> implements ICouponStoreService {
}
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.gogirl.application.market.coupon.CouponCustomerRelevanceService; import com.gogirl.application.market.coupon.CouponCustomerRelevanceService;
import com.gogirl.application.market.coupon.CouponOrderRelevanceService; import com.gogirl.application.market.coupon.CouponOrderRelevanceService;
import com.gogirl.application.market.coupon.CouponService;
import com.gogirl.application.market.coupon.MarketService; import com.gogirl.application.market.coupon.MarketService;
import com.gogirl.application.market.timescard.TimesCardCustomerRelevanceService; import com.gogirl.application.market.timescard.TimesCardCustomerRelevanceService;
import com.gogirl.application.market.timescard.TimesCardUsedRecordService; import com.gogirl.application.market.timescard.TimesCardUsedRecordService;
...@@ -101,6 +102,9 @@ public class MarketServiceImpl implements MarketService { ...@@ -101,6 +102,9 @@ public class MarketServiceImpl implements MarketService {
@Resource @Resource
ICouponOrderService couponOrderService; ICouponOrderService couponOrderService;
@Resource
CouponService couponService;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void setUpInnerCoupon(SetUpInnerCouponCommand cmd) { public void setUpInnerCoupon(SetUpInnerCouponCommand cmd) {
...@@ -136,6 +140,7 @@ public class MarketServiceImpl implements MarketService { ...@@ -136,6 +140,7 @@ public class MarketServiceImpl implements MarketService {
List<CouponCustomerRelevance> couponCustomerRelevanceList = (List<CouponCustomerRelevance>) couponCustomerRelevanceService List<CouponCustomerRelevance> couponCustomerRelevanceList = (List<CouponCustomerRelevance>) couponCustomerRelevanceService
.listByIds(cmd.getInnerCouponCustomerRelevanceIds()); .listByIds(cmd.getInnerCouponCustomerRelevanceIds());
if (ListUtil.isNotEmpty(couponCustomerRelevanceList)) { if (ListUtil.isNotEmpty(couponCustomerRelevanceList)) {
couponCustomerRelevanceList.forEach(couponCustomerRelevance -> { couponCustomerRelevanceList.forEach(couponCustomerRelevance -> {
Integer usedOrderId = couponCustomerRelevance.getOrderId(); Integer usedOrderId = couponCustomerRelevance.getOrderId();
...@@ -158,6 +163,14 @@ public class MarketServiceImpl implements MarketService { ...@@ -158,6 +163,14 @@ public class MarketServiceImpl implements MarketService {
} }
}); });
} }
couponService.checkCouponConflict(couponCustomerRelevanceMapper.selectList(new LambdaQueryWrapper<CouponCustomerRelevance>()
.eq(CouponCustomerRelevance::getOrderId, cmd.getOrderId())
.eq(CouponCustomerRelevance::getState, CouponCustomerRelevance.STATE_CHOSE))
.stream()
.map(CouponCustomerRelevance::getCouponId)
.collect(Collectors.toList()));
} }
} }
...@@ -174,6 +187,7 @@ public class MarketServiceImpl implements MarketService { ...@@ -174,6 +187,7 @@ public class MarketServiceImpl implements MarketService {
.eq(CouponCustomerRelevance::getSourceType, CouponCustomerRelevance.SOURCE_TYPE_OUTER) .eq(CouponCustomerRelevance::getSourceType, CouponCustomerRelevance.SOURCE_TYPE_OUTER)
); );
cmd.getOuterCouponIds().forEach(outerCouponId -> { cmd.getOuterCouponIds().forEach(outerCouponId -> {
Coupon coupon = couponMapper.selectById(outerCouponId); Coupon coupon = couponMapper.selectById(outerCouponId);
...@@ -190,6 +204,13 @@ public class MarketServiceImpl implements MarketService { ...@@ -190,6 +204,13 @@ public class MarketServiceImpl implements MarketService {
couponCustomerRelevanceService.save(couponCustomerRelevance); couponCustomerRelevanceService.save(couponCustomerRelevance);
}); });
couponService.checkCouponConflict(couponCustomerRelevanceMapper.selectList(new LambdaQueryWrapper<CouponCustomerRelevance>()
.eq(CouponCustomerRelevance::getOrderId, cmd.getOrderId())
.eq(CouponCustomerRelevance::getState, CouponCustomerRelevance.STATE_CHOSE))
.stream()
.map(CouponCustomerRelevance::getCouponId)
.collect(Collectors.toList()));
} }
@Override @Override
......
package com.gogirl.domain.market.coupon;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 券 排斥明细
* </p>
*
* @author robbendev
* @since 2020-06-10
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="CouponExcludeDetailed对象", description="券 排斥明细")
public class CouponExcludeDetailed implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "优惠券id")
private Integer couponId;
@ApiModelProperty(value = "不能跟他一同使用的券的id")
private Integer excludeCouponId;
}
package com.gogirl.domain.market.coupon;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 优惠券限定使用店铺
* </p>
*
* @author robbendev
* @since 2020-06-10
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="CouponStore对象", description="优惠券限定使用店铺")
public class CouponStore implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "卡券配置id")
private Integer couponId;
@ApiModelProperty(value = "卡券能够使用的店铺id")
private Integer storeId;
}
...@@ -51,6 +51,11 @@ public class RRException extends RuntimeException implements Serializable { ...@@ -51,6 +51,11 @@ public class RRException extends RuntimeException implements Serializable {
this.message = message; this.message = message;
} }
public RRException(String format, Object... args) {
this.code = 500;
this.message = String.format(format, args);
}
public RRException(int code, String message) { public RRException(int code, String message) {
super(message); super(message);
......
package com.gogirl.infrastructure.common.util;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/6/10 2:00 下午
*/
public class Combine {
public static void main(String[] args) {
List<Character> data = new ArrayList<Character>();
data.add('a');
data.add('b');
data.add('c');
data.add('d');
Combine t = new Combine();
List<Character> result = new ArrayList<>();
t.combinerSelect(data, result, 2);
}
/**
* 步骤::每次递归时,把原始数据和满足条件的工作空间复制一份,所有的操作均在复制文件中进行,目的就是保证不破坏原始数据,
* 从而可以让一轮递归结束后可以正常进行下一轮。
* 其次,把数据的第一个元素添加到工作空间中,判断工作空间的大小,如果小于k,则需要继续递归,但此时,传入递归函数的
* 参数需要注意:假设当前插入的节点的下标是i,因为是顺序插入的,所以i之前的所有数据都应该舍去,只传入i之后的未使用过的数据。
* 因此在传参之前,应该对copydata作以处理;当大于k的时候,则表明已经找到满足条件的第一种情况,然后只需修改该情况的最后一个结果即可。
* 如:找到abc时,则只需替换c为d即可完成该轮递归。
*
* @param data 原始数据
* @param workSpace 自定义一个临时空间,用来存储每次符合条件的值
* @param k C(n,k)中的k
*/
public <E> void combinerSelect(List<E> data, List<E> workSpace, int k) {
List<E> copyData;
List<E> copyWorkSpace;
if (workSpace.size() == k) {
for (Object c : workSpace)
System.out.print(c);
System.out.println();
}
for (int i = 0; i < data.size(); i++) {
copyData = new ArrayList<>(data);
copyWorkSpace = new ArrayList<>(workSpace);
copyWorkSpace.add(copyData.get(i));
copyData.subList(0, i + 1).clear();
combinerSelect(copyData, copyWorkSpace, k);
}
}
}
package com.gogirl.infrastructure.common.util.thread;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/6/10 2:03 下午
*/
public class Arrange {
public static void main(String[] args) {
Arrange arrange = new Arrange();
List<Character> data = new ArrayList<Character>();
data.add('a');
data.add('b');
data.add('c');
data.add('d');
//输出A(n,n)的全排列
for (int i = 1; i <= data.size(); i++)
arrange.arrangeSelect(data, new ArrayList<Character>(), i);
}
/**
* 计算A(n,k)
*
* @param data
* @param target
* @param k
*/
public <E> void arrangeSelect(List<E> data, List<E> target, int k) {
List<E> copyData;
List<E> copyTarget;
if (target.size() == k) {
for (E i : target)
System.out.print(i);
System.out.println();
}
for (int i = 0; i < data.size(); i++) {
copyData = new ArrayList<E>(data);
copyTarget = new ArrayList<E>(target);
copyTarget.add(copyData.get(i));
copyData.remove(i);
arrangeSelect(copyData, copyTarget, k);
}
}
}
\ No newline at end of file
...@@ -41,4 +41,13 @@ public interface CouponCustomerRelevanceMapper extends BaseMapper<CouponCustomer ...@@ -41,4 +41,13 @@ public interface CouponCustomerRelevanceMapper extends BaseMapper<CouponCustomer
List<CouponCustomerRelevance> couponCustomerRelevanceError(); List<CouponCustomerRelevance> couponCustomerRelevanceError();
/**
* 获取订单可用的卡券
*
* @param currentCustomerId
* @param departmentId
* @return
*/
List<CouponCustomerRelevance> getOrderCoupon(@Param("currentCustomerId") Integer currentCustomerId, @Param("departmentId") Integer departmentId);
} }
package com.gogirl.infrastructure.mapper.market.coupon;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gogirl.domain.market.coupon.CouponExcludeDetailed;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 券 排斥明细 Mapper 接口
* </p>
*
* @author robbendev
* @since 2020-06-10
*/
public interface CouponExcludeDetailedMapper extends BaseMapper<CouponExcludeDetailed> {
/**
* 查询两个卡券是否存在排斥
*
* @param couponId
* @param excludeCouponId
* @return
*/
CouponExcludeDetailed selectExcludeDetailed(@Param("couponId") Integer couponId, @Param("excludeCouponId") Integer excludeCouponId);
}
...@@ -3,8 +3,11 @@ package com.gogirl.infrastructure.mapper.market.coupon; ...@@ -3,8 +3,11 @@ package com.gogirl.infrastructure.mapper.market.coupon;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gogirl.domain.market.coupon.Coupon; import com.gogirl.domain.market.coupon.Coupon;
import java.util.List;
public interface CouponMapper extends BaseMapper<Coupon> { public interface CouponMapper extends BaseMapper<Coupon> {
List<Coupon> getOrderExternalCoupon(Integer departmentId);
} }
package com.gogirl.infrastructure.mapper.market.coupon;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gogirl.domain.market.coupon.CouponStore;
/**
* <p>
* 优惠券限定使用店铺 Mapper 接口
* </p>
*
* @author robbendev
* @since 2020-06-10
*/
public interface CouponStoreMapper extends BaseMapper<CouponStore> {
}
package com.gogirl.interfaces.market.coupon;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 券 排斥明细 前端控制器
* </p>
*
* @author robbendev
* @since 2020-06-10
*/
@RestController
@RequestMapping("/coupon-exclude-detailed")
public class CouponExcludeDetailedController {
}
package com.gogirl.interfaces.market.coupon;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 优惠券限定使用店铺 前端控制器
* </p>
*
* @author robbendev
* @since 2020-06-10
*/
@RestController
@RequestMapping("/coupon-store")
public class CouponStoreController {
}
<?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.gogirl.infrastructure.mapper.market.coupon.CouponExcludeDetailedMapper">
<select id="selectExcludeDetailed" resultType="com.gogirl.domain.market.coupon.CouponExcludeDetailed">
SELECT *
from coupon_exclude_detailed
where (coupon_id = #{couponId}
and exclude_coupon_id = #{excludeCouponId})
or (coupon_id = #{excludeCouponId}
and exclude_coupon_id = #{couponId})
</select>
</mapper>
<?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.gogirl.infrastructure.mapper.market.coupon.CouponStoreMapper">
</mapper>
...@@ -31,8 +31,22 @@ ...@@ -31,8 +31,22 @@
where t2.finish_time > '2020-01-01' where t2.finish_time > '2020-01-01'
and t1.state = 2 and t1.state = 2
</select> </select>
<select id="couponCustomerRelevanceError" resultType="com.gogirl.domain.market.coupon.CouponCustomerRelevance"> <select id="couponCustomerRelevanceError" resultType="com.gogirl.domain.market.coupon.CouponCustomerRelevance">
select * from coupon_customer_relevance where valid_end_time &lt; valid_start_time and state =3 select *
from coupon_customer_relevance
where valid_end_time &lt; valid_start_time
and state = 3
</select>
<select id="getOrderCoupon" resultType="com.gogirl.domain.market.coupon.CouponCustomerRelevance">
SELECT *
from coupon_customer_relevance t1
LEFT JOIN coupon_store t2 on t1.coupon_id = t2.coupon_id
where t1.source_type = 0
and t1.state = 1
and (t2.store_id = #{departmentId} or t2.store_id = -1 or t2.store_id is null)
and t1.customer_id = #{currentCustomerId}
</select> </select>
<update id="setCouponExpire" parameterType="java.util.Date"> <update id="setCouponExpire" parameterType="java.util.Date">
......
...@@ -3,4 +3,12 @@ ...@@ -3,4 +3,12 @@
<mapper namespace="com.gogirl.infrastructure.mapper.market.coupon.CouponMapper"> <mapper namespace="com.gogirl.infrastructure.mapper.market.coupon.CouponMapper">
<select id="getOrderExternalCoupon" resultType="com.gogirl.domain.market.coupon.Coupon">
SELECT *
from coupon t1
LEFT JOIN coupon_store t2 on t1.id = t2.coupon_id
where t1.source_type = 1
and t1.state = 1
and (t2.store_id = #{departmentId} or t2.store_id = -1 or t2.store_id is null)
</select>
</mapper> </mapper>
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