From a4d36a470cfd3dc782cb2a0c435590a331ee7ae5 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 26 Sep 2025 13:58:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B8=20=E9=A2=86=E5=8F=96=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E6=A0=A1=E9=AA=8C=20=E5=9B=BE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/SysImageLibraryController.java | 55 ++++++++++++++++++ .../czg/account/entity/SysImageLibrary.java | 56 +++++++++++++++++++ .../service/SysImageLibraryService.java | 30 ++++++++++ .../account/mapper/SysImageLibraryMapper.java | 14 +++++ .../impl/SysImageLibraryServiceImpl.java | 44 +++++++++++++++ .../czg/service/account/util/AliOssUtil.java | 29 ++++++++-- .../mapper/SysImageLibraryMapper.xml | 7 +++ .../src/main/java/com/czg/Main.java | 8 +-- .../service/impl/ShopCouponServiceImpl.java | 2 +- 9 files changed, 235 insertions(+), 10 deletions(-) create mode 100644 cash-api/account-server/src/main/java/com/czg/controller/admin/SysImageLibraryController.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysImageLibrary.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/service/SysImageLibraryService.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysImageLibraryMapper.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysImageLibraryServiceImpl.java create mode 100644 cash-service/account-service/src/main/resources/mapper/SysImageLibraryMapper.xml diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/SysImageLibraryController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/SysImageLibraryController.java new file mode 100644 index 00000000..ef0140aa --- /dev/null +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/SysImageLibraryController.java @@ -0,0 +1,55 @@ +package com.czg.controller.admin; + +import com.czg.account.entity.SysImageLibrary; +import com.czg.account.service.SysImageLibraryService; +import com.czg.resp.CzgResult; +import com.mybatisflex.core.paginate.Page; +import jakarta.annotation.Resource; +import org.apache.commons.io.FilenameUtils; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +/** + * 自用图库接口 + * + * @author ww + * @description + */ +@RestController +@RequestMapping("/admin/image") +public class SysImageLibraryController { + + @Resource + private SysImageLibraryService sysImageLibraryService; + + /** + * 获取系统图库分页列表 + * @param name 文件名称 模糊匹配 + * @return 系统图库分页列表 + */ + @GetMapping("/get") + public CzgResult> get(@RequestParam(required = false) String name) { + return CzgResult.success(sysImageLibraryService.getImagePage(name)); + } + /** + * 保存系统图库 + * @param sysImageLibrary 系统图库 + * @return 无 + */ + @PostMapping("/saveOrUpdate") + public CzgResult saveOrUpdate(@RequestBody SysImageLibrary sysImageLibrary) { + sysImageLibraryService.saveOrUpdate(sysImageLibrary); + return CzgResult.success(); + } + /** + * 上传系统图库图片 + * @param fileName 图片文件名 必填 + * @param suffix 图片扩展名 必填 + * @param file 图片文件 必填 + * @return 图片地址 + */ + @PostMapping("/upload") + public CzgResult upload(@RequestParam String fileName, @RequestParam String suffix, @RequestParam MultipartFile file) throws Exception { + return CzgResult.success(sysImageLibraryService.upload(file.getBytes(), fileName, suffix)); + } +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysImageLibrary.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysImageLibrary.java new file mode 100644 index 00000000..945e52d3 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysImageLibrary.java @@ -0,0 +1,56 @@ +package com.czg.account.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 系统图库 实体类。 + * + * @author zs + * @since 2025-09-25 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("sys_image_library") +public class SysImageLibrary implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id + private Long id; + + /** + * 图片地址 + */ + private String url; + + /** + * 图片名称 + */ + private String name; + + /** + * 预留 + */ + private String type; + + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysImageLibraryService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysImageLibraryService.java new file mode 100644 index 00000000..bd9befca --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysImageLibraryService.java @@ -0,0 +1,30 @@ +package com.czg.account.service; + +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.service.IService; +import com.czg.account.entity.SysImageLibrary; + +/** + * 系统图库 服务层。 + * + * @author zs + * @since 2025-09-25 + */ +public interface SysImageLibraryService extends IService { + + /** + * 获取系统图库分页列表 + * @param name 图库名称 + * @return 系统图库分页列表 + */ + Page getImagePage(String name); + + /** + * 上传图片 + * @param bytes 图片字节数组 + * @param fileName 图片文件名 + * @param suffix 图片扩展名 + * @return 图片地址 + */ + String upload(byte[] bytes, String fileName, String suffix) throws Exception; +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysImageLibraryMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysImageLibraryMapper.java new file mode 100644 index 00000000..98bf2944 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysImageLibraryMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.account.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.SysImageLibrary; + +/** + * 系统图库 映射层。 + * + * @author zs + * @since 2025-09-25 + */ +public interface SysImageLibraryMapper extends BaseMapper { + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysImageLibraryServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysImageLibraryServiceImpl.java new file mode 100644 index 00000000..4718c200 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysImageLibraryServiceImpl.java @@ -0,0 +1,44 @@ +package com.czg.service.account.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.czg.market.dto.MkCouponGiftDTO; +import com.czg.market.entity.MkCouponGift; +import com.czg.service.account.util.AliOssUtil; +import com.czg.utils.PageUtil; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.SysImageLibrary; +import com.czg.account.service.SysImageLibraryService; +import com.czg.service.account.mapper.SysImageLibraryMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 系统图库 服务层实现。 + * + * @author zs + * @since 2025-09-25 + */ +@Service +public class SysImageLibraryServiceImpl extends ServiceImpl implements SysImageLibraryService { + + @Resource + private AliOssUtil aliOssUtil; + + @Override + public Page getImagePage(String name) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.like(SysImageLibrary::getName, StrUtil.isBlank(name) ? null : name) + .orderBy(SysImageLibrary::getId).desc(); + return pageAs(PageUtil.buildPage(), queryWrapper, SysImageLibrary.class); + } + + @Override + public String upload(byte[] bytes, String fileName, String suffix) throws Exception { + return aliOssUtil.uploadSelfSuffix(bytes, fileName, suffix); + } + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/util/AliOssUtil.java b/cash-service/account-service/src/main/java/com/czg/service/account/util/AliOssUtil.java index bf667b55..5eef806c 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/util/AliOssUtil.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/util/AliOssUtil.java @@ -1,8 +1,8 @@ /** * Copyright (c) 2018 人人开源 All rights reserved. - * + *

* https://www.renren.io - * + *

* 版权所有,侵权必究! */ @@ -23,7 +23,7 @@ import java.util.UUID; * @author Mark sunlightcs@gmail.com */ @Component -public class AliOssUtil{ +public class AliOssUtil { private final String endPoint = "oss-cn-beijing.aliyuncs.com"; private final String accessKey = "LTAI5tPdEfYSZcqHbjCrtPRD"; @@ -31,9 +31,11 @@ public class AliOssUtil{ private final String bucketName = "cashier-oss"; private final String url = "cashier-oss.oss-cn-beijing.aliyuncs.com"; private final String prefix = "upload"; + private final String selfPrefix = "self"; /** * 文件路径 + * * @param prefix 前缀 * @param suffix 后缀 * @return 返回上传路径 @@ -44,19 +46,32 @@ public class AliOssUtil{ //文件路径 String path = DateUtil.date().getDay() + "/" + uuid; - if(StrUtil.isNotBlank(prefix)){ + if (StrUtil.isNotBlank(prefix)) { path = prefix + "/" + path; } return path + "." + suffix; } + /** + * 文件路径 + * + * @param prefix 前缀 + * @param fileName 文件名 + * @param suffix 后缀 + * @return 返回上传路径 + */ + public String getPathByFileName(String prefix, String fileName, String suffix) { + return prefix + "/" + fileName + "." + suffix; + } + + public String upload(InputStream inputStream, String path) throws Exception { OSSClient client = new OSSClient(endPoint, accessKey, secretKey); try { client.putObject(bucketName, path, inputStream); client.shutdown(); - } catch (Exception e){ + } catch (Exception e) { throw new Exception("上传异常"); } @@ -67,4 +82,8 @@ public class AliOssUtil{ return upload(new ByteArrayInputStream(data), getPath(prefix, suffix)); } + public String uploadSelfSuffix(byte[] data, String fileName, String suffix) throws Exception { + return upload(new ByteArrayInputStream(data), getPathByFileName(selfPrefix, fileName, suffix)); + } + } diff --git a/cash-service/account-service/src/main/resources/mapper/SysImageLibraryMapper.xml b/cash-service/account-service/src/main/resources/mapper/SysImageLibraryMapper.xml new file mode 100644 index 00000000..e789841f --- /dev/null +++ b/cash-service/account-service/src/main/resources/mapper/SysImageLibraryMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/cash-service/code-generator/src/main/java/com/czg/Main.java b/cash-service/code-generator/src/main/java/com/czg/Main.java index 9915304b..b22762e4 100644 --- a/cash-service/code-generator/src/main/java/com/czg/Main.java +++ b/cash-service/code-generator/src/main/java/com/czg/Main.java @@ -11,7 +11,7 @@ import com.zaxxer.hikari.HikariDataSource; */ public class Main { // private final static String BASE_URL = "rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com"; - private final static String BASE_URL = "192.168.1.31"; + private final static String BASE_URL = "192.168.1.42"; private final static String PORT = "3306"; private final static String USERNAME = "root"; private final static String PASSWORD = "Chaozg123."; @@ -26,12 +26,12 @@ public class Main { // String packageName = "system"; // String packageName = "account"; // String packageName = "product"; - String packageName = "market"; + String packageName = "account"; - String tableName = "mk_shop_consume_discount_record"; + String tableName = "sys_image_library"; String author = "zs"; //是否生成DTO实体 默认生成 - boolean isGenerateDto = true; + boolean isGenerateDto = false; //配置数据源 HikariDataSource dataSource = new HikariDataSource(); diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/ShopCouponServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/ShopCouponServiceImpl.java index 145bfc9b..ed35508d 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/ShopCouponServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/ShopCouponServiceImpl.java @@ -130,7 +130,7 @@ public class ShopCouponServiceImpl extends ServiceImpl= coupon.getGetLimit()) { continue; }