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

Commit 2d9d4972 authored by GaoHu's avatar GaoHu

exit

parent 4d7797ec
......@@ -224,6 +224,12 @@ public class GoblinRedisConst {
*/
public static final String ANTICIPATE_SKUID = PREFIX.concat("anticipate:skuId:");
/**
* skuId保存预约用户头像
* {anticipate:skuId:avatar:${skuId},List<String>}
*/
public static final String ANTICIPATE_SKUID_AVATAR = PREFIX.concat("anticipate:skuId:avatar:");
......
......@@ -45,6 +45,6 @@ public interface IGoblinGoodsAnticipateService {
/**
* 用户预约
*/
ResponseDto<Object> userAbout(String skuId, String uid, String phone, Integer state);
ResponseDto<Object> userAbout(String skuId, String uid, String phone, Integer state,String url);
}
package com.liquidnet.service.goblin.controller;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueParam;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinGoodsAnticipateValueVo;
import com.liquidnet.service.goblin.service.IGoblinGoodsAnticipateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.math.BigInteger;
/**
* <p>
* 预约表 前端控制器
* </p>
*
* @author liquidnet
* @since 2022-04-07
*/
@Slf4j
@RestController
@Api(tags = "预约相关")
@RequestMapping("/goblin/anticipate")
public class GoblinGoodsAnticipateController {
@Autowired
IGoblinGoodsAnticipateService goblinGoodsAnticipateService;
@ApiOperation("用户预约(state预约标识:0为预约,1为取消预约)")
@PostMapping("/userAbout")
public ResponseDto<Object> userAbout(HttpServletRequest request,
@RequestParam(name = "skuId", required = true) String skuId,
@RequestParam(name = "uid", required = true) String uid,
@RequestParam(name = "phone", required = true) String phone) {
String url = "url";
return goblinGoodsAnticipateService.userAbout(skuId, uid, phone, 0,url);
}
}
......@@ -30,7 +30,7 @@ import java.util.List;
@RestController
@Api(tags = "预约相关")
@RequestMapping("/goblin/anticipate")
public class GoblinGoodsAnticipateController {
public class GoblinGoodsAnticipateMgController {
@Autowired
IGoblinGoodsAnticipateService goblinGoodsAnticipateService;
......@@ -59,13 +59,4 @@ public class GoblinGoodsAnticipateController {
return goblinGoodsAnticipateService.delete(skuId);
}
@ApiOperation("用户预约(state预约标识:0为预约,1为取消预约)")
@PostMapping("/userAbout")
public ResponseDto<Object> userAbout(@RequestParam(name = "skuId", required = true) String skuId,
@RequestParam(name = "uid", required = true) String uid,
@RequestParam(name = "phone", required = true) String phone,
@RequestParam(name = "state", required = true) Integer state) {
return goblinGoodsAnticipateService.userAbout(skuId, uid, phone, state);
}
}
......@@ -146,16 +146,16 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
LocalDateTime aboutEndDate = anticipateValueVo.getAboutEndDate();
LocalDateTime now = LocalDateTime.now();
if (aboutStartDate.isBefore(now)) {
if (aboutStartDate.isAfter(now)) {
//未开始 0
anticipateValueVo.setState(0);
}
if (!aboutStartDate.isBefore(now) && aboutEndDate.isAfter(now)) {
//预约中
if (aboutStartDate.isBefore(now) && aboutEndDate.isAfter(now)) {
//预约中 1
anticipateValueVo.setState(1);
}
if (aboutEndDate.isBefore(now)) {
//已结束
//已结束 2
anticipateValueVo.setState(2);
}
}
......@@ -180,6 +180,15 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
@Override
public ResponseDto<Object> delete(String skuId) {
//更具skuId查询
GoblinGoodsAnticipateValueVo goodsAnticipateValueVo = goblinMongoUtils.getAnticipateValueVo(skuId);
//没有开启则可以删除预约
LocalDateTime aboutStartDate = goodsAnticipateValueVo.getAboutStartDate();
LocalDateTime now = LocalDateTime.now();
if (aboutStartDate.isAfter(now)){
return ResponseDto.failure("预约开启,不可以删除");
}
//mysql删除
LinkedList<Object[]> sqlValue = CollectionUtil.linkedListObjectArr();
sqlValue.add(new Object[]{
......@@ -189,8 +198,6 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
sendRedis("goblin_goods_anticipate_value_delete", sqlValue);
//删除mongodb
goblinMongoUtils.delGoodsAnticipateValueVo(skuId);
//删除用户预约sku相关的数据
delUserBySkuId(skuId);
return ResponseDto.success();
}
......@@ -206,12 +213,16 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
}
@Override
public ResponseDto<Object> userAbout(String skuId, String uid, String phone, Integer state) {
public ResponseDto<Object> userAbout(String skuId, String uid, String phone, Integer state,String url) {
//查询该用户是否预
GoblinGoodAnticipateUserVo userVo = goblinRedisUtils.getUserAboutAut(skuId, uid);
LinkedList<Object[]> sqlValue = CollectionUtil.linkedListObjectArr();
if (state.equals(GoblinGoodAnticipateUserVo.STATE_VALID) && userVo == null) {
GoblinGoodAnticipateUserVo user = new GoblinGoodAnticipateUserVo(uid, skuId, phone, state);
GoblinGoodAnticipateUserVo user = new GoblinGoodAnticipateUserVo();
user.setUid(uid);
user.setSkuId(skuId);
user.setPhone(phone);
user.setState(state);
//mongodb记录
goblinRedisUtils.setUserAboutSku(user);
//用户没有预约过
......@@ -224,8 +235,10 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
});
sendRedis("goblin_goods_anticipate_user", sqlValue);
goblinRedisUtils.setSkuIdPeople(skuId, state);
//储存用户头像
userAvatar(skuId,url);
}
if (state.equals(GoblinGoodAnticipateUserVo.STATE_INVALID)&&userVo != null) {
/* if (state.equals(GoblinGoodAnticipateUserVo.STATE_INVALID)&&userVo != null) {
//mysql删除用户记录
sqlValue.add(new Object[]{
uid,
......@@ -235,10 +248,15 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
//删除缓存 redis和mongodb
goblinRedisUtils.delUserAboutSku(skuId, uid);
goblinRedisUtils.setSkuIdPeople(skuId, state);
}
}*/
return ResponseDto.success();
}
private void userAvatar(String skuId,String url) {
//获取
goblinRedisUtils.setUserAvatar(skuId,url);
}
public void sendRedis(String sqlKey, LinkedList<Object[]> sqlData) {
LinkedList<String> sql = CollectionUtil.linkedListString();
sql.add(SqlMapping.get(sqlKey));
......
......@@ -122,13 +122,9 @@ public class GoblinMongoUtils {
mongoTemplate.remove(query, GoblinGoodsAnticipateValueVo.class.getSimpleName()).getDeletedCount();
}
/**
* 根据antId修改 预约人数
*/
public void updateGoblinGoodsAnticipateVo(GoblinGoodsAnticipateUpdateParam goodsAnticipateUpdateParam) {
Query query = Query.query(Criteria.where("antId").is(goodsAnticipateUpdateParam.getAntId()));
Update update = new Update().set("name", goodsAnticipateUpdateParam.getName()).set("rule", goodsAnticipateUpdateParam.getRule()).set("updateDate", LocalDateTime.now());
mongoTemplate.updateFirst(query, update, GoblinGoodsAnticipateVo.class.getSimpleName());
public GoblinGoodsAnticipateValueVo getAnticipateValueVo(String skuId) {
Query query = Query.query(Criteria.where("skuId").is(skuId));
return mongoTemplate.findOne(query,GoblinGoodsAnticipateValueVo.class,GoblinGoodsAnticipateValueVo.class.getSimpleName());
}
/**
......
......@@ -59,8 +59,6 @@ public class GoblinRedisUtils {
redisUtil.del(GoblinRedisConst.ANTICIPATE_SKUID.concat(skuId));
}
/**
* 获取关联
*/
......@@ -118,6 +116,18 @@ public class GoblinRedisUtils {
redisUtil.del(GoblinRedisConst.ANTICIPATE_SKUID.concat(skuId));
}
/**
* 保存用户头像
*/
public void setUserAvatar(String skuId, String url) {
List<String> list = (List) redisUtil.get(GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId));
List<String> urlList = list != null ? list : new ArrayList<String>();
if (urlList.size()<=5){
urlList.add(url);
redisUtil.set(GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId),urlList);
}
}
/* ---------------------------------------- sku库存相关 ---------------------------------------- */
public void setSkuStock(String marketPre, String skuId, Integer stock) {
String rk = GoblinRedisConst.REAL_STOCK_SKU;
......
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