BannerServiceImpl.java 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. package com.fuint.common.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.fuint.framework.annoation.OperationServiceLog;
  6. import com.fuint.framework.exception.BusinessCheckException;
  7. import com.fuint.framework.pagination.PaginationRequest;
  8. import com.fuint.framework.pagination.PaginationResponse;
  9. import com.fuint.repository.model.MtBanner;
  10. import com.fuint.common.dto.BannerDto;
  11. import com.fuint.common.service.BannerService;
  12. import com.fuint.common.service.SettingService;
  13. import com.fuint.common.enums.StatusEnum;
  14. import com.fuint.repository.mapper.MtBannerMapper;
  15. import com.github.pagehelper.PageHelper;
  16. import lombok.AllArgsConstructor;
  17. import org.apache.commons.lang.StringUtils;
  18. import org.slf4j.Logger;
  19. import org.slf4j.LoggerFactory;
  20. import com.github.pagehelper.Page;
  21. import org.springframework.beans.BeanUtils;
  22. import org.springframework.data.domain.PageImpl;
  23. import org.springframework.data.domain.PageRequest;
  24. import org.springframework.stereotype.Service;
  25. import org.springframework.transaction.annotation.Transactional;
  26. import java.util.*;
  27. /**
  28. * 焦点图服务接口
  29. *
  30. * Created by FSQ
  31. * CopyRight https://www.fuint.cn
  32. */
  33. @Service
  34. @AllArgsConstructor
  35. public class BannerServiceImpl extends ServiceImpl<MtBannerMapper, MtBanner> implements BannerService {
  36. private static final Logger logger = LoggerFactory.getLogger(BannerServiceImpl.class);
  37. private MtBannerMapper mtBannerMapper;
  38. /**
  39. * 系统设置服务接口
  40. * */
  41. private SettingService settingService;
  42. /**
  43. * 分页查询Banner列表
  44. *
  45. * @param paginationRequest
  46. * @return
  47. */
  48. @Override
  49. public PaginationResponse<MtBanner> queryBannerListByPagination(PaginationRequest paginationRequest) {
  50. Page<MtBanner> pageHelper = PageHelper.startPage(paginationRequest.getCurrentPage(), paginationRequest.getPageSize());
  51. LambdaQueryWrapper<MtBanner> lambdaQueryWrapper = Wrappers.lambdaQuery();
  52. lambdaQueryWrapper.ne(MtBanner::getStatus, StatusEnum.DISABLE.getKey());
  53. String title = paginationRequest.getSearchParams().get("title") == null ? "" : paginationRequest.getSearchParams().get("title").toString();
  54. if (StringUtils.isNotBlank(title)) {
  55. lambdaQueryWrapper.like(MtBanner::getTitle, title);
  56. }
  57. String status = paginationRequest.getSearchParams().get("status") == null ? "" : paginationRequest.getSearchParams().get("status").toString();
  58. if (StringUtils.isNotBlank(status)) {
  59. lambdaQueryWrapper.eq(MtBanner::getStatus, status);
  60. }
  61. String merchantId = paginationRequest.getSearchParams().get("merchantId") == null ? "" : paginationRequest.getSearchParams().get("merchantId").toString();
  62. if (StringUtils.isNotBlank(merchantId)) {
  63. lambdaQueryWrapper.eq(MtBanner::getMerchantId, merchantId);
  64. }
  65. String storeId = paginationRequest.getSearchParams().get("storeId") == null ? "" : paginationRequest.getSearchParams().get("storeId").toString();
  66. if (StringUtils.isNotBlank(storeId)) {
  67. lambdaQueryWrapper.eq(MtBanner::getStoreId, storeId);
  68. }
  69. lambdaQueryWrapper.orderByAsc(MtBanner::getSort);
  70. List<MtBanner> dataList = mtBannerMapper.selectList(lambdaQueryWrapper);
  71. PageRequest pageRequest = PageRequest.of(paginationRequest.getCurrentPage(), paginationRequest.getPageSize());
  72. PageImpl pageImpl = new PageImpl(dataList, pageRequest, pageHelper.getTotal());
  73. PaginationResponse<MtBanner> paginationResponse = new PaginationResponse(pageImpl, MtBanner.class);
  74. paginationResponse.setTotalPages(pageHelper.getPages());
  75. paginationResponse.setTotalElements(pageHelper.getTotal());
  76. paginationResponse.setContent(dataList);
  77. return paginationResponse;
  78. }
  79. /**
  80. * 添加焦点图
  81. *
  82. * @param bannerDto
  83. */
  84. @Override
  85. @OperationServiceLog(description = "新增焦点图")
  86. public MtBanner addBanner(BannerDto bannerDto) {
  87. MtBanner mtBanner = new MtBanner();
  88. BeanUtils.copyProperties(bannerDto, mtBanner);
  89. mtBanner.setStoreId(bannerDto.getStoreId() == null ? 0 : bannerDto.getStoreId());
  90. mtBanner.setStatus(StatusEnum.ENABLED.getKey());
  91. mtBanner.setUpdateTime(new Date());
  92. mtBanner.setCreateTime(new Date());
  93. Integer id = mtBannerMapper.insert(mtBanner);
  94. if (id > 0) {
  95. return mtBanner;
  96. } else {
  97. logger.error("新增焦点图失败.");
  98. return null;
  99. }
  100. }
  101. /**
  102. * 根据ID获取Banner信息
  103. *
  104. * @param id BannerID
  105. */
  106. @Override
  107. public MtBanner queryBannerById(Integer id) {
  108. return mtBannerMapper.selectById(id);
  109. }
  110. /**
  111. * 根据ID删除Banner图
  112. *
  113. * @param id BannerID
  114. * @param operator 操作人
  115. */
  116. @Override
  117. @Transactional(rollbackFor = Exception.class)
  118. @OperationServiceLog(description = "删除Banner图")
  119. public void deleteBanner(Integer id, String operator) {
  120. MtBanner mtBanner = queryBannerById(id);
  121. if (null == mtBanner) {
  122. return;
  123. }
  124. mtBanner.setStatus(StatusEnum.DISABLE.getKey());
  125. mtBanner.setUpdateTime(new Date());
  126. mtBannerMapper.updateById(mtBanner);
  127. }
  128. /**
  129. * 修改Banner图
  130. *
  131. * @param bannerDto
  132. * @throws BusinessCheckException
  133. */
  134. @Override
  135. @Transactional(rollbackFor = Exception.class)
  136. @OperationServiceLog(description = "更新Banner图")
  137. public MtBanner updateBanner(BannerDto bannerDto) throws BusinessCheckException {
  138. MtBanner mtBanner = queryBannerById(bannerDto.getId());
  139. if (mtBanner == null) {
  140. throw new BusinessCheckException("该Banner状态异常");
  141. }
  142. mtBanner.setId(bannerDto.getId());
  143. if (bannerDto.getImage() != null) {
  144. mtBanner.setImage(bannerDto.getImage());
  145. }
  146. if (bannerDto.getTitle() != null) {
  147. mtBanner.setTitle(bannerDto.getTitle());
  148. }
  149. if (bannerDto.getStoreId() != null) {
  150. mtBanner.setStoreId(bannerDto.getStoreId());
  151. }
  152. if (bannerDto.getDescription() != null) {
  153. mtBanner.setDescription(bannerDto.getDescription());
  154. }
  155. if (bannerDto.getOperator() != null) {
  156. mtBanner.setOperator(bannerDto.getOperator());
  157. }
  158. if (bannerDto.getStatus() != null) {
  159. mtBanner.setStatus(bannerDto.getStatus());
  160. }
  161. if (bannerDto.getUrl() != null) {
  162. mtBanner.setUrl(bannerDto.getUrl());
  163. }
  164. if (bannerDto.getSort() != null) {
  165. mtBanner.setSort(bannerDto.getSort());
  166. }
  167. mtBanner.setUpdateTime(new Date());
  168. mtBannerMapper.updateById(mtBanner);
  169. return mtBanner;
  170. }
  171. @Override
  172. public List<MtBanner> queryBannerListByParams(Map<String, Object> params) {
  173. String status = params.get("status") == null ? StatusEnum.ENABLED.getKey(): params.get("status").toString();
  174. String storeId = params.get("storeId") == null ? "" : params.get("storeId").toString();
  175. String merchantId = params.get("merchantId") == null ? "" : params.get("merchantId").toString();
  176. String title = params.get("title") == null ? "" : params.get("title").toString();
  177. LambdaQueryWrapper<MtBanner> lambdaQueryWrapper = Wrappers.lambdaQuery();
  178. if (StringUtils.isNotBlank(title)) {
  179. lambdaQueryWrapper.like(MtBanner::getTitle, title);
  180. }
  181. if (StringUtils.isNotBlank(status)) {
  182. lambdaQueryWrapper.eq(MtBanner::getStatus, status);
  183. }
  184. if (StringUtils.isNotBlank(merchantId)) {
  185. lambdaQueryWrapper.eq(MtBanner::getMerchantId, merchantId);
  186. }
  187. if (StringUtils.isNotBlank(storeId)) {
  188. lambdaQueryWrapper.and(wq -> wq
  189. .eq(MtBanner::getStoreId, 0)
  190. .or()
  191. .eq(MtBanner::getStoreId, storeId));
  192. }
  193. lambdaQueryWrapper.orderByAsc(MtBanner::getSort);
  194. List<MtBanner> dataList = mtBannerMapper.selectList(lambdaQueryWrapper);
  195. String baseImage = settingService.getUploadBasePath();
  196. if (dataList.size() > 0) {
  197. for (MtBanner banner : dataList) {
  198. banner.setImage(baseImage + banner.getImage());
  199. }
  200. }
  201. return dataList;
  202. }
  203. }