| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.model.AppUser; |
| | | import com.ruoyi.common.core.utils.ServletUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.sql.SqlUtil; |
| | | import com.ruoyi.common.core.web.page.PageDomain; |
| | | import com.ruoyi.common.core.web.page.TableSupport; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.order.feignClient.OrderClient; |
| | |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.ruoyi.common.core.utils.PageUtils.startPage; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | AppUser appUser = appUserClient.getAppUserById(loginUserApplet.getUserid()); |
| | | goods.setVipId(appUser.getVipId()); |
| | | |
| | | |
| | | PageDomain pageDomain = TableSupport.buildPageRequest(); |
| | | Boolean reasonable = pageDomain.getReasonable(); |
| | | PageHelper.startPage(goods.getPageCurr(), goods.getPageSize(), goods.getOrderByColumn()).setReasonable(reasonable); |
| | | |
| | | List<SeckillActivityVO> seckillActivityVOS = seckillActivityInfoMapper.listSeckillActivity(goods); |
| | | for (SeckillActivityVO seckillActivityVO : seckillActivityVOS) { |
| | | Integer data = orderClient.getGoodsSaleNum(seckillActivityVO.getGoodsId(), 2).getData(); |
| | |
| | | seckillActivityVO.setStatus(1); // 未开始 |
| | | } |
| | | } |
| | | |
| | | Integer pageCurr = goods.getPageCurr(); |
| | | Integer pageSize = goods.getPageSize(); |
| | | String orderByColumn = goods.getOrderByColumn(); |
| | | String isAsc = goods.getIsAsc(); |
| | | // 排序 |
| | | Comparator<SeckillActivityVO> comparator = getComparator(orderByColumn, isAsc); |
| | | List<SeckillActivityVO> sortedList = seckillActivityVOS.stream() |
| | | .sorted(comparator) |
| | | .collect(Collectors.toList()); |
| | | |
| | | // 分页 |
| | | int startIndex = (pageCurr - 1) * pageSize; |
| | | int endIndex = Math.min(startIndex + pageSize, sortedList.size()); |
| | | |
| | | if (startIndex >= sortedList.size()) { |
| | | return new ArrayList<>(); |
| | | } |
| | | |
| | | return seckillActivityVOS; |
| | | } |
| | | |
| | | private Comparator<SeckillActivityVO> getComparator(String orderByColumn, String isAsc) { |
| | | Comparator<SeckillActivityVO> comparator; |
| | | |
| | | switch (orderByColumn) { |
| | | case "sellingPrice": |
| | | comparator = Comparator.comparing(SeckillActivityVO::getSellingPrice); |
| | | break; |
| | | case "integral": |
| | | comparator = Comparator.comparing(SeckillActivityVO::getIntegral); |
| | | break; |
| | | case "saleNum": |
| | | comparator = Comparator.comparing(SeckillActivityVO::getSaleNum); |
| | | break; |
| | | // 添加其他排序字段 |
| | | default: |
| | | comparator = Comparator.comparing(SeckillActivityVO::getId); // 默认按ID排序 |
| | | break; |
| | | } |
| | | |
| | | if ("desc".equalsIgnoreCase(isAsc)) { |
| | | comparator = comparator.reversed(); |
| | | } |
| | | return comparator; |
| | | } |
| | | |
| | | @Override |
| | | public SeckillActivityDetailVO detail(Integer seckillActivityId, String latitude, String longitude) { |
| | | Integer vipId = 0; |