mirror of https://gitee.com/xiaonuobase/snowy
俞宝山
4 months ago
44 changed files with 2479 additions and 1 deletions
@ -0,0 +1,40 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.auth.api; |
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject; |
||||||
|
|
||||||
|
/** |
||||||
|
* 认证鉴权API |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/18 17:35 |
||||||
|
*/ |
||||||
|
public interface AuthApi { |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取基础登录业务数据,b端在线用户,c端在线用户 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/18 17:35 |
||||||
|
*/ |
||||||
|
JSONObject getUserSessionCount(); |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取三方用户总量 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/18 17:35 |
||||||
|
*/ |
||||||
|
Long getThirdUserCount(); |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.api; |
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图API |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
public interface DevSlideshowApi { |
||||||
|
|
||||||
|
/** |
||||||
|
* 通过位置获得轮播图列表 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
List<JSONObject> getListByPlace(String place); |
||||||
|
} |
@ -0,0 +1,78 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.auth.modular.auth; |
||||||
|
|
||||||
|
|
||||||
|
import cn.dev33.satoken.session.SaSession; |
||||||
|
import cn.dev33.satoken.stp.StpUtil; |
||||||
|
import cn.hutool.core.date.DateTime; |
||||||
|
import cn.hutool.core.util.StrUtil; |
||||||
|
import cn.hutool.json.JSONObject; |
||||||
|
import cn.hutool.json.JSONUtil; |
||||||
|
import jakarta.annotation.Resource; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import vip.xiaonuo.auth.api.AuthApi; |
||||||
|
import vip.xiaonuo.auth.core.util.StpClientUtil; |
||||||
|
import vip.xiaonuo.auth.modular.third.service.AuthThirdService; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* 认证鉴权API实现类 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/18 17:35 |
||||||
|
**/ |
||||||
|
@Service |
||||||
|
public class AuthApiProvider implements AuthApi { |
||||||
|
|
||||||
|
@Resource |
||||||
|
private AuthThirdService authThirdService; |
||||||
|
|
||||||
|
@Override |
||||||
|
public JSONObject getUserSessionCount() { |
||||||
|
JSONObject resultObj = new JSONObject(); |
||||||
|
List<JSONObject> sessionListB = StpUtil.searchSessionId("", -1, -1, true).stream().map(sessionId -> { |
||||||
|
JSONObject jsonObject = JSONUtil.createObj(); |
||||||
|
String userId = StrUtil.split(sessionId, StrUtil.COLON).get(3); |
||||||
|
SaSession saSession = StpUtil.getSessionByLoginId(userId, false); |
||||||
|
int tokenCount = saSession.getTokenSignList().size(); |
||||||
|
long createTime = saSession.getCreateTime(); |
||||||
|
jsonObject.set("userId", userId); |
||||||
|
jsonObject.set("tokenCount", tokenCount); |
||||||
|
jsonObject.set("createTime", DateTime.of(createTime)); |
||||||
|
return jsonObject; |
||||||
|
}).collect(Collectors.toList()); |
||||||
|
|
||||||
|
List<JSONObject> sessionListC = StpClientUtil.searchSessionId("", -1, -1, true).stream().map(sessionId -> { |
||||||
|
JSONObject jsonObject = JSONUtil.createObj(); |
||||||
|
String userId = StrUtil.split(sessionId, StrUtil.COLON).get(3); |
||||||
|
SaSession saSession = StpClientUtil.getSessionByLoginId(userId, false); |
||||||
|
int tokenCount = saSession.getTokenSignList().size(); |
||||||
|
long createTime = saSession.getCreateTime(); |
||||||
|
jsonObject.set("userId", userId); |
||||||
|
jsonObject.set("tokenCount", tokenCount); |
||||||
|
jsonObject.set("createTime", DateTime.of(createTime)); |
||||||
|
return jsonObject; |
||||||
|
}).collect(Collectors.toList()); |
||||||
|
resultObj.set("backUserSessionCount" ,sessionListB.size()); |
||||||
|
resultObj.set("clientUserSessionCount" ,sessionListC.size()); |
||||||
|
return resultObj; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Long getThirdUserCount() { |
||||||
|
return authThirdService.count(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,87 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.index.controller; |
||||||
|
|
||||||
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
||||||
|
import com.github.xiaoymin.knife4j.annotations.ApiSupport; |
||||||
|
import io.swagger.v3.oas.annotations.Operation; |
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag; |
||||||
|
import jakarta.annotation.Resource; |
||||||
|
import org.springframework.validation.annotation.Validated; |
||||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
import vip.xiaonuo.biz.modular.index.param.BizIndexNoticeIdParam; |
||||||
|
import vip.xiaonuo.biz.modular.index.param.BizIndexNoticeListParam; |
||||||
|
import vip.xiaonuo.biz.modular.index.param.BizIndexSlideshowListParam; |
||||||
|
import vip.xiaonuo.biz.modular.index.result.BizIndexNoticeListResult; |
||||||
|
import vip.xiaonuo.biz.modular.index.result.BizIndexSlideshowDetailResult; |
||||||
|
import vip.xiaonuo.biz.modular.index.result.BizIndexSlideshowListResult; |
||||||
|
import vip.xiaonuo.biz.modular.index.service.BizIndexService; |
||||||
|
import vip.xiaonuo.common.pojo.CommonResult; |
||||||
|
import javax.validation.Valid; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 业务首页控制器 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/13 21:02 |
||||||
|
*/ |
||||||
|
@Tag(name = "业务首页控制器") |
||||||
|
@ApiSupport(author = "SNOWY_TEAM", order = 0) |
||||||
|
@RestController |
||||||
|
@Validated |
||||||
|
public class BizIndexController { |
||||||
|
|
||||||
|
@Resource |
||||||
|
private BizIndexService bizIndexService; |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取轮播图列表 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/13 21:02 |
||||||
|
*/ |
||||||
|
@ApiOperationSupport(order = 1) |
||||||
|
@Operation(summary = "获取轮播图列表") |
||||||
|
@GetMapping("/biz/index/slideshow/list") |
||||||
|
public CommonResult<List<BizIndexSlideshowListResult>> slideshowListByPlace(@Valid BizIndexSlideshowListParam bizIndexSlideshowListParam) { |
||||||
|
return CommonResult.data(bizIndexService.slideshowListByPlace(bizIndexSlideshowListParam)); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取通知公告列表 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/13 21:02 |
||||||
|
*/ |
||||||
|
@ApiOperationSupport(order = 2) |
||||||
|
@Operation(summary = "获取通知公告列表") |
||||||
|
@GetMapping("/biz/index/notice/list") |
||||||
|
public CommonResult<List<BizIndexNoticeListResult>> noticeListByLimit(BizIndexNoticeListParam bizIndexNoticeListParam) { |
||||||
|
return CommonResult.data(bizIndexService.noticeListByLimit(bizIndexNoticeListParam)); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取通知公告详情 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/13 21:02 |
||||||
|
*/ |
||||||
|
@ApiOperationSupport(order = 3) |
||||||
|
@Operation(summary = "获取通知公告详情") |
||||||
|
@GetMapping("/biz/index/notice/detail") |
||||||
|
public CommonResult<BizIndexSlideshowDetailResult> noticeDetailById(@Valid BizIndexNoticeIdParam bizIndexNoticeIdParam) { |
||||||
|
return CommonResult.data(bizIndexService.noticeDetailById(bizIndexNoticeIdParam)); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.index.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告详情参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/13 21:02 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class BizIndexNoticeIdParam { |
||||||
|
|
||||||
|
/** ID */ |
||||||
|
@Schema(description = "ID") |
||||||
|
private String id; |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.index.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告列表参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/13 21:02 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class BizIndexNoticeListParam { |
||||||
|
|
||||||
|
/** 条数" */ |
||||||
|
@Schema(description = "条数") |
||||||
|
private Integer limit; |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.index.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图列表参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class BizIndexSlideshowListParam { |
||||||
|
|
||||||
|
/** 位置" */ |
||||||
|
@Schema(description = "位置") |
||||||
|
private String place; |
||||||
|
} |
@ -0,0 +1,58 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.index.result; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图结果 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class BizIndexNoticeListResult { |
||||||
|
|
||||||
|
/** 主键 */ |
||||||
|
@Schema(description = "主键") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 封面图 */ |
||||||
|
@Schema(description = "封面图") |
||||||
|
private String image; |
||||||
|
|
||||||
|
/** 摘要 */ |
||||||
|
@Schema(description = "摘要") |
||||||
|
private String digest; |
||||||
|
|
||||||
|
/** 类型 */ |
||||||
|
@Schema(description = "类型") |
||||||
|
private String type; |
||||||
|
|
||||||
|
/** 排序 */ |
||||||
|
@Schema(description = "排序") |
||||||
|
private String sortCode; |
||||||
|
|
||||||
|
/** 创建时间 */ |
||||||
|
@Schema(description = "创建时间") |
||||||
|
private Date createTime; |
||||||
|
} |
@ -0,0 +1,70 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.index.result; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId; |
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图结果 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class BizIndexSlideshowDetailResult { |
||||||
|
|
||||||
|
/** 主键 */ |
||||||
|
@TableId |
||||||
|
@Schema(description = "主键") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 封面图 */ |
||||||
|
@Schema(description = "封面图") |
||||||
|
private String image; |
||||||
|
|
||||||
|
/** 内容 */ |
||||||
|
@Schema(description = "内容") |
||||||
|
private String content; |
||||||
|
|
||||||
|
/** 摘要 */ |
||||||
|
@Schema(description = "摘要") |
||||||
|
private String digest; |
||||||
|
|
||||||
|
/** 类型 */ |
||||||
|
@Schema(description = "类型") |
||||||
|
private String type; |
||||||
|
|
||||||
|
/** 状态 */ |
||||||
|
@Schema(description = "状态") |
||||||
|
private String status; |
||||||
|
|
||||||
|
/** 备注 */ |
||||||
|
@Schema(description = "备注") |
||||||
|
private String remark; |
||||||
|
|
||||||
|
/** 排序 */ |
||||||
|
@Schema(description = "排序") |
||||||
|
private String sortCode; |
||||||
|
|
||||||
|
/** 扩展信息 */ |
||||||
|
@Schema(description = "扩展信息") |
||||||
|
private String extJson; |
||||||
|
} |
@ -0,0 +1,44 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.index.result; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图结果 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class BizIndexSlideshowListResult { |
||||||
|
|
||||||
|
/** id */ |
||||||
|
@Schema(description = "主键") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 图片 */ |
||||||
|
@Schema(description = "图片") |
||||||
|
private String image; |
||||||
|
|
||||||
|
/** 路径详情 */ |
||||||
|
@Schema(description = "路径详情") |
||||||
|
private String pathDetails; |
||||||
|
} |
@ -0,0 +1,56 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.index.service; |
||||||
|
|
||||||
|
import vip.xiaonuo.biz.modular.index.param.BizIndexNoticeIdParam; |
||||||
|
import vip.xiaonuo.biz.modular.index.param.BizIndexNoticeListParam; |
||||||
|
import vip.xiaonuo.biz.modular.index.param.BizIndexSlideshowListParam; |
||||||
|
import vip.xiaonuo.biz.modular.index.result.BizIndexNoticeListResult; |
||||||
|
import vip.xiaonuo.biz.modular.index.result.BizIndexSlideshowDetailResult; |
||||||
|
import vip.xiaonuo.biz.modular.index.result.BizIndexSlideshowListResult; |
||||||
|
|
||||||
|
import javax.validation.Valid; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 业务首页Service接口 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
public interface BizIndexService { |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取轮播图列表 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
List<BizIndexSlideshowListResult> slideshowListByPlace(BizIndexSlideshowListParam bizIndexSlideshowListParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取通知公告列表 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
List<BizIndexNoticeListResult> noticeListByLimit(@Valid BizIndexNoticeListParam bizIndexNoticeListParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取通知公告详情 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
BizIndexSlideshowDetailResult noticeDetailById(BizIndexNoticeIdParam bizIndexNoticeIdParam); |
||||||
|
} |
@ -0,0 +1,74 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.index.service.impl; |
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil; |
||||||
|
import cn.hutool.core.util.ObjectUtil; |
||||||
|
import cn.hutool.json.JSONUtil; |
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||||
|
import jakarta.annotation.Resource; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import vip.xiaonuo.biz.modular.index.param.BizIndexNoticeIdParam; |
||||||
|
import vip.xiaonuo.biz.modular.index.param.BizIndexNoticeListParam; |
||||||
|
import vip.xiaonuo.biz.modular.index.param.BizIndexSlideshowListParam; |
||||||
|
import vip.xiaonuo.biz.modular.index.result.BizIndexNoticeListResult; |
||||||
|
import vip.xiaonuo.biz.modular.index.result.BizIndexSlideshowDetailResult; |
||||||
|
import vip.xiaonuo.biz.modular.index.result.BizIndexSlideshowListResult; |
||||||
|
import vip.xiaonuo.biz.modular.index.service.BizIndexService; |
||||||
|
import vip.xiaonuo.biz.modular.notice.entity.BizNotice; |
||||||
|
import vip.xiaonuo.biz.modular.notice.enums.BizNoticeStatusEnum; |
||||||
|
import vip.xiaonuo.biz.modular.notice.service.BizNoticeService; |
||||||
|
import vip.xiaonuo.dev.api.DevSlideshowApi; |
||||||
|
import java.util.List; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* 业务首页Service接口实现类 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public class BizIndexServiceImpl implements BizIndexService { |
||||||
|
|
||||||
|
|
||||||
|
@Resource |
||||||
|
private DevSlideshowApi devSlideshowApi; |
||||||
|
|
||||||
|
@Resource |
||||||
|
private BizNoticeService bizNoticeService; |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<BizIndexSlideshowListResult> slideshowListByPlace(BizIndexSlideshowListParam bizIndexSlideshowListParam) { |
||||||
|
return devSlideshowApi.getListByPlace(bizIndexSlideshowListParam.getPlace()).stream() |
||||||
|
.map(jsonObject -> JSONUtil.toBean(jsonObject, BizIndexSlideshowListResult.class)).collect(Collectors.toList()); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<BizIndexNoticeListResult> noticeListByLimit(BizIndexNoticeListParam bizIndexNoticeListParam) { |
||||||
|
return bizNoticeService.list(new LambdaQueryWrapper<BizNotice>() |
||||||
|
.eq(BizNotice::getStatus, BizNoticeStatusEnum.ENABLE.getValue()) |
||||||
|
.orderByAsc(BizNotice::getCreateTime) |
||||||
|
) |
||||||
|
.stream() |
||||||
|
.limit(ObjectUtil.isNotEmpty(bizIndexNoticeListParam.getLimit())? bizIndexNoticeListParam.getLimit().longValue() : 10) |
||||||
|
.map(notice -> JSONUtil.toBean(JSONUtil.toJsonStr(notice), BizIndexNoticeListResult.class)).collect(Collectors.toList()); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public BizIndexSlideshowDetailResult noticeDetailById(BizIndexNoticeIdParam bizIndexNoticeIdParam) { |
||||||
|
BizIndexSlideshowDetailResult result = new BizIndexSlideshowDetailResult(); |
||||||
|
BeanUtil.copyProperties(bizNoticeService.getById(bizIndexNoticeIdParam.getId()), result); |
||||||
|
return result; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,153 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.notice.controller; |
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission; |
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag; |
||||||
|
import io.swagger.v3.oas.annotations.Operation; |
||||||
|
import org.springframework.validation.annotation.Validated; |
||||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
import vip.xiaonuo.common.annotation.CommonLog; |
||||||
|
import vip.xiaonuo.common.pojo.CommonResult; |
||||||
|
import vip.xiaonuo.biz.modular.notice.entity.BizNotice; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticeAddParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticeEditParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticeIdParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticePageParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.service.BizNoticeService; |
||||||
|
|
||||||
|
import jakarta.annotation.Resource; |
||||||
|
import javax.validation.Valid; |
||||||
|
import jakarta.validation.constraints.NotEmpty; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告控制器 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
@Tag(name = "通知公告控制器") |
||||||
|
@RestController |
||||||
|
@Validated |
||||||
|
public class BizNoticeController { |
||||||
|
|
||||||
|
@Resource |
||||||
|
private BizNoticeService bizNoticeService; |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取通知公告分页 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
@Operation(summary = "获取通知公告分页") |
||||||
|
@SaCheckPermission("/biz/notice/page") |
||||||
|
@GetMapping("/biz/notice/page") |
||||||
|
public CommonResult<Page<BizNotice>> page(BizNoticePageParam bizNoticePageParam) { |
||||||
|
return CommonResult.data(bizNoticeService.page(bizNoticePageParam)); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加通知公告 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
@Operation(summary = "添加通知公告") |
||||||
|
@CommonLog("添加通知公告") |
||||||
|
@SaCheckPermission("/biz/notice/add") |
||||||
|
@PostMapping("/biz/notice/add") |
||||||
|
public CommonResult<String> add(@RequestBody @Valid BizNoticeAddParam bizNoticeAddParam) { |
||||||
|
bizNoticeService.add(bizNoticeAddParam); |
||||||
|
return CommonResult.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 编辑通知公告 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
@Operation(summary = "编辑通知公告") |
||||||
|
@CommonLog("编辑通知公告") |
||||||
|
@SaCheckPermission("/biz/notice/edit") |
||||||
|
@PostMapping("/biz/notice/edit") |
||||||
|
public CommonResult<String> edit(@RequestBody @Valid BizNoticeEditParam bizNoticeEditParam) { |
||||||
|
bizNoticeService.edit(bizNoticeEditParam); |
||||||
|
return CommonResult.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除通知公告 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
@Operation(summary = "删除通知公告") |
||||||
|
@CommonLog("删除通知公告") |
||||||
|
@SaCheckPermission("/biz/notice/delete") |
||||||
|
@PostMapping("/biz/notice/delete") |
||||||
|
public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空") |
||||||
|
List<BizNoticeIdParam> bizNoticeIdParamList) { |
||||||
|
bizNoticeService.delete(bizNoticeIdParamList); |
||||||
|
return CommonResult.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取通知公告详情 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
@Operation(summary = "获取通知公告详情") |
||||||
|
@SaCheckPermission("/biz/notice/detail") |
||||||
|
@GetMapping("/biz/notice/detail") |
||||||
|
public CommonResult<BizNotice> detail(@Valid BizNoticeIdParam bizNoticeIdParam) { |
||||||
|
return CommonResult.data(bizNoticeService.detail(bizNoticeIdParam)); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 禁用通知公告 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
@Operation(summary = "禁用通知公告") |
||||||
|
@CommonLog("禁用通知公告") |
||||||
|
@SaCheckPermission("/biz/notice/disableStatus") |
||||||
|
@PostMapping("/biz/notice/disableStatus") |
||||||
|
public CommonResult<String> disableStatus(@RequestBody @Valid BizNoticeIdParam bizNoticeIdParam) { |
||||||
|
bizNoticeService.disableStatus(bizNoticeIdParam); |
||||||
|
return CommonResult.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 启用通知公告 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
@Operation(summary = "启用通知公告") |
||||||
|
@CommonLog("启用通知公告") |
||||||
|
@SaCheckPermission("/biz/notice/enableStatus") |
||||||
|
@PostMapping("/biz/notice/enableStatus") |
||||||
|
public CommonResult<String> enableStatus(@RequestBody @Valid BizNoticeIdParam bizNoticeIdParam) { |
||||||
|
bizNoticeService.enableStatus(bizNoticeIdParam); |
||||||
|
return CommonResult.ok(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,80 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.notice.entity; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*; |
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
import vip.xiaonuo.common.pojo.CommonEntity; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告实体 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
@TableName("biz_notice") |
||||||
|
public class BizNotice extends CommonEntity { |
||||||
|
|
||||||
|
/** 主键 */ |
||||||
|
@TableId |
||||||
|
@Schema(description = "主键") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** 租户id */ |
||||||
|
@Schema(description = "租户id") |
||||||
|
private String tenantId; |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 封面图 */ |
||||||
|
@Schema(description = "封面图") |
||||||
|
private String image; |
||||||
|
|
||||||
|
/** 内容 */ |
||||||
|
@Schema(description = "内容") |
||||||
|
private String content; |
||||||
|
|
||||||
|
/** 摘要 */ |
||||||
|
@Schema(description = "摘要") |
||||||
|
private String digest; |
||||||
|
|
||||||
|
/** 类型 */ |
||||||
|
@Schema(description = "类型") |
||||||
|
private String type; |
||||||
|
|
||||||
|
/** 发布位置 */ |
||||||
|
@Schema(description = "发布位置") |
||||||
|
private String place; |
||||||
|
|
||||||
|
/** 状态 */ |
||||||
|
@Schema(description = "状态") |
||||||
|
private String status; |
||||||
|
|
||||||
|
/** 备注 */ |
||||||
|
@Schema(description = "备注") |
||||||
|
private String remark; |
||||||
|
|
||||||
|
/** 排序 */ |
||||||
|
@Schema(description = "排序") |
||||||
|
private String sortCode; |
||||||
|
|
||||||
|
/** 扩展信息 */ |
||||||
|
@Schema(description = "扩展信息") |
||||||
|
private String extJson; |
||||||
|
} |
@ -0,0 +1,49 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.notice.enums; |
||||||
|
|
||||||
|
import lombok.Getter; |
||||||
|
import vip.xiaonuo.common.exception.CommonException; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告状态枚举 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
public enum BizNoticeStatusEnum { |
||||||
|
|
||||||
|
/** |
||||||
|
* 正常 |
||||||
|
*/ |
||||||
|
ENABLE("ENABLE"), |
||||||
|
|
||||||
|
/** |
||||||
|
* 禁用 |
||||||
|
*/ |
||||||
|
DISABLE("DISABLE"); |
||||||
|
|
||||||
|
private final String value; |
||||||
|
|
||||||
|
BizNoticeStatusEnum(String value) { |
||||||
|
this.value = value; |
||||||
|
} |
||||||
|
|
||||||
|
public static void validate(String value) { |
||||||
|
boolean flag = ENABLE.getValue().equals(value) || DISABLE.getValue().equals(value); |
||||||
|
if(!flag) { |
||||||
|
throw new CommonException("不支持的状态:{}", value); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.notice.mapper; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import vip.xiaonuo.biz.modular.notice.entity.BizNotice; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告Mapper接口 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
**/ |
||||||
|
public interface BizNoticeMapper extends BaseMapper<BizNotice> { |
||||||
|
} |
@ -0,0 +1,5 @@ |
|||||||
|
<?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="vip.xiaonuo.biz.modular.notice.mapper.BizNoticeMapper"> |
||||||
|
|
||||||
|
</mapper> |
@ -0,0 +1,66 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.notice.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
import jakarta.validation.constraints.NotBlank; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告添加参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class BizNoticeAddParam { |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "title不能为空") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 封面图 */ |
||||||
|
@Schema(description = "封面图") |
||||||
|
private String image; |
||||||
|
|
||||||
|
/** 内容 */ |
||||||
|
@Schema(description = "内容", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "content不能为空") |
||||||
|
private String content; |
||||||
|
|
||||||
|
/** 摘要 */ |
||||||
|
@Schema(description = "摘要", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "digest不能为空") |
||||||
|
private String digest; |
||||||
|
|
||||||
|
/** 类型 */ |
||||||
|
@Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "type不能为空") |
||||||
|
private String type; |
||||||
|
|
||||||
|
/** 发布位置 */ |
||||||
|
@Schema(description = "发布位置", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "place不能为空") |
||||||
|
private String place; |
||||||
|
|
||||||
|
/** 备注 */ |
||||||
|
@Schema(description = "备注") |
||||||
|
private String remark; |
||||||
|
|
||||||
|
/** 排序码 */ |
||||||
|
@Schema(description = "排序码") |
||||||
|
private Integer sortCode; |
||||||
|
} |
@ -0,0 +1,71 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.notice.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
import jakarta.validation.constraints.NotBlank; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告编辑参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class BizNoticeEditParam { |
||||||
|
|
||||||
|
/** 主键 */ |
||||||
|
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "id不能为空") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "title不能为空") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 封面图 */ |
||||||
|
@Schema(description = "封面图") |
||||||
|
private String image; |
||||||
|
|
||||||
|
/** 内容 */ |
||||||
|
@Schema(description = "内容", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "content不能为空") |
||||||
|
private String content; |
||||||
|
|
||||||
|
/** 摘要 */ |
||||||
|
@Schema(description = "摘要", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "digest不能为空") |
||||||
|
private String digest; |
||||||
|
|
||||||
|
/** 类型 */ |
||||||
|
@Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "type不能为空") |
||||||
|
private String type; |
||||||
|
|
||||||
|
/** 发布位置 */ |
||||||
|
@Schema(description = "发布位置", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "place不能为空") |
||||||
|
private String place; |
||||||
|
|
||||||
|
/** 备注 */ |
||||||
|
@Schema(description = "备注") |
||||||
|
private String remark; |
||||||
|
|
||||||
|
/** 排序码 */ |
||||||
|
@Schema(description = "排序码") |
||||||
|
private Integer sortCode; |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.notice.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
import jakarta.validation.constraints.NotBlank; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告Id参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class BizNoticeIdParam { |
||||||
|
|
||||||
|
/** 主键 */ |
||||||
|
@Schema(description = "主键") |
||||||
|
@NotBlank(message = "id不能为空") |
||||||
|
private String id; |
||||||
|
} |
@ -0,0 +1,73 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.notice.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告查询参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class BizNoticePageParam { |
||||||
|
|
||||||
|
/** 当前页 */ |
||||||
|
@Schema(description = "当前页码") |
||||||
|
private Integer current; |
||||||
|
|
||||||
|
/** 每页条数 */ |
||||||
|
@Schema(description = "每页条数") |
||||||
|
private Integer size; |
||||||
|
|
||||||
|
/** 排序字段 */ |
||||||
|
@Schema(description = "排序字段,字段驼峰名称,如:userName") |
||||||
|
private String sortField; |
||||||
|
|
||||||
|
/** 排序方式 */ |
||||||
|
@Schema(description = "排序方式,升序:ASCEND;降序:DESCEND") |
||||||
|
private String sortOrder; |
||||||
|
|
||||||
|
/** 关键词 */ |
||||||
|
@Schema(description = "关键词") |
||||||
|
private String searchKey; |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 类型 */ |
||||||
|
@Schema(description = "类型") |
||||||
|
private String type; |
||||||
|
|
||||||
|
/** 发布位置 */ |
||||||
|
@Schema(description = "发布位置") |
||||||
|
private String place; |
||||||
|
|
||||||
|
/** 状态 */ |
||||||
|
@Schema(description = "状态") |
||||||
|
private String status; |
||||||
|
|
||||||
|
/** 创建时间开始 */ |
||||||
|
@Schema(description = "创建时间开始") |
||||||
|
private String startCreateTime; |
||||||
|
|
||||||
|
/** 创建时间结束 */ |
||||||
|
@Schema(description = "创建时间结束") |
||||||
|
private String endCreateTime; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,96 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.notice.service; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
import vip.xiaonuo.biz.modular.notice.entity.BizNotice; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticeAddParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticeEditParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticeIdParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticePageParam; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告Service接口 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
**/ |
||||||
|
public interface BizNoticeService extends IService<BizNotice> { |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取通知公告分页 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
Page<BizNotice> page(BizNoticePageParam bizNoticePageParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加通知公告 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
void add(BizNoticeAddParam bizNoticeAddParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 编辑通知公告 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
void edit(BizNoticeEditParam bizNoticeEditParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除通知公告 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
void delete(List<BizNoticeIdParam> bizNoticeIdParamList); |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取通知公告详情 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
BizNotice detail(BizNoticeIdParam bizNoticeIdParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取通知公告详情 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
**/ |
||||||
|
BizNotice queryEntity(String id); |
||||||
|
|
||||||
|
/** |
||||||
|
* 禁用通知公告 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
void disableStatus(BizNoticeIdParam bizNoticeIdParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 启用通知公告 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
void enableStatus(BizNoticeIdParam bizNoticeIdParam); |
||||||
|
} |
@ -0,0 +1,128 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.biz.modular.notice.service.impl; |
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil; |
||||||
|
import cn.hutool.core.collection.CollStreamUtil; |
||||||
|
import cn.hutool.core.util.ObjectUtil; |
||||||
|
import cn.hutool.core.util.StrUtil; |
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
import vip.xiaonuo.biz.modular.notice.enums.BizNoticeStatusEnum; |
||||||
|
import vip.xiaonuo.common.enums.CommonSortOrderEnum; |
||||||
|
import vip.xiaonuo.common.exception.CommonException; |
||||||
|
import vip.xiaonuo.common.page.CommonPageRequest; |
||||||
|
import vip.xiaonuo.biz.modular.notice.entity.BizNotice; |
||||||
|
import vip.xiaonuo.biz.modular.notice.mapper.BizNoticeMapper; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticeAddParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticeEditParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticeIdParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.param.BizNoticePageParam; |
||||||
|
import vip.xiaonuo.biz.modular.notice.service.BizNoticeService; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知公告Service接口实现类 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
**/ |
||||||
|
@Service |
||||||
|
public class BizNoticeServiceImpl extends ServiceImpl<BizNoticeMapper, BizNotice> implements BizNoticeService { |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public Page<BizNotice> page(BizNoticePageParam bizNoticePageParam) { |
||||||
|
QueryWrapper<BizNotice> queryWrapper = new QueryWrapper<BizNotice>().checkSqlInjection(); |
||||||
|
if(ObjectUtil.isNotEmpty(bizNoticePageParam.getTitle())) { |
||||||
|
queryWrapper.lambda().like(BizNotice::getTitle, bizNoticePageParam.getTitle()); |
||||||
|
} |
||||||
|
if(ObjectUtil.isNotEmpty(bizNoticePageParam.getType())) { |
||||||
|
queryWrapper.lambda().eq(BizNotice::getType, bizNoticePageParam.getType()); |
||||||
|
} |
||||||
|
if(ObjectUtil.isNotEmpty(bizNoticePageParam.getPlace())) { |
||||||
|
queryWrapper.lambda().like(BizNotice::getPlace, bizNoticePageParam.getPlace()); |
||||||
|
} |
||||||
|
if(ObjectUtil.isNotEmpty(bizNoticePageParam.getStatus())) { |
||||||
|
queryWrapper.lambda().eq(BizNotice::getStatus, bizNoticePageParam.getStatus()); |
||||||
|
} |
||||||
|
if(ObjectUtil.isNotEmpty(bizNoticePageParam.getStartCreateTime()) && ObjectUtil.isNotEmpty(bizNoticePageParam.getEndCreateTime())) { |
||||||
|
queryWrapper.lambda().between(BizNotice::getCreateTime, bizNoticePageParam.getStartCreateTime(), bizNoticePageParam.getEndCreateTime()); |
||||||
|
} |
||||||
|
if(ObjectUtil.isAllNotEmpty(bizNoticePageParam.getSortField(), bizNoticePageParam.getSortOrder())) { |
||||||
|
CommonSortOrderEnum.validate(bizNoticePageParam.getSortOrder()); |
||||||
|
queryWrapper.orderBy(true, bizNoticePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()), |
||||||
|
StrUtil.toUnderlineCase(bizNoticePageParam.getSortField())); |
||||||
|
} else { |
||||||
|
queryWrapper.lambda().orderByAsc(BizNotice::getId); |
||||||
|
} |
||||||
|
return this.page(CommonPageRequest.defaultPage(), queryWrapper); |
||||||
|
} |
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
@Override |
||||||
|
public void add(BizNoticeAddParam bizNoticeAddParam) { |
||||||
|
BizNotice bizNotice = BeanUtil.toBean(bizNoticeAddParam, BizNotice.class); |
||||||
|
// 默认为禁用的
|
||||||
|
bizNotice.setStatus(BizNoticeStatusEnum.DISABLE.getValue()); |
||||||
|
this.save(bizNotice); |
||||||
|
} |
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
@Override |
||||||
|
public void edit(BizNoticeEditParam bizNoticeEditParam) { |
||||||
|
BizNotice bizNotice = this.queryEntity(bizNoticeEditParam.getId()); |
||||||
|
BeanUtil.copyProperties(bizNoticeEditParam, bizNotice); |
||||||
|
this.updateById(bizNotice); |
||||||
|
} |
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
@Override |
||||||
|
public void delete(List<BizNoticeIdParam> bizNoticeIdParamList) { |
||||||
|
// 执行删除
|
||||||
|
this.removeByIds(CollStreamUtil.toList(bizNoticeIdParamList, BizNoticeIdParam::getId)); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public BizNotice detail(BizNoticeIdParam bizNoticeIdParam) { |
||||||
|
return this.queryEntity(bizNoticeIdParam.getId()); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public BizNotice queryEntity(String id) { |
||||||
|
BizNotice bizNotice = this.getById(id); |
||||||
|
if(ObjectUtil.isEmpty(bizNotice)) { |
||||||
|
throw new CommonException("通知公告不存在,id值为:{}", id); |
||||||
|
} |
||||||
|
return bizNotice; |
||||||
|
} |
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
@Override |
||||||
|
public void disableStatus(BizNoticeIdParam bizNoticeIdParam) { |
||||||
|
this.update(new LambdaUpdateWrapper<BizNotice>().eq(BizNotice::getId, |
||||||
|
bizNoticeIdParam.getId()).set(BizNotice::getStatus, BizNoticeStatusEnum.DISABLE.getValue())); |
||||||
|
} |
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
@Override |
||||||
|
public void enableStatus(BizNoticeIdParam bizNoticeIdParam) { |
||||||
|
this.update(new LambdaUpdateWrapper<BizNotice>().eq(BizNotice::getId, |
||||||
|
bizNoticeIdParam.getId()).set(BizNotice::getStatus, BizNoticeStatusEnum.ENABLE.getValue())); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.core.conts; |
||||||
|
|
||||||
|
/** |
||||||
|
* dev工具类静态变量 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2022/7/13 16:53 |
||||||
|
*/ |
||||||
|
public interface DevConstants { |
||||||
|
|
||||||
|
/** |
||||||
|
* 静态的轮播图base64图片 |
||||||
|
*/ |
||||||
|
String STATIC_SLIDESHOW_IMAGE = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAADcCAIAAAAJPMQyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMi1jMDAwIDc5LjU2NmViYzViNCwgMjAyMi8wNS8wOS0wODoyNTo1NSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIzLjQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE5RDQ0MENFMDc2RjExRURBRTU5RTM4OUFDNjE5MDUyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE5RDQ0MENGMDc2RjExRURBRTU5RTM4OUFDNjE5MDUyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTlENDQwQ0MwNzZGMTFFREFFNTlFMzg5QUM2MTkwNTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTlENDQwQ0QwNzZGMTFFREFFNTlFMzg5QUM2MTkwNTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7jEwzPAAAFT0lEQVR42uzdW3JTRxSG0YanMAGYU+ZflQFgxxAnuBKXJFvWJRwCpHAUWUc6l9271xrCfvgeus4vvfr5l30BCO/dm/L2J2c41WsnAKrw26osN84g7kAu+1KulmXnrUHcgWQet+Vm5QziDqTz6bHcPzmDuAPpXC3LZucM4g7k8rns10tnEHcgnb+euvcZxB3I5mZV1h5nxB1IZrcv7xfFh5HiDmSz3JTbB2cQdyAds1VxBxLqZqsLs1VxB9J53JmtijuQkdmquAM5ma2KO5CQ2aq4AzmZrYo7kJPZqrgDCZmtijuQ03LTLZsQdyCb2wezVXEH0tmX7nGm8dmquAMJrZufrYo7kNOnx+7jSHEHyOa64dmquANpfS77VauzVXEHMrtvdbYq7kByN6vuZ4HFHSCV3b77Q4/WPowUdyC/Bmer4g40obXZqrgDTWhttiruQCuamq2KO9CQdmar4g605XrRxGxV3IG2bPZNzFbFHWhOC7NVcQda1M1Wt+IOkMvuy+NM4g8jxR1oVO7ZqrgD7Uo8WxV3oF2JZ6viDjQt62xV3IHWpZytijtAwtmquAMknK2KO0An2WxV3AG+yjRbFXeArzLNVsUd4F9pZqviDvCDHLNVcQf4QY7ZqrgDPJdgtiruAAfUPlsVd4DDqp6tijvAYVXPVsUd4H/VO1sVd4BjKp2tijvAMbt9eV/hbFXcAV6wqnC2Ku4AL6tutiruAC+rbrYq7gAnWe/Kr/U8zog7wKnu6pmtijtAD7XMVsUdoIdaZqviDtDP/VP5I/xsVdwBevsQfrYq7gC9xZ+tijvAOYLPVsUd4EyRZ6viDnCmyLNVcQc4X9jZqrgDXCTmbFXcAS4VcLYq7gCXCjhbFXeAAUSbrYo7wDBCzVbFHWAYoWar4g4wmDizVXEHGFKQ2aq4AwwpyGxV3AEGFmG2Ku4Aw5t9tiruAKOYd7Yq7gCjmHe2Ku4AY5lxtiruACOaa7Yq7gAjmmu2Ku4A45pltiruAKObfrYq7gCjm362Ku4AU5h4tiruABOZcrYq7gDTmWy2Ku4A05lstiruAJOaZrYq7gBTm2C2Ku4AU+tmq4txZ6viDjCD1Xbc2aq4A8xj1NmquAPMY9TZqrgDzGa82aq4A8xppNmquAPM7GqE2aq4A8xsO8JsVdwB5jf4bFXcAUIYdrYq7gAhDDtbFXeAKAacrYo7QCBDzVbFHSCQoWar4g4QSzdbvfjLSHEHCOdufelsVdwBIrpwtiruABFdOFsVd4CgLpmtijtAXGfPVsUdIK6zZ6viDhDaebNVcQeI7vahLHrOVsUdILr9ly8je81WxR2gAn1nq+IOUIdes1VxB6jG6bNVcQeoxumzVXEHqMmJs1VxB6jMKbNVcQeozCmzVXEHqM+Ls1VxB6jS8dmquANU6fhsVdwBanVktiruABW7W5c/1+IOkM718sBsVdwB6nZwtiruANX772xV3AEyeDZbFXeADJ7NVsUdIInVtnxciTtAOr9/m62KO0Ae32er4g6Qyj+zVXEHyOZuLe4AGYk7gLgDIO4AiDsA4g6AuAOIOwDiDoC4AyDuAIg7gLg7AYC4AyDuAIg7AOIOgLgDiDsA4g6AuAMg7gCIO4C4AyDuAIg7AOIOgLgDIO4A4g6AuAMg7gCIOwDiDiDuAIg7AOIOgLgDIO4AiDuAuAMg7gCIOwDiDoC4A4g7AOIOgLgDIO4AiDsA4g4g7gCIOwDiDoC4AyDuAOIOgLgDIO4AiDsA4g6AuAOIOwDiDoC4AyDuAIg7gLgDIO4AiDsA4g6AuAMg7gDiDoC4AxDD3wIMAJ+nRtxsLfxoAAAAAElFTkSuQmCC"; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,132 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.controller; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag; |
||||||
|
import io.swagger.v3.oas.annotations.Operation; |
||||||
|
import org.springframework.validation.annotation.Validated; |
||||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
import vip.xiaonuo.common.annotation.CommonLog; |
||||||
|
import vip.xiaonuo.common.pojo.CommonResult; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.entity.DevSlideshow; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowAddParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowEditParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowIdParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowPageParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.service.DevSlideshowService; |
||||||
|
import jakarta.annotation.Resource; |
||||||
|
import javax.validation.Valid; |
||||||
|
import jakarta.validation.constraints.NotEmpty; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图控制器 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Tag(name = "轮播图控制器") |
||||||
|
@RestController |
||||||
|
@Validated |
||||||
|
public class DevSlideshowController { |
||||||
|
|
||||||
|
@Resource |
||||||
|
private DevSlideshowService devSlideshowService; |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取轮播图分页 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Operation(summary = "获取轮播图分页") |
||||||
|
@GetMapping("/dev/slideshow/page") |
||||||
|
public CommonResult<Page<DevSlideshow>> page(DevSlideshowPageParam devSlideshowPageParam) { |
||||||
|
return CommonResult.data(devSlideshowService.page(devSlideshowPageParam)); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加轮播图 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Operation(summary = "添加轮播图") |
||||||
|
@CommonLog("添加轮播图") |
||||||
|
@PostMapping("/dev/slideshow/add") |
||||||
|
public CommonResult<String> add(@RequestBody @Valid DevSlideshowAddParam devSlideshowAddParam) { |
||||||
|
devSlideshowService.add(devSlideshowAddParam); |
||||||
|
return CommonResult.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 编辑轮播图 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Operation(summary = "编辑轮播图") |
||||||
|
@CommonLog("编辑轮播图") |
||||||
|
@PostMapping("/dev/slideshow/edit") |
||||||
|
public CommonResult<String> edit(@RequestBody @Valid DevSlideshowEditParam devSlideshowEditParam) { |
||||||
|
devSlideshowService.edit(devSlideshowEditParam); |
||||||
|
return CommonResult.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除轮播图 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Operation(summary = "删除轮播图") |
||||||
|
@CommonLog("删除轮播图") |
||||||
|
@PostMapping("/dev/slideshow/delete") |
||||||
|
public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空") |
||||||
|
List<DevSlideshowIdParam> devSlideshowIdParamList) { |
||||||
|
devSlideshowService.delete(devSlideshowIdParamList); |
||||||
|
return CommonResult.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 禁用轮播图 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Operation(summary = "禁用轮播图") |
||||||
|
@CommonLog("禁用轮播图") |
||||||
|
@PostMapping("/dev/slideshow/disableStatus") |
||||||
|
public CommonResult<String> disableStatus(@RequestBody @Valid DevSlideshowIdParam devSlideshowIdParam) { |
||||||
|
devSlideshowService.disableStatus(devSlideshowIdParam); |
||||||
|
return CommonResult.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 启用轮播图 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Operation(summary = "启用轮播图") |
||||||
|
@CommonLog("启用轮播图") |
||||||
|
@PostMapping("/dev/slideshow/enableStatus") |
||||||
|
public CommonResult<String> enableStatus(@RequestBody @Valid DevSlideshowIdParam devSlideshowIdParam) { |
||||||
|
devSlideshowService.enableStatus(devSlideshowIdParam); |
||||||
|
return CommonResult.ok(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,68 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.entity; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*; |
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
import vip.xiaonuo.common.pojo.CommonEntity; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图实体 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
@TableName("dev_slideshow") |
||||||
|
public class DevSlideshow extends CommonEntity { |
||||||
|
|
||||||
|
/** 主键 */ |
||||||
|
@TableId |
||||||
|
@Schema(description = "主键") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** 租户id */ |
||||||
|
@Schema(description = "租户id") |
||||||
|
private String tenantId; |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 展示位置 */ |
||||||
|
@Schema(description = "展示位置") |
||||||
|
private String place; |
||||||
|
|
||||||
|
/** 图片 */ |
||||||
|
@Schema(description = "图片") |
||||||
|
private String image; |
||||||
|
|
||||||
|
/** 路径详情 */ |
||||||
|
@Schema(description = "路径详情") |
||||||
|
private String pathDetails; |
||||||
|
|
||||||
|
/** 状态 */ |
||||||
|
@Schema(description = "状态") |
||||||
|
private String status; |
||||||
|
|
||||||
|
/** 排序 */ |
||||||
|
@Schema(description = "排序") |
||||||
|
private Integer sortCode; |
||||||
|
|
||||||
|
/** 扩展信息 */ |
||||||
|
@Schema(description = "扩展信息") |
||||||
|
private String extJson; |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.enums; |
||||||
|
|
||||||
|
import lombok.Getter; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图枚举 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
public enum DevSlideshowEnum { |
||||||
|
|
||||||
|
/** 测试 */ |
||||||
|
TEST("TEST"); |
||||||
|
|
||||||
|
private final String value; |
||||||
|
|
||||||
|
DevSlideshowEnum(String value) { |
||||||
|
this.value = value; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,49 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.enums; |
||||||
|
|
||||||
|
import lombok.Getter; |
||||||
|
import vip.xiaonuo.common.exception.CommonException; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图状态枚举 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/11 14:46 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
public enum DevSlideshowStatusEnum { |
||||||
|
|
||||||
|
/** |
||||||
|
* 正常 |
||||||
|
*/ |
||||||
|
ENABLE("ENABLE"), |
||||||
|
|
||||||
|
/** |
||||||
|
* 禁用 |
||||||
|
*/ |
||||||
|
DISABLE("DISABLE"); |
||||||
|
|
||||||
|
private final String value; |
||||||
|
|
||||||
|
DevSlideshowStatusEnum(String value) { |
||||||
|
this.value = value; |
||||||
|
} |
||||||
|
|
||||||
|
public static void validate(String value) { |
||||||
|
boolean flag = ENABLE.getValue().equals(value) || DISABLE.getValue().equals(value); |
||||||
|
if(!flag) { |
||||||
|
throw new CommonException("不支持的状态:{}", value); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.mapper; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.entity.DevSlideshow; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图Mapper接口 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
public interface DevSlideshowMapper extends BaseMapper<DevSlideshow> { |
||||||
|
} |
@ -0,0 +1,5 @@ |
|||||||
|
<?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="vip.xiaonuo.dev.modular.slideshow.mapper.DevSlideshowMapper"> |
||||||
|
|
||||||
|
</mapper> |
@ -0,0 +1,58 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank; |
||||||
|
import jakarta.validation.constraints.NotNull; |
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图添加参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class DevSlideshowAddParam { |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "title不能为空") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 展示位置 */ |
||||||
|
@Schema(description = "展示位置", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "place不能为空") |
||||||
|
private String place; |
||||||
|
|
||||||
|
/** 图片 */ |
||||||
|
@Schema(description = "图片") |
||||||
|
private String image; |
||||||
|
|
||||||
|
/** 路径详情 */ |
||||||
|
@Schema(description = "路径详情", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "pathDetails不能为空") |
||||||
|
private String pathDetails; |
||||||
|
|
||||||
|
/** 排序 */ |
||||||
|
@Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotNull(message = "sortCode不能为空") |
||||||
|
private Integer sortCode; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,63 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank; |
||||||
|
import jakarta.validation.constraints.NotNull; |
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图编辑参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class DevSlideshowEditParam { |
||||||
|
|
||||||
|
/** 主键 */ |
||||||
|
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "id不能为空") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "title不能为空") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 展示位置 */ |
||||||
|
@Schema(description = "展示位置", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "place不能为空") |
||||||
|
private String place; |
||||||
|
|
||||||
|
/** 图片 */ |
||||||
|
@Schema(description = "图片") |
||||||
|
private String image; |
||||||
|
|
||||||
|
/** 路径详情 */ |
||||||
|
@Schema(description = "路径详情", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotBlank(message = "pathDetails不能为空") |
||||||
|
private String pathDetails; |
||||||
|
|
||||||
|
/** 排序 */ |
||||||
|
@Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED) |
||||||
|
@NotNull(message = "sortCode不能为空") |
||||||
|
private Integer sortCode; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图Id参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class DevSlideshowIdParam { |
||||||
|
|
||||||
|
/** 主键 */ |
||||||
|
@Schema(description = "主键") |
||||||
|
@NotBlank(message = "id不能为空") |
||||||
|
private String id; |
||||||
|
} |
@ -0,0 +1,63 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.param; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图查询参数 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class DevSlideshowPageParam { |
||||||
|
|
||||||
|
/** 当前页 */ |
||||||
|
@Schema(description = "当前页码") |
||||||
|
private Integer current; |
||||||
|
|
||||||
|
/** 每页条数 */ |
||||||
|
@Schema(description = "每页条数") |
||||||
|
private Integer size; |
||||||
|
|
||||||
|
/** 排序字段 */ |
||||||
|
@Schema(description = "排序字段,字段驼峰名称,如:userName") |
||||||
|
private String sortField; |
||||||
|
|
||||||
|
/** 排序方式 */ |
||||||
|
@Schema(description = "排序方式,升序:ASCEND;降序:DESCEND") |
||||||
|
private String sortOrder; |
||||||
|
|
||||||
|
/** 关键词 */ |
||||||
|
@Schema(description = "关键词") |
||||||
|
private String searchKey; |
||||||
|
|
||||||
|
/** 标题 */ |
||||||
|
@Schema(description = "标题") |
||||||
|
private String title; |
||||||
|
|
||||||
|
/** 展示位置 */ |
||||||
|
@Schema(description = "展示位置") |
||||||
|
private String place; |
||||||
|
|
||||||
|
/** 状态 */ |
||||||
|
@Schema(description = "状态") |
||||||
|
private String status; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.provider; |
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject; |
||||||
|
import jakarta.annotation.Resource; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import vip.xiaonuo.dev.api.DevSlideshowApi; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.service.DevSlideshowService; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图API接口实现类 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public class DevSlideshowApiProvider implements DevSlideshowApi { |
||||||
|
|
||||||
|
@Resource |
||||||
|
private DevSlideshowService devSlideshowService; |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<JSONObject> getListByPlace(String place) { |
||||||
|
return devSlideshowService.getListByPlace(place); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,97 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.service; |
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject; |
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.entity.DevSlideshow; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowAddParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowEditParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowIdParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowPageParam; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图Service接口 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
public interface DevSlideshowService extends IService<DevSlideshow> { |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取轮播图分页 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
Page<DevSlideshow> page(DevSlideshowPageParam devSlideshowPageParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加轮播图 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
void add(DevSlideshowAddParam devSlideshowAddParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 编辑轮播图 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
void edit(DevSlideshowEditParam devSlideshowEditParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除轮播图 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
*/ |
||||||
|
void delete(List<DevSlideshowIdParam> devSlideshowIdParamList); |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取轮播图详情 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
DevSlideshow queryEntity(String id); |
||||||
|
|
||||||
|
/** |
||||||
|
* 禁用轮播图 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
void disableStatus(DevSlideshowIdParam devSlideshowIdParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 启用轮播图 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
void enableStatus(DevSlideshowIdParam devSlideshowIdParam); |
||||||
|
|
||||||
|
/** |
||||||
|
* 通过位置获得轮播图列表 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
List<JSONObject> getListByPlace(String place); |
||||||
|
} |
@ -0,0 +1,162 @@ |
|||||||
|
/* |
||||||
|
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||||
|
* |
||||||
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
||||||
|
* |
||||||
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
||||||
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
||||||
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
||||||
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||||
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
||||||
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||||
|
*/ |
||||||
|
package vip.xiaonuo.dev.modular.slideshow.service.impl; |
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil; |
||||||
|
import cn.hutool.core.collection.CollStreamUtil; |
||||||
|
import cn.hutool.core.collection.CollectionUtil; |
||||||
|
import cn.hutool.core.util.ObjectUtil; |
||||||
|
import cn.hutool.core.util.StrUtil; |
||||||
|
import cn.hutool.json.JSONArray; |
||||||
|
import cn.hutool.json.JSONObject; |
||||||
|
import cn.hutool.json.JSONUtil; |
||||||
|
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.toolkit.IdWorker; |
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
import vip.xiaonuo.common.enums.CommonSortOrderEnum; |
||||||
|
import vip.xiaonuo.common.exception.CommonException; |
||||||
|
import vip.xiaonuo.common.page.CommonPageRequest; |
||||||
|
import vip.xiaonuo.dev.core.conts.DevConstants; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.entity.DevSlideshow; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.enums.DevSlideshowStatusEnum; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.mapper.DevSlideshowMapper; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowAddParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowEditParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowIdParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.param.DevSlideshowPageParam; |
||||||
|
import vip.xiaonuo.dev.modular.slideshow.service.DevSlideshowService; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 轮播图Service接口实现类 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/07/13 00:31 |
||||||
|
**/ |
||||||
|
@Service |
||||||
|
public class DevSlideshowServiceImpl extends ServiceImpl<DevSlideshowMapper, DevSlideshow> implements DevSlideshowService { |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public Page<DevSlideshow> page(DevSlideshowPageParam devSlideshowPageParam) { |
||||||
|
QueryWrapper<DevSlideshow> queryWrapper = new QueryWrapper<DevSlideshow>().checkSqlInjection(); |
||||||
|
if(ObjectUtil.isNotEmpty(devSlideshowPageParam.getTitle())) { |
||||||
|
queryWrapper.lambda().like(DevSlideshow::getTitle, devSlideshowPageParam.getTitle()); |
||||||
|
} |
||||||
|
if(ObjectUtil.isNotEmpty(devSlideshowPageParam.getPlace())) { |
||||||
|
queryWrapper.lambda().like(DevSlideshow::getPlace, devSlideshowPageParam.getPlace()); |
||||||
|
} |
||||||
|
if(ObjectUtil.isNotEmpty(devSlideshowPageParam.getStatus())) { |
||||||
|
queryWrapper.lambda().eq(DevSlideshow::getStatus, devSlideshowPageParam.getStatus()); |
||||||
|
} |
||||||
|
if(ObjectUtil.isAllNotEmpty(devSlideshowPageParam.getSortField(), devSlideshowPageParam.getSortOrder())) { |
||||||
|
CommonSortOrderEnum.validate(devSlideshowPageParam.getSortOrder()); |
||||||
|
queryWrapper.orderBy(true, devSlideshowPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()), |
||||||
|
StrUtil.toUnderlineCase(devSlideshowPageParam.getSortField())); |
||||||
|
} else { |
||||||
|
queryWrapper.lambda().orderByAsc(DevSlideshow::getSortCode); |
||||||
|
} |
||||||
|
return this.page(CommonPageRequest.defaultPage(), queryWrapper); |
||||||
|
} |
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
@Override |
||||||
|
public void add(DevSlideshowAddParam devSlideshowAddParam) { |
||||||
|
DevSlideshow devSlideshow = BeanUtil.toBean(devSlideshowAddParam, DevSlideshow.class); |
||||||
|
// 默认禁用的
|
||||||
|
devSlideshow.setStatus(DevSlideshowStatusEnum.DISABLE.getValue()); |
||||||
|
this.save(devSlideshow); |
||||||
|
} |
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
@Override |
||||||
|
public void edit(DevSlideshowEditParam devSlideshowEditParam) { |
||||||
|
DevSlideshow devSlideshow = this.queryEntity(devSlideshowEditParam.getId()); |
||||||
|
BeanUtil.copyProperties(devSlideshowEditParam, devSlideshow); |
||||||
|
this.updateById(devSlideshow); |
||||||
|
} |
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
@Override |
||||||
|
public void delete(List<DevSlideshowIdParam> devSlideshowIdParamList) { |
||||||
|
// 执行删除
|
||||||
|
this.removeByIds(CollStreamUtil.toList(devSlideshowIdParamList, DevSlideshowIdParam::getId)); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DevSlideshow queryEntity(String id) { |
||||||
|
DevSlideshow devSlideshow = this.getById(id); |
||||||
|
if(ObjectUtil.isEmpty(devSlideshow)) { |
||||||
|
throw new CommonException("轮播图不存在,id值为:{}", id); |
||||||
|
} |
||||||
|
return devSlideshow; |
||||||
|
} |
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
@Override |
||||||
|
public void disableStatus(DevSlideshowIdParam devSlideshowIdParam) { |
||||||
|
this.update(new LambdaUpdateWrapper<DevSlideshow>().eq(DevSlideshow::getId, |
||||||
|
devSlideshowIdParam.getId()).set(DevSlideshow::getStatus, DevSlideshowStatusEnum.DISABLE.getValue())); |
||||||
|
} |
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
@Override |
||||||
|
public void enableStatus(DevSlideshowIdParam devSlideshowIdParam) { |
||||||
|
this.update(new LambdaUpdateWrapper<DevSlideshow>().eq(DevSlideshow::getId, |
||||||
|
devSlideshowIdParam.getId()).set(DevSlideshow::getStatus, DevSlideshowStatusEnum.ENABLE.getValue())); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<JSONObject> getListByPlace(String place){ |
||||||
|
List<JSONObject> resultList = CollectionUtil.newArrayList(); |
||||||
|
List<DevSlideshow> slideshowList = this.list(new LambdaQueryWrapper<DevSlideshow>().eq(DevSlideshow::getStatus, |
||||||
|
DevSlideshowStatusEnum.ENABLE.getValue()).orderByDesc(DevSlideshow::getSortCode)); |
||||||
|
if (slideshowList.size() == 0) { |
||||||
|
// 如果库里未配置,则补充一条静态的,避免图片为空
|
||||||
|
JSONObject staticObj = new JSONObject(); |
||||||
|
staticObj.set("id", IdWorker.getIdStr()); |
||||||
|
staticObj.set("title", "静态文件"); |
||||||
|
staticObj.set("image", DevConstants.STATIC_SLIDESHOW_IMAGE); |
||||||
|
staticObj.set("pathDetails", null); |
||||||
|
resultList.add(staticObj); |
||||||
|
return resultList; |
||||||
|
} |
||||||
|
slideshowList.forEach((item) -> { |
||||||
|
JSONArray slideshowPlaceArray = JSONUtil.parseArray(item.getPlace()); |
||||||
|
slideshowPlaceArray.forEach((placeArray) -> { |
||||||
|
if (place.equals(placeArray)) { |
||||||
|
JSONObject obj = new JSONObject(); |
||||||
|
obj.set("id", item.getId()); |
||||||
|
obj.set("title", item.getTitle()); |
||||||
|
// TODO 判断这个图片是否库里真是存在,不存在则返回base64国定的,不能让前端图片裂开
|
||||||
|
obj.set("image", item.getImage()); |
||||||
|
JSONArray array = JSONUtil.parseArray(item.getPathDetails()); |
||||||
|
array.forEach((detail) -> { |
||||||
|
JSONObject detailObj = JSONUtil.parseObj(detail); |
||||||
|
if (detailObj.get("key").equals(place)) { |
||||||
|
obj.set("pathDetails", detailObj); |
||||||
|
} |
||||||
|
}); |
||||||
|
resultList.add(obj); |
||||||
|
} |
||||||
|
}); |
||||||
|
}); |
||||||
|
return resultList; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package vip.xiaonuo.sys.modular.index.result; |
||||||
|
|
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* 系统业务数量 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/18 17:35 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class SysBizDataCountResult { |
||||||
|
|
||||||
|
/** 用户数量 */ |
||||||
|
private Long userCount; |
||||||
|
|
||||||
|
/** 角色数量 */ |
||||||
|
private Long roleCount; |
||||||
|
|
||||||
|
/** 机构数量 */ |
||||||
|
private Long orgCount; |
||||||
|
|
||||||
|
/** 职位数量 */ |
||||||
|
private Long positionCount; |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package vip.xiaonuo.sys.modular.index.result; |
||||||
|
|
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* 运维一览数据 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/18 17:35 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class SysOpDataCountResult { |
||||||
|
|
||||||
|
/** 定时任务数量 */ |
||||||
|
private Long jobCount; |
||||||
|
|
||||||
|
/** 系统字典数量 */ |
||||||
|
private Long sysDictCount; |
||||||
|
|
||||||
|
/** 业务字典数量 */ |
||||||
|
private Long bizDictCount; |
||||||
|
|
||||||
|
/** B端用户在线数量 */ |
||||||
|
private Long backUserSessionCount; |
||||||
|
|
||||||
|
/** C端用户在线数量 */ |
||||||
|
private Long clientUserSessionCount; |
||||||
|
|
||||||
|
/** 三方用户数量 */ |
||||||
|
private Long thirdUserCount; |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package vip.xiaonuo.sys.modular.index.result; |
||||||
|
|
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* 基础工具数据 |
||||||
|
* |
||||||
|
* @author yubaoshan |
||||||
|
* @date 2024/7/18 17:35 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class SysToolDataCountResult { |
||||||
|
|
||||||
|
/** 文件数量 */ |
||||||
|
private Long fileCount; |
||||||
|
|
||||||
|
/** 短信数量 */ |
||||||
|
private Long smsCount; |
||||||
|
|
||||||
|
/** 邮件数量 */ |
||||||
|
private Long emailCount; |
||||||
|
|
||||||
|
/** 站内信数量 */ |
||||||
|
private Long messageCount; |
||||||
|
} |
Loading…
Reference in new issue