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

Commit 6ea483b0 authored by 高虎's avatar 高虎 Committed by GaoHu

exit

parent 4129781d
......@@ -205,6 +205,18 @@ public class GoblinRedisConst {
*/
public static final String USER_DIGITAL_ARTWORK_GENMARK = PREFIX.concat("u_d_art_gm:");
/* ----------------------------------------------------------------- */
/**
* 用户预约标识
* {goblin:user:anticipate:skuId:uid,(goblin_goods_anticipate_user)}
*/
public static final String USER_ANTICIPATE_STATE = PREFIX.concat("user:anticipate:");
/* ----------------------------------------------------------------- */
/* ----------------------------------------------------------------- */
}
package com.liquidnet.service.goblin.dto.manage;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinGoodsAnticipateValueVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
......@@ -37,15 +40,15 @@ public class GoblinGoodsAnticipateAddParam {
* 预约开始时间
*/
@ApiModelProperty(value = "预约开始时间")
@NotBlank(message = "预约开始时间")
private String aboutStartDate;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime aboutStartDate;
/**
* 预约结束时间
*/
@ApiModelProperty(value = "预约结束时间")
@NotBlank(message = "预约结束时间")
private String aboutEndDate;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime aboutEndDate;
/**
* 库存
......
......@@ -2,10 +2,14 @@ package com.liquidnet.service.goblin.dto.manage.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -45,12 +49,14 @@ public class GoblinGoodsAnticipateValueVo {
* 预约开始时间
*/
@ApiModelProperty(value = "预约开始时间")
private String aboutStartDate;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime aboutStartDate;
/**
* 预约结束时间
*/
@ApiModelProperty(value = "预约结束时间")
private String aboutEndDate;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime aboutEndDate;
}
package com.liquidnet.service.goblin.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author: GH
* @Date: 2022/4/10 18:18
* @Description:
*/
@Data
@NoArgsConstructor
public class GoblinGoodAnticipateUserVo implements Serializable {
private static final long serialVersionUID = 1L;
public static final Integer STATE_VALID = 1;
@ApiModelProperty(value = "uid")
private String uid;
@ApiModelProperty(value = "用户手机号")
private String phone;
@ApiModelProperty(value = "用户预约的skuId")
private String skuId;
@ApiModelProperty(value = "用户状态")
private Integer state;
public GoblinGoodAnticipateUserVo(String uid, String phone, String skuId, Integer state) {
this.uid = uid;
this.phone = phone;
this.skuId = skuId;
this.state = state;
}
}
package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinGoodsAnticipateValueVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -56,12 +58,14 @@ public class GoblinGoodsAnticipateVo implements Serializable {
* 预约开始时间
*/
@ApiModelProperty(value = "预约开始时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime aboutStartDate;
/**
* 预约结束时间
*/
@ApiModelProperty(value = "预约结束时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime aboutEndDate;
/**
......
package com.liquidnet.service.goblin.service;
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.GoblinGoodsAnticipateParam;
......@@ -23,7 +24,7 @@ public interface IGoblinGoodsAnticipateService{
* @param goodsAnticipateParam :
* @return :List<GoblinGoodsAnticipateVo>
*/
ResponseDto<List<GoblinGoodsAnticipateVo>> list(GoblinGoodsAnticipateParam goodsAnticipateParam);
ResponseDto<PageInfo<GoblinGoodsAnticipateVo>> list(GoblinGoodsAnticipateParam goodsAnticipateParam);
ResponseDto<Object> add(GoblinGoodsAnticipateAddParam goodsAnticipateAddParam);
......@@ -34,4 +35,6 @@ public interface IGoblinGoodsAnticipateService{
ResponseDto<Object> delete(String antId);
ResponseDto<Object> getSkus(String spuId);
ResponseDto<Object> userAbout(String antId, String skuId,String uid, String phone,Integer state);
}
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.GoblinGoodsAnticipateParam;
......@@ -34,7 +35,7 @@ public class GoblinGoodsAnticipateController {
@PostMapping("/list")
@ApiOperation("获取预约列表")
public ResponseDto<List<GoblinGoodsAnticipateVo>> list(GoblinGoodsAnticipateParam goodsAnticipateParam) {
public ResponseDto<PageInfo<GoblinGoodsAnticipateVo>> list(GoblinGoodsAnticipateParam goodsAnticipateParam) {
return goblinGoodsAnticipateService.list(goodsAnticipateParam);
}
......@@ -62,10 +63,14 @@ public class GoblinGoodsAnticipateController {
return goblinGoodsAnticipateService.delete(antId);
}
@ApiOperation("用户预约")
@PostMapping("/about")
public ResponseDto<Object> about(@RequestParam(name = "antId", required = true) String antId,@RequestParam(name = "antId", required = true) String uid,@RequestParam(name = "antId", required = true) String phone){
return ResponseDto.success();
@ApiOperation("用户预约(state预约标识:0为预约,1为取消预约)")
@PostMapping("/userAbout")
public ResponseDto<Object> userAbout(@RequestParam(name = "antId", required = true) String antId,
@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(antId,skuId,uid,phone,state);
}
@ApiOperation("根据spuid查询出所有的sku")
......
package com.liquidnet.service.goblin.service.impl;
import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.PagedResult;
......@@ -10,11 +11,13 @@ import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateUpdateParam;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinGoodsAnticipateValueVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodAnticipateUserVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsAnticipateVo;
import com.liquidnet.service.goblin.service.IGoblinGoodsAnticipateService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.QueueUtils;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
......@@ -22,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
......@@ -47,14 +51,22 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
QueueUtils queueUtils;
@Override
public ResponseDto<List<GoblinGoodsAnticipateVo>> list(GoblinGoodsAnticipateParam goodsAnticipateParam) {
List<GoblinGoodsAnticipateVo> goblinGoodsAnticipateVos = goblinMongoUtils.getGoblinGoodsAnticipateVos(goodsAnticipateParam);
return ResponseDto.success(goblinGoodsAnticipateVos);
public ResponseDto<PageInfo<GoblinGoodsAnticipateVo>> list(GoblinGoodsAnticipateParam goodsAnticipateParam) {
PageInfo<GoblinGoodsAnticipateVo> pageInfo = new PageInfo();
HashMap<String, Object> map = goblinMongoUtils.getGoblinGoodsAnticipateVos(goodsAnticipateParam);
List<GoblinGoodsAnticipateVo> data = (List<GoblinGoodsAnticipateVo>) map.get("data");
pageInfo.setList(data);
pageInfo.setTotal((Long) map.get("total"));
return ResponseDto.success(pageInfo);
}
@Override
public ResponseDto<Object> add(GoblinGoodsAnticipateAddParam goodsAnticipateAddParam) {
if (StringUtils.isNotBlank(goodsAnticipateAddParam.getName()) && StringUtils.isNotBlank(goodsAnticipateAddParam.getRule()) && StringUtils.isNotBlank(goodsAnticipateAddParam.getAboutStartDate().toString()) && StringUtils.isNotBlank(goodsAnticipateAddParam.getAboutEndDate().toString()) && goodsAnticipateAddParam.getGoodsAnticipateValues() == null) {
if (StringUtils.isNotBlank(goodsAnticipateAddParam.getName())
&& StringUtils.isNotBlank(goodsAnticipateAddParam.getRule())
&& StringUtils.isNotBlank(goodsAnticipateAddParam.getAboutStartDate().toString())
&& StringUtils.isNotBlank(goodsAnticipateAddParam.getAboutEndDate().toString())
&& goodsAnticipateAddParam.getGoodsAnticipateValues() != null) {
List<GoblinGoodsAnticipateValueVo> goodsAnticipateValues = goodsAnticipateAddParam.getGoodsAnticipateValues();
//生成的antId
......@@ -67,7 +79,7 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
//redis消息预约消息表
LinkedList<Object[]> sqlAnt = CollectionUtil.linkedListObjectArr();
/* LinkedList<Object[]> sqlAnt = CollectionUtil.linkedListObjectArr();
sqlAnt.add(new Object[]{
antId,
goodsAnticipateVo.getName(),
......@@ -96,7 +108,7 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
goodsAnticipateValueVo.getAboutEndDate(),
});
sendRedis("goblin_goods_anticipate_value", sqlValue);
});
});*/
//mongodb新增
goblinMongoUtils.setGoblinGoodsAnticipateVo(goodsAnticipateVo);
......@@ -131,17 +143,17 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
goodsAnticipateUpdateParam.getRule(),
goodsAnticipateUpdateParam.getAutId()
});
sendRedis("goblin_goods_anticipate_update",sqlValue);
sendRedis("goblin_goods_anticipate_update", sqlValue);
return ResponseDto.success();
}
@Override
public ResponseDto<Object> delete(String antId) {
//删除mongodb
if (goblinMongoUtils.delGoodsAnticipteVo(antId)){
if (goblinMongoUtils.delGoodsAnticipteVo(antId)) {
return ResponseDto.success();
}
log.error("delete() antId:{}",antId);
log.error("delete() antId:{}", antId);
return ResponseDto.failure("请重试");
}
......@@ -150,6 +162,21 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
return null;
}
@Override
public ResponseDto<Object> userAbout(String autId,String skuId, String uid, String phone, Integer state) {
//查询该用户是否预
GoblinGoodAnticipateUserVo userVo = goblinRedisUtils.getUserAboutAut(skuId,uid);
if (state.equals(GoblinGoodAnticipateUserVo.STATE_VALID) &&userVo==null) {
//用户没有预约过
//发送redis消息修改mysql记录用户预约
GoblinGoodAnticipateUserVo user = new GoblinGoodAnticipateUserVo(uid,skuId,phone,state);
goblinRedisUtils.setUserAboutAut(user);
}
//存入redis中
return null;
}
public void sendRedis(String sqlKey, LinkedList<Object[]> sqlData) {
LinkedList<String> sql = CollectionUtil.linkedListString();
......
......@@ -57,14 +57,22 @@ public class GoblinMongoUtils {
/**
* 分页查询
*/
public List<GoblinGoodsAnticipateVo> getGoblinGoodsAnticipateVos(GoblinGoodsAnticipateParam goodsAnticipateParam) {
Pageable pageable = PageRequest.of(goodsAnticipateParam.getPageNum() - 1, goodsAnticipateParam.getPageSize(), Sort.by(Sort.Order.desc("date")));
public HashMap<String,Object> getGoblinGoodsAnticipateVos(GoblinGoodsAnticipateParam goodsAnticipateParam) {
HashMap<String,Object> info = CollectionUtil.mapStringObject();
Pageable pageable = PageRequest.of(goodsAnticipateParam.getPageNum() - 1, goodsAnticipateParam.getPageSize(), Sort.by(Sort.Direction.DESC,"createdDate"));
Criteria criteria = Criteria.where("delFlg").is("0");
if (StringUtils.isNotBlank(goodsAnticipateParam.getName())) {
criteria.and("name").is(goodsAnticipateParam.getName());
criteria = criteria.and("name").is(goodsAnticipateParam.getName());
}
Query query = Query.query(criteria).with(pageable);
return mongoTemplate.find(query, GoblinGoodsAnticipateVo.class);
Query query = Query.query(criteria);
//查询总数
long count = mongoTemplate.count(query, GoblinGoodsAnticipateVo.class, GoblinGoodsAnticipateVo.class.getSimpleName());
query.with(pageable);
List<GoblinGoodsAnticipateVo> voList = mongoTemplate.find(query, GoblinGoodsAnticipateVo.class, GoblinGoodsAnticipateVo.class.getSimpleName());
info.put("total",count);
info.put("data",voList);
return info;
}
/**
......
......@@ -48,6 +48,14 @@ public class GoblinRedisUtils {
}
public GoblinGoodAnticipateUserVo getUserAboutAut(String skuId, String uid) {
return (GoblinGoodAnticipateUserVo) redisUtil.get(GoblinRedisConst.USER_ANTICIPATE_STATE.concat(skuId).concat(uid));
}
public void setUserAboutAut(GoblinGoodAnticipateUserVo user) {
redisUtil.set(GoblinRedisConst.USER_ANTICIPATE_STATE.concat(user.getSkuId()).concat(user.getUid()),user);
}
/* ---------------------------------------- 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