From 7e4cbfb5410b96535638af3e0334de2329181077 Mon Sep 17 00:00:00 2001 From: xuwenbo <717567226@qq.com> Date: Tue, 2 Feb 2021 09:21:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=BB=E5=B8=83=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/3.1升级3.2sql.sql | 18 +++ sql/{yshop3.1.sql => yshop3.2.sql} | 19 +++ .../security/config/SecurityConfig.java | 1 + .../modules/shop/rest/IndexController.java | 13 ++ .../modules/canvas/domain/StoreCanvas.java | 54 ++++++++ .../canvas/service/StoreCanvasService.java | 48 +++++++ .../canvas/service/dto/StoreCanvasDto.java | 44 +++++++ .../service/dto/StoreCanvasQueryCriteria.java | 21 +++ .../service/impl/StoreCanvasServiceImpl.java | 84 ++++++++++++ .../service/mapper/StoreCanvasMapper.java | 23 ++++ .../canvas/rest/StoreCanvasController.java | 121 ++++++++++++++++++ 11 files changed, 446 insertions(+) rename sql/{yshop3.1.sql => yshop3.2.sql} (99%) create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/canvas/domain/StoreCanvas.java create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/canvas/service/StoreCanvasService.java create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/canvas/service/dto/StoreCanvasDto.java create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/canvas/service/dto/StoreCanvasQueryCriteria.java create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/canvas/service/impl/StoreCanvasServiceImpl.java create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/canvas/service/mapper/StoreCanvasMapper.java create mode 100644 yshop-shop/src/main/java/co/yixiang/modules/canvas/rest/StoreCanvasController.java diff --git a/sql/3.1升级3.2sql.sql b/sql/3.1升级3.2sql.sql index bdef2bf1..58a8d986 100644 --- a/sql/3.1升级3.2sql.sql +++ b/sql/3.1升级3.2sql.sql @@ -11,4 +11,22 @@ ALTER TABLE yx_store_product_attr_value ADD COLUMN integral INT(10) DEFAULT 0 C ALTER TABLE yx_store_order ADD COLUMN `pay_integral` decimal(8, 2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '支付积分'; +-- ---------------------------- +-- Table structure for yx_store_canvas +-- ---------------------------- +DROP TABLE IF EXISTS `yx_store_canvas`; +CREATE TABLE `yx_store_canvas` ( + `canvas_id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '画布id', + `terminal` tinyint(1) NOT NULL COMMENT '终端 1-小程序 2-H5 3-APP 4-PC', + `json` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '画布json数据', + `type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '类型 1-系统画布 2-自定义页面 3-商家店铺装修', + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '名称', + `shop_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '店铺id,当type=3的时候,值为具体的店铺id,其它情况为0', + `create_time` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建时间', + `update_time` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改时间', + `is_del` tinyint(1) NULL DEFAULT NULL COMMENT '删除标识', + PRIMARY KEY (`canvas_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '画布信息表' ROW_FORMAT = DYNAMIC; + + diff --git a/sql/yshop3.1.sql b/sql/yshop3.2.sql similarity index 99% rename from sql/yshop3.1.sql rename to sql/yshop3.2.sql index 5c5c2eb4..b5ecda70 100644 --- a/sql/yshop3.1.sql +++ b/sql/yshop3.2.sql @@ -7346,4 +7346,23 @@ INSERT INTO `yx_wechat_template` VALUES (13, 'pay_success', '订单支付成功 INSERT INTO `yx_wechat_template` VALUES (14, 'recharge_success', '帐户资金变动提醒', '{{first.DATA}}\n变动类型:{{keyword1.DATA}}\n变动时间:{{keyword2.DATA}}\n变动金额:{{keyword3.DATA}}\n{{remark.DATA}}', 'ePF4RS3ONCEuS9AuPyqZ2Th_B-HZ6E1CIpnJRt7ACwI', '2020-06-25 18:54:35', '2020-07-06 15:51:54', 1, 0, NULL); INSERT INTO `yx_wechat_template` VALUES (15, 'refund_success', '退款进度通知', '', 'jaDVkOdbbk01WcWSxp1_liEQen44-euhj7shxjDvLIc', '2020-07-06 15:53:10', NULL, 0, 0, NULL); + + +-- ---------------------------- +-- Table structure for yx_store_canvas +-- ---------------------------- +DROP TABLE IF EXISTS `yx_store_canvas`; +CREATE TABLE `yx_store_canvas` ( + `canvas_id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '画布id', + `terminal` tinyint(1) NOT NULL COMMENT '终端 1-小程序 2-H5 3-APP 4-PC', + `json` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '画布json数据', + `type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '类型 1-系统画布 2-自定义页面 3-商家店铺装修', + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '名称', + `shop_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '店铺id,当type=3的时候,值为具体的店铺id,其它情况为0', + `create_time` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建时间', + `update_time` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改时间', + `is_del` tinyint(1) NULL DEFAULT NULL COMMENT '删除标识', + PRIMARY KEY (`canvas_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '画布信息表' ROW_FORMAT = DYNAMIC; + SET FOREIGN_KEY_CHECKS = 1; diff --git a/yshop-admin/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java b/yshop-admin/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java index 10d6ee6d..f570c5e2 100644 --- a/yshop-admin/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java +++ b/yshop-admin/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java @@ -122,6 +122,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/file/**").permitAll() // 阿里巴巴 druid .antMatchers("/druid/**").permitAll() + .antMatchers("/api/canvas/**").permitAll() // 放行OPTIONS请求 .antMatchers(HttpMethod.OPTIONS, "/**").permitAll() diff --git a/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java b/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java index 510e17d9..061b884d 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java +++ b/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java @@ -17,6 +17,8 @@ import co.yixiang.enums.ProductEnum; import co.yixiang.modules.activity.service.YxStoreCombinationService; import co.yixiang.modules.activity.service.YxStoreSeckillService; import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo; +import co.yixiang.modules.canvas.domain.StoreCanvas; +import co.yixiang.modules.canvas.service.StoreCanvasService; import co.yixiang.modules.mp.service.YxWechatLiveService; import co.yixiang.modules.product.service.YxStoreProductService; import co.yixiang.modules.product.vo.YxSystemStoreQueryVo; @@ -39,6 +41,8 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; @@ -67,6 +71,15 @@ public class IndexController { private final YxStoreSeckillService storeSeckillService; private final YxWechatLiveService wechatLiveService; + private final StoreCanvasService storeCanvasService; + + @GetMapping("/getCanvas") + @ApiOperation(value = "读取画布数据") + public ResponseEntity getCanvas(StoreCanvas storeCanvas){ + StoreCanvas canvas = storeCanvasService.lambdaQuery().eq(StoreCanvas::getTerminal, storeCanvas.getCanvasId()).one(); + return new ResponseEntity<>(canvas, HttpStatus.OK); + } + @Cacheable(cacheNames = ShopConstants.YSHOP_REDIS_INDEX_KEY) @GetMapping("/index") @ApiOperation(value = "首页数据",notes = "首页数据") diff --git a/yshop-mall/src/main/java/co/yixiang/modules/canvas/domain/StoreCanvas.java b/yshop-mall/src/main/java/co/yixiang/modules/canvas/domain/StoreCanvas.java new file mode 100644 index 00000000..5f892171 --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/canvas/domain/StoreCanvas.java @@ -0,0 +1,54 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.canvas.domain; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import javax.validation.constraints.*; +import co.yixiang.domain.BaseDomain; + +/** +* @author yshop +* @date 2021-02-01 +*/ +@Data +@TableName("yx_store_canvas") +public class StoreCanvas extends BaseDomain { + /** 画布id */ + @TableId + private Long canvasId; + + /** 终端 1-小程序 2-H5 3-APP 4-PC */ + @NotNull + private Integer terminal; + + /** 画布json数据 */ + private String json; + + /** 类型 1-系统画布 2-自定义页面 3-商家店铺装修 */ + @NotNull + private Integer type; + + /** 名称 */ + @NotBlank + private String name; + + /** 店铺id,当type=3的时候,值为具体的店铺id,其它情况为0 */ + @NotNull + private Long shopId; + + + + + public void copy(StoreCanvas source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/StoreCanvasService.java b/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/StoreCanvasService.java new file mode 100644 index 00000000..784f4528 --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/StoreCanvasService.java @@ -0,0 +1,48 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.canvas.service; +import co.yixiang.common.service.BaseService; +import co.yixiang.modules.canvas.domain.StoreCanvas; +import co.yixiang.modules.canvas.service.dto.StoreCanvasDto; +import co.yixiang.modules.canvas.service.dto.StoreCanvasQueryCriteria; +import org.springframework.data.domain.Pageable; +import java.util.Map; +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import co.yixiang.domain.PageResult; +/** +* @author yshop +* @date 2021-02-01 +*/ +public interface StoreCanvasService extends BaseService{ + + /** + * 查询数据分页 + * @param criteria 条件 + * @param pageable 分页参数 + * @return Map + */ + PageResult queryAll(StoreCanvasQueryCriteria criteria, Pageable pageable); + + /** + * 查询所有数据不分页 + * @param criteria 条件参数 + * @return List + */ + List queryAll(StoreCanvasQueryCriteria criteria); + + /** + * 导出数据 + * @param all 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(List all, HttpServletResponse response) throws IOException; +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/dto/StoreCanvasDto.java b/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/dto/StoreCanvasDto.java new file mode 100644 index 00000000..e135f928 --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/dto/StoreCanvasDto.java @@ -0,0 +1,44 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.canvas.service.dto; + +import lombok.Data; +import java.io.Serializable; + +/** +* @author yshop +* @date 2021-02-01 +*/ +@Data +public class StoreCanvasDto implements Serializable { + + /** 画布id */ + private Long canvasId; + + /** 终端 1-小程序 2-H5 3-APP 4-PC */ + private Integer terminal; + + /** 画布json数据 */ + private String json; + + /** 类型 1-系统画布 2-自定义页面 3-商家店铺装修 */ + private Integer type; + + /** 名称 */ + private String name; + + /** 店铺id,当type=3的时候,值为具体的店铺id,其它情况为0 */ + private Long shopId; + + /** 创建时间 */ + private String createTime; + + /** 修改时间 */ + private String updateTime; +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/dto/StoreCanvasQueryCriteria.java b/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/dto/StoreCanvasQueryCriteria.java new file mode 100644 index 00000000..6c68c2c7 --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/dto/StoreCanvasQueryCriteria.java @@ -0,0 +1,21 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.canvas.service.dto; + +import lombok.Data; +import java.util.List; +import co.yixiang.annotation.Query; + +/** +* @author yshop +* @date 2021-02-01 +*/ +@Data +public class StoreCanvasQueryCriteria{ +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/impl/StoreCanvasServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/impl/StoreCanvasServiceImpl.java new file mode 100644 index 00000000..bbc28c7a --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/impl/StoreCanvasServiceImpl.java @@ -0,0 +1,84 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.canvas.service.impl; + +import co.yixiang.modules.canvas.domain.StoreCanvas; +import co.yixiang.common.service.impl.BaseServiceImpl; +import lombok.AllArgsConstructor; +import co.yixiang.dozer.service.IGenerator; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import co.yixiang.common.utils.QueryHelpPlus; +import co.yixiang.utils.ValidationUtil; +import co.yixiang.utils.FileUtil; +import co.yixiang.modules.canvas.service.StoreCanvasService; +import co.yixiang.modules.canvas.service.dto.StoreCanvasDto; +import co.yixiang.modules.canvas.service.dto.StoreCanvasQueryCriteria; +import co.yixiang.modules.canvas.service.mapper.StoreCanvasMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; +// 默认不使用缓存 +//import org.springframework.cache.annotation.CacheConfig; +//import org.springframework.cache.annotation.CacheEvict; +//import org.springframework.cache.annotation.Cacheable; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import java.util.List; +import java.util.Map; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import co.yixiang.domain.PageResult; +/** +* @author yshop +* @date 2021-02-01 +*/ +@Service +@AllArgsConstructor +//@CacheConfig(cacheNames = "storeCanvas") +@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) +public class StoreCanvasServiceImpl extends BaseServiceImpl implements StoreCanvasService { + + private final IGenerator generator; + + @Override + //@Cacheable + public PageResult queryAll(StoreCanvasQueryCriteria criteria, Pageable pageable) { + getPage(pageable); + PageInfo page = new PageInfo<>(queryAll(criteria)); + return generator.convertPageInfo(page,StoreCanvasDto.class); + } + + + @Override + //@Cacheable + public List queryAll(StoreCanvasQueryCriteria criteria){ + return baseMapper.selectList(QueryHelpPlus.getPredicate(StoreCanvas.class, criteria)); + } + + + @Override + public void download(List all, HttpServletResponse response) throws IOException { + List> list = new ArrayList<>(); + for (StoreCanvasDto storeCanvas : all) { + Map map = new LinkedHashMap<>(); + map.put("终端 1-小程序 2-H5 3-APP 4-PC", storeCanvas.getTerminal()); + map.put("画布json数据", storeCanvas.getJson()); + map.put("类型 1-系统画布 2-自定义页面 3-商家店铺装修", storeCanvas.getType()); + map.put("名称", storeCanvas.getName()); + map.put("店铺id,当type=3的时候,值为具体的店铺id,其它情况为0", storeCanvas.getShopId()); + map.put("创建时间", storeCanvas.getCreateTime()); + map.put("修改时间", storeCanvas.getUpdateTime()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/mapper/StoreCanvasMapper.java b/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/mapper/StoreCanvasMapper.java new file mode 100644 index 00000000..616950cf --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/canvas/service/mapper/StoreCanvasMapper.java @@ -0,0 +1,23 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.canvas.service.mapper; + +import co.yixiang.common.mapper.CoreMapper; +import co.yixiang.modules.canvas.domain.StoreCanvas; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** +* @author yshop +* @date 2021-02-01 +*/ +@Repository +public interface StoreCanvasMapper extends CoreMapper { + +} diff --git a/yshop-shop/src/main/java/co/yixiang/modules/canvas/rest/StoreCanvasController.java b/yshop-shop/src/main/java/co/yixiang/modules/canvas/rest/StoreCanvasController.java new file mode 100644 index 00000000..92f3480b --- /dev/null +++ b/yshop-shop/src/main/java/co/yixiang/modules/canvas/rest/StoreCanvasController.java @@ -0,0 +1,121 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.canvas.rest; +import java.util.Arrays; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.api.YshopException; +import co.yixiang.constant.ShopConstants; +import co.yixiang.constant.SystemConfigConstants; +import co.yixiang.dozer.service.IGenerator; +import co.yixiang.enums.ShopCommonEnum; +import co.yixiang.tools.domain.QiniuContent; +import co.yixiang.tools.service.LocalStorageService; +import co.yixiang.tools.service.QiNiuService; +import co.yixiang.tools.service.dto.LocalStorageDto; +import co.yixiang.utils.RedisUtils; +import lombok.AllArgsConstructor; +import co.yixiang.logging.aop.log.Log; +import co.yixiang.modules.canvas.domain.StoreCanvas; +import co.yixiang.modules.canvas.service.StoreCanvasService; +import co.yixiang.modules.canvas.service.dto.StoreCanvasQueryCriteria; +import co.yixiang.modules.canvas.service.dto.StoreCanvasDto; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import javax.servlet.http.HttpServletResponse; +import co.yixiang.domain.PageResult; +import org.springframework.web.multipart.MultipartFile; + +/** +* @author yshop +* @date 2021-02-01 +*/ +@AllArgsConstructor +@Api(tags = "画布管理") +@RestController +@RequestMapping("/api/canvas") +public class StoreCanvasController { + + private final StoreCanvasService storeCanvasService; + private final LocalStorageService localStorageService; + private final QiNiuService qiNiuService; + private final RedisUtils redisUtils; + + + @PostMapping("/saveCanvas") + @Log("新增或修改画布") + @ApiOperation("新增或修改画布") + public ResponseEntity create(@Validated @RequestBody StoreCanvas resources){ + return new ResponseEntity<>(storeCanvasService.saveOrUpdate(resources),HttpStatus.CREATED); + } + + + @ApiOperation("上传文件") + @PostMapping("/upload") + public ResponseEntity create(@RequestParam(defaultValue = "") String name, + @RequestParam(defaultValue = "") String type, + @RequestParam("file") MultipartFile file) { + + String localUrl = redisUtils.getY(ShopConstants.ADMIN_API_URL); + if(StrUtil.isBlank(type)){ + localUrl = redisUtils.getY(SystemConfigConstants.API_URL) + "/api"; + } + String mode = redisUtils.getY(SystemConfigConstants.FILE_STORE_MODE); + StringBuilder url = new StringBuilder(); + if (ShopCommonEnum.STORE_MODE_1.getValue().toString().equals(mode)) { //存在走本地 + if(StrUtil.isBlank(localUrl)){ + throw new YshopException("本地上传,请先登陆系统配置后台/移动端API地址"); + } + LocalStorageDto localStorageDTO = localStorageService.create(name, file); + if ("".equals(url.toString())) { + url = url.append(localUrl + "/file/" + localStorageDTO.getType() + "/" + localStorageDTO.getRealName()); + } else { + url = url.append(","+localUrl + "/file/" + localStorageDTO.getType() + "/" + localStorageDTO.getRealName()); + } + } else {//走七牛云 + QiniuContent qiniuContent = qiNiuService.upload(file, qiNiuService.find()); + if ("".equals(url.toString())) { + url = url.append(qiniuContent.getUrl()); + }else{ + url = url.append(","+qiniuContent.getUrl()); + } + } + + Map map = new HashMap<>(2); + map.put("errno", 0); + map.put("link", url); + return new ResponseEntity(map, HttpStatus.CREATED); + } + + + @GetMapping("/getCanvas") + @ApiOperation(value = "读取画布数据") + public ResponseEntity getCanvas(StoreCanvas storeCanvas){ + StoreCanvas canvas = storeCanvasService.lambdaQuery().eq(StoreCanvas::getTerminal, storeCanvas.getCanvasId()).one(); + return new ResponseEntity<>(canvas,HttpStatus.OK); + } + + @Log("删除画布") + @ApiOperation("删除画布") + @DeleteMapping + public ResponseEntity deleteAll(@RequestBody Long[] ids) { + Arrays.asList(ids).forEach(id->{ + storeCanvasService.removeById(id); + }); + return new ResponseEntity<>(HttpStatus.OK); + } +}