1.设计案例推荐表表结构并创建表;2.新增案例推荐表对应实体类;3.增加案例推荐表数据库连接层和业务层代码;4.增加案例管理列表及根据姓名和推荐时间查询接口

This commit is contained in:
wangwenchao
2023-06-15 22:41:14 +08:00
parent fb1b906005
commit fb9246d3a8
6 changed files with 184 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
package com.xboe.module.boecase.api;
import com.xboe.common.PageList;
import com.xboe.common.Pagination;
import com.xboe.core.JsonResponse;
import com.xboe.core.api.ApiBaseController;
import com.xboe.module.boecase.entity.CasesRecommend;
import com.xboe.module.boecase.service.ICasesRecommendService;
import com.xboe.module.boecase.vo.CasesRecommendVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 案例推荐表
* */
@Slf4j
@RestController
@RequestMapping(value = "xboe/m/boe/cases/recommend")
public class CasesRecommendApi extends ApiBaseController {
@Resource
private ICasesRecommendService iCasesRecommendService;
/**
* 用于后台管理分页
* @param pager
* @param casesRecommendVo
* @return
*/
@PostMapping("/page")
public JsonResponse<PageList<CasesRecommend>> manage(Pagination pager, CasesRecommendVo casesRecommendVo){
PageList<CasesRecommend> page = iCasesRecommendService.page(pager.getPageIndex(), pager.getPageSize(), casesRecommendVo);
return success(page);
}
}

View File

@@ -0,0 +1,10 @@
package com.xboe.module.boecase.dao;
import com.xboe.core.orm.BaseDao;
import com.xboe.module.boecase.entity.CasesRecommend;
import org.springframework.stereotype.Repository;
@Repository
public class CasesRecommendDao extends BaseDao<CasesRecommend> {
}

View File

@@ -0,0 +1,56 @@
package com.xboe.module.boecase.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
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;
import java.time.LocalDateTime;
/**
* 案例推荐表
* */
@Data
@Entity
@EqualsAndHashCode(callSuper = false)
@Table(name = SysConstant.TABLE_PRE+"cases_recommend")
public class CasesRecommend extends BaseEntity {
private static final long serialVersionUID = 1L;
/**推荐人ID*/
@Column(name = "recommend_id",nullable = false,length = 100)
private String recommendId;
/**推荐人*/
@Column(name = "recommend_by", length = 255)
private String recommendBy;
/**推荐时间*/
@Column(name = "recommend_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime recommendTime;
/**案例数*/
@Column(name = "case_count",length = 11)
private Integer caseCount;
/**用户数*/
@Column(name = "user_count",length = 11)
private Integer userCount;
/**推送进度*/
@Column(name = "push_progress", length = 255)
private String pushProgress;
/**查看率*/
@Column(name = "view_rate", length = 255)
private String viewRate;
/**推荐组织ID*/
@Column(name = "recommend_org_id", length = 20)
private String recommendOrgId;
/**推荐组织名称*/
@Column(name = "recommend_org_name", length = 255)
private String recommendOrgName;
}

View File

@@ -0,0 +1,16 @@
package com.xboe.module.boecase.service;
import com.xboe.common.PageList;
import com.xboe.module.boecase.entity.CasesRecommend;
import com.xboe.module.boecase.vo.CasesRecommendVo;
public interface ICasesRecommendService {
/**
* 分页并查询案例推荐列表
* @param pageIndex
* @param pageSize
* @param casesRecommendVo
* @return
*/
PageList<CasesRecommend> page(int pageIndex, int pageSize, CasesRecommendVo casesRecommendVo);
}

View File

@@ -0,0 +1,44 @@
package com.xboe.module.boecase.service.impl;
import com.xboe.common.OrderCondition;
import com.xboe.common.PageList;
import com.xboe.core.orm.FieldFilters;
import com.xboe.core.orm.LikeMatchMode;
import com.xboe.core.orm.QueryBuilder;
import com.xboe.module.boecase.dao.CasesRecommendDao;
import com.xboe.module.boecase.entity.CasesRecommend;
import com.xboe.module.boecase.service.ICasesRecommendService;
import com.xboe.module.boecase.vo.CasesRecommendVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
@Service
@Transactional
public class CasesRecommendServiceImpl implements ICasesRecommendService {
@Resource
private CasesRecommendDao casesRecommendDao;
@Override
public PageList<CasesRecommend> page(int pageIndex, int pageSize, CasesRecommendVo casesRecommendVo) {
QueryBuilder query=QueryBuilder.from(CasesRecommend.class);
query.addFilter(FieldFilters.eq("deleted",false));
if(StringUtils.isNotBlank(casesRecommendVo.getRecommendName())){
query.addFilter(FieldFilters.like("recommendBy", LikeMatchMode.ANYWHERE, casesRecommendVo.getRecommendName()));
}
if(!CollectionUtils.isEmpty(casesRecommendVo.getRecommendTimeList())){
query.addFilter(FieldFilters.ge("recommendTime",casesRecommendVo.getRecommendTimeList().get(0)));
query.addFilter(FieldFilters.le("recommendTime",casesRecommendVo.getRecommendTimeList().get(1)));
}
query.addOrder(OrderCondition.desc("sysCreateTime"));
query.setPageIndex(pageIndex);
query.setPageSize(pageSize);
PageList<CasesRecommend> page = casesRecommendDao.findPage(query.builder());
return page;
}
}

View File

@@ -0,0 +1,17 @@
package com.xboe.module.boecase.vo;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class CasesRecommendVo {
/** 推荐人姓名 */
private String recommendName;
/** 推荐时间区间 */
private List<LocalDateTime> recommendTimeList;
}