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

Commit e5076ffe authored by 高虎's avatar 高虎 Committed by GaoHu

exit

parent 6ea483b0
......@@ -209,10 +209,20 @@ public class GoblinRedisConst {
/**
* 用户预约标识
* {goblin:user:anticipate:skuId:uid,(goblin_goods_anticipate_user)}
* {goblin:user:anticipate:${skuId}:${uid},(goblin_goods_anticipate_user)}
*/
public static final String USER_ANTICIPATE_STATE = PREFIX.concat("user:anticipate:");
/**
* 真实预约人数
* {goblin:anticipate:people:${autId},numPeople}
*/
public static final String ANTICIPATE_PEOPLE = PREFIX.concat("anticipate:people:");
/**
* 记录sku
*/
public static final String ANTICIPATE_SKUID = PREFIX.concat("anticipate:skuId:");
......
......@@ -20,6 +20,8 @@ public class GoblinGoodAnticipateUserVo implements Serializable {
public static final Integer STATE_VALID = 1;
public static final Integer STATE_INVALID = 1;
@ApiModelProperty(value = "uid")
private String uid;
......
......@@ -170,9 +170,13 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
//用户没有预约过
//发送redis消息修改mysql记录用户预约
GoblinGoodAnticipateUserVo user = new GoblinGoodAnticipateUserVo(uid,skuId,phone,state);
goblinRedisUtils.setUserAboutAut(user);
//mongodb记录
goblinRedisUtils.setUserAboutSku(user);
//预约人数+1或-1
}else {
goblinRedisUtils.delUserAboutSku(skuId,uid);
}
//存入redis中
goblinRedisUtils.setAutId(autId,state);
return null;
}
......
......@@ -76,12 +76,19 @@ public class GoblinMongoUtils {
}
/**
* 新增
* 新增预约
*/
public void setGoblinGoodsAnticipateVo(GoblinGoodsAnticipateVo vo) {
mongoTemplate.insert(vo, GoblinGoodsAnticipateVo.class.getSimpleName());
}
/**
* 新增用户预约
*/
public void setGoblinGoodsAnticipateUserVo(GoblinGoodAnticipateUserVo vo) {
mongoTemplate.insert(vo, GoblinGoodAnticipateUserVo.class.getSimpleName());
}
/**
* 根据antId修改 预约人数
*/
......@@ -108,6 +115,15 @@ public class GoblinMongoUtils {
return mongoTemplate.remove(query, GoblinGoodsAnticipateVo.class.getSimpleName()).getDeletedCount() > 0;
}
/**
* 根据用户预约
*/
public void delGoodsAnticipteUserVo(String uid,String skuId) {
Query query = Query.query(Criteria.where("uid").is(uid).and("skuId").is(skuId));
mongoTemplate.remove(query, GoblinGoodsAnticipateVo.class.getSimpleName()).getDeletedCount();
}
/* ---------------------------------------- 平台分类数据源 ---------------------------------------- */
......
......@@ -45,17 +45,41 @@ public class GoblinRedisUtils {
/* ---------------------------------------- 预约相关 ---------------------------------------- */
public void setAnticipate(String skuId){
redisUtil.set(GoblinRedisConst.ANTICIPATE_SKUID.concat(skuId),1);
}
public GoblinGoodAnticipateUserVo getUserAboutAut(String skuId, String uid) {
return (GoblinGoodAnticipateUserVo) redisUtil.get(GoblinRedisConst.USER_ANTICIPATE_STATE.concat(skuId).concat(uid));
}
public void setUserAboutAut(GoblinGoodAnticipateUserVo user) {
/**
* 新增用户预约
*/
public void setUserAboutSku(GoblinGoodAnticipateUserVo user) {
goblinMongoUtils.setGoblinGoodsAnticipateUserVo(user);
redisUtil.set(GoblinRedisConst.USER_ANTICIPATE_STATE.concat(user.getSkuId()).concat(user.getUid()),user);
}
/**
* 删除用户预约
*/
public void delUserAboutSku(String skuId, String uid) {
goblinMongoUtils.delGoodsAnticipteUserVo(uid, skuId);
redisUtil.del(GoblinRedisConst.USER_ANTICIPATE_STATE.concat(skuId).concat(uid));
}
/**
* 实际预约人数修改
*/
public void setAutId(String autId,Integer state) {
Integer num = (Integer) redisUtil.get(GoblinRedisConst.ANTICIPATE_PEOPLE.concat(autId));
if (state.equals(GoblinGoodAnticipateUserVo.STATE_VALID)){
redisUtil.set(GoblinRedisConst.ANTICIPATE_PEOPLE.concat(autId),num==null? 1:num+1);
}
if (state.equals(GoblinGoodAnticipateUserVo.STATE_INVALID)&&num!=null){
redisUtil.set(GoblinRedisConst.ANTICIPATE_PEOPLE.concat(autId),num-1);
}
}
/* ---------------------------------------- sku库存相关 ---------------------------------------- */
public void setSkuStock(String marketPre, String skuId, Integer stock) {
......
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