添加提交订单时验证团购活动是否过期
This commit is contained in:
@@ -51,7 +51,7 @@ public class AdminGrouponController {
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
for (LitemallGroupon groupon : grouponList) {
|
||||
Map<String, Object> RecordData = new HashMap<>();
|
||||
List<LitemallGroupon> subGrouponList = grouponService.queryJoiners(groupon.getId());
|
||||
List<LitemallGroupon> subGrouponList = grouponService.queryJoinRecord(groupon.getId());
|
||||
LitemallGrouponRules rules = rulesService.queryById(groupon.getRulesId());
|
||||
LitemallGoods goods = goodsService.findById(rules.getGoodsId());
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import org.linlinjava.litemall.db.domain.LitemallGrouponRulesExample;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@@ -19,8 +20,16 @@ public class LitemallGrouponRulesService {
|
||||
return mapper.insertSelective(rules);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID查找对应团购项
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public LitemallGrouponRules queryById(Integer id) {
|
||||
return mapper.selectByPrimaryKey(id);
|
||||
LitemallGrouponRulesExample example = new LitemallGrouponRulesExample();
|
||||
example.or().andIdEqualTo(id).andDeletedEqualTo(false);
|
||||
return mapper.selectOneByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -35,6 +44,13 @@ public class LitemallGrouponRulesService {
|
||||
return mapper.selectByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取首页团购活动列表
|
||||
*
|
||||
* @param offset
|
||||
* @param limit
|
||||
* @return
|
||||
*/
|
||||
public List<LitemallGrouponRules> queryByIndex(int offset, int limit) {
|
||||
LitemallGrouponRulesExample example = new LitemallGrouponRulesExample();
|
||||
example.or().andDeletedEqualTo(false);
|
||||
@@ -43,6 +59,27 @@ public class LitemallGrouponRulesService {
|
||||
return mapper.selectByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断某个团购活动是否已经过期
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean isExpired(LitemallGrouponRules rules) {
|
||||
if (rules == null || rules.getExpireTime().isBefore(LocalDateTime.now()))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取团购活动列表
|
||||
*
|
||||
* @param goodsId
|
||||
* @param page
|
||||
* @param size
|
||||
* @param sort
|
||||
* @param order
|
||||
* @return
|
||||
*/
|
||||
public List<LitemallGrouponRules> querySelective(String goodsId, Integer page, Integer size, String sort, String order) {
|
||||
LitemallGrouponRulesExample example = new LitemallGrouponRulesExample();
|
||||
LitemallGrouponRulesExample.Criteria criteria = example.createCriteria();
|
||||
|
||||
@@ -16,17 +16,11 @@ public class LitemallGrouponService {
|
||||
LitemallGrouponMapper mapper;
|
||||
|
||||
/**
|
||||
* 查询用户所有参与的团购
|
||||
* 获取用户发起的团购记录
|
||||
*
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
public List<LitemallGroupon> queryByUserId(Integer userId) {
|
||||
LitemallGrouponExample example = new LitemallGrouponExample();
|
||||
example.or().andUserIdEqualTo(userId).andDeletedEqualTo(false);
|
||||
return mapper.selectByExample(example);
|
||||
}
|
||||
|
||||
public List<LitemallGroupon> queryMyGroupon(Integer userId) {
|
||||
LitemallGrouponExample example = new LitemallGrouponExample();
|
||||
example.or().andUserIdEqualTo(userId).andCreatorUserIdEqualTo(userId).andGrouponIdEqualTo(0).andDeletedEqualTo(false).andPayedEqualTo(true);
|
||||
@@ -34,6 +28,12 @@ public class LitemallGrouponService {
|
||||
return mapper.selectByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户参与的团购记录
|
||||
*
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
public List<LitemallGroupon> queryMyJoinGroupon(Integer userId) {
|
||||
LitemallGrouponExample example = new LitemallGrouponExample();
|
||||
example.or().andUserIdEqualTo(userId).andGrouponIdNotEqualTo(0).andDeletedEqualTo(false).andPayedEqualTo(true);
|
||||
@@ -41,13 +41,25 @@ public class LitemallGrouponService {
|
||||
return mapper.selectByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据OrderId查询团购记录
|
||||
*
|
||||
* @param orderId
|
||||
* @return
|
||||
*/
|
||||
public LitemallGroupon queryByOrderId(Integer orderId) {
|
||||
LitemallGrouponExample example = new LitemallGrouponExample();
|
||||
example.or().andOrderIdEqualTo(orderId).andDeletedEqualTo(false);
|
||||
return mapper.selectOneByExample(example);
|
||||
}
|
||||
|
||||
public List<LitemallGroupon> queryJoiners(Integer id) {
|
||||
/**
|
||||
* 获取某个团购活动参与的记录
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public List<LitemallGroupon> queryJoinRecord(Integer id) {
|
||||
LitemallGrouponExample example = new LitemallGrouponExample();
|
||||
example.or().andGrouponIdEqualTo(id).andDeletedEqualTo(false).andPayedEqualTo(true);
|
||||
example.orderBy("add_time desc");
|
||||
@@ -61,7 +73,9 @@ public class LitemallGrouponService {
|
||||
* @return
|
||||
*/
|
||||
public LitemallGroupon queryById(Integer id) {
|
||||
return mapper.selectByPrimaryKey(id);
|
||||
LitemallGrouponExample example = new LitemallGrouponExample();
|
||||
example.or().andIdEqualTo(id).andDeletedEqualTo(false).andPayedEqualTo(true);
|
||||
return mapper.selectOneByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -76,18 +90,6 @@ public class LitemallGrouponService {
|
||||
return (int) mapper.countByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回某个团购活动参与人数
|
||||
*
|
||||
* @param rulesId
|
||||
* @return
|
||||
*/
|
||||
public int countRules(Integer rulesId) {
|
||||
LitemallGrouponExample example = new LitemallGrouponExample();
|
||||
example.or().andRulesIdEqualTo(rulesId).andDeletedEqualTo(false);
|
||||
return (int) mapper.countByExample(example);
|
||||
}
|
||||
|
||||
public void update(LitemallGroupon groupon) {
|
||||
mapper.updateByPrimaryKey(groupon);
|
||||
}
|
||||
@@ -102,6 +104,17 @@ public class LitemallGrouponService {
|
||||
return mapper.insertSelective(groupon);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询所有发起的团购记录
|
||||
*
|
||||
* @param rulesId
|
||||
* @param page
|
||||
* @param size
|
||||
* @param sort
|
||||
* @param order
|
||||
* @return
|
||||
*/
|
||||
public List<LitemallGroupon> querySelective(String rulesId, Integer page, Integer size, String sort, String order) {
|
||||
LitemallGrouponExample example = new LitemallGrouponExample();
|
||||
LitemallGrouponExample.Criteria criteria = example.createCriteria();
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.util.Map;
|
||||
* 简单缓存的数据
|
||||
*/
|
||||
public class HomeCacheManager {
|
||||
public static final boolean ENABLE = true;
|
||||
public static final String INDEX = "index";
|
||||
public static final String CATALOG = "catalog";
|
||||
public static final String GOODS = "goods";
|
||||
@@ -45,6 +46,9 @@ public class HomeCacheManager {
|
||||
* @return
|
||||
*/
|
||||
public static boolean hasData(String cacheKey) {
|
||||
if (!ENABLE)
|
||||
return false;
|
||||
|
||||
Map<String, Object> cacheData = cacheDataList.get(cacheKey);
|
||||
if (cacheData == null) {
|
||||
return false;
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -105,7 +106,7 @@ public class WxGrouponController {
|
||||
linkGrouponId = groupon.getGrouponId();
|
||||
|
||||
}
|
||||
List<LitemallGroupon> groupons = grouponService.queryJoiners(linkGrouponId);
|
||||
List<LitemallGroupon> groupons = grouponService.queryJoinRecord(linkGrouponId);
|
||||
|
||||
UserVo joiner;
|
||||
for (LitemallGroupon grouponItem : groupons) {
|
||||
|
||||
@@ -282,6 +282,19 @@ public class WxOrderController {
|
||||
Integer grouponRulesId = JacksonUtil.parseInteger(body, "grouponRulesId");
|
||||
Integer grouponLinkId = JacksonUtil.parseInteger(body, "grouponLinkId");
|
||||
|
||||
//如果是团购项目,验证活动是否有效
|
||||
if (grouponRulesId != null && grouponRulesId > 0) {
|
||||
LitemallGrouponRules rules = grouponRulesService.queryById(grouponRulesId);
|
||||
//找不到记录
|
||||
if (rules == null) {
|
||||
return ResponseUtil.badArgument();
|
||||
}
|
||||
//团购活动已经过期
|
||||
if (grouponRulesService.isExpired(rules)) {
|
||||
return ResponseUtil.fail(402, "团购活动已经过期!");
|
||||
}
|
||||
}
|
||||
|
||||
if (cartId == null || addressId == null || couponId == null) {
|
||||
return ResponseUtil.badArgument();
|
||||
}
|
||||
@@ -414,6 +427,7 @@ public class WxOrderController {
|
||||
|
||||
//参与者
|
||||
if (grouponLinkId != null && grouponLinkId > 0) {
|
||||
//参与的团购记录
|
||||
LitemallGroupon baseGroupon = grouponService.queryById(grouponLinkId);
|
||||
groupon.setCreatorUserId(baseGroupon.getCreatorUserId());
|
||||
groupon.setGrouponId(grouponLinkId);
|
||||
|
||||
Reference in New Issue
Block a user