|
|
@@ -2,19 +2,26 @@ package org.linlinjava.litemall.db.service;
|
|
|
|
|
|
import com.alibaba.druid.util.StringUtils;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
+import org.linlinjava.litemall.db.dao.LitemallGoodsMapper;
|
|
|
import org.linlinjava.litemall.db.dao.LitemallGrouponRulesMapper;
|
|
|
+import org.linlinjava.litemall.db.domain.LitemallGoods;
|
|
|
import org.linlinjava.litemall.db.domain.LitemallGrouponRules;
|
|
|
import org.linlinjava.litemall.db.domain.LitemallGrouponRulesExample;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
@Service
|
|
|
public class LitemallGrouponRulesService {
|
|
|
@Resource
|
|
|
- LitemallGrouponRulesMapper mapper;
|
|
|
+ private LitemallGrouponRulesMapper mapper;
|
|
|
+ @Resource
|
|
|
+ private LitemallGoodsMapper goodsMapper;
|
|
|
|
|
|
public int createRules(LitemallGrouponRules rules) {
|
|
|
return mapper.insertSelective(rules);
|
|
|
@@ -51,12 +58,39 @@ public class LitemallGrouponRulesService {
|
|
|
* @param limit
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<LitemallGrouponRules> queryByIndex(int offset, int limit) {
|
|
|
+ public List<Map<String, Object>> queryList(int offset, int limit) {
|
|
|
+ return queryList(offset, limit, "add_time", "desc");
|
|
|
+ }
|
|
|
+
|
|
|
+ private LitemallGoods.Column[] goodsColumns = new LitemallGoods.Column[]{LitemallGoods.Column.id, LitemallGoods.Column.name, LitemallGoods.Column.brief, LitemallGoods.Column.picUrl, LitemallGoods.Column.counterPrice, LitemallGoods.Column.retailPrice};
|
|
|
+ public List<Map<String, Object>> queryList(int offset, int limit, String sort, String order) {
|
|
|
LitemallGrouponRulesExample example = new LitemallGrouponRulesExample();
|
|
|
example.or().andDeletedEqualTo(false);
|
|
|
- example.orderBy("add_time desc");
|
|
|
+ example.setOrderByClause(sort + " " + order);
|
|
|
PageHelper.startPage(offset, limit);
|
|
|
- return mapper.selectByExample(example);
|
|
|
+ List<LitemallGrouponRules> grouponRules = mapper.selectByExample(example);
|
|
|
+
|
|
|
+ List<Map<String, Object>> grouponList = new ArrayList<>(grouponRules.size());
|
|
|
+ for (LitemallGrouponRules rule : grouponRules) {
|
|
|
+ Integer goodsId = rule.getGoodsId();
|
|
|
+ LitemallGoods goods = goodsMapper.selectByPrimaryKeySelective(goodsId, goodsColumns);
|
|
|
+ if (goods == null)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ Map<String, Object> item = new HashMap<>();
|
|
|
+ item.put("goods", goods);
|
|
|
+ item.put("groupon_price", goods.getRetailPrice().subtract(rule.getDiscount()));
|
|
|
+ item.put("groupon_member", rule.getDiscountMember());
|
|
|
+ grouponList.add(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ return grouponList;
|
|
|
+ }
|
|
|
+
|
|
|
+ public int countList(int offset, int limit, String sort, String order) {
|
|
|
+ LitemallGrouponRulesExample example = new LitemallGrouponRulesExample();
|
|
|
+ example.or().andDeletedEqualTo(false);
|
|
|
+ return (int)mapper.countByExample(example);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -80,6 +114,8 @@ public class LitemallGrouponRulesService {
|
|
|
*/
|
|
|
public List<LitemallGrouponRules> querySelective(String goodsId, Integer page, Integer size, String sort, String order) {
|
|
|
LitemallGrouponRulesExample example = new LitemallGrouponRulesExample();
|
|
|
+ example.setOrderByClause(sort + " " + order);
|
|
|
+
|
|
|
LitemallGrouponRulesExample.Criteria criteria = example.createCriteria();
|
|
|
|
|
|
if (!StringUtils.isEmpty(goodsId)) {
|