|
@@ -96,6 +96,11 @@ public class ShopBannerServiceImpl extends ServiceImpl<ShopBannerMapper, ShopBan
|
|
|
return error(); // 如果文件类型不支持,返回错误响应
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 新增轮播图信息
|
|
|
+ * @param banner
|
|
|
+ * @return
|
|
|
+ */
|
|
|
@Override
|
|
|
public RPCBaseResponse<BannerVo> saveBannerCountry(BannerDto banner) {
|
|
|
// 验证输入参数的有效性
|
|
@@ -162,6 +167,78 @@ public class ShopBannerServiceImpl extends ServiceImpl<ShopBannerMapper, ShopBan
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新横幅信息
|
|
|
+ * @param banner
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public RPCBaseResponse<BannerVo> updateBannerCountry(BannerDto banner) {
|
|
|
+ // 验证输入参数的有效性
|
|
|
+ if (ObjectUtil.isEmpty(banner) || ObjectUtil.isEmpty(banner.getId())) {
|
|
|
+ return error("Banner data cannot be null and id must be provided");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查 isDefault 是否被输入
|
|
|
+ if (banner.getIsDefault() == null) {
|
|
|
+ return error("isDefault must be provided");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果 isDefault 为 0,检查 startTime 和 endTime
|
|
|
+ if (banner.getIsDefault() == 0) {
|
|
|
+ if (ObjectUtil.isEmpty(banner.getStartTime()) || ObjectUtil.isEmpty(banner.getEndTime())) {
|
|
|
+ return error("startTime and endTime must be provided when isDefault is 0");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 使用 uploadAdapter.getFormId 查找出 file_path 和 fileType
|
|
|
+ RPCBaseResponse<EduFileVo> fileResponse = uploadAdapter.getFormId(banner.getImageId());
|
|
|
+ if (fileResponse.getData() == null) {
|
|
|
+ return error("Failed to retrieve file information");
|
|
|
+ }
|
|
|
+ EduFileVo fileData = fileResponse.getData();
|
|
|
+ String filePath = fileData.getFilePath(); // 假设 EduFileDTO 有 getFilePath 方法
|
|
|
+ String fileType = fileData.getFileType(); // 假设 EduFileDTO 有 getFileType 方法
|
|
|
+
|
|
|
+ // 查找现有的 ShopBanner 对象进行更新
|
|
|
+ ShopBanner shopBanner = this.getById(banner.getId());
|
|
|
+ if (shopBanner == null) {
|
|
|
+ return error("Banner not found");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新 BannerVo 对象
|
|
|
+ BannerVo bannerVo = new BannerVo();
|
|
|
+ bannerVo.setUrl(filePath); // 设置文件路径
|
|
|
+ bannerVo.setUrlType("image".equalsIgnoreCase(fileType) ? 0 : 1); // 假设0为图片,1为视频
|
|
|
+ bannerVo.setContent(banner.getContent()); // 设置名称
|
|
|
+ bannerVo.setCountryId(banner.getCountryId()); // 设置国家
|
|
|
+ bannerVo.setLinkUrl(banner.getLinkUrl()); // 设置链接地址
|
|
|
+ bannerVo.setMode(banner.getMode());
|
|
|
+ bannerVo.setId(banner.getId()); // 保持ID一致
|
|
|
+
|
|
|
+ // 将 bannerVo 转换为 shopBanner,并设置其他字段
|
|
|
+ BeanUtil.copyProperties(bannerVo, shopBanner);
|
|
|
+ shopBanner.setEnable(0); // 示例:设置为启用状态
|
|
|
+ shopBanner.setUpdateTime(new Date()); // 设置当前时间为更新时间
|
|
|
+
|
|
|
+ // 设置 isDefault、startTime 和 endTime 字段
|
|
|
+ shopBanner.setIsDefault(banner.getIsDefault());
|
|
|
+ if (banner.getIsDefault() == 0) {
|
|
|
+ shopBanner.setStartTime(banner.getStartTime());
|
|
|
+ shopBanner.setEndTime(banner.getEndTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 调用 mapper 更新到数据库
|
|
|
+ this.updateById(shopBanner);
|
|
|
+
|
|
|
+ return success(bannerVo); // 返回成功的响应
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return error("Failed to update banner country");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
}
|