|
@@ -1,9 +1,31 @@
|
|
|
package com.zanxiang.manage.service.Impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.zanxiang.common.enums.DeleteEnum;
|
|
|
+import com.zanxiang.common.enums.PromoMediaTypeEnum;
|
|
|
+import com.zanxiang.common.enums.StatusEnum;
|
|
|
+import com.zanxiang.common.exception.BaseException;
|
|
|
+import com.zanxiang.common.utils.bean.BeanUtils;
|
|
|
+import com.zanxiang.manage.domain.params.PromoMediaAddUpdateParam;
|
|
|
+import com.zanxiang.manage.domain.params.PromoMediaListParam;
|
|
|
+import com.zanxiang.manage.domain.vo.PromoMediaListVO;
|
|
|
import com.zanxiang.manage.service.PromoMediaService;
|
|
|
+import com.zanxiang.mybatis.entity.PromoMedia;
|
|
|
+import com.zanxiang.mybatis.mapper.PromoMediaMapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.logging.log4j.util.Strings;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
/**
|
|
|
* @author : lingfeng
|
|
|
* @time : 2022-11-17
|
|
@@ -11,7 +33,121 @@ import org.springframework.stereotype.Service;
|
|
|
*/
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
-public class PromoMediaServiceImpl implements PromoMediaService {
|
|
|
+public class PromoMediaServiceImpl extends ServiceImpl<PromoMediaMapper, PromoMedia> implements PromoMediaService {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询游戏标签列表
|
|
|
+ *
|
|
|
+ * @param param : 游戏标签列表查询呢参数
|
|
|
+ * @return : 返回分页信息
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public IPage<PromoMediaListVO> list(PromoMediaListParam param) {
|
|
|
+ return page(param.toPage(), new QueryWrapper<PromoMedia>().lambda()
|
|
|
+ .like(Strings.isNotBlank(param.getName()), PromoMedia::getName, param.getName())
|
|
|
+ .apply(param.getType() != null, "FIND_IN_SET({0}, types)", String.valueOf(param.getType()))
|
|
|
+ .eq(param.getStatus() != null, PromoMedia::getStatus, param.getStatus())
|
|
|
+ .orderByDesc(PromoMedia::getCreateTime))
|
|
|
+ .convert(this::toVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 对象转换
|
|
|
+ *
|
|
|
+ * @param promoMedia 宣传媒体
|
|
|
+ * @return {@link PromoMediaListVO}
|
|
|
+ */
|
|
|
+ private PromoMediaListVO toVo(PromoMedia promoMedia) {
|
|
|
+ PromoMediaListVO promoMediaListVO = BeanUtils.copy(promoMedia, PromoMediaListVO.class);
|
|
|
+ if (Objects.isNull(promoMediaListVO)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ String[] typeList = promoMediaListVO.getTypes().split(",");
|
|
|
+ List<String> typeNameList = new ArrayList<>();
|
|
|
+ for (String type : typeList) {
|
|
|
+ typeNameList.add(PromoMediaTypeEnum.getNameByType(Integer.valueOf(type)));
|
|
|
+ }
|
|
|
+ promoMediaListVO.setTypeNameList(typeNameList);
|
|
|
+ return promoMediaListVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 推广媒体新增或者更新
|
|
|
+ *
|
|
|
+ * @param param : 更新参数
|
|
|
+ * @return : 返回结果
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Boolean addOrUpdate(PromoMediaAddUpdateParam param) {
|
|
|
+ Long id = param.getId();
|
|
|
+ //更新
|
|
|
+ if (id != null) {
|
|
|
+ PromoMedia promoMedia = super.getById(id);
|
|
|
+ if (promoMedia == null) {
|
|
|
+ throw new BaseException("参数错误, 推广媒体信息不存在");
|
|
|
+ }
|
|
|
+ //更新标签名字, 不可重复
|
|
|
+ if (!Objects.equals(promoMedia.getName(), param.getName())) {
|
|
|
+ //判断名称是否已经存在
|
|
|
+ int count = super.count(new LambdaQueryWrapper<PromoMedia>()
|
|
|
+ .eq(PromoMedia::getName, param.getName()));
|
|
|
+ if (count > 0) {
|
|
|
+ throw new BaseException("推广媒体名称名称已经存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ promoMedia.setName(param.getName());
|
|
|
+ promoMedia.setTypes(StringUtils.join(param.getTypes(), ","));
|
|
|
+ promoMedia.setAddress(param.getAddress());
|
|
|
+ promoMedia.setCompany(param.getCompany());
|
|
|
+ promoMedia.setRemark(param.getRemark());
|
|
|
+ promoMedia.setUpdateTime(LocalDateTime.now());
|
|
|
+ return super.updateById(promoMedia);
|
|
|
+ }
|
|
|
+ //判断名称是否已经存在
|
|
|
+ int count = super.count(new LambdaQueryWrapper<PromoMedia>()
|
|
|
+ .eq(PromoMedia::getName, param.getName()));
|
|
|
+ if (count > 0) {
|
|
|
+ throw new BaseException("推广媒体名称名称已经存在");
|
|
|
+ }
|
|
|
+ //创建
|
|
|
+ return super.save(PromoMedia.builder()
|
|
|
+ .name(param.getName())
|
|
|
+ .types(StringUtils.join(param.getTypes(), ","))
|
|
|
+ .address(param.getAddress())
|
|
|
+ .company(param.getCompany())
|
|
|
+ .status(StatusEnum.YES.getCode())
|
|
|
+ .remark(param.getRemark())
|
|
|
+ .isDelete(DeleteEnum.NO.getCode())
|
|
|
+ .createTime(LocalDateTime.now())
|
|
|
+ .updateTime(LocalDateTime.now())
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除推广媒体信息
|
|
|
+ *
|
|
|
+ * @param id : 删除推广媒体信息id
|
|
|
+ * @return : 返回删除结果
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean deleteById(Long id) {
|
|
|
+ return super.removeById(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据主键更新状态
|
|
|
+ *
|
|
|
+ * @param id : 主键id
|
|
|
+ * @param status : 状态
|
|
|
+ * @return : 返回更新结果
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Boolean statusUpdate(Long id, Integer status) {
|
|
|
+ return super.update(new LambdaUpdateWrapper<PromoMedia>()
|
|
|
+ .set(PromoMedia::getStatus, status)
|
|
|
+ .set(PromoMedia::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(PromoMedia::getId, id));
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|