Commit 6d5edcf3 authored by shangtx's avatar shangtx

feat: banner列表

parent 5e215e69
package com.onsiteservice.admin.controller.banner;
import com.onsiteservice.entity.banner.Banner;
import com.onsiteservice.admin.service.banner.BannerService;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import java.util.List;
import static com.onsiteservice.core.result.ResultGenerator.success;
import static com.onsiteservice.core.result.ResultGenerator.fail;
/**
* @author 商天翔
* @date 2022-07-12 14:37
* @description BannerController控制类
*/
@ApiIgnore
@Api(tags = "BannerController")
@RestController
@RequestMapping("/banner")
@Validated
public class BannerController {
@Resource
private BannerService bannerService;
@ApiOperation(value = "分页查询列表", notes = "作者: 商天翔")
@PostMapping("/list")
public Result<List> getPage() {
return success(bannerService.getPage());
}
@ApiOperation(value = "根据id查询", notes = "作者: 商天翔")
@GetMapping("/{id}")
public Result<Banner> getDetails(@PathVariable @Positive Long id) {
return success(bannerService.selectByPrimaryKey(id), "根据id获取详情");
}
@ApiOperation(value = "新增或修改", notes = "作者: 商天翔")
@PostMapping("/save-or-update")
public Result saveOrUpdate(@RequestBody @NonNull @Validated Banner banner) {
return success(bannerService.saveOrUpdate(banner), banner.getId() == null ? "新增成功" : "修改成功");
}
@PutMapping("/enable")
public Result enable(@RequestBody @NonNull @Validated Banner banner) {
return success(bannerService.enable(banner));
}
@ApiOperation(value = "根据id删除", notes = "作者: 商天翔")
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable @Positive Long id) {
return success(bannerService.deleteOne(id), "删除成功");
}
}
package com.onsiteservice.admin.mapper.banner;
import com.onsiteservice.entity.banner.Banner;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
/**
* @author 商天翔
* @date 2022-07-12 14:37
* @description BannerBizMapper业务接口
*/
public interface BannerBizMapper {
@Update("update banner set enabled = #{banner.enabled} where id = #{banner.id}")
int enable(@Param("banner") Banner banner);
}
package com.onsiteservice.admin.service.banner;
import com.onsiteservice.entity.banner.Banner;
import com.onsiteservice.dao.mapper.banner.BannerMapper;
import com.onsiteservice.admin.mapper.banner.BannerBizMapper;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.util.aliyun.OssUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @author 商天翔
* @date 2022-07-12 14:37
* @description BannerService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class BannerService extends AbstractMapper<Banner> {
@Resource
private BannerMapper bannerMapper;
@Resource
private BannerBizMapper bannerBizMapper;
@Resource
private OssUtils ossUtils;
/**
* 分页查询列表
*/
public List<Banner> getPage() {
return bannerMapper.selectAll();
}
/**
* 保存或更新方法
*/
public int saveOrUpdate(Banner banner) {
if (banner.getId() == null) {
return this.insertSelective(banner);
} else {
return this.updateByPrimaryKeySelective(banner);
}
}
public int enable(Banner banner) {
return bannerBizMapper.enable(banner);
}
public int deleteOne(Long id) {
var banner = selectByPrimaryKey(id);
if(StringUtils.isNotBlank(banner.getUrl())) {
ossUtils.deleteFileAsync(banner.getUrl());
}
return bannerMapper.deleteByPrimaryKey(id);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.admin.mapper.banner.BannerBizMapper">
</mapper>
package com.onsiteservice.admin.service.banner;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
class BannerServiceTest {
@Resource
private BannerService bannerService;
@Test
public void bannerDelelt() {
bannerService.deleteByPrimaryKey(1);
}
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import com.aliyun.oss.model.OSSObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
......@@ -95,6 +96,14 @@ public class OssUtils {
ossClient.deleteObject(bucketName, filePath);
}
/**
* 异步删除图片
*/
@Async
public void deleteFileAsync(String filePath) {
ossClient.deleteObject(bucketName, filePath);
}
/**
* 是否存在存储空间 不存在自动创建存储空间
*/
......
......@@ -8,6 +8,7 @@ import javax.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import tk.mybatis.mapper.annotation.LogicDelete;
@Getter
@Setter
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment