添加直播间首页接口

This commit is contained in:
xuwenbo
2020-09-08 15:18:26 +08:00
parent 585390a511
commit b673cbac23
6 changed files with 59 additions and 1 deletions

View File

@ -17,6 +17,7 @@ import co.yixiang.enums.ProductEnum;
import co.yixiang.modules.activity.service.YxStoreCombinationService; import co.yixiang.modules.activity.service.YxStoreCombinationService;
import co.yixiang.modules.activity.service.YxStoreSeckillService; import co.yixiang.modules.activity.service.YxStoreSeckillService;
import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo; import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo;
import co.yixiang.modules.mp.service.YxWechatLiveService;
import co.yixiang.modules.product.service.YxStoreProductService; import co.yixiang.modules.product.service.YxStoreProductService;
import co.yixiang.modules.product.vo.YxSystemStoreQueryVo; import co.yixiang.modules.product.vo.YxSystemStoreQueryVo;
import co.yixiang.modules.shop.param.YxSystemStoreQueryParam; import co.yixiang.modules.shop.param.YxSystemStoreQueryParam;
@ -60,6 +61,7 @@ public class IndexController {
private final YxSystemStoreService systemStoreService; private final YxSystemStoreService systemStoreService;
private final YxStoreCombinationService storeCombinationService; private final YxStoreCombinationService storeCombinationService;
private final YxStoreSeckillService storeSeckillService; private final YxStoreSeckillService storeSeckillService;
private final YxWechatLiveService wechatLiveService;
@Cacheable(cacheNames = ShopConstants.YSHOP_REDIS_INDEX_KEY) @Cacheable(cacheNames = ShopConstants.YSHOP_REDIS_INDEX_KEY)
@GetMapping("/index") @GetMapping("/index")
@ -76,6 +78,7 @@ public class IndexController {
.menus(systemGroupDataService.getDatas(ShopConstants.YSHOP_HOME_MENUS)) .menus(systemGroupDataService.getDatas(ShopConstants.YSHOP_HOME_MENUS))
.roll(systemGroupDataService.getDatas(ShopConstants.YSHOP_HOME_ROLL_NEWS)) .roll(systemGroupDataService.getDatas(ShopConstants.YSHOP_HOME_ROLL_NEWS))
.seckillList(storeSeckillService.getList(1, 4)) .seckillList(storeSeckillService.getList(1, 4))
.liveList(wechatLiveService.getList(1,4,0))
.build(); .build();
return ApiResult.ok(indexVo); return ApiResult.ok(indexVo);
} }

View File

@ -2,6 +2,7 @@ package co.yixiang.modules.shop.vo;
import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo; import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo;
import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo; import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo;
import co.yixiang.modules.mp.service.dto.YxWechatLiveDto;
import co.yixiang.modules.product.vo.YxStoreProductQueryVo; import co.yixiang.modules.product.vo.YxStoreProductQueryVo;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
@ -49,5 +50,8 @@ public class IndexVo {
//首发新品->秒杀 //首发新品->秒杀
@ApiModelProperty("首发新品->秒杀") @ApiModelProperty("首发新品->秒杀")
private List<YxStoreSeckillQueryVo> seckillList; private List<YxStoreSeckillQueryVo> seckillList;
//直播间信息
@ApiModelProperty("直播间")
private List<YxWechatLiveDto> liveList;
} }

View File

@ -14,6 +14,7 @@ import co.yixiang.modules.mp.service.dto.YxWechatLiveDto;
import co.yixiang.modules.mp.service.dto.YxWechatLiveQueryCriteria; import co.yixiang.modules.mp.service.dto.YxWechatLiveQueryCriteria;
import co.yixiang.modules.mp.vo.WechatLiveVo; import co.yixiang.modules.mp.vo.WechatLiveVo;
import co.yixiang.modules.mp.domain.YxWechatLive; import co.yixiang.modules.mp.domain.YxWechatLive;
import co.yixiang.modules.product.vo.YxStoreProductQueryVo;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -67,4 +68,14 @@ public interface YxWechatLiveService extends BaseService<YxWechatLive>{
* @return * @return
*/ */
List<WxMaLiveResult.LiveReplay> getLiveReplay(Integer roomId); List<WxMaLiveResult.LiveReplay> getLiveReplay(Integer roomId);
/**
* 商品列表
* @param page 页码
* @param limit 条数
* @param order ProductEnum
* @return List
*/
List<YxWechatLiveDto> getList(int page, int limit, int order);
} }

View File

@ -93,5 +93,7 @@ public class YxWechatLiveDto implements Serializable {
*/ */
private String productId; private String productId;
@ApiModelProperty(value = "商品信息")
private List<YxWechatLiveGoodsDto> product; private List<YxWechatLiveGoodsDto> product;
} }

View File

@ -8,6 +8,8 @@
*/ */
package co.yixiang.modules.mp.service.dto; package co.yixiang.modules.mp.service.dto;
import co.yixiang.annotation.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
@ -16,4 +18,7 @@ import lombok.Data;
*/ */
@Data @Data
public class YxWechatLiveQueryCriteria{ public class YxWechatLiveQueryCriteria{
@ApiModelProperty(value = "直播间状态 101直播中102未开始103 已结束104 禁播105暂停106异常107已过期")
@Query
private Integer liveStatus;
} }

View File

@ -16,6 +16,7 @@ import cn.hutool.json.JSONUtil;
import co.yixiang.common.service.impl.BaseServiceImpl; import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.common.utils.QueryHelpPlus; import co.yixiang.common.utils.QueryHelpPlus;
import co.yixiang.dozer.service.IGenerator; import co.yixiang.dozer.service.IGenerator;
import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.exception.BadRequestException; import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.mp.domain.YxWechatLiveGoods; import co.yixiang.modules.mp.domain.YxWechatLiveGoods;
import co.yixiang.modules.mp.service.YxWechatLiveGoodsService; import co.yixiang.modules.mp.service.YxWechatLiveGoodsService;
@ -27,10 +28,15 @@ import co.yixiang.modules.mp.service.mapper.YxWechatLiveMapper;
import co.yixiang.modules.mp.vo.WechatLiveVo; import co.yixiang.modules.mp.vo.WechatLiveVo;
import co.yixiang.modules.mp.domain.YxWechatLive; import co.yixiang.modules.mp.domain.YxWechatLive;
import co.yixiang.modules.mp.config.WxMaConfiguration; import co.yixiang.modules.mp.config.WxMaConfiguration;
import co.yixiang.modules.product.domain.YxStoreProduct;
import co.yixiang.modules.product.vo.YxStoreProductQueryVo;
import co.yixiang.utils.FileUtil; import co.yixiang.utils.FileUtil;
import co.yixiang.utils.OrderUtil; import co.yixiang.utils.OrderUtil;
import co.yixiang.utils.StringUtils; import co.yixiang.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -66,9 +72,12 @@ public class YxWechatLiveServiceImpl extends BaseServiceImpl<YxWechatLiveMapper,
private String uploadDirStr; private String uploadDirStr;
private final YxWechatLiveGoodsService wechatLiveGoodsService; private final YxWechatLiveGoodsService wechatLiveGoodsService;
public YxWechatLiveServiceImpl(IGenerator generator, YxWechatLiveGoodsService wechatLiveGoodsService) { private final YxWechatLiveMapper wechatLiveMapper;
public YxWechatLiveServiceImpl(IGenerator generator, YxWechatLiveGoodsService wechatLiveGoodsService, YxWechatLiveMapper wechatLiveMapper) {
this.generator = generator; this.generator = generator;
this.wechatLiveGoodsService = wechatLiveGoodsService; this.wechatLiveGoodsService = wechatLiveGoodsService;
this.wechatLiveMapper = wechatLiveMapper;
} }
/** /**
@ -206,4 +215,28 @@ public class YxWechatLiveServiceImpl extends BaseServiceImpl<YxWechatLiveMapper,
log.info( "wxMpMaterialUploadResult : {}", JSONUtil.toJsonStr( wxMediaUploadResult ) ); log.info( "wxMpMaterialUploadResult : {}", JSONUtil.toJsonStr( wxMediaUploadResult ) );
return wxMediaUploadResult; return wxMediaUploadResult;
} }
/**
* 直播间列表
* @param page 页码
* @param limit 条数
* @param order ProductEnum
* @return List
*/
@Override
public List<YxWechatLiveDto> getList(int page, int limit, int order) {
//todo 添加状态判断
QueryWrapper<YxWechatLive> wrapper = new QueryWrapper<>();
wrapper.lambda()
.orderByDesc(YxWechatLive::getStartTime);
Page<YxWechatLive> pageModel = new Page<>(page, limit);
IPage<YxWechatLive> pageList = wechatLiveMapper.selectPage(pageModel,wrapper);
return generator.convert(pageList.getRecords(),YxWechatLiveDto.class);
}
} }