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

Commit 86de8a2b authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev_nft_411' into dev_nft_411

parents e1d8fe06 3981f9f6
...@@ -58,6 +58,7 @@ public class GoblinUserDigitalArtworkInfoVo implements Serializable, Cloneable { ...@@ -58,6 +58,7 @@ public class GoblinUserDigitalArtworkInfoVo implements Serializable, Cloneable {
// this.setEdition(); // this.setEdition();
this.setEditionSn(source.getEditionSn()); this.setEditionSn(source.getEditionSn());
this.setNftId(source.getNftId()); this.setNftId(source.getNftId());
this.setGenerateTime(source.getTradingAt());
this.setSource(source.getSource()); this.setSource(source.getSource());
this.setState(source.getState()); this.setState(source.getState());
// this.setAuthor(); // this.setAuthor();
......
...@@ -16,8 +16,8 @@ public interface IGoblinGoodsAnticipateService { ...@@ -16,8 +16,8 @@ public interface IGoblinGoodsAnticipateService {
/** /**
* 用户预约 * 用户预约
*/ */
ResponseDto<Object> userAbout(String skuId, String uid, String phone); ResponseDto<Object> userAbout(String skuId);
ResponseDto<Boolean> selectAnticipate(String skuId, String uid); ResponseDto<Boolean> selectAnticipate(String skuId);
} }
...@@ -2,8 +2,6 @@ package com.liquidnet.common.cache.redis.config; ...@@ -2,8 +2,6 @@ package com.liquidnet.common.cache.redis.config;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.RecordId; import org.springframework.data.redis.connection.stream.RecordId;
...@@ -11,7 +9,6 @@ import org.springframework.data.redis.connection.stream.StreamRecords; ...@@ -11,7 +9,6 @@ import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.data.redis.core.StreamOperations; import org.springframework.data.redis.core.StreamOperations;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.stereotype.Component;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
...@@ -49,10 +46,26 @@ public class RedisStreamConfig { ...@@ -49,10 +46,26 @@ public class RedisStreamConfig {
} }
public StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) { public StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
var options = StreamMessageListenerContainer // var options = StreamMessageListenerContainer
.StreamMessageListenerContainerOptions // .StreamMessageListenerContainerOptions
// .builder()
// .pollTimeout(Duration.ofMillis(1))
// .build();
// 创建配置对象
StreamMessageListenerContainer.StreamMessageListenerContainerOptions<String, MapRecord<String, String, String>> options = StreamMessageListenerContainer.StreamMessageListenerContainerOptions
.builder() .builder()
.pollTimeout(Duration.ofMillis(1)) // 一次性最多拉取多少条消息
.batchSize(10)
// 执行消息轮询的执行器
// .executor(this.threadPoolTaskExecutor)
// 消息消费异常的handler
.errorHandler(t -> {
// StreamListener中的异常会在这里抛出
System.out.println("errorHandler: " + t.getMessage());
})
// 超时时间,设置为0,表示不超时(超时后会抛出异常)
.pollTimeout(Duration.ZERO)
.build(); .build();
return StreamMessageListenerContainer.create(factory, options); return StreamMessageListenerContainer.create(factory, options);
} }
......
...@@ -83,11 +83,13 @@ public class TestAdam { ...@@ -83,11 +83,13 @@ public class TestAdam {
"goblin:bsc:self_g_c", "goblin:bsc:self_g_c",
"goblin:u_d_art_ids:481073045099397123024514", "goblin:u_d_art_ids:481073045099397123024514",
"goblin:u_d_art_ids:937580006703923201984419",
"goblin:u_d_art:2290182141046", "goblin:u_d_art:2290182141046",
"goblin:u_d_art_gm:481073045099397123024514" + "229813465121758731" + "1042142566635601925113326", "goblin:u_d_art_gm:481073045099397123024514" + "229813465121758731" + "1042142566635601925113326",
"goblin:u_d_art_ct:481073045099397123024514", "goblin:u_d_art_ct:481073045099397123024514",
"goblin:real_stock_sku:229811280317503513", "goblin:real_stock_sku:229811280317503513",
"goblin:nftNumAccount:926221815868989446709775", "goblin:nftNumAccount:926221815868989446709775",
"goblin:u_d_art_ub:22103172030604",
}; };
for (String key : keys) { for (String key : keys) {
long value = key.hashCode(); long value = key.hashCode();
......
...@@ -137,7 +137,7 @@ ...@@ -137,7 +137,7 @@
// // Redis记录VO // // Redis记录VO
// redisUtil.set(GoblinRedisConst.USER_DIGITAL_ARTWORK.concat(digitalArtworkVo.getArtworkId()), digitalArtworkVo); // redisUtil.set(GoblinRedisConst.USER_DIGITAL_ARTWORK.concat(digitalArtworkVo.getArtworkId()), digitalArtworkVo);
// // Redis更新藏品ID列表 // // Redis更新藏品ID列表
// this.addGoblinUserDigitalArtworkIds(uid, artworkId); // this.addGoblinUserDigitalArtworkIds(uid, artworkId, fromArtworkId);
// // Redis生成标记(缓存三天),用于上面的生成检查 // // Redis生成标记(缓存三天),用于上面的生成检查
// redisUtil.set(genMarkerKey, 1, 259200); // redisUtil.set(genMarkerKey, 1, 259200);
// //
...@@ -191,13 +191,14 @@ ...@@ -191,13 +191,14 @@
// /** // /**
// * 缓存并更新用户藏品ID集合 // * 缓存并更新用户藏品ID集合
// */ // */
// public boolean addGoblinUserDigitalArtworkIds(String uid, String artworkId) { // public boolean addGoblinUserDigitalArtworkIds(String uid, String artworkId, String boxArtworkId) {
// List<String> ids = this.getUserDigitalArtworkIdsFromRdb(uid); // List<String> ids = this.getUserDigitalArtworkIdsFromRdb(uid);
// if (CollectionUtils.isEmpty(ids)) { // if (CollectionUtils.isEmpty(ids)) {
// ids = CollectionUtil.arrayListString(); // ids = CollectionUtil.arrayListString();
// ids.add(artworkId); // ids.add(artworkId);
// } else { // } else {
// ids.add(0, artworkId); // ids.add(0, artworkId);
// if (null != boxArtworkId) ids.remove(boxArtworkId);
// int size = ids.size(); // int size = ids.size();
// if (size > 30) ids.remove(size - 1); // if (size > 30) ids.remove(size - 1);
// } // }
......
...@@ -9,8 +9,6 @@ import lombok.extern.slf4j.Slf4j; ...@@ -9,8 +9,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/** /**
* <p> * <p>
* 预约表 前端控制器 * 预约表 前端控制器
...@@ -30,16 +28,14 @@ public class GoblinGoodsAnticipateController { ...@@ -30,16 +28,14 @@ public class GoblinGoodsAnticipateController {
@ApiOperation("用户预约 (只能预约不能取消)") @ApiOperation("用户预约 (只能预约不能取消)")
@PostMapping("/userAbout") @PostMapping("/userAbout")
public ResponseDto<Object> userAbout(@RequestParam(name = "skuId", required = true) String skuId, public ResponseDto<Object> userAbout(@RequestParam(name = "skuId", required = true) String skuId) {
@RequestParam(name = "uid", required = true) String uid, return goblinGoodsAnticipateService.userAbout(skuId);
@RequestParam(name = "phone", required = true) String phone) {
return goblinGoodsAnticipateService.userAbout(skuId, uid, phone);
} }
@ApiOperation("根据skuId和uid查询") @ApiOperation("根据skuId和uid查询")
@GetMapping("/selectAnticipateBySkuIdAndUid") @GetMapping("/selectAnticipateBySkuIdAndUid")
public ResponseDto<Boolean> selectAnticipate(@RequestParam(name = "skuId") String skuId,@RequestParam(name = "uid") String uid){ public ResponseDto<Boolean> selectAnticipate(@RequestParam(name = "skuId") String skuId){
return goblinGoodsAnticipateService.selectAnticipate(skuId,uid); return goblinGoodsAnticipateService.selectAnticipate(skuId);
} }
} }
...@@ -931,6 +931,9 @@ public class GoblinStoreMgtGoodsController { ...@@ -931,6 +931,9 @@ public class GoblinStoreMgtGoodsController {
log.debug("商品管理:商品编辑:SKU编辑-数字藏品:[GoblinStoreMgtGoodsEditSkuParam={}]", JsonUtils.toJson(mgtDigitalGoodsEditSkuParam)); log.debug("商品管理:商品编辑:SKU编辑-数字藏品:[GoblinStoreMgtGoodsEditSkuParam={}]", JsonUtils.toJson(mgtDigitalGoodsEditSkuParam));
} }
if (goblinstoreMgtGoodsService.digitalGoodsEditSku(currentUid, mgtDigitalGoodsEditSkuParam, mgtGoodsInfoVo)) { if (goblinstoreMgtGoodsService.digitalGoodsEditSku(currentUid, mgtDigitalGoodsEditSkuParam, mgtGoodsInfoVo)) {
if ("0".equals(mgtGoodsSkuInfoVo.getUnbox()) && !StringUtils.equals(mgtDigitalGoodsEditSkuParam.getSkuAppear(), mgtGoodsSkuInfoVo.getSkuAppear())) {
goblinRedisUtils.delGoblinNftGoodsInfoListVo();
}
mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(paramSkuId); mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(paramSkuId);
mgtGoodsSkuInfoVo.setSurplusStock(goblinRedisUtils.getSkuStock(null, paramSkuId)); mgtGoodsSkuInfoVo.setSurplusStock(goblinRedisUtils.getSkuStock(null, paramSkuId));
return ResponseDto.success(mgtGoodsSkuInfoVo); return ResponseDto.success(mgtGoodsSkuInfoVo);
......
package com.liquidnet.service.goblin.service.impl; 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.CollectionUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateAddParam;
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.manage.vo.GoblinGoodsAnticipateValueVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodAnticipateUserVo; 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.service.IGoblinGoodsAnticipateService;
import com.liquidnet.service.goblin.service.manage.IGoblinGoodsAnticipateMgService; import com.liquidnet.service.goblin.util.GoblinAnticipateUtils;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
import com.liquidnet.service.goblin.util.GoblinRedisUtils; import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.QueueUtils; import com.liquidnet.service.goblin.util.QueueUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigInteger;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List;
/** /**
* <p> * <p>
...@@ -50,7 +38,7 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS ...@@ -50,7 +38,7 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
QueueUtils queueUtils; QueueUtils queueUtils;
@Override @Override
public ResponseDto<Object> userAbout(String skuId, String uid, String phone) { public ResponseDto<Object> userAbout(String skuId) {
//查询该skuId是否能被预约 //查询该skuId是否能被预约
GoblinGoodsAnticipateValueVo anticipateValueVo = goblinRedisUtils.getValueBySkuId(skuId); GoblinGoodsAnticipateValueVo anticipateValueVo = goblinRedisUtils.getValueBySkuId(skuId);
if (anticipateValueVo != null) { if (anticipateValueVo != null) {
...@@ -58,29 +46,34 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS ...@@ -58,29 +46,34 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
if (!anticipateValueVo.getState().equals(1)) { if (!anticipateValueVo.getState().equals(1)) {
return ResponseDto.failure("该商品预约尚未开始或已经结束,不可预约!"); return ResponseDto.failure("该商品预约尚未开始或已经结束,不可预约!");
} }
GoblinAnticipateUtils goblinAnticipateUtils = new GoblinAnticipateUtils();
AdamUserInfoVo userInfo = goblinAnticipateUtils.getUserInfo();
if (userInfo==null){
return ResponseDto.failure("登陆信息有误");
}
//查询该用户是否预 //查询该用户是否预
GoblinGoodAnticipateUserVo userVo = goblinRedisUtils.getUserAboutAut(skuId, uid); GoblinGoodAnticipateUserVo userVo = goblinRedisUtils.getUserAboutAut(skuId, userInfo.getUid());
LinkedList<Object[]> sqlValue = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> sqlValue = CollectionUtil.linkedListObjectArr();
if (userVo == null) { if (userVo == null) {
GoblinGoodAnticipateUserVo user = new GoblinGoodAnticipateUserVo(); GoblinGoodAnticipateUserVo user = new GoblinGoodAnticipateUserVo();
user.setUid(uid); user.setUid(userInfo.getUid());
user.setSkuId(skuId); user.setSkuId(skuId);
user.setPhone(phone); user.setPhone(userInfo.getMobile());
user.setState(0); user.setState(0);
//mongodb记录 //mongodb记录
goblinRedisUtils.setUserAboutSku(user); goblinRedisUtils.setUserAboutSku(user);
//用户没有预约过 //用户没有预约过
//发送redis消息修改mysql记录用户预约 //发送redis消息修改mysql记录用户预约
sqlValue.add(new Object[]{ sqlValue.add(new Object[]{
uid, user.getUid(),
skuId, skuId,
phone, user.getPhone(),
0 0
}); });
sendRedis("goblin_goods_anticipate_user", sqlValue); sendRedis("goblin_goods_anticipate_user", sqlValue);
goblinRedisUtils.setSkuIdPeople(skuId); goblinRedisUtils.setSkuIdPeople(skuId);
//储存用户头像 //储存用户头像
userAvatar(skuId); goblinRedisUtils.setUserAvatar(skuId,userInfo.getAvatar());
} }
return ResponseDto.success(); return ResponseDto.success();
} }
...@@ -88,8 +81,13 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS ...@@ -88,8 +81,13 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
} }
@Override @Override
public ResponseDto<Boolean> selectAnticipate(String skuId, String uid) { public ResponseDto<Boolean> selectAnticipate(String skuId) {
return ResponseDto.success(goblinRedisUtils.getUserAboutAut(skuId, uid) != null) ; GoblinAnticipateUtils goblinAnticipateUtils = new GoblinAnticipateUtils();
AdamUserInfoVo userInfo = goblinAnticipateUtils.getUserInfo();
if (userInfo == null){
return ResponseDto.failure("登陆信息有误!");
}
return ResponseDto.success(goblinRedisUtils.getUserAboutAut(skuId,userInfo.getUid()) != null) ;
} }
private Integer setState(LocalDateTime startDate, LocalDateTime endDate) { private Integer setState(LocalDateTime startDate, LocalDateTime endDate) {
...@@ -111,11 +109,6 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS ...@@ -111,11 +109,6 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
return null; return null;
} }
private void userAvatar(String skuId) {
//获取
goblinRedisUtils.setUserAvatar(skuId);
}
public void sendRedis(String sqlKey, LinkedList<Object[]> sqlData) { public void sendRedis(String sqlKey, LinkedList<Object[]> sqlData) {
LinkedList<String> sql = CollectionUtil.linkedListString(); LinkedList<String> sql = CollectionUtil.linkedListString();
sql.add(SqlMapping.get(sqlKey)); sql.add(SqlMapping.get(sqlKey));
......
...@@ -114,7 +114,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -114,7 +114,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
artworkInfoVo.setAuthor(goodsInfoVo.getAuthor()); artworkInfoVo.setAuthor(goodsInfoVo.getAuthor());
artworkInfoVo.setPublisher(goodsInfoVo.getPublisher()); artworkInfoVo.setPublisher(goodsInfoVo.getPublisher());
artworkInfoVo.setDetails(goodsSkuInfoVo.getDetails()); artworkInfoVo.setDetails(goodsSkuInfoVo.getDetails());
artworkInfoVo.setGenerateTime(goodsSkuInfoVo.getDeclareAt()); // artworkInfoVo.setGenerateTime(goodsSkuInfoVo.getDeclareAt());
return artworkInfoVo; return artworkInfoVo;
} }
...@@ -215,7 +215,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -215,7 +215,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
// Redis记录VO // Redis记录VO
goblinRedisUtils.setUserDigitalArtworkVo(initUserDigitalArtworkVo); goblinRedisUtils.setUserDigitalArtworkVo(initUserDigitalArtworkVo);
// Redis更新藏品ID列表 // Redis更新藏品ID列表
goblinRedisUtils.addUserDigitalArtworkIds(uid, artworkId); goblinRedisUtils.addUserDigitalArtworkIdsForUnbox(uid, artworkId, userDigitalArtworkBoxVo.getArtworkId());
// // Redis生成标记(缓存三天),用于上面的生成检查 // // Redis生成标记(缓存三天),用于上面的生成检查
// goblinRedisUtils.markGenUserDigitalArtwork(uid, skuId, orderId); // goblinRedisUtils.markGenUserDigitalArtwork(uid, skuId, orderId);
...@@ -234,6 +234,8 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -234,6 +234,8 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
LinkedList<Object[]> updateBoxArtworkObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateBoxArtworkObjs = CollectionUtil.linkedListObjectArr();
updateBoxArtworkObjs.add(new Object[]{now, now, now, userDigitalArtworkBoxVo.getArtworkId()}); updateBoxArtworkObjs.add(new Object[]{now, now, now, userDigitalArtworkBoxVo.getArtworkId()});
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_ARTWORK_GEN.getKey(), SqlMapping.gets(toMqSqls, initUserDigitalArtworkObjs, updateBoxArtworkObjs)); queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_ARTWORK_GEN.getKey(), SqlMapping.gets(toMqSqls, initUserDigitalArtworkObjs, updateBoxArtworkObjs));
return unboxDigitalArtworkListVo;
} }
return null; return null;
} }
......
...@@ -243,11 +243,6 @@ public class GoblinGoodsAnticipateMgServiceImpl implements IGoblinGoodsAnticipat ...@@ -243,11 +243,6 @@ public class GoblinGoodsAnticipateMgServiceImpl implements IGoblinGoodsAnticipat
return valueVo; return valueVo;
} }
private void userAvatar(String skuId) {
//获取
goblinRedisUtils.setUserAvatar(skuId);
}
public void sendRedis(String sqlKey, LinkedList<Object[]> sqlData) { public void sendRedis(String sqlKey, LinkedList<Object[]> sqlData) {
LinkedList<String> sql = CollectionUtil.linkedListString(); LinkedList<String> sql = CollectionUtil.linkedListString();
sql.add(SqlMapping.get(sqlKey)); sql.add(SqlMapping.get(sqlKey));
......
...@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil; ...@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.HttpUtil; import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserProfileVo; import com.liquidnet.service.adam.dto.vo.AdamUserProfileVo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -24,22 +25,24 @@ public class GoblinAnticipateUtils { ...@@ -24,22 +25,24 @@ public class GoblinAnticipateUtils {
private final String avatar = ""; private final String avatar = "";
public String getUserInfo() { public AdamUserInfoVo getUserInfo() {
try { try {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString(); MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Authorization", "Bearer " + CurrentUtil.getToken()); header.add("Authorization", "Bearer " + CurrentUtil.getToken());
header.add("Accept", "application/json;charset=UTF-8"); header.add("Accept", "application/json;charset=UTF-8");
String returnData = HttpUtil.post(adamUrl + " /adam/user/info", header); String returnData = HttpUtil.post(adamUrl+"/adam/user/info",null, header);
ResponseDto<AdamUserProfileVo> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<AdamUserProfileVo>>() { ResponseDto<AdamUserProfileVo> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<AdamUserProfileVo>>() {
}); });
if (innerReturnVo.getData()!=null){ if (innerReturnVo.getData()!=null){
return innerReturnVo.getData().getUserInfo().getAvatar(); return innerReturnVo.getData().getUserInfo();
} }
return avatar; log.info("post url:{}<----->Authorization:{}",adamUrl+" /adam/user/info",CurrentUtil.getToken());
return null;
} catch (Exception e) { } catch (Exception e) {
log.info("post url:{}<----->Authorization:{}",adamUrl+" /adam/user/info",CurrentUtil.getToken());
log.error("获取用户头像失败", e); log.error("获取用户头像失败", e);
return avatar; return null;
} }
} }
} }
...@@ -124,12 +124,11 @@ public class GoblinRedisUtils { ...@@ -124,12 +124,11 @@ public class GoblinRedisUtils {
/** /**
* 保存用户头像 * 保存用户头像
*/ */
public void setUserAvatar(String skuId) { public void setUserAvatar(String skuId,String avatar) {
List<String> list = (List) redisUtil.get(GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId)); List<String> list = (List) redisUtil.get(GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId));
List<String> urlList = list != null ? list : new ArrayList<String>(); List<String> urlList = list != null ? list : new ArrayList<String>();
if (urlList.size()<=2){ if (urlList.size()<=2){
GoblinAnticipateUtils goblinAnticipateUtils = new GoblinAnticipateUtils(); urlList.add(avatar);
urlList.add(goblinAnticipateUtils.getUserInfo());
redisUtil.set(GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId),urlList); redisUtil.set(GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId),urlList);
} }
} }
...@@ -1598,16 +1597,33 @@ public class GoblinRedisUtils { ...@@ -1598,16 +1597,33 @@ public class GoblinRedisUtils {
return redisUtil.hasKey(GoblinRedisConst.USER_DIGITAL_ARTWORK_GENMARK.concat(uid).concat(skuId).concat(orderId)); return redisUtil.hasKey(GoblinRedisConst.USER_DIGITAL_ARTWORK_GENMARK.concat(uid).concat(skuId).concat(orderId));
} }
// /**
// * 缓存并更新用户藏品ID集合
// */
// public boolean addUserDigitalArtworkIds(String uid, String artworkId) {
// List<String> ids = this.getUserDigitalArtworkIds(uid);
// if (CollectionUtils.isEmpty(ids)) {
// ids = CollectionUtil.arrayListString();
// ids.add(artworkId);
// } else {
// ids.add(0, artworkId);
// int size = ids.size();
// if (size > 30) ids.remove(size - 1);
// }
// return redisUtil.set(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS.concat(uid), ids);
// }
/** /**
* 缓存并更新用户藏品ID集合 * 开启盲盒:缓存并更新用户藏品ID集合
*/ */
public boolean addUserDigitalArtworkIds(String uid, String artworkId) { public boolean addUserDigitalArtworkIdsForUnbox(String uid, String artworkId, String boxArtworkId) {
List<String> ids = this.getUserDigitalArtworkIds(uid); List<String> ids = this.getUserDigitalArtworkIds(uid);
if (CollectionUtils.isEmpty(ids)) { if (CollectionUtils.isEmpty(ids)) {
ids = CollectionUtil.arrayListString(); ids = CollectionUtil.arrayListString();
ids.add(artworkId); ids.add(artworkId);
} else { } else {
ids.add(0, artworkId); ids.add(0, artworkId);
ids.remove(boxArtworkId);
int size = ids.size(); int size = ids.size();
if (size > 30) ids.remove(size - 1); if (size > 30) ids.remove(size - 1);
} }
......
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