mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-12 12:26:51 +08:00
添加案例浏览时间
This commit is contained in:
@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.poi.excel.ExcelReader;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
@@ -18,9 +17,11 @@ import com.xboe.module.boecase.dto.CasesRecommendPushRecordExportVo;
|
||||
import com.xboe.module.boecase.entity.CasesRecommend;
|
||||
import com.xboe.module.boecase.entity.CasesRecommendLaunchImport;
|
||||
import com.xboe.module.boecase.entity.CasesRecommendPushRecord;
|
||||
import com.xboe.module.boecase.service.ICasesBrowseService;
|
||||
import com.xboe.module.boecase.service.ICasesRecommendLaunchImportService;
|
||||
import com.xboe.module.boecase.service.ICasesRecommendPushRecordService;
|
||||
import com.xboe.module.boecase.service.ICasesRecommendService;
|
||||
import com.xboe.module.boecase.vo.BrowseDurationVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendPushVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
||||
@@ -57,6 +58,9 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
@Resource
|
||||
private ICasesRecommendPushRecordService iCasesRecommendPushRecordService;
|
||||
|
||||
@Resource
|
||||
private ICasesBrowseService casesBrowseService;
|
||||
|
||||
/**
|
||||
* 用于后台管理分页
|
||||
*
|
||||
@@ -177,10 +181,10 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
return success(iCasesRecommendPushRecordService.startRead(caseRecommendId));
|
||||
}
|
||||
|
||||
@GetMapping("/endRead")
|
||||
public JsonResponse<Boolean> endRead(String caseRecommendId) {
|
||||
return success(iCasesRecommendPushRecordService.startRead(caseRecommendId));
|
||||
}
|
||||
// @GetMapping("/endRead")
|
||||
// public JsonResponse<Boolean> endRead(String caseRecommendId) {
|
||||
// return success(iCasesRecommendPushRecordService.startRead(caseRecommendId));
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
@@ -245,9 +249,8 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
exportVo.setPushTime(DateUtil.formatDateTime(record.getPushTime()));
|
||||
exportVo.setReadFlag(record.getReadFlag() == 1 ? "是" : "否");
|
||||
exportVo.setReadStartTime(DateUtil.formatDateTime(record.getReadStartTime()));
|
||||
if (ObjectUtil.isNotEmpty(record.getReadStartTime()) && ObjectUtil.isNotEmpty(record.getReadEndTime())) {
|
||||
exportVo.setTotalReadTime(DateUtil.formatBetween(record.getReadStartTime(), record.getReadEndTime()));
|
||||
}
|
||||
Long browseDuration = casesBrowseService.getBrowseDuration(record.getCaseId(), getCurrent().getAccountId());
|
||||
exportVo.setTotalReadTime(browseDuration.toString());
|
||||
return exportVo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
@@ -274,9 +277,15 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
if (StringUtils.isEmpty(casesRecommendPushVo.getCasesRecommendId())) {
|
||||
throw new RuntimeException("缺少必要参数");
|
||||
}
|
||||
iCasesRecommendService.rePushOrWithdraw(casesRecommendPushVo,getCurrent().getAccountId());
|
||||
iCasesRecommendService.rePushOrWithdraw(casesRecommendPushVo, getCurrent().getAccountId());
|
||||
return success(true);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/recordBrowseDuration")
|
||||
public JsonResponse<Boolean> recordBrowseDuration(@RequestBody BrowseDurationVo browseDuration) {
|
||||
casesBrowseService.recordBrowseDuration(browseDuration.getCaseId(), getCurrent().getAccountId(), browseDuration.getBrowseDuration());
|
||||
return success(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.xboe.module.boecase.dao;
|
||||
|
||||
import com.xboe.core.orm.BaseDao;
|
||||
import com.xboe.module.boecase.entity.CasesBrowse;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* @author : civism
|
||||
* @version 1.0
|
||||
* @date 2023/7/4 16:32
|
||||
*/
|
||||
@Repository
|
||||
public class CasesBrowseDao extends BaseDao<CasesBrowse> {
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.xboe.module.boecase.entity;
|
||||
|
||||
import com.xboe.core.SysConstant;
|
||||
import com.xboe.core.orm.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Table;
|
||||
|
||||
/**
|
||||
* 案例推荐发起导入
|
||||
*/
|
||||
@Data
|
||||
@Entity
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Table(name = SysConstant.TABLE_PRE + "cases_browse")
|
||||
public class CasesBrowse extends BaseEntity {
|
||||
|
||||
|
||||
/**
|
||||
* 案例id
|
||||
*/
|
||||
@Column(name = "case_id")
|
||||
private String caseId;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 浏览时长
|
||||
*/
|
||||
private Long browseDuration;
|
||||
}
|
||||
@@ -79,11 +79,11 @@ public class CasesRecommendPushRecord extends BaseEntity {
|
||||
@Column(name = "read_start_time")
|
||||
private Date readStartTime;
|
||||
|
||||
/**
|
||||
* 最后查看时间
|
||||
*/
|
||||
@Column(name = "read_end_time")
|
||||
private Date readEndTime;
|
||||
// /**
|
||||
// * 最后查看时间
|
||||
// */
|
||||
// @Column(name = "read_end_time")
|
||||
// private Date readEndTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.xboe.module.boecase.service;
|
||||
|
||||
public interface ICasesBrowseService {
|
||||
|
||||
boolean recordBrowseDuration(String caseId, String userId, Long browseDuration);
|
||||
|
||||
Long getBrowseDuration(String caseId, String userId);
|
||||
|
||||
}
|
||||
|
||||
@@ -42,10 +42,10 @@ public interface ICasesRecommendPushRecordService {
|
||||
*/
|
||||
boolean startRead(String caseRecommendId);
|
||||
|
||||
/**
|
||||
* 结束读
|
||||
* @param caseRecommendId
|
||||
* @return
|
||||
*/
|
||||
boolean endRead(String caseRecommendId);
|
||||
// /**
|
||||
// * 结束读
|
||||
// * @param caseRecommendId
|
||||
// * @return
|
||||
// */
|
||||
// boolean endRead(String caseRecommendId);
|
||||
}
|
||||
|
||||
@@ -319,15 +319,15 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
||||
.builder()) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean endRead(String caseRecommendId) {
|
||||
CasesRecommendPushRecord casesRecommendPushRecord = casesRecommendPushRecordDao.get(caseRecommendId);
|
||||
if (casesRecommendPushRecord.getReadEndTime() != null) {
|
||||
return true;
|
||||
}
|
||||
return casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
|
||||
.addUpdateField("readEndTime", new Date())
|
||||
.addFilter(FieldFilters.eq("id", caseRecommendId))
|
||||
.builder()) > 0;
|
||||
}
|
||||
// @Override
|
||||
// public boolean endRead(String caseRecommendId) {
|
||||
// CasesRecommendPushRecord casesRecommendPushRecord = casesRecommendPushRecordDao.get(caseRecommendId);
|
||||
// if (casesRecommendPushRecord.getReadEndTime() != null) {
|
||||
// return true;
|
||||
// }
|
||||
// return casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
|
||||
// .addUpdateField("readEndTime", new Date())
|
||||
// .addFilter(FieldFilters.eq("id", caseRecommendId))
|
||||
// .builder()) > 0;
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.xboe.module.boecase.service.impl;
|
||||
|
||||
import com.xboe.core.orm.FieldFilters;
|
||||
import com.xboe.core.orm.UpdateBuilder;
|
||||
import com.xboe.module.boecase.dao.CasesBrowseDao;
|
||||
import com.xboe.module.boecase.entity.CasesBrowse;
|
||||
import com.xboe.module.boecase.service.ICasesBrowseService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author : civism
|
||||
* @version 1.0
|
||||
* @date 2023/7/4 16:31
|
||||
*/
|
||||
@Service
|
||||
@Transactional
|
||||
public class ICasesBrowseServiceImpl implements ICasesBrowseService {
|
||||
|
||||
@Resource
|
||||
private CasesBrowseDao casesBrowseDao;
|
||||
|
||||
|
||||
@Override
|
||||
public boolean recordBrowseDuration(String caseId, String userId, Long browseDuration) {
|
||||
CasesBrowse one = casesBrowseDao.findOne(FieldFilters.eq("caseId", caseId), FieldFilters.eq("userId", userId));
|
||||
if (one == null) {
|
||||
CasesBrowse save = new CasesBrowse();
|
||||
save.setUserId(userId);
|
||||
save.setCaseId(caseId);
|
||||
save.setBrowseDuration(browseDuration);
|
||||
casesBrowseDao.save(save);
|
||||
return true;
|
||||
} else {
|
||||
return casesBrowseDao.update(UpdateBuilder.from(CasesBrowse.class)
|
||||
.addUpdateField("browseDuration", one.getBrowseDuration() + browseDuration)
|
||||
.addFilter(FieldFilters.eq("id", one.getId()))
|
||||
.builder()) > 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Long getBrowseDuration(String caseId, String userId) {
|
||||
CasesBrowse one = casesBrowseDao.findOne(FieldFilters.eq("caseId", caseId), FieldFilters.eq("userId", userId));
|
||||
if (one == null) {
|
||||
return 0L;
|
||||
}
|
||||
return one.getBrowseDuration();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.xboe.module.boecase.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author : civism
|
||||
* @version 1.0
|
||||
* @date 2023/7/4 16:34
|
||||
*/
|
||||
@Data
|
||||
public class BrowseDurationVo {
|
||||
|
||||
private String caseId;
|
||||
|
||||
private Long browseDuration;
|
||||
}
|
||||
@@ -169,7 +169,7 @@ public class MessageServiceImpl implements IMessageService {
|
||||
|
||||
casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
|
||||
.addUpdateField("readStartTime", new Date())
|
||||
.addUpdateField("readEndTime", new Date())
|
||||
// .addUpdateField("readEndTime", new Date())
|
||||
.addFilter(FieldFilters.in("id", commendRecordIds))
|
||||
.builder());
|
||||
}
|
||||
@@ -179,7 +179,7 @@ public class MessageServiceImpl implements IMessageService {
|
||||
List<String> commendIds = mixList.stream().map(Message::getRefId).collect(Collectors.toList());
|
||||
casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
|
||||
.addUpdateField("readStartTime", new Date())
|
||||
.addUpdateField("readEndTime", new Date())
|
||||
// .addUpdateField("readEndTime", new Date())
|
||||
.addFilter(FieldFilters.in("recommendId", commendIds))
|
||||
.builder());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user