|
@@ -1060,13 +1060,15 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
|
|
|
|
|
@Override
|
|
|
public List<UserGoodsListVo> getUserGoodsList(UserGoodsListBo bo) {
|
|
|
- if (Validator.isEmpty(bo.getTelphone())) {
|
|
|
- throw new CustomException("参数错误");
|
|
|
+ List<User> users = null;
|
|
|
+ if (StringUtils.isNotBlank(bo.getIdNum())){
|
|
|
+ users = iUserService.getUserByIdNumNotTenant(bo.getIdNum());
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(users)){
|
|
|
+ users = iUserService.getUserByTelNotTenant(bo.getTelphone());
|
|
|
}
|
|
|
-
|
|
|
- List<User> users = iUserService.getUserByTelNotTenant(bo.getTelphone());
|
|
|
if (CollectionUtils.isEmpty(users)) {
|
|
|
- throw new CustomException("通过手机号获取用户信息失败");
|
|
|
+ throw new CustomException("用户信息获取有误:"+JSONObject.toJSONString(bo));
|
|
|
}
|
|
|
//获取用户订单商品信息
|
|
|
List<UserGoodsListVo> voList = new ArrayList<>();
|
|
@@ -1079,9 +1081,12 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
|
|
|
- String nowTime = DateUtils.getNowTime().toString()+ToolsUtils.getCharAndNumr(4);
|
|
|
- voList.forEach(goodsVo -> {
|
|
|
+// String nowTime = DateUtils.getNowTime().toString()+ToolsUtils.getCharAndNumr(4);
|
|
|
+ for (UserGoodsListVo goodsVo : voList) {
|
|
|
User user = users.stream().filter(x -> x.getTenantId().equals(goodsVo.getTenantId())).findFirst().orElse(null);
|
|
|
+ Long tenantId = goodsVo.getTenantId();
|
|
|
+ //缓存用户信息key
|
|
|
+ String key = String.format("KQTZ%s",user.getUserId());
|
|
|
//已学和未学
|
|
|
Long secLong = 0L;
|
|
|
Long studyLong = 0L;
|
|
@@ -1091,7 +1096,6 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
|
|
subjectStudyRecordQueryBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
|
|
|
subjectStudyRecordQueryBo.setGradeId(goodsVo.getGradeId());
|
|
|
subjectStudyRecordQueryBo.setTenantId(goodsVo.getTenantId());
|
|
|
- Long tenantId = goodsVo.getTenantId();
|
|
|
List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubjectTenant(subjectStudyRecordQueryBo);
|
|
|
for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
|
|
|
secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
|
|
@@ -1133,24 +1137,24 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
|
|
}
|
|
|
if (goodsVo.getCourseType() == 2) {
|
|
|
//题库
|
|
|
- goodsVo.setToWeAppPagePath("/pages/questionBank/index?skipPort="+nowTime);
|
|
|
+ goodsVo.setToWeAppPagePath("/pages/questionBank/index?skipPort="+key);
|
|
|
} else if (goodsVo.getCourseType() == 6) {
|
|
|
//直播
|
|
|
goodsVo.setToWeAppPagePath(String.format("/pages3/live/detail?orderGoodsId=%s&goodsId=%s&gradeId=0&courseId=%s&skipPort=%s",
|
|
|
- goodsVo.getOrderGoodsId(), goodsVo.getGoodsId(), goodsVo.getCourseId(),nowTime));
|
|
|
+ goodsVo.getOrderGoodsId(), goodsVo.getGoodsId(), goodsVo.getCourseId(),key));
|
|
|
} else {
|
|
|
//视频
|
|
|
goodsVo.setToWeAppPagePath(String.format("/pages3/polyv/detail?id=%s&goodsId=%s&orderGoodsId=%s&gradeId=%s&skipPort=%s",
|
|
|
- goodsVo.getCourseId(), goodsVo.getGoodsId(), goodsVo.getOrderGoodsId(), goodsVo.getGradeId(),nowTime));
|
|
|
+ goodsVo.getCourseId(), goodsVo.getGoodsId(), goodsVo.getOrderGoodsId(), goodsVo.getGradeId(),key));
|
|
|
}
|
|
|
UserPhoneBo phoneBo = new UserPhoneBo();
|
|
|
phoneBo.setTelphone(bo.getTelphone());
|
|
|
phoneBo.setTenantId(tenantId);
|
|
|
phoneBo.setIdNum(bo.getIdNum());
|
|
|
- //缓存用户手机号码 30分钟失效
|
|
|
- redisCache.setCacheObjectTenant(tenantId+":"+nowTime, JSONObject.toJSONString(phoneBo), 30, TimeUnit.MINUTES);
|
|
|
|
|
|
- });
|
|
|
+ //缓存用户信息
|
|
|
+ redisCache.setCacheObjectTenant(tenantId+":"+key, JSONObject.toJSONString(phoneBo), 12, TimeUnit.HOURS);
|
|
|
+ }
|
|
|
return voList;
|
|
|
}
|
|
|
|
|
@@ -1253,12 +1257,14 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
|
|
if (ObjectUtils.isNull(goods)) {
|
|
|
throw new CustomException("商品不存在!");
|
|
|
}
|
|
|
- User user;
|
|
|
+ User user = null;
|
|
|
if (StringUtils.isNotBlank(bo.getIdNum())){
|
|
|
user = iUserService.queryUserByIdNumTenant(bo.getIdNum(), bo.getTenantId());
|
|
|
- }else {
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNull(user)){
|
|
|
user = iUserService.queryUserByTelphoneTenant(bo.getTelphone(), bo.getTenantId());
|
|
|
}
|
|
|
+
|
|
|
if (ObjectUtils.isNull(user)) {
|
|
|
throw new CustomException("用户不存在!");
|
|
|
}
|
|
@@ -1267,38 +1273,39 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
|
|
if (ObjectUtils.isNull(vo)) {
|
|
|
throw new CustomException("用户没有购买该商品!");
|
|
|
}
|
|
|
+ //缓存用户信息key
|
|
|
+ String key = String.format("KQTZ%s",user.getUserId());
|
|
|
//商品课程
|
|
|
Long courseId = 0L;
|
|
|
List<Long> courseIds = iGoodsCourseService.getCourseIdsByGoodsAndTenant(bo.getGoodsId(), bo.getTenantId());
|
|
|
if (CollectionUtils.isNotEmpty(courseIds) && courseIds.size() == 1) {
|
|
|
courseId = courseIds.get(0);
|
|
|
}
|
|
|
- String nowTime = DateUtils.getNowTime().toString()+ToolsUtils.getCharAndNumr(4);
|
|
|
if (bo.getSkipPort() == 1) {
|
|
|
//PC端
|
|
|
if (goods.getGoodsType() == 2) {
|
|
|
//题库
|
|
|
- url = String.format("%sperson-center/my-bank/index?goodsId=%s&skipPort=%s", domain, vo.getGoodsId(), nowTime);
|
|
|
+ url = String.format("%sperson-center/my-bank/index?goodsId=%s&skipPort=%s", domain, vo.getGoodsId(), key);
|
|
|
} else if (goods.getGoodsType() == 6) {
|
|
|
//直播
|
|
|
- url = String.format("%sperson-center/my-live?goodsId=%s&skipPort=%s", domain, vo.getGoodsId(), nowTime);
|
|
|
+ url = String.format("%sperson-center/my-live?goodsId=%s&skipPort=%s", domain, vo.getGoodsId(), key);
|
|
|
} else {
|
|
|
//视频
|
|
|
- url = String.format("%smy-course-detail/%s?gradeId=%s&orderGoodsId=%s&skipPort=%s", domain, vo.getGoodsId(), vo.getGradeId(), vo.getOrderGoodsId(), nowTime);
|
|
|
+ url = String.format("%smy-course-detail/%s?gradeId=%s&orderGoodsId=%s&skipPort=%s", domain, vo.getGoodsId(), vo.getGradeId(), vo.getOrderGoodsId(), key);
|
|
|
}
|
|
|
} else {
|
|
|
//H5
|
|
|
if (goods.getGoodsType() == 2) {
|
|
|
//题库
|
|
|
- url = String.format("%s/pages/questionBank/index?skipPort=%s", domainH5, nowTime);
|
|
|
+ url = String.format("%s/pages/questionBank/index?skipPort=%s", domainH5, key);
|
|
|
} else if (goods.getGoodsType() == 6) {
|
|
|
//直播
|
|
|
url = String.format("%s/pages3/live/detail?orderGoodsId=%s&goodsId=%s&gradeId=0&courseId=%s&skipPort=%s",
|
|
|
- domainH5, vo.getOrderGoodsId(), vo.getGoodsId(), courseId, nowTime);
|
|
|
+ domainH5, vo.getOrderGoodsId(), vo.getGoodsId(), courseId, key);
|
|
|
} else {
|
|
|
//视频
|
|
|
url = String.format("%s/pages3/polyv/detail?id=%s&goodsId=%s&orderGoodsId=%s&gradeId=%s&skipPort=%s",
|
|
|
- domainH5, courseId, vo.getGoodsId(), vo.getOrderGoodsId(), vo.getGradeId(), nowTime);
|
|
|
+ domainH5, courseId, vo.getGoodsId(), vo.getOrderGoodsId(), vo.getGradeId(), key);
|
|
|
}
|
|
|
}
|
|
|
UserPhoneBo phoneBo = new UserPhoneBo();
|
|
@@ -1306,8 +1313,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
|
|
phoneBo.setTenantId(bo.getTenantId());
|
|
|
phoneBo.setIdNum(bo.getIdNum());
|
|
|
log.info(String.format("旧系统获取商品学习中心路径:%s(url),%s(tenantId)",url,bo.getTenantId()));
|
|
|
- //缓存用户手机号码 30分钟失效
|
|
|
- redisCache.setCacheObjectTenant(bo.getTenantId()+":"+nowTime, JSONObject.toJSONString(phoneBo), 30, TimeUnit.MINUTES);
|
|
|
+
|
|
|
+ //缓存用户信息
|
|
|
+ redisCache.setCacheObjectTenant(bo.getTenantId()+":"+key, JSONObject.toJSONString(phoneBo), 12, TimeUnit.HOURS);
|
|
|
return url;
|
|
|
}
|
|
|
|