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

Commit f4d98653 authored by GaoHu's avatar GaoHu

exit 用户头像,根据id获取预约信息

parent beeea4b8
......@@ -8,6 +8,7 @@ import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
......@@ -32,13 +33,25 @@ public class GoblinGoodsAnticipateValueParam{
// @NotNull(message = "显示记录数无效")
// private Integer pageSize;
/**
* 预约开始时间
*/
/*@ApiModelProperty(position = 18, required = false, value = "预约开始时间")
private String aboutStartDate;*/
/**
* 预约结束时间
*/
/* @ApiModelProperty(position = 18, required = false, value = "预约结束时间")
private String aboutEndDate;*/
/**
* 预约名称
*/
@ApiModelProperty("sku名称")
private String name;
@ApiModelProperty(position = 18, required = false, value = "创建日期[yyyy-MM-dd]")
@ApiModelProperty(position = 18, required = false, value = "创建日期")
private String createdDate;
}
package com.liquidnet.service.goblin.dto.manage.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigInteger;
import java.time.LocalDateTime;
/**
* <p>
* 预约关联sku和spu表
* </p>
*
* @author liquidnet
* @since 2022-04-08
*/
@Data
public class AnticipateValueVo {
private static final long serialVersionUID = 1L;
/**
* sku名称
*/
@ApiModelProperty(value = "sku名称")
private String skuName;
/**
* 预约开始时间
*/
@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;
@ApiModelProperty("预约状态(0:未开始,1:可预约,3:已结束)")
private Integer state;
}
......@@ -6,6 +6,7 @@ import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateUpdateParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueParam;
import com.liquidnet.service.goblin.dto.manage.vo.AnticipateValueVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinGoodsAnticipateValueVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsAnticipateVo;
......@@ -45,6 +46,7 @@ public interface IGoblinGoodsAnticipateService {
/**
* 用户预约
*/
ResponseDto<Object> userAbout(String skuId, String uid, String phone,String url);
ResponseDto<Object> userAbout(String skuId, String uid, String phone);
ResponseDto<AnticipateValueVo> getAnticipateValueBySkuId(String skuId);
}
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>
......@@ -40,9 +34,7 @@ public class GoblinGoodsAnticipateController {
@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,url);
return goblinGoodsAnticipateService.userAbout(skuId, uid, phone);
}
}
......@@ -7,6 +7,7 @@ import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateUpdateParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueParam;
import com.liquidnet.service.goblin.dto.manage.vo.AnticipateValueVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinGoodsAnticipateValueVo;
import com.liquidnet.service.goblin.service.IGoblinGoodsAnticipateService;
import io.swagger.annotations.Api;
......@@ -59,4 +60,10 @@ public class GoblinGoodsAnticipateMgController {
return goblinGoodsAnticipateService.delete(skuId);
}
@ApiOperation("更具sku获取信息")
@GetMapping("/getAnticipateValueBySkuId")
public ResponseDto<AnticipateValueVo> getAnticipateValueBySkuId(@RequestParam(name = "skuId") String skuId){
return goblinGoodsAnticipateService.getAnticipateValueBySkuId(skuId);
}
}
......@@ -10,6 +10,7 @@ import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateUpdateParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueParam;
import com.liquidnet.service.goblin.dto.manage.vo.AnticipateValueVo;
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;
......@@ -140,32 +141,31 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
//实际预约人数
anticipateValueVo.setActualPeople(autIdPeople);
//设置预约状态
setState(anticipateValueVo);
anticipateValueVo.setState(setState(anticipateValueVo.getAboutStartDate(),anticipateValueVo.getAboutEndDate()));
}
pageInfo.setList(data);
pageInfo.setTotal((Long) map.get("total"));
return ResponseDto.success(pageInfo);
}
private void setState(GoblinGoodsAnticipateValueVo anticipateValueVo) {
//预约开始时间
LocalDateTime aboutStartDate = anticipateValueVo.getAboutStartDate();
//预约结束时间
LocalDateTime aboutEndDate = anticipateValueVo.getAboutEndDate();
private Integer setState(LocalDateTime StartDate,LocalDateTime EndDate) {
LocalDateTime now = LocalDateTime.now();
if (aboutStartDate.isAfter(now)) {
if (StartDate.isAfter(now)) {
//未开始 0
anticipateValueVo.setState(0);
return 0;
}
if (aboutStartDate.isBefore(now) && aboutEndDate.isAfter(now)) {
if (StartDate.isBefore(now) && EndDate.isAfter(now)) {
//预约中 1
anticipateValueVo.setState(1);
return 1;
}
if (aboutEndDate.isBefore(now)) {
if (EndDate.isBefore(now)) {
//已结束 2
anticipateValueVo.setState(2);
return 2;
}
//其他
return null;
}
@Override
......@@ -187,7 +187,7 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
//更具skuId查询
GoblinGoodsAnticipateValueVo goodsAnticipateValueVo = goblinMongoUtils.getAnticipateValueVo(skuId);
if (goodsAnticipateValueVo!=null){
setState(goodsAnticipateValueVo);
goodsAnticipateValueVo.setState(setState(goodsAnticipateValueVo.getAboutStartDate(),goodsAnticipateValueVo.getAboutEndDate()));
//没有开启则可以删除预约
if (!goodsAnticipateValueVo.getState().equals(0)){
return ResponseDto.failure("预约状态为已开启或已结束,不可删除!");
......@@ -218,11 +218,11 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
}
@Override
public ResponseDto<Object> userAbout(String skuId, String uid, String phone,String url) {
public ResponseDto<Object> userAbout(String skuId, String uid, String phone) {
//查询该skuId是否能被预约
GoblinGoodsAnticipateValueVo anticipateValueVo = goblinMongoUtils.getAnticipateValueVo(skuId);
if (anticipateValueVo!=null) {
setState(anticipateValueVo);
anticipateValueVo.setState(setState(anticipateValueVo.getAboutStartDate(),anticipateValueVo.getAboutEndDate()));
if (!anticipateValueVo.getState().equals(1)) {
return ResponseDto.failure("预约尚未开始或已结束!");
}
......@@ -248,16 +248,27 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
sendRedis("goblin_goods_anticipate_user", sqlValue);
goblinRedisUtils.setSkuIdPeople(skuId, 0);
//储存用户头像
userAvatar(skuId, url);
userAvatar(skuId);
}
return ResponseDto.success();
}
return ResponseDto.failure("该预约不存在!");
}
private void userAvatar(String skuId,String url) {
@Override
public ResponseDto<AnticipateValueVo> getAnticipateValueBySkuId(String skuId) {
GoblinGoodsAnticipateValueVo anticipateValueVo = goblinMongoUtils.getAnticipateValueVo(skuId);
AnticipateValueVo valueVo = new AnticipateValueVo();
if (anticipateValueVo!=null){
BeanUtils.copyProperties(anticipateValueVo,valueVo);
valueVo.setState(setState(valueVo.getAboutStartDate(),valueVo.getAboutEndDate()));
}
return ResponseDto.success(valueVo);
}
private void userAvatar(String skuId) {
//获取
goblinRedisUtils.setUserAvatar(skuId,url);
goblinRedisUtils.setUserAvatar(skuId);
}
public void sendRedis(String sqlKey, LinkedList<Object[]> sqlData) {
......
......@@ -71,6 +71,20 @@ public class GoblinMongoUtils {
criteria.and("createdDate").gte(createdAtBegin).lte(createdAtEnd);
}
/*if (StringUtils.isNotBlank(goblinGoodsAnticipateValueParam.getAboutStartDate())){
LocalDateTime createDt = DateUtil.Formatter.yyyyMMddHHmmss.parse(goblinGoodsAnticipateValueParam.getAboutStartDate());
LocalDateTime createdAtBegin = createDt.withHour(0).withMinute(0).withSecond(0).withNano(0);
LocalDateTime createdAtEnd = createDt.withHour(23).withMinute(59).withSecond(59).withNano(999);
criteria.and("aboutStartDate").gte(createdAtBegin).lte(createdAtEnd);
}
if (StringUtils.isNotBlank(goblinGoodsAnticipateValueParam.getAboutEndDate())){
LocalDateTime createDt = DateUtil.Formatter.yyyyMMddHHmmss.parse(goblinGoodsAnticipateValueParam.getAboutEndDate());
LocalDateTime createdAtBegin = createDt.withHour(0).withMinute(0).withSecond(0).withNano(0);
LocalDateTime createdAtEnd = createDt.withHour(23).withMinute(59).withSecond(59).withNano(999);
criteria.and("aboutEndDate").gte(createdAtBegin).lte(createdAtEnd);
}*/
Query query = Query.query(criteria);
//查询总数
long count = mongoTemplate.count(query, GoblinGoodsAnticipateValueVo.class, GoblinGoodsAnticipateValueVo.class.getSimpleName());
......@@ -122,6 +136,9 @@ public class GoblinMongoUtils {
mongoTemplate.remove(query, GoblinGoodsAnticipateValueVo.class.getSimpleName()).getDeletedCount();
}
/**
* 根据skuId获取sku信息
*/
public GoblinGoodsAnticipateValueVo getAnticipateValueVo(String skuId) {
Query query = Query.query(Criteria.where("skuId").is(skuId));
return mongoTemplate.findOne(query,GoblinGoodsAnticipateValueVo.class,GoblinGoodsAnticipateValueVo.class.getSimpleName());
......@@ -161,29 +178,6 @@ public class GoblinMongoUtils {
mongoTemplate.insert(goodsAnticipateValueVo, GoblinGoodsAnticipateValueVo.class.getSimpleName());
}
/**
* 根据预约id和skuId删除关联
*/
public void delAnticipateValueVo(GoblinGoodsAnticipateValueVo goodsAnticipateValueVo) {
Query query = Query.query(Criteria.where("antId").is(goodsAnticipateValueVo.getAntId()).and("skuId").is(goodsAnticipateValueVo.getSkuId()));
mongoTemplate.remove(query, GoblinGoodsAnticipateValueVo.class.getSimpleName()).getDeletedCount();
}
/**
* 根据预约id删除sku关联信息
*/
public void delAnticipateValues(String antId) {
Query query = Query.query(Criteria.where("antId").is(antId));
//查询处所有的sku关联信息
List<GoblinGoodsAnticipateValueVo> goodsAnticipateValues = getGoodsAnticipateValues(antId);
if (goodsAnticipateValues != null && goodsAnticipateValues.size() > 0) {
goodsAnticipateValues.forEach(item -> {
redisUtils.delAnticipateValue(item.getSkuId());
});
}
mongoTemplate.remove(query, GoblinGoodsAnticipateValueVo.class.getSimpleName()).getDeletedCount();
}
/**
* 修改sku关联信息
*/
......
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.vo.AdamRscPolymer01Vo;
import com.liquidnet.service.adam.dto.vo.AdamUserProfileVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.candy.vo.CandyCouponVo;
......@@ -77,6 +78,26 @@ public class GoblinOrderUtils {
}
}
public AdamUserProfileVo getUserInfo() {
try {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Authorization", "Bearer " + CurrentUtil.getToken());
header.add("Accept", "application/json;charset=UTF-8");
String returnData = HttpUtil.post(adamUrl + " /adam/user/info", header);
ResponseDto<List<AdamUserProfileVo>> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<List<AdamUserProfileVo>>>() {
});
if(innerReturnVo.getData().size()>0){
return innerReturnVo.getData().get(0);
}else{
return null;
}
} catch (Exception e) {
log.error("获取用户头像失败", e);
return AdamUserProfileVo.getNew();
}
}
public void doTask(String uid, BigDecimal price) {
try {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
......@@ -91,4 +112,5 @@ public class GoblinOrderUtils {
e.printStackTrace();
}
}
}
......@@ -6,6 +6,7 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.RandomUtil;
import com.liquidnet.service.adam.dto.vo.AdamUserProfileVo;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.GoblinStoreMarketDto;
......@@ -114,11 +115,14 @@ public class GoblinRedisUtils {
/**
* 保存用户头像
*/
public void setUserAvatar(String skuId, String url) {
public void setUserAvatar(String skuId) {
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);
if (urlList.size()<=2){
GoblinOrderUtils goblinOrderUtils = new GoblinOrderUtils();
AdamUserProfileVo userInfo = goblinOrderUtils.getUserInfo();
String avatar = userInfo.getUserInfo().getAvatar();
urlList.add(avatar);
redisUtil.set(GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId),urlList);
}
}
......
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