| | |
| | | page = this.lambdaQuery() |
| | | .eq(ArticleComments::getArticleId, query.getArticleId()) |
| | | .in(StringUtils.isNotEmpty(memberIdSet), ArticleComments::getMemberId, memberIdSet) |
| | | .orderByDesc(ArticleComments::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | result = PageDTO.empty(page); |
| | |
| | | PageDTO<MgtSensitiveWordsVO> pageVO; |
| | | Page<SensitiveWords> page = this.lambdaQuery() |
| | | .like(StringUtils.isNotBlank(query.getWord()), SensitiveWords::getWord, |
| | | query.getWord()).page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | query.getWord()).orderByDesc(SensitiveWords::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | pageVO = PageDTO.empty(page); |
| | | } else { |
| | |
| | | @ApiOperation("结束当前拍卖商品") |
| | | public R<?> stopCurrentGoods( |
| | | @ApiParam(name = "id", value = "拍卖场商品id", required = true) @PathVariable("id") Long id) { |
| | | try { |
| | | auctionSalesroomService.stopCurrentGoods(id); |
| | | } catch (JsonProcessingException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | @ApiOperation("开始下一拍卖商品") |
| | | public R<?> startNextGoods( |
| | | @ApiParam(name = "id", value = "拍卖场商品id", required = true) @PathVariable("id") Long id) { |
| | | try { |
| | | auctionSalesroomService.startNextGoods(id); |
| | | } catch (JsonProcessingException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | * |
| | | * @param id 拍卖场商品id |
| | | */ |
| | | void stopCurrentGoods(Long id); |
| | | void stopCurrentGoods(Long id) throws JsonProcessingException; |
| | | |
| | | /** |
| | | * 开始下一拍卖商品 |
| | | * |
| | | * @param id 拍卖场商品id |
| | | */ |
| | | void startNextGoods(Long id); |
| | | void startNextGoods(Long id) throws JsonProcessingException; |
| | | |
| | | /** |
| | | * 播放视频 |
| | |
| | | query.getListingStatus()) |
| | | .eq(StringUtils.isNotNull(query.getStartStatus()), AuctionGoods::getStartStatus, |
| | | query.getStartStatus()) |
| | | .orderByDesc(AuctionGoods::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page); |
| | |
| | | if (StringUtils.isNotNull(auctionGoods) && auctionGoods.getListingStatus().equals( |
| | | ListingStatusEnum.ON_SHELVES) && auctionGoods.getStartStatus() |
| | | .equals(AuctionStartStatusEnum.IN_AUCTION)) { |
| | | this.lambdaUpdate().set(AuctionGoods::getStartStatus, AuctionStartStatusEnum.ENDED) |
| | | .eq(AuctionGoods::getId, id); |
| | | auctionGoods.setStartStatus(AuctionStartStatusEnum.ENDED); |
| | | this.updateById(auctionGoods); |
| | | // TODO 退保证金 |
| | | orderClient.returnBondByAuctionGoodsId(id, SecurityConstants.INNER); |
| | | |
| | |
| | | if (StringUtils.isNotNull(auctionGoods) && auctionGoods.getListingStatus().equals( |
| | | ListingStatusEnum.ON_SHELVES) && auctionGoods.getStartStatus() |
| | | .equals(AuctionStartStatusEnum.IN_PREVIEW)) { |
| | | this.lambdaUpdate().set(AuctionGoods::getStartStatus, AuctionStartStatusEnum.IN_AUCTION) |
| | | .eq(AuctionGoods::getId, id); |
| | | auctionGoods.setStartStatus(AuctionStartStatusEnum.IN_AUCTION); |
| | | this.updateById(auctionGoods); |
| | | Map<String, Object> map = new ConcurrentHashMap<>(); |
| | | map.put("notification_type", NotificationTypeConstant.AUCTION_GOODS); |
| | | map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss")); |
| | |
| | | query.getEndTime()), AuctionSalesroom::getStartTime, |
| | | query.getStartTime(), |
| | | query.getEndTime()) |
| | | .orderByDesc(AuctionSalesroom::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | |
| | | List<AuctionSalesroom> records = page.getRecords(); |
| | | if (StringUtils.isNull(records)) { |
| | | return PageDTO.empty(page); |
| | |
| | | .between(StringUtils.isNotNull(query.getStartTime()) && StringUtils.isNotNull( |
| | | query.getEndTime()), AuctionSalesroom::getStartTime, query.getStartTime(), |
| | | query.getEndTime()) |
| | | .orderByAsc(AuctionSalesroom::getStartTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | List<AuctionSalesroom> records = page.getRecords(); |
| | | if (StringUtils.isNull(records)) { |
| | |
| | | * @param id 拍卖场商品id |
| | | */ |
| | | @Override |
| | | public void stopCurrentGoods(Long id) { |
| | | public void stopCurrentGoods(Long id) throws JsonProcessingException { |
| | | AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(id); |
| | | if (StringUtils.isNull(auctionSalesroomGoods)) { |
| | | throw new ServiceException("拍卖商品不存在"); |
| | | } |
| | | auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED); |
| | | auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods); |
| | | Map<String, Object> map = new ConcurrentHashMap<>(); |
| | | map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS); |
| | | map.put("auctionSalesroomId", auctionSalesroomGoods.getAuctionSalesroomId().toString()); |
| | | map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString()); |
| | | map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus()); |
| | | map.put("message_type", "stop"); |
| | | map.put("type", "2"); |
| | | String msg = objectMapper.writeValueAsString(map); |
| | | sysUserClient.pushAll(msg, SecurityConstants.INNER); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param id 拍卖场商品id |
| | | */ |
| | | @Override |
| | | public void startNextGoods(Long id) { |
| | | public void startNextGoods(Long id) throws JsonProcessingException { |
| | | AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(id); |
| | | if (StringUtils.isNull(auctionSalesroomGoods)) { |
| | | throw new ServiceException("拍卖商品不存在"); |
| | | } |
| | | auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.IN_PROGRESS); |
| | | auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods); |
| | | Map<String, Object> map = new ConcurrentHashMap<>(); |
| | | map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS); |
| | | map.put("auctionSalesroomId", auctionSalesroomGoods.getAuctionSalesroomId().toString()); |
| | | map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString()); |
| | | map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus()); |
| | | map.put("message_type", "start"); |
| | | map.put("type", "2"); |
| | | String msg = objectMapper.writeValueAsString(map); |
| | | sysUserClient.pushAll(msg, SecurityConstants.INNER); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | Map<String, Object> map = new ConcurrentHashMap<>(); |
| | | map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM); |
| | | map.put("auctionSalesroomId", auctionSalesroom.getId()); |
| | | map.put("auctionSalesroomId", auctionSalesroom.getId().toString()); |
| | | map.put("AuctionTypeEnum",auctionSalesroom.getStatus()); |
| | | map.put("message_type", "start"); |
| | | map.put("type", "1"); |
| | |
| | | } |
| | | Map<String, Object> map = new ConcurrentHashMap<>(); |
| | | map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM); |
| | | map.put("auctionSalesroomId", auctionSalesroom.getId()); |
| | | map.put("auctionSalesroomId", auctionSalesroom.getId().toString()); |
| | | map.put("AuctionTypeEnum",auctionSalesroom.getStatus()); |
| | | map.put("message_type", "end"); |
| | | map.put("type", "1"); |
| | |
| | | import com.ruoyi.goods.controller.management.dto.GoodsBrandDTO; |
| | | import com.ruoyi.goods.controller.management.dto.GoodsBrandQuery; |
| | | import com.ruoyi.goods.controller.management.vo.GoodsBrandVO; |
| | | import com.ruoyi.system.api.domain.GoodsBrand; |
| | | import com.ruoyi.goods.mapper.GoodsBrandMapper; |
| | | import com.ruoyi.goods.service.IGoodsBrandService; |
| | | import com.ruoyi.system.api.domain.GoodsBrand; |
| | | import java.util.List; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | Page<GoodsBrand> page = this.lambdaQuery() |
| | | .like(StringUtils.isNotEmpty(query.getBrandName()), GoodsBrand::getBrandName, |
| | | query.getBrandName()) |
| | | .orderByDesc(GoodsBrand::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page.getTotal(), page.getPages()); |
| | |
| | | import com.ruoyi.goods.controller.management.dto.GoodsCategoryDTO; |
| | | import com.ruoyi.goods.controller.management.dto.GoodsCategoryQuery; |
| | | import com.ruoyi.goods.controller.management.vo.GoodsCategoryVO; |
| | | import com.ruoyi.system.api.domain.GoodsCategory; |
| | | import com.ruoyi.goods.mapper.GoodsCategoryMapper; |
| | | import com.ruoyi.goods.service.IGoodsCategoryService; |
| | | import com.ruoyi.system.api.domain.GoodsCategory; |
| | | import java.util.List; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | Page<GoodsCategory> page = this.lambdaQuery() |
| | | .like(StringUtils.isNotEmpty(query.getCategoryName()), |
| | | GoodsCategory::getCategoryName, query.getCategoryName()) |
| | | .orderByDesc(GoodsCategory::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page.getTotal(), page.getPages()); |
| | |
| | | import com.ruoyi.goods.controller.management.dto.GoodsFlavorTypeDTO; |
| | | import com.ruoyi.goods.controller.management.dto.GoodsFlavorTypeQuery; |
| | | import com.ruoyi.goods.controller.management.vo.GoodsFlavorTypeVO; |
| | | import com.ruoyi.system.api.domain.GoodsFlavorType; |
| | | import com.ruoyi.goods.mapper.GoodsFlavorTypeMapper; |
| | | import com.ruoyi.goods.service.IGoodsFlavorTypeService; |
| | | import com.ruoyi.system.api.domain.GoodsFlavorType; |
| | | import java.util.List; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | Page<GoodsFlavorType> page = this.lambdaQuery() |
| | | .like(StringUtils.isNotEmpty(query.getFlavorTypeName()), |
| | | GoodsFlavorType::getFlavorTypeName, query.getFlavorTypeName()) |
| | | .orderByDesc(GoodsFlavorType::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page.getTotal(), page.getPages()); |
| | |
| | | Page<GoodsInfoTitle> page = this.lambdaQuery() |
| | | .like(StringUtils.isNotEmpty(query.getTitleName()), GoodsInfoTitle::getTitleName, |
| | | query.getTitleName()) |
| | | .orderByDesc(GoodsInfoTitle::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page.getTotal(), page.getPages()); |
| | |
| | | import com.ruoyi.goods.controller.management.dto.GoodsSeriesDTO; |
| | | import com.ruoyi.goods.controller.management.dto.GoodsSeriesQuery; |
| | | import com.ruoyi.goods.controller.management.vo.GoodsSeriesVO; |
| | | import com.ruoyi.system.api.domain.GoodsSeries; |
| | | import com.ruoyi.goods.mapper.GoodsSeriesMapper; |
| | | import com.ruoyi.goods.service.IGoodsSeriesService; |
| | | import com.ruoyi.system.api.domain.GoodsSeries; |
| | | import java.util.List; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | Page<GoodsSeries> page = this.lambdaQuery() |
| | | .like(StringUtils.isNotEmpty(query.getSeriesName()), GoodsSeries::getSeriesName, |
| | | query.getSeriesName()) |
| | | .orderByDesc(GoodsSeries::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page.getTotal(), page.getPages()); |
| | |
| | | import com.ruoyi.goods.service.IGoodsInfoTitleValueService; |
| | | import com.ruoyi.goods.service.IGoodsSkuService; |
| | | import com.ruoyi.goods.service.IMemberGoodsCollectionService; |
| | | import com.ruoyi.system.api.domain.*; |
| | | import com.ruoyi.system.api.domain.GoodsBrand; |
| | | import com.ruoyi.system.api.domain.GoodsCategory; |
| | | import com.ruoyi.system.api.domain.GoodsFlavorType; |
| | | import com.ruoyi.system.api.domain.GoodsGroupPurchase; |
| | | import com.ruoyi.system.api.domain.GoodsSeckill; |
| | | import com.ruoyi.system.api.domain.GoodsSeries; |
| | | import com.ruoyi.system.api.domain.GoodsSku; |
| | | import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; |
| | | import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; |
| | | import com.ruoyi.system.api.domain.dto.ListStatusDTO; |
| | |
| | | import com.ruoyi.system.api.domain.vo.OrderVO; |
| | | import com.ruoyi.system.api.domain.vo.getHomeGoodsSkuXxiVO; |
| | | import com.ruoyi.system.api.feignClient.GoodsSkuClient; |
| | | |
| | | import com.ruoyi.system.api.feignClient.OrderClient; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.stream.Collectors; |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.ruoyi.system.api.feignClient.OrderClient; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.redisson.api.RLock; |
| | |
| | | ), GoodsSku::getListingStatus, query.getListingStatus()) |
| | | .eq(query.getQueryType().equals(1), GoodsSku::getListingStatus, |
| | | ListingStatusEnum.ON_SHELVES) |
| | | .orderByDesc(GoodsSku::getSortNum) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | return PageDTO.of(page, GoodsSkuVO.class); |
| | | } |
| | |
| | | return homeGoodsSkuXxiVOS; |
| | | } |
| | | |
| | | @Override |
| | | public List<getHomeGoodsSkuXxiVO> getMsHomeGoodsSkuXxi(HomeGoodsSkuDTO homeGoodsSkuDTO) { |
| | | List<getHomeGoodsSkuXxiVO> homeGoodsSkuXxiVOS=new ArrayList<>(); |
| | | GoodsSeckill goodsSeckill = goodsSeckillMapper.selectById(homeGoodsSkuDTO.getGoodsSkuId()); |
| | |
| | | .like(StringUtils.isNotBlank(query.getRealName()), Member::getRealName, |
| | | query.getRealName()) |
| | | .like(StringUtils.isNotBlank(query.getPhone()), Member::getPhone, query.getPhone()) |
| | | .orderByDesc(Member::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page.getTotal(), page.getPages()); |
| | |
| | | import com.ruoyi.system.api.feignClient.GoodsSkuClient; |
| | | import com.ruoyi.system.api.feignClient.MemberClient; |
| | | import io.seata.common.util.StringUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | .in(com.ruoyi.common.core.utils.StringUtils.isNotEmpty(memberIdSet), |
| | | MemberInvoice::getMemberId, memberIdSet) |
| | | .eq(query.getInvoiceStatus() != null, MemberInvoice::getInvoiceStatus, |
| | | query.getInvoiceStatus()).page(page); |
| | | query.getInvoiceStatus()).orderByDesc(MemberInvoice::getCreateTime) |
| | | .page(page); |
| | | if (page.getRecords().isEmpty()) { |
| | | return PageDTO.empty(page); |
| | | } |
| | |
| | | </select> |
| | | |
| | | |
| | | <select id="getOrderByGroupPurchaseId" resultType="com.ruoyi.system.api.domain.Order"> |
| | | SELECT |
| | | o.* |
| | | FROM |
| | | t_order o |
| | | <where> |
| | | o.goods_sku_id = #{goodsSkuId} |
| | | AND o.order_status = 2 |
| | | AND o.order_from = 3 |
| | | AND o.del_flag=0 |
| | | AND o.member_id=#{memberId} |
| | | </where> |
| | | </select> |
| | | |
| | | |
| | | <select id="getOrderByGroupPurchaseList" resultType="com.ruoyi.system.api.domain.vo.OrderVO"> |
| | | SELECT |
| | | o.*, |
| | |
| | | query.getCouponType()) |
| | | .eq(StringUtils.isNotNull(query.getDistributionMethod()), |
| | | Coupon::getDistributionMethod, query.getDistributionMethod()) |
| | | .orderByDesc(Coupon::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page); |
| | |
| | | PromotionBanner::getListingStatus, query.getListingStatus()) |
| | | .like(StringUtils.isNotBlank(query.getBannerName()), PromotionBanner::getBannerName, |
| | | query.getBannerName()) |
| | | .orderByDesc(PromotionBanner::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page); |
| | |
| | | Page<PromotionVideo> page = this.lambdaQuery() |
| | | .like(StringUtils.isNotBlank(query.getVideoName()), PromotionVideo::getVideoName, |
| | | query.getVideoName()) |
| | | .orderByDesc(PromotionVideo::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page); |
| | |
| | | .eq(StringUtils.isNotNull(query.getReplyStatus()), |
| | | PromotionWishList::getReplyStatus, query.getReplyStatus()) |
| | | .in(StringUtils.isNotEmpty(memberIdSet), PromotionWishList::getMemberId, |
| | | memberIdSet).page(page); |
| | | memberIdSet).orderByDesc(PromotionWishList::getCreateTime).page(page); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page); |
| | | } |
| | |
| | | //自动结束团购任务 |
| | | autoEndGroupPurchase(id); |
| | | } else if (DelayTaskEnum.AUCTION_GOODS_START_TASK.getCode().equals(operation)) { |
| | | // 自动开始团购任务 |
| | | // 自动开始拍卖商品任务 |
| | | autoStartAuctionGoods(id); |
| | | } else if (DelayTaskEnum.AUCTION_GOODS_END_TASK.getCode().equals(operation)) { |
| | | // 自动结束团购任务 |
| | | // 自动结束拍卖商品任务 |
| | | autoEndAuctionGoods(id); |
| | | }else if(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode().equals(operation)){ |
| | | //自动取消订单 |
| | |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | import javax.validation.Validator; |
| | |
| | | .select(SysUser::getUserId, SysUser::getNickName, SysUser::getPhonenumber) |
| | | .like(StringUtils.isNotBlank(query.getNickName() |
| | | ), SysUser::getNickName, query.getNickName()).eq(SysUser::getUserType, "04") |
| | | .eq(SysUser::getDelFlag, "0") |
| | | .eq(SysUser::getDelFlag, "0").orderByDesc(SysUser::getCreateTime) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | if (StringUtils.isEmpty(page.getRecords())) { |
| | | return PageDTO.empty(page); |
| | |
| | | user.setUserName(dto.getPhonenumber()); |
| | | user.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); |
| | | user.setUserType("04"); |
| | | user.setCreateTime(new Date()); |
| | | user.setCreateBy(SecurityUtils.getUsername()); |
| | | this.save(user); |
| | | } else { |
| | | // 编辑 |
| | |
| | | user.setNickName(dto.getNickName()); |
| | | user.setPhonenumber(dto.getPhonenumber()); |
| | | user.setUserName(dto.getPhonenumber()); |
| | | user.setUpdateTime(new Date()); |
| | | user.setUpdateBy(SecurityUtils.getUsername()); |
| | | if (StringUtils.isNotBlank(dto.getPassword())) { |
| | | user.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); |
| | | } |