diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java new file mode 100644 index 00000000..7b1bf328 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java @@ -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> manage(Pagination pager, CasesRecommendVo casesRecommendVo){ + PageList page = iCasesRecommendService.page(pager.getPageIndex(), pager.getPageSize(), casesRecommendVo); + return success(page); + } + + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendDao.java new file mode 100644 index 00000000..69685510 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendDao.java @@ -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 { +} + diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommend.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommend.java new file mode 100644 index 00000000..8ba103f8 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommend.java @@ -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; +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java new file mode 100644 index 00000000..5a4f4f75 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java @@ -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 page(int pageIndex, int pageSize, CasesRecommendVo casesRecommendVo); +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java new file mode 100644 index 00000000..59a37411 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java @@ -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 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 page = casesRecommendDao.findPage(query.builder()); + return page; + } +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendVo.java new file mode 100644 index 00000000..24988595 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendVo.java @@ -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 recommendTimeList; + +}