mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-11 03:46:50 +08:00
Merge branch 'master' of https://codeup.aliyun.com/648097ddb583fece2f059e59/boe/java-servers
This commit is contained in:
@@ -11,7 +11,6 @@ import com.xboe.common.PageList;
|
|||||||
import com.xboe.common.Pagination;
|
import com.xboe.common.Pagination;
|
||||||
import com.xboe.core.JsonResponse;
|
import com.xboe.core.JsonResponse;
|
||||||
import com.xboe.core.api.ApiBaseController;
|
import com.xboe.core.api.ApiBaseController;
|
||||||
import com.xboe.enums.CasesPushStatusEnum;
|
|
||||||
import com.xboe.enums.CasesRecommendLaunchTypeEnum;
|
import com.xboe.enums.CasesRecommendLaunchTypeEnum;
|
||||||
import com.xboe.module.boecase.entity.CasesRecommend;
|
import com.xboe.module.boecase.entity.CasesRecommend;
|
||||||
import com.xboe.module.boecase.entity.CasesRecommendLaunchImport;
|
import com.xboe.module.boecase.entity.CasesRecommendLaunchImport;
|
||||||
@@ -30,7 +29,6 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.ServletOutputStream;
|
import javax.servlet.ServletOutputStream;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -63,10 +61,18 @@ public class CasesRecommendApi extends ApiBaseController {
|
|||||||
@PostMapping("/page")
|
@PostMapping("/page")
|
||||||
public JsonResponse<PageList<CasesRecommend>> page(Pagination pager, CasesRecommendVo casesRecommendVo) {
|
public JsonResponse<PageList<CasesRecommend>> page(Pagination pager, CasesRecommendVo casesRecommendVo) {
|
||||||
PageList<CasesRecommend> page = iCasesRecommendService.page(pager.getPageIndex(), pager.getPageSize(), casesRecommendVo);
|
PageList<CasesRecommend> page = iCasesRecommendService.page(pager.getPageIndex(), pager.getPageSize(), casesRecommendVo);
|
||||||
|
// 组装查看率
|
||||||
|
page.getList().forEach(it -> {
|
||||||
|
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(it.getId());
|
||||||
|
// 查看率:查看率=案例查看人数(各案例查看人数之合)/(当条推荐记录包含的案例 × 用户数)
|
||||||
|
long viewCount = recordList.stream().filter(record -> record.getReadFlag().equals(1)).count();
|
||||||
|
it.setViewRate(String.valueOf(viewCount * 100 / recordList.size()).concat("%"));
|
||||||
|
});
|
||||||
|
|
||||||
return success(page);
|
return success(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/delete")
|
@GetMapping("/delete")
|
||||||
public JsonResponse<Boolean> delete(String id) {
|
public JsonResponse<Boolean> delete(String id) {
|
||||||
if (StringUtils.isBlank(id)) {
|
if (StringUtils.isBlank(id)) {
|
||||||
return badRequest("缺少必要参数");
|
return badRequest("缺少必要参数");
|
||||||
@@ -171,6 +177,7 @@ public class CasesRecommendApi extends ApiBaseController {
|
|||||||
if (StringUtils.isEmpty(casesRecommendId)) {
|
if (StringUtils.isEmpty(casesRecommendId)) {
|
||||||
throw new RuntimeException("缺少必要参数");
|
throw new RuntimeException("缺少必要参数");
|
||||||
}
|
}
|
||||||
|
CasesRecommend casesRecommend = iCasesRecommendService.findById(casesRecommendId);
|
||||||
// 拿取表格里需要的数据
|
// 拿取表格里需要的数据
|
||||||
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(casesRecommendId);
|
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(casesRecommendId);
|
||||||
// 用个List<Map>装表格的所有内容
|
// 用个List<Map>装表格的所有内容
|
||||||
@@ -179,7 +186,7 @@ public class CasesRecommendApi extends ApiBaseController {
|
|||||||
Map<String, Object> row = new LinkedHashMap<>();
|
Map<String, Object> row = new LinkedHashMap<>();
|
||||||
row.put("案例名称", it.getCaseTitle());
|
row.put("案例名称", it.getCaseTitle());
|
||||||
row.put("推送用户", it.getPushUserName());
|
row.put("推送用户", it.getPushUserName());
|
||||||
row.put("所属组织", "it.get");
|
row.put("所属组织", casesRecommend.getRecommendOrgName());
|
||||||
row.put("推送时间", it.getPushTime());
|
row.put("推送时间", it.getPushTime());
|
||||||
row.put("是否查看", it.getReadFlag());
|
row.put("是否查看", it.getReadFlag());
|
||||||
row.put("首次查看时间", it.getReadStartTime());
|
row.put("首次查看时间", it.getReadStartTime());
|
||||||
@@ -227,17 +234,7 @@ public class CasesRecommendApi extends ApiBaseController {
|
|||||||
if (StringUtils.isEmpty(casesRecommendPushVo.getCasesRecommendId())) {
|
if (StringUtils.isEmpty(casesRecommendPushVo.getCasesRecommendId())) {
|
||||||
throw new RuntimeException("缺少必要参数");
|
throw new RuntimeException("缺少必要参数");
|
||||||
}
|
}
|
||||||
// 查询
|
iCasesRecommendService.rePushOrWithdraw(casesRecommendPushVo);
|
||||||
CasesRecommend db = iCasesRecommendService.findById(casesRecommendPushVo.getCasesRecommendId());
|
|
||||||
if (CasesPushStatusEnum.PUSH_SUCCESS.getStatus().equals(db.getPushProgress())){
|
|
||||||
// 当为推送成功时为
|
|
||||||
iCasesRecommendPushRecordService.rePushOrWithdraw(true, casesRecommendPushVo.getCasesRecommendId());
|
|
||||||
}else if (CasesPushStatusEnum.PUSH_FAIL.getStatus().equals(db.getPushProgress())
|
|
||||||
|| CasesPushStatusEnum.PUSH_REVOKE.getStatus().equals(db.getPushProgress())){
|
|
||||||
// 推送失败或者已撤回时
|
|
||||||
iCasesRecommendPushRecordService.rePushOrWithdraw(false, casesRecommendPushVo.getCasesRecommendId());
|
|
||||||
}
|
|
||||||
|
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.xboe.module.boecase.service;
|
|||||||
|
|
||||||
import com.xboe.common.PageList;
|
import com.xboe.common.PageList;
|
||||||
import com.xboe.module.boecase.entity.CasesRecommend;
|
import com.xboe.module.boecase.entity.CasesRecommend;
|
||||||
|
import com.xboe.module.boecase.vo.CasesRecommendPushVo;
|
||||||
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
||||||
|
|
||||||
public interface ICasesRecommendService {
|
public interface ICasesRecommendService {
|
||||||
@@ -26,4 +27,11 @@ public interface ICasesRecommendService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
CasesRecommend findById(String id);
|
CasesRecommend findById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 撤回或者重新推送
|
||||||
|
* @param casesRecommendPushVo
|
||||||
|
*/
|
||||||
|
void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,8 +114,8 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
|||||||
record.setPushStatus(CasesPushStatusEnum.PUSH_REVOKE.getStatus())
|
record.setPushStatus(CasesPushStatusEnum.PUSH_REVOKE.getStatus())
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
recordList.stream().forEach(record ->
|
recordList.stream().filter(it -> CasesPushStatusEnum.PUSH_SUCCESS.getStatus() != it.getPushStatus()).forEach(record ->
|
||||||
record.setPushStatus(CasesPushStatusEnum.PUSH_ING.getStatus())
|
record.setPushStatus(CasesPushStatusEnum.WAIT_PUSH.getStatus())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(recordList)) {
|
if (CollectionUtil.isNotEmpty(recordList)) {
|
||||||
|
|||||||
@@ -5,9 +5,12 @@ import com.xboe.common.PageList;
|
|||||||
import com.xboe.core.orm.FieldFilters;
|
import com.xboe.core.orm.FieldFilters;
|
||||||
import com.xboe.core.orm.LikeMatchMode;
|
import com.xboe.core.orm.LikeMatchMode;
|
||||||
import com.xboe.core.orm.QueryBuilder;
|
import com.xboe.core.orm.QueryBuilder;
|
||||||
|
import com.xboe.enums.CasesPushStatusEnum;
|
||||||
import com.xboe.module.boecase.dao.CasesRecommendDao;
|
import com.xboe.module.boecase.dao.CasesRecommendDao;
|
||||||
import com.xboe.module.boecase.entity.CasesRecommend;
|
import com.xboe.module.boecase.entity.CasesRecommend;
|
||||||
|
import com.xboe.module.boecase.service.ICasesRecommendPushRecordService;
|
||||||
import com.xboe.module.boecase.service.ICasesRecommendService;
|
import com.xboe.module.boecase.service.ICasesRecommendService;
|
||||||
|
import com.xboe.module.boecase.vo.CasesRecommendPushVo;
|
||||||
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -22,20 +25,22 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private CasesRecommendDao casesRecommendDao;
|
private CasesRecommendDao casesRecommendDao;
|
||||||
|
@Resource
|
||||||
|
private ICasesRecommendPushRecordService iCasesRecommendPushRecordService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageList<CasesRecommend> page(int pageIndex, int pageSize, CasesRecommendVo casesRecommendVo) {
|
public PageList<CasesRecommend> page(int pageIndex, int pageSize, CasesRecommendVo casesRecommendVo) {
|
||||||
QueryBuilder query=QueryBuilder.from(CasesRecommend.class);
|
QueryBuilder query=QueryBuilder.from(CasesRecommend.class);
|
||||||
query.addFilter(FieldFilters.eq("deleted",false));
|
query.addFilter(FieldFilters.eq("deleted",false));
|
||||||
if(StringUtils.isNotBlank(casesRecommendVo.getRecommendName())){
|
if(StringUtils.isNotBlank(casesRecommendVo.getRecommendName())){
|
||||||
query.addFilter(FieldFilters.like("recommendBy", LikeMatchMode.ANYWHERE, casesRecommendVo.getRecommendName()));
|
query.addFilter(FieldFilters.like("recommend_by", LikeMatchMode.ANYWHERE, casesRecommendVo.getRecommendName()));
|
||||||
}
|
}
|
||||||
if(!CollectionUtils.isEmpty(casesRecommendVo.getRecommendTimeList())){
|
if(!CollectionUtils.isEmpty(casesRecommendVo.getRecommendTimeList())){
|
||||||
query.addFilter(FieldFilters.ge("recommendTime",casesRecommendVo.getRecommendTimeList().get(0)));
|
query.addFilter(FieldFilters.ge("recommend_time",casesRecommendVo.getRecommendTimeList().get(0)));
|
||||||
query.addFilter(FieldFilters.le("recommendTime",casesRecommendVo.getRecommendTimeList().get(1)));
|
query.addFilter(FieldFilters.le("recommend_time",casesRecommendVo.getRecommendTimeList().get(1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
query.addOrder(OrderCondition.desc("sysCreateTime"));
|
query.addOrder(OrderCondition.desc("sys_create_time"));
|
||||||
query.setPageIndex(pageIndex);
|
query.setPageIndex(pageIndex);
|
||||||
query.setPageSize(pageSize);
|
query.setPageSize(pageSize);
|
||||||
PageList<CasesRecommend> page = casesRecommendDao.findPage(query.builder());
|
PageList<CasesRecommend> page = casesRecommendDao.findPage(query.builder());
|
||||||
@@ -51,4 +56,21 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService {
|
|||||||
public CasesRecommend findById(String id) {
|
public CasesRecommend findById(String id) {
|
||||||
return casesRecommendDao.get(id);
|
return casesRecommendDao.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo) {
|
||||||
|
// 查询
|
||||||
|
CasesRecommend db = casesRecommendDao.get(casesRecommendPushVo.getCasesRecommendId());
|
||||||
|
if (CasesPushStatusEnum.PUSH_SUCCESS.getStatus().equals(db.getPushProgress())){
|
||||||
|
// 当为推送成功时为
|
||||||
|
iCasesRecommendPushRecordService.rePushOrWithdraw(true, casesRecommendPushVo.getCasesRecommendId());
|
||||||
|
db.setPushProgress(CasesPushStatusEnum.PUSH_REVOKE.getStatus());
|
||||||
|
}else if (CasesPushStatusEnum.PUSH_FAIL.getStatus().equals(db.getPushProgress())
|
||||||
|
|| CasesPushStatusEnum.PUSH_REVOKE.getStatus().equals(db.getPushProgress())){
|
||||||
|
// 推送失败或者已撤回时
|
||||||
|
iCasesRecommendPushRecordService.rePushOrWithdraw(false, casesRecommendPushVo.getCasesRecommendId());
|
||||||
|
db.setPushProgress(CasesPushStatusEnum.WAIT_PUSH.getStatus());
|
||||||
|
}
|
||||||
|
casesRecommendDao.update(db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user