src/main/java/com/mzl/flower/dto/request/film/HomeConfigDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/dto/request/film/HomeConfigQueryDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/dto/response/film/HomeConfigVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/entity/film/HomeConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/mapper/film/HomeConfigMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/service/film/HomeConfigService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/service/film/impl/HomeConfigServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/web/film/HomeConfigController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/film/HomeConfigMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/mzl/flower/dto/request/film/HomeConfigDTO.java
对比新文件 @@ -0,0 +1,47 @@ package com.mzl.flower.dto.request.film; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class HomeConfigDTO { private Long id; @ApiModelProperty("主标题") private String mainTitle; @ApiModelProperty("副标题") private String subTitle; @ApiModelProperty("按钮1文本") private String btnText1; @ApiModelProperty("按钮2文本") private String btnText2; @ApiModelProperty("按钮1图标") private String btnIcon1; @ApiModelProperty("按钮2图标") private String btnIcon2; @ApiModelProperty("图标1颜色") private String iconColor1; @ApiModelProperty("图标2颜色") private String iconColor2; @ApiModelProperty("动作类型") private String actionType; @ApiModelProperty("动作目标") private String actionTarget; @ApiModelProperty("状态") private Boolean status; @ApiModelProperty("版本号") private String version; } src/main/java/com/mzl/flower/dto/request/film/HomeConfigQueryDTO.java
对比新文件 @@ -0,0 +1,13 @@ package com.mzl.flower.dto.request.film; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class HomeConfigQueryDTO { @ApiModelProperty("版本") private String version; @ApiModelProperty("状态") private String mainTitle; } src/main/java/com/mzl/flower/dto/response/film/HomeConfigVO.java
对比新文件 @@ -0,0 +1,53 @@ package com.mzl.flower.dto.response.film; import com.mzl.flower.base.AbstractTransDTO; import com.mzl.flower.base.annotation.DictTrans; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDateTime; @Data public class HomeConfigVO extends AbstractTransDTO { private Long id; @ApiModelProperty("主标题") private String mainTitle; @ApiModelProperty("副标题") private String subTitle; @ApiModelProperty("按钮1文本") private String btnText1; @ApiModelProperty("按钮2文本") private String btnText2; @ApiModelProperty("按钮1图标") private String btnIcon1; @ApiModelProperty("按钮2图标") private String btnIcon2; @ApiModelProperty("图标1颜色") private String iconColor1; @ApiModelProperty("图标2颜色") private String iconColor2; @ApiModelProperty("动作类型") private String actionType; @ApiModelProperty("动作目标") private String actionTarget; @ApiModelProperty("发布状态(COMMON_PUBLISH_STATUS)") @DictTrans(target = "statusStr", codeType = "COMMON_PUBLISH_STATUS") private String status; @ApiModelProperty("发布状态(COMMON_PUBLISH_STATUS)") private String statusStr; @ApiModelProperty("版本号") private String version; } src/main/java/com/mzl/flower/entity/film/HomeConfig.java
对比新文件 @@ -0,0 +1,34 @@ package com.mzl.flower.entity.film; import com.baomidou.mybatisplus.annotation.TableName; import com.mzl.flower.base.BaseAutoEntity; import lombok.Data; @Data @TableName("home_config") public class HomeConfig extends BaseAutoEntity { /** * packageName com.mzl.flower.entity.film * @author fanghaowei * @version version2.0 * @className HomeConfig * @date 2025/6/19 * @description TODO */ private String mainTitle; private String subTitle; // 副标题 private String btnText1; // 按钮1文本 private String btnText2; // 按钮2文本 private String btnIcon1; // 按钮1图标 private String btnIcon2; // 按钮2图标 private String iconColor1; // 图标1颜色 private String iconColor2; // 图标2颜色 private String actionType; // 动作类型 private String actionTarget; // 动作目标 private String status; // 状态 private String version; // 版本号 } src/main/java/com/mzl/flower/mapper/film/HomeConfigMapper.java
对比新文件 @@ -0,0 +1,32 @@ package com.mzl.flower.mapper.film; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.dto.request.film.HomeConfigQueryDTO; import com.mzl.flower.dto.response.film.HomeConfigVO; import com.mzl.flower.entity.film.HomeConfig; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.List; /** * * @author generator@Fang * @since 2025-05-29 */ @Repository public interface HomeConfigMapper extends BaseMapper<HomeConfig> { List<HomeConfigVO> queryPage(@Param("dto")HomeConfigQueryDTO homeConfigQueryDTO, Page page); @Select("select * from home_config where status = #{name} and deleted = '0'") List<HomeConfig> queryList(String name); @Select("select * from home_config where status = 'published' and deleted = '0' limit 1") HomeConfigVO getHomeConfigInfo(); } src/main/java/com/mzl/flower/service/film/HomeConfigService.java
对比新文件 @@ -0,0 +1,26 @@ package com.mzl.flower.service.film; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.mzl.flower.dto.request.film.HomeConfigDTO; import com.mzl.flower.dto.request.film.HomeConfigQueryDTO; import com.mzl.flower.dto.response.film.HomeConfigVO; import com.mzl.flower.entity.film.HomeConfig; public interface HomeConfigService extends IService<HomeConfig> { void saveHomeConfig(HomeConfigDTO homeConfigDTO); void updateHomeConfig(HomeConfigDTO homeConfigDTO); void deleteHomeConfig(String id); Page<HomeConfigVO> queryPage(HomeConfigQueryDTO homeConfigQueryDTO, Page page); void changeStatus(Long id); HomeConfigVO detail(Long id); HomeConfigVO getHomeConfigInfo(); } src/main/java/com/mzl/flower/service/film/impl/HomeConfigServiceImpl.java
对比新文件 @@ -0,0 +1,114 @@ package com.mzl.flower.service.film.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mzl.flower.config.exception.ValidationException; import com.mzl.flower.config.security.SecurityUtils; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.film.HomeConfigDTO; import com.mzl.flower.dto.request.film.HomeConfigQueryDTO; import com.mzl.flower.dto.response.content.AnnouncementDTO; import com.mzl.flower.dto.response.film.HomeConfigVO; import com.mzl.flower.entity.content.Announcement; import com.mzl.flower.entity.film.HomeConfig; import com.mzl.flower.mapper.film.HomeConfigMapper; import com.mzl.flower.service.film.HomeConfigService; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; @Service @Transactional @RequiredArgsConstructor public class HomeConfigServiceImpl extends ServiceImpl<HomeConfigMapper, HomeConfig> implements HomeConfigService { @Resource private HomeConfigMapper homeConfigMapper; @Override public void saveHomeConfig(HomeConfigDTO homeConfigDTO) { HomeConfig homeConfig = new HomeConfig(); BeanUtils.copyProperties(homeConfigDTO, homeConfig); homeConfig.setStatus(Constants.COMMON_PUBLISH_STATUS.unpublished.name()); homeConfig.create(SecurityUtils.getUserId()); homeConfigMapper.insert(homeConfig); } @Override public void updateHomeConfig(HomeConfigDTO homeConfigDTO) { if(homeConfigDTO.getId()==null || homeConfigDTO.getId()==0){ throw new ValidationException("id不能为空"); } HomeConfig homeConfig = homeConfigMapper.selectById(homeConfigDTO.getId()); if(homeConfig==null){ throw new ValidationException("找不到id为"+homeConfigDTO.getId()+"的配置"); } BeanUtils.copyProperties(homeConfigDTO, homeConfig); homeConfig.update(SecurityUtils.getUserId()); homeConfigMapper.updateById(homeConfig); } @Override public void deleteHomeConfig(String id) { HomeConfig homeConfig = homeConfigMapper.selectById(id); if (homeConfig == null) { throw new ValidationException("主页配置不存在"); } //已发布的不能删除 if(Constants.COMMON_PUBLISH_STATUS.published.name().equals(homeConfig.getStatus())){ throw new ValidationException("已发布的不能删除"); } homeConfigMapper.deleteById(id); } @Override public Page<HomeConfigVO> queryPage(HomeConfigQueryDTO homeConfigQueryDTO, Page page) { List<HomeConfigVO> list = homeConfigMapper.queryPage(homeConfigQueryDTO, page); return page.setRecords(list); } @Override public void changeStatus(Long id) { HomeConfig homeConfig = homeConfigMapper.selectById(id); if(homeConfig==null){ throw new ValidationException("找不到id为"+id+"的公告"); } //判断所有列表中是否已经存在已发布 List<HomeConfig> list = homeConfigMapper.queryList(Constants.COMMON_PUBLISH_STATUS.published.name()); if(list.size()==1 && Constants.COMMON_PUBLISH_STATUS.published.name().equals(homeConfig.getStatus())){ homeConfig.setStatus(Constants.COMMON_PUBLISH_STATUS.unpublished.name()); homeConfigMapper.updateById(homeConfig); }else { if (list.size() > 0) { throw new ValidationException("已存在已发布"); } if (Constants.COMMON_PUBLISH_STATUS.published.name().equals(homeConfig.getStatus())) { homeConfig.setStatus(Constants.COMMON_PUBLISH_STATUS.unpublished.name()); } else { homeConfig.setStatus(Constants.COMMON_PUBLISH_STATUS.published.name()); } homeConfigMapper.updateById(homeConfig); } } @Override public HomeConfigVO detail(Long id) { HomeConfig homeConfig = homeConfigMapper.selectById(id); if(homeConfig==null){ return null; } HomeConfigVO vo = new HomeConfigVO(); BeanUtils.copyProperties(homeConfig,vo); return vo; } @Override public HomeConfigVO getHomeConfigInfo() { return homeConfigMapper.getHomeConfigInfo(); } } src/main/java/com/mzl/flower/web/film/HomeConfigController.java
对比新文件 @@ -0,0 +1,76 @@ package com.mzl.flower.web.film; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; import com.mzl.flower.dto.request.film.HomeConfigDTO; import com.mzl.flower.dto.request.film.HomeConfigQueryDTO; import com.mzl.flower.dto.response.content.AnnouncementDTO; import com.mzl.flower.dto.response.film.HomeConfigVO; import com.mzl.flower.service.film.HomeConfigService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotNull; @Api(value = "主页配置", tags = "主页配置") @RestController @RequestMapping("/api/home") @RequiredArgsConstructor public class HomeConfigController extends BaseController { private final HomeConfigService homeConfigService; @GetMapping("/homeConfig/info") @ApiOperation(value = "主页配置信息", httpMethod = "GET") public ResponseEntity<ReturnDataDTO<HomeConfigVO>> getHomeConfigInfo() { return returnData(R.SUCCESS.getCode(), homeConfigService.getHomeConfigInfo()); } @GetMapping("/homeConfig/list") @ApiOperation(value = "主页配置列表", httpMethod = "GET") public ResponseEntity<ReturnDataDTO<Page<HomeConfigVO>>> getHomeConfigList(Page page, HomeConfigQueryDTO dto) { return returnData(R.SUCCESS.getCode(), homeConfigService.queryPage(dto, page)); } @GetMapping(value = "/homeConfig/delete") @ApiOperation(value = "删除主页配置 ", httpMethod = "GET", notes = "ID") public ResponseEntity delete(@NotNull(message = "id不能为空") Long id) { homeConfigService.deleteHomeConfig(String.valueOf(id)); return returnData(R.SUCCESS.getCode(), null); } @PostMapping(value = "/homeConfig/new") @ApiOperation(value = "保存主页配置", httpMethod = "POST") public ResponseEntity insert(@RequestBody HomeConfigDTO homeConfigDTO) { homeConfigService.saveHomeConfig(homeConfigDTO); return returnData(R.SUCCESS.getCode(), null); } @PostMapping(value = "/homeConfig/edit") @ApiOperation(value = "更新主页配置", httpMethod = "POST") public ResponseEntity update(@RequestBody HomeConfigDTO homeConfigDTO) { homeConfigService.updateHomeConfig(homeConfigDTO); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/homeConfig/changeStatus") @ApiOperation(value = "修改状态", notes = "修改状态") public ResponseEntity<ReturnDataDTO> changeStatus(@NotNull(message = "id不能为空") Long id) { homeConfigService.changeStatus(id); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/homeConfig/list/view") @ApiOperation(value = "详情", notes = "详情") public ResponseEntity<ReturnDataDTO<HomeConfigVO>> detail(@NotNull(message = "id不能为空") Long id) { return returnData(R.SUCCESS.getCode(),homeConfigService.detail(id)); } } src/main/resources/mapper/film/HomeConfigMapper.xml
对比新文件 @@ -0,0 +1,17 @@ <?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.mzl.flower.mapper.film.HomeConfigMapper"> <select id="queryPage" resultType="com.mzl.flower.dto.response.film.HomeConfigVO"> select t.* from home_config t where t.deleted= 0 <if test="dto.version != null and dto.version != ''"> and t.version like concat('%', #{dto.version}, '%') </if> <if test="dto.mainTitle != null and dto.mainTitle != ''"> and t.main_title = #{dto.mainTitle} </if> order by t.version </select> </mapper>