记得上下班打卡 | git大法好,push需谨慎

Commit 95ed00b4 authored by 胡佳晨's avatar 胡佳晨

积分商品列表

parent d56386f4
......@@ -7,6 +7,8 @@ public class StoneConstant {
public static final String USER=CTX.concat("user:");
//item
public static final String ITEM=CTX.concat("item:");
//itemList 积分商品列表
public static final String ITEM_LIST=ITEM.concat("list");
//剩余库存
public static final String SURPLUS_GENERAL = "surplusGeneral";
......
......@@ -101,10 +101,12 @@ public class ItemServiceImpl implements IItemService {
int result = stoneScoreItemsMapper.update(data, Wrappers.lambdaQuery(StoneScoreItems.class).eq(StoneScoreItems::getItemId, itemId));
StoneScoreItems redisData = redisUtils.getItemData(data.getItemId());
redisData.setStatus(status);
//redis
redisUtils.setItemData(data.getItemId(), redisData);
//mongo
mongoUtils.itemUpdateById(redisData);
//redis
redisUtils.setItemData(data.getItemId(), redisData);
//修改 List
redisUtils.updateItemDataList(redisData);
if (result <= 0) {
return "修改失败";
......@@ -137,10 +139,12 @@ public class ItemServiceImpl implements IItemService {
data.setCreatedAt(now);
//mysql
int count = stoneScoreItemsMapper.insert(data);
//redis
redisUtils.setItemData(data.getItemId(), data);
//mongo
mongoUtils.itemCreate(data);
//redis
redisUtils.setItemData(data.getItemId(), data);
//修改 List
redisUtils.addItemDataList(data);
if (count <= 0) {
return "创建失败";
}
......@@ -161,10 +165,12 @@ public class ItemServiceImpl implements IItemService {
data.setUpdatedAt(now);
//mysql
int count = stoneScoreItemsMapper.update(data, Wrappers.lambdaQuery(StoneScoreItems.class).eq(StoneScoreItems::getItemId, param.getItemId()));
//redis
redisUtils.setItemData(data.getItemId(), data);
//mongo
mongoUtils.itemUpdateById(data);
//redis
redisUtils.setItemData(data.getItemId(), data);
//修改 List
redisUtils.updateItemDataList(data);
if (count <= 0) {
return "修改失败";
}
......
......@@ -4,18 +4,23 @@ import com.liquidnet.client.admin.zhengzai.kylin.utils.MongoVoUtils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import com.liquidnet.service.stone.constant.StoneConstant;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import com.liquidnet.service.stone.vo.StoneUserVo;
import com.mongodb.client.result.UpdateResult;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class StoneMongoUtils {
......@@ -24,6 +29,7 @@ public class StoneMongoUtils {
/**
* 创建 积分物品
*
* @param data
* @return
*/
......@@ -31,8 +37,21 @@ public class StoneMongoUtils {
return mongoTemplate.insert(data, StoneScoreItems.class.getSimpleName());
}
/**
* 获取 积分物品
*
* @param itemId
* @return
*/
public StoneScoreItems itemGet(String itemId) {
Query query = Query.query(Criteria.where("itemId").ne(itemId));
return mongoTemplate.findOne(query,
StoneScoreItems.class, StoneScoreItems.class.getSimpleName());
}
/**
* 根据积分物品id修改
*
* @param data
* @return
*/
......@@ -43,8 +62,21 @@ public class StoneMongoUtils {
return result;
}
/**
* 查询 积分物品 列表
*
* @return
*/
public List<StoneScoreItems> itemList() {
Query query = Query.query(Criteria.where("status").ne(-1));
List<StoneScoreItems> voList = mongoTemplate.find(query.with(Sort.by(Sort.Direction.DESC, "createdAt")).limit(40),
StoneScoreItems.class, StoneScoreItems.class.getSimpleName());
return voList;
}
/**
* 创建 用户积分
*
* @param data
* @return
*/
......@@ -54,6 +86,7 @@ public class StoneMongoUtils {
/**
* 根据用户id修改 用户积分
*
* @param data
* @return
*/
......@@ -63,4 +96,5 @@ public class StoneMongoUtils {
UpdateResult result = mongoTemplate.updateFirst(query, update, StoneUserVo.class, StoneUserVo.class.getSimpleName());
return result;
}
}
......@@ -9,15 +9,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class StoneRedisUtils {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoVoUtils mongoVoUtils;
@Autowired
private RedisUtil redisUtil;
@Autowired
private StoneMongoUtils mongoUtils;
/**
* 获取 积分物品 剩余库存
......@@ -73,12 +74,74 @@ public class StoneRedisUtils {
String redisKey = StoneConstant.ITEM.concat(itemId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return null;
return mongoUtils.itemGet(itemId);
} else {
return (StoneScoreItems) obj;
}
}
/**
* 修改 积分物品 缓存list
*
* @param data
*/
public void updateItemDataList(StoneScoreItems data) {
String redisKey = StoneConstant.ITEM_LIST;
Object obj = redisUtil.get(redisKey);
List<StoneScoreItems> dataList;
if (obj == null) {
dataList = mongoUtils.itemList();
} else {
dataList = (List<StoneScoreItems>) obj;
}
for (int i = 0; i < dataList.size(); i++) {
StoneScoreItems items = dataList.get(i);
if (items.getItemId().equals(data.getItemId())) {
dataList.set(i, items);
break;
}
}
redisUtil.set(redisKey, dataList);
}
/**
* 添加 积分物品 缓存list
*
* @param data
*/
public void addItemDataList(StoneScoreItems data) {
String redisKey = StoneConstant.ITEM_LIST;
Object obj = redisUtil.get(redisKey);
List<StoneScoreItems> dataList;
if (obj == null) {
dataList = mongoUtils.itemList();
} else {
dataList = (List<StoneScoreItems>) obj;
}
dataList.add(0, data);
if (dataList.size() > 40) {
int size = dataList.size() - 40;
for (int i = 0; i < size; i++) {
dataList.remove(40);
}
}
redisUtil.set(redisKey, dataList);
}
/**
* 设置 积分物品 缓存list
*/
public List<StoneScoreItems> getItemDataList() {
String redisKey = StoneConstant.ITEM_LIST;
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return mongoUtils.itemList();
} else {
return (List<StoneScoreItems>) obj;
}
}
/**
* 设置 用户积分 缓存
*
......
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