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

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

积分商品列表

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