|
@@ -478,6 +478,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (goods.getGoodsStatus() != 1) {
|
|
|
throw new CustomException(goods.getGoodsName() + "商品已下架,请重新选择商品下单");
|
|
|
}
|
|
|
+ //校验是否有重复商品
|
|
|
+ if (StringUtils.isNotBlank(g.getSevenYear())){
|
|
|
+ Long count = iOrderGoodsService.countOrderGoodsByYear(g.getSevenYear(),g.getGoodsId(),bo.getUserId());
|
|
|
+ if (count > 0){
|
|
|
+ throw new CustomException(goods.getGoodsName() + ",请勿重复购买相同年份的商品");
|
|
|
+ }
|
|
|
+ }
|
|
|
OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
|
|
|
orderGoods.setOrderSn(out_trade_no);
|
|
|
if (g.getGoodsInputData() != null) {
|
|
@@ -517,7 +524,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
Long gradeId = null;
|
|
|
//判断是否购买历史班级都过期
|
|
|
- canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
|
|
|
+ canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId(),g.getSevenYear());
|
|
|
if (g.getGoodsInputData() != null) {
|
|
|
gradeId = g.getGoodsInputData().getGradeId();
|
|
|
if (Validator.isNotEmpty(oldOrderGoodsId)) {
|
|
@@ -619,6 +626,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (Validator.isEmpty(goods)) {
|
|
|
throw new CustomException("商品不存在", 510);
|
|
|
}
|
|
|
+ //校验是否有重复商品
|
|
|
+ if (StringUtils.isNotBlank(g.getSevenYear())){
|
|
|
+ Long count = iOrderGoodsService.countOrderGoodsByYear(g.getSevenYear(),g.getGoodsId(),bo.getUserId());
|
|
|
+ if (count > 0){
|
|
|
+ throw new CustomException(goods.getGoodsName() + ",请勿重复购买相同年份的商品");
|
|
|
+ }
|
|
|
+ }
|
|
|
// if (goods.getGoodsStatus() != 1) {
|
|
|
// throw new CustomException(goods.getGoodsName()+"商品已下架,请重新选择商品下单", 510);
|
|
|
// }
|
|
@@ -658,7 +672,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
Long gradeId = null;
|
|
|
//判断是否购买历史班级都过期
|
|
|
- canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
|
|
|
+ canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId(),g.getSevenYear());
|
|
|
if (g.getGoodsInputData() != null) {
|
|
|
gradeId = g.getGoodsInputData().getGradeId();
|
|
|
if (Validator.isNotEmpty(oldOrderGoodsId)) {
|
|
@@ -811,6 +825,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (goods.getGoodsStatus() != 1) {
|
|
|
throw new CustomException(goods.getGoodsName() + "商品已下架,请重新选择商品下单");
|
|
|
}
|
|
|
+ //校验是否有重复商品
|
|
|
+ if (StringUtils.isNotBlank(g.getSevenYear())){
|
|
|
+ Long count = iOrderGoodsService.countOrderGoodsByYear(g.getSevenYear(),g.getGoodsId(),bo.getUserId());
|
|
|
+ if (count > 0){
|
|
|
+ throw new CustomException(goods.getGoodsName() + ",请勿重复购买相同年份的商品");
|
|
|
+ }
|
|
|
+ }
|
|
|
body = "中正祥粤云-" + goods.getGoodsName();
|
|
|
OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
|
|
|
orderGoods.setOrderSn(out_trade_no);
|
|
@@ -882,7 +903,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
Long gradeId = null;
|
|
|
//判断是否购买历史班级都过期
|
|
|
- canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
|
|
|
+ canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId(),g.getSevenYear());
|
|
|
if (g.getGoodsInputData() != null) {
|
|
|
gradeId = g.getGoodsInputData().getGradeId();
|
|
|
if (Validator.isNotEmpty(oldOrderGoodsId)) {
|
|
@@ -1204,6 +1225,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (goods.getGoodsStatus() != 1) {
|
|
|
throw new CustomException(goods.getGoodsName() + "商品已下架,请重新选择商品下单");
|
|
|
}
|
|
|
+ //校验是否有重复商品
|
|
|
+ if (StringUtils.isNotBlank(g.getSevenYear())){
|
|
|
+ Long count = iOrderGoodsService.countOrderGoodsByYear(g.getSevenYear(),g.getGoodsId(),bo.getUserId());
|
|
|
+ if (count > 0){
|
|
|
+ throw new CustomException(goods.getGoodsName() + ",请勿重复购买相同年份的商品");
|
|
|
+ }
|
|
|
+ }
|
|
|
body = "中正祥粤云-" + goods.getGoodsName();
|
|
|
OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
|
|
|
orderGoods.setOrderSn(out_trade_no);
|
|
@@ -1275,7 +1303,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
Long gradeId = null;
|
|
|
//判断是否购买历史班级都过期
|
|
|
- canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
|
|
|
+ canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId(),g.getSevenYear());
|
|
|
if (g.getGoodsInputData() != null) {
|
|
|
gradeId = g.getGoodsInputData().getGradeId();
|
|
|
if (Validator.isNotEmpty(oldOrderGoodsId)) {
|
|
@@ -1390,6 +1418,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (goods.getGoodsStatus() != 1) {
|
|
|
throw new CustomException(goods.getGoodsName() + "商品已下架,请重新选择商品下单");
|
|
|
}
|
|
|
+ //校验是否有重复商品
|
|
|
+ if (StringUtils.isNotBlank(g.getSevenYear())){
|
|
|
+ Long count = iOrderGoodsService.countOrderGoodsByYear(g.getSevenYear(),g.getGoodsId(),bo.getUserId());
|
|
|
+ if (count > 0){
|
|
|
+ throw new CustomException(goods.getGoodsName() + ",请勿重复购买相同年份的商品");
|
|
|
+ }
|
|
|
+ }
|
|
|
body = "中正祥粤云-" + goods.getGoodsName();
|
|
|
OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
|
|
|
orderGoods.setOrderSn(out_trade_no);
|
|
@@ -1431,7 +1466,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
Long gradeId = null;
|
|
|
//判断是否购买历史班级都过期
|
|
|
- canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
|
|
|
+ canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId(),g.getSevenYear());
|
|
|
if (g.getGoodsInputData() != null) {
|
|
|
gradeId = g.getGoodsInputData().getGradeId();
|
|
|
if (Validator.isNotEmpty(oldOrderGoodsId)) {
|
|
@@ -1926,7 +1961,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
|
|
|
//检查是否允许重复购买视频商品
|
|
|
- public boolean canBuyRepeatGoods(Long goodsId, Long userId) {
|
|
|
+ public boolean canBuyRepeatGoods(Long goodsId, Long userId,String sevenYear) {
|
|
|
+ String businessName = iGoodsService.getGoodsBusinessName(goodsId);
|
|
|
+ if (businessName.contains("继续教育") && businessName.contains("施工现场专业人员")){
|
|
|
+ //判断是否有锁定的班级
|
|
|
+ ClassGradeUserTempQueryBo gradeUserTempQueryBo = new ClassGradeUserTempQueryBo();
|
|
|
+ gradeUserTempQueryBo.setUserId(userId);
|
|
|
+ gradeUserTempQueryBo.setGoodsId(goodsId);
|
|
|
+ gradeUserTempQueryBo.setSevenYear(sevenYear);
|
|
|
+ gradeUserTempQueryBo.setStatus(ClassGradeUserTemp.STATUS_LOCK);
|
|
|
+ List<ClassGradeUserTempVo> list1 = iClassGradeUserTempService.queryList(gradeUserTempQueryBo);
|
|
|
+ if (list1 != null && list1.size() > 0) {
|
|
|
+ throw new CustomException("当前所购买商品,存在订单未支付", 510);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
//判断是否还有未过期的班级
|
|
|
ClassGradeQueryBo bo = new ClassGradeQueryBo();
|
|
|
bo.setUserId(userId);
|
|
@@ -1955,6 +2004,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
//检查是否购买过商品
|
|
|
public boolean checkBuyGoods(Long goodsId, Long userId, Integer goodsType) {
|
|
|
+ String businessName = iGoodsService.getGoodsBusinessName(goodsId);
|
|
|
+ if (businessName.contains("继续教育") && businessName.contains("施工现场专业人员")){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
OrderGoodsQueryBo bo = new OrderGoodsQueryBo();
|
|
|
bo.setUserId(userId);
|
|
|
bo.setGoodsId(goodsId);
|
|
@@ -1986,6 +2039,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (classNum > 0){
|
|
|
throw new CustomException("该学员已在此商品有效期内的班级,无法加入新的有效期班级,请查看该学员此商品下的班级");
|
|
|
}*/
|
|
|
+ OrderGoods orderGoods = iOrderGoodsService.getById(orderGoodsId);
|
|
|
//指定班级
|
|
|
if (gradeId != null && gradeId > 0) {
|
|
|
ClassGradeVo classGradeVo = iClassGradeService.queryById(gradeId);
|
|
@@ -2013,12 +2067,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//预留0空位避免超人数
|
|
|
if ((classGradeVo.getStudentUpper() - studentNum - locakStudentNum) > 0) {
|
|
|
ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getGradeId, gradeId)
|
|
|
+ .eq(ClassGradeUser::getOrderGoodsId,orderGoodsId)
|
|
|
.eq(ClassGradeUser::getUserId, userId));
|
|
|
//不在此班级内
|
|
|
if (Validator.isEmpty(gradeUser)) {
|
|
|
//班级还有剩位,直接锁定班级
|
|
|
if (iClassGradeService.checkEjjjPeopleNumLimit(businessId, gradeId)) { //判断全系统平台二建班级人数是否超300
|
|
|
- return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
|
|
|
+ return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn,orderGoods.getSevenYear());
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -2043,11 +2098,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
gradeId = classGradeVo.getGradeId();
|
|
|
//班级还有剩位,直接锁定班级
|
|
|
ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getGradeId, gradeId)
|
|
|
+ .eq(ClassGradeUser::getOrderGoodsId,orderGoodsId)
|
|
|
.eq(ClassGradeUser::getUserId, userId));
|
|
|
//不在此班级内
|
|
|
if (Validator.isEmpty(gradeUser)) {
|
|
|
if (iClassGradeService.checkEjjjPeopleNumLimit(businessId, gradeId)) { //判断全系统平台二建班级人数是否超300
|
|
|
- return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
|
|
|
+ return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn,orderGoods.getSevenYear());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -2133,7 +2189,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
classGradeGoods.setUpdateTime(DateUtils.getNowTime());
|
|
|
iClassGradeGoodsService.save(classGradeGoods);
|
|
|
//锁定班级
|
|
|
- lockGrade(orderGoodsId, classGrade.getGradeId(), userId, goodsId, orderSn);
|
|
|
+ lockGrade(orderGoodsId, classGrade.getGradeId(), userId, goodsId, orderSn,orderGoods.getSevenYear());
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -2197,7 +2253,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
Long gradeId = null;
|
|
|
//判断是否购买历史班级都过期
|
|
|
- canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
|
|
|
+ canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId(),g.getSevenYear());
|
|
|
if (g.getGoodsInputData() != null) {
|
|
|
gradeId = g.getGoodsInputData().getGradeId();
|
|
|
if (Validator.isNotEmpty(oldOrderGoodsId)) {
|
|
@@ -2370,7 +2426,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
throw new CustomException("该班级不支持该商品使用");
|
|
|
}
|
|
|
//判断用户是否在此班过
|
|
|
- ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getUserId, userId).eq(ClassGradeUser::getGradeId, gradeId).last("limit 1"));
|
|
|
+ ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>()
|
|
|
+ .eq(ClassGradeUser::getUserId, userId)
|
|
|
+ .eq(ObjectUtils.isNotNull(orderGoodsId),ClassGradeUser::getOrderGoodsId, orderGoodsId)
|
|
|
+ .eq(ClassGradeUser::getGradeId, gradeId).last("limit 1"));
|
|
|
if (Validator.isEmpty(gradeUser)) {
|
|
|
LambdaQueryWrapper<ClassGradeUser> lqw = new LambdaQueryWrapper<>();
|
|
|
lqw.eq(ClassGradeUser::getGradeId, gradeId);
|
|
@@ -2410,7 +2469,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//有空位则进入班级
|
|
|
gradeId = classGradeVo.getGradeId();
|
|
|
//判断用户是否在此班过
|
|
|
- ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getUserId, userId).eq(ClassGradeUser::getGradeId, gradeId).last("limit 1"));
|
|
|
+ ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>()
|
|
|
+ .eq(ObjectUtils.isNotNull(orderGoodsId),ClassGradeUser::getOrderGoodsId, orderGoodsId)
|
|
|
+ .eq(ClassGradeUser::getUserId, userId)
|
|
|
+ .eq(ClassGradeUser::getGradeId, gradeId).last("limit 1"));
|
|
|
if (Validator.isEmpty(gradeUser)) {
|
|
|
//班级还有剩位,直接加入班级
|
|
|
if (iClassGradeService.checkEjjjPeopleNumLimit(businessId, gradeId)) { //判断全系统平台二建班级人数是否超300
|
|
@@ -2525,7 +2587,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* @param orderSn
|
|
|
* @return
|
|
|
*/
|
|
|
- public boolean lockGrade(Long orderGoodsId, Long gradeId, Long userId, Long goodsId, String orderSn) {
|
|
|
+ public boolean lockGrade(Long orderGoodsId, Long gradeId, Long userId, Long goodsId, String orderSn,String sevenYear) {
|
|
|
//锁定班级
|
|
|
ClassGradeUserTemp classGradeUserTemp = new ClassGradeUserTemp();
|
|
|
classGradeUserTemp.setUserId(userId);
|
|
@@ -2534,6 +2596,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
classGradeUserTemp.setFromType(1);
|
|
|
classGradeUserTemp.setGoodsId(goodsId);
|
|
|
classGradeUserTemp.setOrderSn(orderSn);
|
|
|
+ classGradeUserTemp.setSevenYear(sevenYear);
|
|
|
classGradeUserTemp.setCreateTime(DateUtils.getNowTime());
|
|
|
classGradeUserTemp.setUpdateTime(DateUtils.getNowTime());
|
|
|
iClassGradeUserTempService.save(classGradeUserTemp);
|