|
@@ -1,14 +1,16 @@
|
|
package com.txz.mall.service.impl;
|
|
package com.txz.mall.service.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
-import com.github.pagehelper.PageHelper;
|
|
|
|
|
|
+import com.txz.cif.dto.UserDTO;
|
|
import com.txz.cif.param.AccomplishParam;
|
|
import com.txz.cif.param.AccomplishParam;
|
|
import com.txz.mall.core.AbstractService;
|
|
import com.txz.mall.core.AbstractService;
|
|
import com.txz.mall.core.ServiceException;
|
|
import com.txz.mall.core.ServiceException;
|
|
import com.txz.mall.dao.StorePinkMapper;
|
|
import com.txz.mall.dao.StorePinkMapper;
|
|
-import com.txz.mall.dubbo.client.CifAccountDubboServiceClient;
|
|
|
|
|
|
+import com.txz.mall.dubbo.client.CifUserDubboServiceClient;
|
|
import com.txz.mall.enums.PinkOrderStatusEnum;
|
|
import com.txz.mall.enums.PinkOrderStatusEnum;
|
|
import com.txz.mall.model.StoreOrder;
|
|
import com.txz.mall.model.StoreOrder;
|
|
import com.txz.mall.model.StorePink;
|
|
import com.txz.mall.model.StorePink;
|
|
@@ -16,9 +18,10 @@ import com.txz.mall.model.StorePinkSummary;
|
|
import com.txz.mall.service.StorePinkService;
|
|
import com.txz.mall.service.StorePinkService;
|
|
import com.txz.mall.service.StorePinkSummaryService;
|
|
import com.txz.mall.service.StorePinkSummaryService;
|
|
import com.txz.mall.util.RandomUtil;
|
|
import com.txz.mall.util.RandomUtil;
|
|
|
|
+import com.txz.mall.web.vo.ProductCarouselVO;
|
|
|
|
+import dto.ProductCarouselDTO;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
-import org.springframework.transaction.annotation.Propagation;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import tk.mybatis.mapper.entity.Condition;
|
|
import tk.mybatis.mapper.entity.Condition;
|
|
import tk.mybatis.mapper.entity.Example;
|
|
import tk.mybatis.mapper.entity.Example;
|
|
@@ -36,16 +39,14 @@ import java.util.stream.Collectors;
|
|
@Transactional
|
|
@Transactional
|
|
@Slf4j
|
|
@Slf4j
|
|
public class StorePinkServiceImpl extends AbstractService<StorePink> implements StorePinkService {
|
|
public class StorePinkServiceImpl extends AbstractService<StorePink> implements StorePinkService {
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
private StorePinkMapper storePinkMapper;
|
|
private StorePinkMapper storePinkMapper;
|
|
-
|
|
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
- private CifAccountDubboServiceClient accountDubboServiceClient;
|
|
|
|
-
|
|
|
|
|
|
+ private CifUserDubboServiceClient userDubboServiceClient;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public List<StorePink> getListByCidAndKid(Long cid, Long kid) {
|
|
public List<StorePink> getListByCidAndKid(Long cid, Long kid) {
|
|
Condition condition = new Condition(StorePink.class);
|
|
Condition condition = new Condition(StorePink.class);
|
|
@@ -56,18 +57,17 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
|
|
condition.setOrderByClause("id DESC");
|
|
condition.setOrderByClause("id DESC");
|
|
return findByCondition(condition);
|
|
return findByCondition(condition);
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
private StorePinkSummaryService storePinkSummaryService;
|
|
private StorePinkSummaryService storePinkSummaryService;
|
|
-
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
public void pinkSuccess(Long id, StoreOrder storeOrder) {
|
|
public void pinkSuccess(Long id, StoreOrder storeOrder) {
|
|
-
|
|
|
|
-
|
|
|
|
- //现在这个方法每次支付的时候都会执行一次
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 现在这个方法每次支付的时候都会执行一次
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
if (ObjectUtil.isNull(id)) {
|
|
if (ObjectUtil.isNull(id)) {
|
|
return;
|
|
return;
|
|
@@ -79,86 +79,85 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
|
|
storePink2.setStatus(2);
|
|
storePink2.setStatus(2);
|
|
storePink2.setStopTime(date);
|
|
storePink2.setStopTime(date);
|
|
storePink2.setOrderStatus(PinkOrderStatusEnum.GROUP_ORDER_PAID.getKey());
|
|
storePink2.setOrderStatus(PinkOrderStatusEnum.GROUP_ORDER_PAID.getKey());
|
|
- log.info("storePink2:"+storePink2);
|
|
|
|
|
|
+ log.info("storePink2:" + storePink2);
|
|
update(storePink2);
|
|
update(storePink2);
|
|
memberList.add(teamPink);
|
|
memberList.add(teamPink);
|
|
-// memberList.forEach(i -> {
|
|
|
|
-// i.setStatus(2);
|
|
|
|
-// i.setStopTime(date);
|
|
|
|
-// update(i);
|
|
|
|
-// });
|
|
|
|
-
|
|
|
|
- //理论上在支付环节调用的时候不会出现拼团人数校验异常,所以这块调用这个方法的目的在于维护成团状态。 如果支付环节抛出了
|
|
|
|
- //拼团校验异常则证明在 add时就有问题,没有挡住异常的拼团数据
|
|
|
|
|
|
+ // memberList.forEach(i -> {
|
|
|
|
+ // i.setStatus(2);
|
|
|
|
+ // i.setStopTime(date);
|
|
|
|
+ // update(i);
|
|
|
|
+ // });
|
|
|
|
+
|
|
|
|
+ // 理论上在支付环节调用的时候不会出现拼团人数校验异常,所以这块调用这个方法的目的在于维护成团状态。 如果支付环节抛出了
|
|
|
|
+ // 拼团校验异常则证明在 add时就有问题,没有挡住异常的拼团数据
|
|
Boolean b = storePinkSummaryService.maintainQuantityStatusOfTheStorePinkSummary(teamPink.getSpsId());
|
|
Boolean b = storePinkSummaryService.maintainQuantityStatusOfTheStorePinkSummary(teamPink.getSpsId());
|
|
- if(b){
|
|
|
|
- // 算出天选
|
|
|
|
- theSelection(teamPink.getSpsId());
|
|
|
|
-
|
|
|
|
- Condition condition = new Condition(StorePink.class);
|
|
|
|
- Example.Criteria criteria = condition.createCriteria();
|
|
|
|
- criteria.andEqualTo("isDelete", 0);
|
|
|
|
- criteria.andEqualTo("orderId", teamPink.getOrderId());
|
|
|
|
- criteria.andEqualTo("lId", 0);
|
|
|
|
- List<StorePink> pinkList = findByCondition(condition);
|
|
|
|
-
|
|
|
|
- //非天选之子给他退款
|
|
|
|
- AccomplishParam param = new AccomplishParam();
|
|
|
|
- param.setBizNo(teamPink.getOrderId());
|
|
|
|
- param.setBizId(teamPink.getId().toString());
|
|
|
|
- param.setUserIds(pinkList.stream().map(StorePink::getUid).collect(Collectors.toList()));
|
|
|
|
- param.setAmount(teamPink.getPrice());
|
|
|
|
- param.setTransTime(date);
|
|
|
|
- // accountDubboServiceClient.accomplishGroup(param);
|
|
|
|
|
|
+ if (b) {
|
|
|
|
+ // 算出天选
|
|
|
|
+ theSelection(teamPink.getSpsId());
|
|
|
|
+
|
|
|
|
+ Condition condition = new Condition(StorePink.class);
|
|
|
|
+ Example.Criteria criteria = condition.createCriteria();
|
|
|
|
+ criteria.andEqualTo("isDelete", 0);
|
|
|
|
+ criteria.andEqualTo("orderId", teamPink.getOrderId());
|
|
|
|
+ criteria.andEqualTo("lId", 0);
|
|
|
|
+ List<StorePink> pinkList = findByCondition(condition);
|
|
|
|
+
|
|
|
|
+ // 非天选之子给他退款
|
|
|
|
+ AccomplishParam param = new AccomplishParam();
|
|
|
|
+ param.setBizNo(teamPink.getOrderId());
|
|
|
|
+ param.setBizId(teamPink.getId().toString());
|
|
|
|
+ param.setUserIds(pinkList.stream().map(StorePink::getUid).collect(Collectors.toList()));
|
|
|
|
+ param.setAmount(teamPink.getPrice());
|
|
|
|
+ param.setTransTime(date);
|
|
|
|
+ // accountDubboServiceClient.accomplishGroup(param);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
-// @Override
|
|
|
|
-// public void theSelection(String orderId) {
|
|
|
|
-// // 假设只有1个用户是天选
|
|
|
|
-// long luckNum = 1;
|
|
|
|
-//
|
|
|
|
-// Condition condition = new Condition(StorePink.class);
|
|
|
|
-// Example.Criteria criteria = condition.createCriteria();
|
|
|
|
-// criteria.andEqualTo("isDelete", 0);
|
|
|
|
-// criteria.andEqualTo("orderId", orderId);
|
|
|
|
-// // 排除团长
|
|
|
|
-//// criteria.andEqualTo("kId", 1);
|
|
|
|
-// // 支付成功的
|
|
|
|
-//
|
|
|
|
-// criteria.andEqualTo("status", 1);
|
|
|
|
-// List<StorePink> list = findByCondition(condition);
|
|
|
|
-// if (CollUtil.isEmpty(list)) {
|
|
|
|
-// throw new ServiceException("没有拼团订单");
|
|
|
|
-// }
|
|
|
|
-// long count = list.stream().filter(i -> i.getLId().equals(1)).count();
|
|
|
|
-// if (count >= luckNum) {
|
|
|
|
-// throw new ServiceException("已有天选");
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// List<Long> idCollect = list.stream().map(StorePink::getId).collect(Collectors.toList());
|
|
|
|
-// List<Long> randomIds = RandomUtil.uniqueRandom(idCollect, (int) luckNum);
|
|
|
|
-//
|
|
|
|
-// randomIds.forEach(i -> {
|
|
|
|
-// StorePink luckPink = new StorePink();
|
|
|
|
-// luckPink.setId(i);
|
|
|
|
-// luckPink.setLId(1);
|
|
|
|
-// update(luckPink);
|
|
|
|
-// });
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ // @Override
|
|
|
|
+ // public void theSelection(String orderId) {
|
|
|
|
+ // // 假设只有1个用户是天选
|
|
|
|
+ // long luckNum = 1;
|
|
|
|
+ //
|
|
|
|
+ // Condition condition = new Condition(StorePink.class);
|
|
|
|
+ // Example.Criteria criteria = condition.createCriteria();
|
|
|
|
+ // criteria.andEqualTo("isDelete", 0);
|
|
|
|
+ // criteria.andEqualTo("orderId", orderId);
|
|
|
|
+ // // 排除团长
|
|
|
|
+
|
|
|
|
+ /// / criteria.andEqualTo("kId", 1);
|
|
|
|
+ // // 支付成功的
|
|
|
|
+ //
|
|
|
|
+ // criteria.andEqualTo("status", 1);
|
|
|
|
+ // List<StorePink> list = findByCondition(condition);
|
|
|
|
+ // if (CollUtil.isEmpty(list)) {
|
|
|
|
+ // throw new ServiceException("没有拼团订单");
|
|
|
|
+ // }
|
|
|
|
+ // long count = list.stream().filter(i -> i.getLId().equals(1)).count();
|
|
|
|
+ // if (count >= luckNum) {
|
|
|
|
+ // throw new ServiceException("已有天选");
|
|
|
|
+ // }
|
|
|
|
+ //
|
|
|
|
+ // List<Long> idCollect = list.stream().map(StorePink::getId).collect(Collectors.toList());
|
|
|
|
+ // List<Long> randomIds = RandomUtil.uniqueRandom(idCollect, (int) luckNum);
|
|
|
|
+ //
|
|
|
|
+ // randomIds.forEach(i -> {
|
|
|
|
+ // StorePink luckPink = new StorePink();
|
|
|
|
+ // luckPink.setId(i);
|
|
|
|
+ // luckPink.setLId(1);
|
|
|
|
+ // update(luckPink);
|
|
|
|
+ // });
|
|
|
|
+ // }
|
|
@Override
|
|
@Override
|
|
public void theSelection(Long spsId) {
|
|
public void theSelection(Long spsId) {
|
|
// 假设只有1个用户是天选
|
|
// 假设只有1个用户是天选
|
|
long luckNum = 1;
|
|
long luckNum = 1;
|
|
-
|
|
|
|
|
|
+
|
|
Condition condition = new Condition(StorePink.class);
|
|
Condition condition = new Condition(StorePink.class);
|
|
Example.Criteria criteria = condition.createCriteria();
|
|
Example.Criteria criteria = condition.createCriteria();
|
|
criteria.andEqualTo("isDelete", 0);
|
|
criteria.andEqualTo("isDelete", 0);
|
|
criteria.andEqualTo("spsId", spsId);
|
|
criteria.andEqualTo("spsId", spsId);
|
|
// 排除团长
|
|
// 排除团长
|
|
-// criteria.andEqualTo("kId", 1);
|
|
|
|
|
|
+ // criteria.andEqualTo("kId", 1);
|
|
// 支付成功的
|
|
// 支付成功的
|
|
criteria.andEqualTo("status", 2);
|
|
criteria.andEqualTo("status", 2);
|
|
List<StorePink> list = findByCondition(condition);
|
|
List<StorePink> list = findByCondition(condition);
|
|
@@ -169,10 +168,10 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
|
|
if (count >= luckNum) {
|
|
if (count >= luckNum) {
|
|
throw new ServiceException("已有天选");
|
|
throw new ServiceException("已有天选");
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
List<Long> idCollect = list.stream().map(StorePink::getId).collect(Collectors.toList());
|
|
List<Long> idCollect = list.stream().map(StorePink::getId).collect(Collectors.toList());
|
|
List<Long> randomIds = RandomUtil.uniqueRandom(idCollect, (int) luckNum);
|
|
List<Long> randomIds = RandomUtil.uniqueRandom(idCollect, (int) luckNum);
|
|
-
|
|
|
|
|
|
+
|
|
randomIds.forEach(i -> {
|
|
randomIds.forEach(i -> {
|
|
StorePink luckPink = new StorePink();
|
|
StorePink luckPink = new StorePink();
|
|
luckPink.setId(i);
|
|
luckPink.setId(i);
|
|
@@ -180,13 +179,12 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
|
|
update(luckPink);
|
|
update(luckPink);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public List<StorePinkOngoingVO> ongoingList(StorePink storePink) {
|
|
public List<StorePinkOngoingVO> ongoingList(StorePink storePink) {
|
|
-
|
|
|
|
- // PageHelper.startPage(1, 3);
|
|
|
|
|
|
+
|
|
|
|
+ // PageHelper.startPage(1, 3);
|
|
List<StorePinkOngoingVO> list = new ArrayList<>();
|
|
List<StorePinkOngoingVO> list = new ArrayList<>();
|
|
Condition storePinkSummarycondition = new Condition(StorePinkSummary.class);
|
|
Condition storePinkSummarycondition = new Condition(StorePinkSummary.class);
|
|
Example.Criteria storePinkSummarycriteria = storePinkSummarycondition.createCriteria();
|
|
Example.Criteria storePinkSummarycriteria = storePinkSummarycondition.createCriteria();
|
|
@@ -195,26 +193,26 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
|
|
storePinkSummarycriteria.andEqualTo("isVirtual", 0);
|
|
storePinkSummarycriteria.andEqualTo("isVirtual", 0);
|
|
storePinkSummarycondition.setOrderByClause("people_count DESC");
|
|
storePinkSummarycondition.setOrderByClause("people_count DESC");
|
|
List<StorePinkSummary> byCondition = storePinkSummaryService.findByCondition(storePinkSummarycondition);
|
|
List<StorePinkSummary> byCondition = storePinkSummaryService.findByCondition(storePinkSummarycondition);
|
|
-
|
|
|
|
-
|
|
|
|
- if(!CollectionUtils.isEmpty(byCondition)){
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (!CollectionUtils.isEmpty(byCondition)) {
|
|
|
|
+
|
|
Map<Long, StorePinkSummary> storePinkSummaryMap = byCondition.stream().collect(Collectors.toMap(StorePinkSummary::getId, a -> a, (b, c) -> c));
|
|
Map<Long, StorePinkSummary> storePinkSummaryMap = byCondition.stream().collect(Collectors.toMap(StorePinkSummary::getId, a -> a, (b, c) -> c));
|
|
-
|
|
|
|
|
|
+
|
|
List<Long> spsIdList = byCondition.stream().map(StorePinkSummary::getId).collect(Collectors.toList());
|
|
List<Long> spsIdList = byCondition.stream().map(StorePinkSummary::getId).collect(Collectors.toList());
|
|
-
|
|
|
|
|
|
+
|
|
Condition condition = new Condition(StorePink.class);
|
|
Condition condition = new Condition(StorePink.class);
|
|
Example.Criteria criteria = condition.createCriteria();
|
|
Example.Criteria criteria = condition.createCriteria();
|
|
criteria.andEqualTo("isDelete", 0);
|
|
criteria.andEqualTo("isDelete", 0);
|
|
criteria.andEqualTo("cid", storePink.getCid());
|
|
criteria.andEqualTo("cid", storePink.getCid());
|
|
- // criteria.andEqualTo("kid", 0);
|
|
|
|
|
|
+ // criteria.andEqualTo("kid", 0);
|
|
criteria.andIn("spsId", spsIdList);
|
|
criteria.andIn("spsId", spsIdList);
|
|
List<StorePink> pinkList = findByCondition(condition);
|
|
List<StorePink> pinkList = findByCondition(condition);
|
|
-
|
|
|
|
|
|
+
|
|
Map<Long, List<StorePink>> collect = pinkList.stream().collect(Collectors.groupingBy(StorePink::getSpsId));
|
|
Map<Long, List<StorePink>> collect = pinkList.stream().collect(Collectors.groupingBy(StorePink::getSpsId));
|
|
- list = pinkList.stream().filter(a->a.getKId().equals(0)).map(a -> {
|
|
|
|
|
|
+ list = pinkList.stream().filter(a -> a.getKId().equals(0)).map(a -> {
|
|
List<StorePink> storePinks = collect.get(a.getSpsId());
|
|
List<StorePink> storePinks = collect.get(a.getSpsId());
|
|
-
|
|
|
|
|
|
+
|
|
StorePinkOngoingVO pinkOngoingVO = new StorePinkOngoingVO();
|
|
StorePinkOngoingVO pinkOngoingVO = new StorePinkOngoingVO();
|
|
pinkOngoingVO.setId(a.getId());
|
|
pinkOngoingVO.setId(a.getId());
|
|
pinkOngoingVO.setOrderId(a.getOrderId());
|
|
pinkOngoingVO.setOrderId(a.getOrderId());
|
|
@@ -225,12 +223,58 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
|
|
pinkOngoingVO.setSuccessAvatar(storePinks.stream().map(StorePink::getAvatar).collect(Collectors.toList()));
|
|
pinkOngoingVO.setSuccessAvatar(storePinks.stream().map(StorePink::getAvatar).collect(Collectors.toList()));
|
|
return pinkOngoingVO;
|
|
return pinkOngoingVO;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
-
|
|
|
|
|
|
+
|
|
list = list.stream().sorted(Comparator.comparing(StorePinkOngoingVO::getRemainNum).reversed()).collect(Collectors.toList());
|
|
list = list.stream().sorted(Comparator.comparing(StorePinkOngoingVO::getRemainNum).reversed()).collect(Collectors.toList());
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<ProductCarouselVO> carousel(Long productId) {
|
|
|
|
+ List<ProductCarouselDTO> pinks = storePinkMapper.pinkByProductId(productId);
|
|
|
|
+ // 兜底
|
|
|
|
+ if (CollectionUtil.isEmpty(pinks)) {
|
|
|
|
+ pinks = storePinkMapper.pinkByProductId(productId);
|
|
|
|
+ }
|
|
|
|
+ // 还是空那也没办法了
|
|
|
|
+ if (CollectionUtil.isEmpty(pinks)) {
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ List<UserDTO> users = userDubboServiceClient.getUsersByIds(pinks.stream().map(ProductCarouselDTO::getUid).collect(Collectors.toList()));
|
|
|
|
+ // 无用户信息
|
|
|
|
+ if (CollectionUtil.isEmpty(users)) {
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ Map<Long, UserDTO> userMap = users.stream().collect(Collectors.toMap(UserDTO::getId, user -> user));
|
|
|
|
+
|
|
|
|
+ List<ProductCarouselVO> carousel = new ArrayList<>();
|
|
|
|
+ pinks.forEach(item -> {
|
|
|
|
+ UserDTO user = userMap.get(item.getUid());
|
|
|
|
+ if (user != null) {
|
|
|
|
+ String name = user.getName();
|
|
|
|
+ switch (name.length()) {
|
|
|
|
+ case 1:
|
|
|
|
+ name = name;
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ StrUtil.hide(name, 1, name.length());
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ StrUtil.hide(name, 1, name.length() - 1);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ carousel.add(ProductCarouselVO.builder()
|
|
|
|
+ .headPic(user.getHeadPic())
|
|
|
|
+ .name(name)
|
|
|
|
+ .kId(item.getKId())
|
|
|
|
+ .time(cn.hutool.core.util.RandomUtil.randomInt(1, 51))
|
|
|
|
+ .build()
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ return carousel;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|