123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- package com.redxun.knowledge.service;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.redxun.common.base.db.BaseDao;
- import com.redxun.common.base.db.BaseService;
- import com.redxun.common.base.db.PageHelper;
- import com.redxun.common.base.search.QueryFilter;
- import com.redxun.common.service.impl.SuperServiceImpl;
- import com.redxun.common.tool.BeanUtil;
- import com.redxun.common.tool.IdGenerator;
- import com.redxun.feign.org.UserClient;
- import com.redxun.knowledge.common.UserService;
- import com.redxun.knowledge.entity.dao.Banner;
- import com.redxun.knowledge.entity.dao.Knowledge;
- import com.redxun.knowledge.entity.dao.KnowledgeCategory;
- import com.redxun.knowledge.entity.vo.BannerAdminVo;
- import com.redxun.knowledge.entity.vo.BannerPcVo;
- import com.redxun.knowledge.entity.vo.KnowledgeCategoryAdminVo;
- import com.redxun.knowledge.mapper.BannerMapper;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.util.StringUtils;
- import javax.annotation.Resource;
- import java.io.Serializable;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * [业务--首页banner表]业务服务类
- */
- @Slf4j
- @Service
- public class BannerServiceImpl extends SuperServiceImpl<BannerMapper, Banner> implements BaseService<Banner> {
- @Resource
- private BannerMapper bannerMapper;
- @Autowired
- private KnowledgeServiceImpl knowledgeService;
- @Autowired
- private KnowledgeCategoryServiceImpl knowledgeCategoryService;
- @Autowired
- private UserService userService;
- @Override
- public BaseDao<Banner> getRepository() {
- return bannerMapper;
- }
- /**
- * 后台查询全部banner展示(分页)
- * @param filter
- * @return
- */
- public IPage findAllBanner(QueryFilter filter) {
- Map<String, Object> params = PageHelper.constructParams(filter);
- IPage page = bannerMapper.findAllBanner(filter.getPage(), filter.getParams(), params);
- List<BannerAdminVo> bannerAdminVos = page.getRecords();
- bannerAdminVos.forEach(e -> {
- String knowledgeId = e.getKnowledgeId();
- if (!StringUtils.isEmpty(knowledgeId)){
- Map<String, Object> map = new HashMap<>();
- Knowledge knowledge = knowledgeService.get(knowledgeId);
- if (knowledge != null){
- map.put("knowledgeName",knowledge.getTitles());
- }
- e.setParams(map);
- }
- });
- return page;
- }
- /**
- * 获取Banner详情
- * @param id
- * @return
- */
- @Override
- public Banner get(Serializable id) {
- Banner banner = this.getRepository().selectById(id);
- String knowledgeId = banner.getKnowledgeId();
- if (!StringUtils.isEmpty(knowledgeId)){
- Knowledge knowledge = knowledgeService.get(knowledgeId);
- if(knowledge != null){
- KnowledgeCategory knowledgeCategory = knowledgeCategoryService.findAllByCategoryId(knowledge.getCategoryId());
- Map<String,Object> map = new HashMap<>();
- map.put("knowledgeName",knowledge.getTitles());
- KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(knowledgeCategory.getPkId());
- map.put("knowledgeCategory",knowledgeCategoryAdminVo);
- banner.setParams(map);
- }
- }
- return banner;
- }
- /**
- * 新增banner
- * @param entity
- * @return
- */
- @Override
- public int insert(Banner entity) {
- if (BeanUtil.isEmpty(entity.getPkId())) {
- entity.setPkId(IdGenerator.getIdStr());
- entity.setCreateBy(userService.queryLoginUser());
- entity.setUpdateBy(userService.queryLoginUser());
- }
- if (entity.getSort() == null){
- entity.setSort(0);
- }
- QueryWrapper<Banner> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("SORT",entity.getSort());
- Integer integer = bannerMapper.selectCount(queryWrapper);
- if (integer > 0){
- bannerMapper.insertOrUpdateBySort(entity.getSort());
- }
- return this.getRepository().insert(entity);
- }
- /**
- * 修改banner
- * @param entity
- * @return
- */
- @Override
- public int update(Banner entity) {
- entity.setUpdateBy(userService.queryLoginUser());
- if (entity.getSort() != null){
- QueryWrapper<Banner> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("SORT",entity.getSort());
- Integer integer = bannerMapper.selectCount(queryWrapper);
- if (integer > 0){
- bannerMapper.insertOrUpdateBySort(entity.getSort());
- }
- }
- return this.getRepository().updateById(entity);
- }
- /**
- * 状态为true,上升;为false,下降
- * @param bannerId
- * @param status
- */
- @Transactional(rollbackFor = Exception.class)
- public void goUpOrDownUp(String bannerId,Boolean status) {
- Banner banner = this.get(bannerId);
- Integer sort = banner.getSort();
- if (status){
- // 上升
- QueryWrapper<Banner> queryWrapper = new QueryWrapper<>();
- queryWrapper.orderByAsc("SORT").orderByDesc("ENABLED");
- List<Banner> banners = bannerMapper.selectList(queryWrapper);
- List<Banner> collect = banners.stream().filter(e -> e.getSort() < sort).collect(Collectors.toList());
- Banner bannerPre = collect.get(collect.size() - 1);
- // 交换位置
- int temp = sort;
- bannerMapper.swapSort(bannerId,bannerPre.getSort());
- bannerMapper.swapSort(bannerPre.getPkId(),temp);
- } else {
- // 下降
- QueryWrapper<Banner> queryWrapper = new QueryWrapper<>();
- queryWrapper.orderByAsc("SORT").orderByDesc("ENABLED");
- List<Banner> banners = bannerMapper.selectList(queryWrapper);
- List<Banner> collect = banners.stream().filter(e -> e.getSort() > sort).collect(Collectors.toList());
- Banner bannerNext = collect.get(0);
- // 交换位置
- int temp = sort;
- bannerMapper.swapSort(bannerId,bannerNext.getSort());
- bannerMapper.swapSort(bannerNext.getPkId(),temp);
- }
- }
- /**
- * 删除banner
- * @param pkId
- */
- public void deleteBanner(String pkId) {
- // 修改sort
- Banner banner = this.bannerMapper.selectById(pkId);
- bannerMapper.deleteBySort(banner.getSort());
- bannerMapper.deleteBanner(pkId);
- }
- /**
- * 前台查询全部banner展示(默认展示10张)
- * @return
- */
- public List<BannerPcVo> getAllList() {
- QueryWrapper<Banner> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("ENABLED",1);
- queryWrapper.orderByAsc("SORT").orderByDesc("CREATE_TIME_");
- List<Banner> bannersList = bannerMapper.selectList(queryWrapper);
- List<Banner> result = bannersList.parallelStream().limit(10).collect(Collectors.toList());
- List<BannerPcVo> collectBannerPcVo = result.parallelStream().map(e -> {
- BannerPcVo bannerPcVo = new BannerPcVo();
- BeanUtils.copyProperties(e, bannerPcVo);
- return bannerPcVo;
- }).collect(Collectors.toList());
- return collectBannerPcVo;
- }
- }
|