提交 8501bf3e authored 作者: liupengfei's avatar liupengfei

--no commit message

上级 dbc07c8d
package com.zrqx.resource.commons.model.record;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@Table(name = "res_reading_record")
@ApiModel(value = "ReadingRecord", description = "阅读记录")
public class ReadingRecord {
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty(value = "浏览记录ID")
@Column(name = "id")
private Integer id;
@ApiModelProperty(value = "图书Id")
private String bookId;
@ApiModelProperty(value = "文章id ")
private String articeId;
@ApiModelProperty(value = "用户id")
private String memberId;
@ApiModelProperty(value = "创建时间")
private Date uploadTime;
}
......@@ -2,6 +2,7 @@ package com.zrqx.resource.fg.controller.articlelibrary;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
......@@ -21,7 +22,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.github.pagehelper.PageHelper;
import com.zrqx.core.client.sysuser.fg.FgSysuserClient;
import com.zrqx.core.commons.redis.Redis;
import com.zrqx.core.enums.AllResourceTypeEnum;
import com.zrqx.core.enums.resource.article.ArticlePromptMessageEnum;
import com.zrqx.core.exception.BaseException;
......@@ -32,14 +33,12 @@ import com.zrqx.core.util.response.CallBack;
import com.zrqx.resource.commons.form.fg.articlelibrary.FgDirectoryForm;
import com.zrqx.resource.commons.form.fg.articlelibrary.FgQueryArticleLibraryForm;
import com.zrqx.resource.commons.form.fg.articlelibrary.FgQueryRelatedArticleForm;
import com.zrqx.resource.commons.form.fg.comment.FgQueryCommentForm;
import com.zrqx.resource.commons.form.fg.organmemberrecord.FgSaveOrganMemberRecordForm;
import com.zrqx.resource.commons.model.articlelibrary.ArticleLibrary;
import com.zrqx.resource.commons.model.articlelibrary.ChapterLibrary;
import com.zrqx.resource.commons.model.ebook.Ebook;
import com.zrqx.resource.commons.model.record.ReadingRecord;
import com.zrqx.resource.commons.vo.fg.articlelibrary.FgArticleLibraryListVO;
import com.zrqx.resource.commons.vo.fg.articlelibrary.FgArticleLibraryOneVO;
import com.zrqx.resource.commons.vo.fg.comment.FgCommentNumAndScoreVo;
import com.zrqx.resource.commons.vo.fg.diytype.FgDiyTypeVo;
import com.zrqx.resource.commons.vo.fg.label.FgLabelInfoVO;
import com.zrqx.resource.commons.vo.fg.marketing.FgPromotionInfoOneVO;
......@@ -81,7 +80,8 @@ public class FgArticleLibraryController {
private FgOrganMemberRecordService fgOrganMemberRecordService;
@Autowired
private FgEbookService ebookService;
@Autowired
private Redis redis;
/** 促销*/
@Autowired
private FgPromotionService promotionService;
......@@ -149,25 +149,22 @@ public class FgArticleLibraryController {
};
}
}
// 保存浏览记录
//recordService.saveOrUpdateRecord(oid, AllResourceTypeEnum.ARTICLE.getCode().toString());
// 更新浏览量
// 保存阅读记录
saveReadingRecord(vo);
service.updateBrowseNum(oid);
//获取评分与评论数TODO
/*FgQueryCommentForm queryCommentForm = new FgQueryCommentForm();
queryCommentForm.setResourceId(oid);
queryCommentForm.setResourceType(AllResourceTypeEnum.ARTICLE.getCode());
FgCommentNumAndScoreVo commentNumAndScoreVo = commentService.getCommentNumAndScore(queryCommentForm);
BeanUtils.copyProperties(commentNumAndScoreVo, vo);*/
//保存机构用户浏览记录
/*FgSaveOrganMemberRecordForm form = new FgSaveOrganMemberRecordForm();
form.setResourceId(vo.getId());
form.setResourceName(vo.getName());
form.setResourceType(vo.getResourceType());
fgOrganMemberRecordService.saveOrUpdateRecord(form);*/
return CallBack.success(vo);
}
public void saveReadingRecord(FgArticleLibraryOneVO vo) {
if(redis.isExistMember()) {
ReadingRecord readingRecord = new ReadingRecord();
readingRecord.setArticeId(vo.getId());
readingRecord.setBookId(vo.getBookId());
readingRecord.setMemberId(redis.getOpId());
readingRecord.setUploadTime(new Date());
}
}
@ApiOperation(value = "目录页查询文章", notes = "目录页查询文章")
@GetMapping(value = "/get")
public CallBack<FgArticleLibraryOneVO> getByOne(FgDirectoryForm form) {
......
......@@ -10,6 +10,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zrqx.core.commons.redis.Redis;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.util.response.CallBack;
import com.zrqx.resource.commons.model.record.Record;
import com.zrqx.resource.commons.vo.fg.record.FgMyRecordVO;
......@@ -36,6 +38,12 @@ public class FgRecordController {
return CallBack.success(service.getMyRecord());
}
@ApiOperation(value = "我的浏览记录" , notes = "我的浏览记录")
@GetMapping(value = "/page")
public CallBack<PageInfo<FgMyRecordVO>> pageMyRecord(Integer resourceType,PageParam pageParam) {
return CallBack.success(service.pageMyRecord(resourceType,pageParam));
}
@ApiOperation(value = "删除浏览记录" , notes = "删除浏览记录")
@PostMapping(value = "/batch/delete")
public CallBack<Boolean> batechDeleteMyRecord() {
......@@ -60,11 +68,11 @@ public class FgRecordController {
return CallBack.success(true);
}
@ApiOperation(value = "批量删除浏览记录" , notes = "删除浏览记录")
@ApiOperation(value = "根据id批量删除浏览记录" , notes = "删除浏览记录")
@PostMapping(value = "/delete/ids")
public CallBack<Boolean> deleteRecordByResourceIds(@RequestBody List<String> resourceId) {
public CallBack<Boolean> deleteRecordByResourceIds(@RequestBody List<Integer> ids) {
Example example = service.createExample();
example.createCriteria().andIn("goodsId", resourceId);
example.createCriteria().andIn("id", ids);
service.deleteByExample(example);
return CallBack.success(true);
}
......
package com.zrqx.resource.fg.mapper.record;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.resource.commons.model.record.ReadingRecord;
/**
* 浏览记录
* @author ycw
* @date 2019年2月12日下午2:42:01
*/
public interface FgReadingRecordMapper extends BaseMapper<ReadingRecord> {
}
......@@ -67,4 +67,19 @@ public interface FgRecordMapper extends BaseMapper<Record> {
*/
@Select("SELECT id,goodsId,goodsType,uploadTime FROM res_record WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= DATE(uploadTime) and memberId = #{memberId}")
List<Record> selectRecordByMemberId(@Param("memberId")String memberId);
/**
* 查询历史记录
* @param id
* @param resourceType
* @return
*/
@Select("<script>"
+ "SELECT * "
+ "FROM res_record "
+ "WHERE memberId = #{id} "
+ "eq(goodsType,resourceType) "
+ "order by uploadTime desc "
+ "</script>")
List<Record> pageRecordByMemberId(@Param("id")String id,@Param("resourceType") Integer resourceType);
}
package com.zrqx.resource.fg.service.record;
import com.zrqx.core.service.BaseService;
import com.zrqx.resource.commons.model.record.ReadingRecord;
import com.zrqx.resource.commons.vo.fg.articlelibrary.FgArticleLibraryOneVO;
public interface FgReadingRecordService extends BaseService<ReadingRecord, Integer> {
/**
* 保存浏览记录
* @param goodsId
* @param goodsType
* @return
* @author ycw
* @date: 2019年2月12日 下午3:02:55
*/
boolean saveOrUpdateRecord(FgArticleLibraryOneVO vo);
}
package com.zrqx.resource.fg.service.record;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.commons.redis.Redis;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.resource.commons.model.record.ReadingRecord;
import com.zrqx.resource.commons.vo.fg.articlelibrary.FgArticleLibraryOneVO;
import com.zrqx.resource.fg.mapper.record.FgReadingRecordMapper;
/**
* 浏览记录
* @author ycw
* @date 2019年2月12日下午2:41:27
*/
@Service
public class FgReadingRecordServiceImpl extends BaseServiceImpl<ReadingRecord, Integer>
implements FgReadingRecordService {
private static final Logger logger = LoggerFactory.getLogger(FgReadingRecordServiceImpl.class);
@Autowired
private FgReadingRecordMapper mapper;
@Autowired
private Redis redis;
@Override
public BaseMapper<ReadingRecord> getMapper() {
return mapper;
}
@Override
public boolean saveOrUpdateRecord(FgArticleLibraryOneVO vo) {
if(!redis.isExistMember()){
return false;
}
ReadingRecord record = new ReadingRecord();
record.setArticeId(vo.getId());
record.setMemberId(redis.getMember().getId());
record.setBookId(vo.getBookId());
ReadingRecord records = mapper.selectOne(record);
if (records != null) {
records.setUploadTime(new Date());
mapper.updateByPrimaryKeySelective(records);
} else {
record.setUploadTime(new Date());
mapper.insertSelective(record);
}
return true;
}
}
......@@ -4,6 +4,8 @@ package com.zrqx.resource.fg.service.record;
import java.util.List;
import com.zrqx.core.service.BaseService;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.resource.commons.model.record.Record;
import com.zrqx.resource.commons.vo.fg.record.FgMyRecordVO;
......@@ -39,4 +41,11 @@ public interface FgRecordService extends BaseService<Record, Integer> {
* @return
*/
Record selectNewRecord();
/**
* 分页查询浏览记录
* @param resourceType
* @return
*/
PageInfo<FgMyRecordVO> pageMyRecord(Integer resourceType,PageParam pageParam);
}
......@@ -16,6 +16,7 @@ import com.zrqx.core.enums.AllResourceTypeEnum;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.core.util.bean.BeanUtils;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.util.response.CallBack;
import com.zrqx.resource.commons.model.annexlibrary.AnnexLibrary;
......@@ -264,4 +265,123 @@ public class FgRecordServiceImpl extends BaseServiceImpl<Record, Integer>
public Record selectNewRecord() {
return mapper.selectNewRecord(redis.getMember().getId());
}
@Override
public PageInfo<FgMyRecordVO> pageMyRecord(Integer resourceType,PageParam pageParam) {
startPage(pageParam);
List<Record> list = mapper.pageRecordByMemberId(redis.getMember().getId(),resourceType);
if(list != null && list.size() > 0){
List<FgMyRecordVO> vos = BeanUtils.copyList(list, FgMyRecordVO.class, vo -> {
//文章
if(AllResourceTypeEnum.ARTICLE.getCode().toString().equals(vo.getGoodsType())){
ArticleLibrary article = articleLibraryMapper.selectByPrimaryKey(vo.getGoodsId());
if(article != null){
vo.setCover(article.getCover());
vo.setName(article.getName());
vo.setText(article.getText());
vo.setBookId(article.getBookId());
vo.setBookName(article.getBookName());
vo.setSource(article.getSource());
}
}
//医家
if(AllResourceTypeEnum.AUTHOR.getCode().toString().equals(vo.getGoodsType())){
AuthorLibrary article = authorLibraryMapper.selectByPrimaryKey(vo.getGoodsId());
if(article != null){
vo.setCover(article.getCover());
vo.setName(article.getName());
vo.setText(article.getSynopsis());
}
}
//电子书
if(AllResourceTypeEnum.BOOK.getCode().toString().equals(vo.getGoodsType())){
Book book = bookMapper.selectByPrimaryKey(vo.getGoodsId());
Ebook ebook = ebookMapper.selectByPrimaryKey(vo.getGoodsId());
if(book != null){
vo.setName(book.getName());
vo.setCover(ebook.getCover());
vo.setText(ebook.getSynopsis());
vo.setAuthor(book.getAuthor());
vo.setAuthorId(book.getAuthorId());
}
}
//图片
if(AllResourceTypeEnum.IMAGE.getCode().toString().equals(vo.getGoodsType())){
ImageLibrary imageLibrary = imageLibraryMapper.selectByPrimaryKey(vo.getGoodsId());
if(imageLibrary != null){
vo.setName(imageLibrary.getName());
vo.setCover(imageLibrary.getCover());
vo.setText(imageLibrary.getSynopsis());
vo.setSource(imageLibrary.getSource());
}
}
//视频
if(AllResourceTypeEnum.VIDEO.getCode().toString().equals(vo.getGoodsType())){
VideoLibrary videoLibrary = videoLibraryMapper.selectByPrimaryKey(vo.getGoodsId());
if(videoLibrary != null){
vo.setName(videoLibrary.getName());
vo.setCover(videoLibrary.getCover());
vo.setText(videoLibrary.getSynopsis());
// 获取第一帧封面
if(videoLibrary != null && StringUtils.isNotBlank(videoLibrary.getVideo())){
CallBack<String> result = fileClient.getVideoDefaultImg(videoLibrary.getVideo());
if(result.hasEntity()){
vo.setImgPath(result.getData());
}else{
logger.info("查询视频切片地址失败");
}
}
}
}
//音频
if(AllResourceTypeEnum.AUDIO.getCode().toString().equals(vo.getGoodsType())){
AudioLibrary audioLibrary = audioLibraryMapper.selectByPrimaryKey(vo.getGoodsId());
if(audioLibrary != null){
vo.setName(audioLibrary.getName());
vo.setCover(audioLibrary.getCover());
vo.setText(audioLibrary.getSynopsis());
vo.setSource(audioLibrary.getSource());
}
}
//附件
if(AllResourceTypeEnum.ANNEX.getCode().toString().equals(vo.getGoodsType())){
AnnexLibrary annexLibrary = annexLibraryMapper.selectByPrimaryKey(vo.getGoodsId());
if(annexLibrary != null){
vo.setName(annexLibrary.getName());
vo.setCover(annexLibrary.getCover());
vo.setText(annexLibrary.getSynopsis());
vo.setSource(annexLibrary.getSource());
}
}
if(StringUtils.isNotBlank(vo.getText())){
vo.setText(vo.getText().replaceAll("\\<.*?>", ""));
}
//课程
if(AllResourceTypeEnum.COURSE.getCode().toString().equals(vo.getGoodsType())){
CourseLibrary courseLibrary = courseLibraryMapper.selectByPrimaryKey(vo.getGoodsId());
if(courseLibrary != null){
vo.setName(courseLibrary.getName());
vo.setCover(courseLibrary.getImg());
vo.setText(courseLibrary.getSynopsis());
vo.setAuthor(courseLibrary.getAuthor());
}
}
//直播
if(AllResourceTypeEnum.LIVE.getCode().toString().equals(vo.getGoodsType())){
FgLiveVO live = courseLibraryMapper.selectLiveById(vo.getGoodsId());
if(live != null){
vo.setName(live.getName());
vo.setCover(live.getImg());
vo.setText(live.getSynopsis());
vo.setAuthor(live.getAuthor());
}
}
if(StringUtils.isNotBlank(vo.getText())){
vo.setText(vo.getText().replaceAll("\\<.*?>", ""));
}
});
return new PageInfo<FgMyRecordVO>(vos);
}
return new PageInfo<FgMyRecordVO>(null);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论