diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java index ae56a54a..91d5df91 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java @@ -2,7 +2,9 @@ package com.ruoyi.system.api; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.core.constant.ServiceNameConstants; @@ -26,4 +28,16 @@ public interface RemoteFileService */ @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R upload(@RequestPart(value = "file") MultipartFile file); + + /** + * + * 远程删除文件 + * @author xjs + * @since 2022-03-03 + * @param url 路径 + * @return R + */ + @DeleteMapping("/remove") + R removeFile(@RequestParam("url") String url); + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java index bc3b6fff..a0f2c23a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java @@ -30,6 +30,11 @@ public class RemoteFileFallbackFactory implements FallbackFactory +
+ + + + + + + + + + + + + + + + + + + + + + 提交 + + 重置 + + + + +
+ + + + + diff --git a/ruoyi-ui/src/views/business/english/article/details.vue b/ruoyi-ui/src/views/business/english/article/details.vue new file mode 100644 index 00000000..4a45d101 --- /dev/null +++ b/ruoyi-ui/src/views/business/english/article/details.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/ruoyi-ui/src/views/business/english/article/index.vue b/ruoyi-ui/src/views/business/english/article/index.vue new file mode 100644 index 00000000..3de0a586 --- /dev/null +++ b/ruoyi-ui/src/views/business/english/article/index.vue @@ -0,0 +1,373 @@ + + + + + diff --git a/ruoyi-ui/src/views/business/english/word/index.vue b/ruoyi-ui/src/views/business/english/word/index.vue index a41b5380..77424fd3 100644 --- a/ruoyi-ui/src/views/business/english/word/index.vue +++ b/ruoyi-ui/src/views/business/english/word/index.vue @@ -284,7 +284,7 @@ import {getOneEnglishApi} from "@/api/business/openapi/oneenglish"; import {pickerOptions} from "@/layout/mixin/PickerOptions" export default { - name: "Word", + name: "EnglishWord", dicts: ['english_collect', 'english_top'], mixins: [pickerOptions], data() { diff --git a/ruoyi-ui/src/views/srb/integral/form.vue b/ruoyi-ui/src/views/srb/integral/form.vue index 240fdd86..af7e68c9 100644 --- a/ruoyi-ui/src/views/srb/integral/form.vue +++ b/ruoyi-ui/src/views/srb/integral/form.vue @@ -75,7 +75,7 @@ export default { } else { this.saveData(); } - + this.$router.push({path: '/srb/integral/integralList'}) }) }, @@ -92,7 +92,6 @@ export default { saveData() { save(this.formData).then(res => { this.$modal.notifySuccess("新增成功"); - this.$router.push({path: '/srb/integral/list'}) }) }, @@ -100,7 +99,6 @@ export default { updateData() { update(this.formData).then(res => { this.$modal.notifySuccess("修改成功"); - this.$router.push({path: '/srb/integral/list'}) }) }, diff --git a/ruoyi-ui/src/views/srb/integral/index.vue b/ruoyi-ui/src/views/srb/integral/index.vue index b86b4458..b1273423 100644 --- a/ruoyi-ui/src/views/srb/integral/index.vue +++ b/ruoyi-ui/src/views/srb/integral/index.vue @@ -87,8 +87,8 @@ export default { this.list = res.data this.$modal.closeLoading() }).catch(err => { + this.$modal.closeLoading() }) - loading.close(); }, //删除 diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/article/controller/EnglishArticleController.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/article/controller/EnglishArticleController.java index a56dbe86..a4e4873d 100644 --- a/xjs-business/xjs-business-english/src/main/java/com/xjs/article/controller/EnglishArticleController.java +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/article/controller/EnglishArticleController.java @@ -7,10 +7,13 @@ import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.xjs.article.domain.EnglishArticle; import com.xjs.article.service.impl.EnglishArticleServiceImpl; +import com.xjs.validation.group.AddGroup; +import com.xjs.validation.group.UpdateGroup; import com.xjs.web.MyBaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** @@ -38,13 +41,6 @@ public class EnglishArticleController extends MyBaseController { return AjaxResult.success(page); } - @GetMapping("/test") - public AjaxResult test(EnglishArticle englishArticle) { - - EnglishArticle translation = englishArticleService.translation(englishArticle); - return AjaxResult.success(translation); - - } @@ -67,7 +63,7 @@ public class EnglishArticleController extends MyBaseController { @Log(title = "英语文章", businessType = BusinessType.INSERT) @PostMapping @ApiOperation("新增英语文章") - public AjaxResult add(@RequestBody EnglishArticle englishArticle) { + public AjaxResult add(@Validated(AddGroup.class) @RequestBody EnglishArticle englishArticle) { return toAjax(englishArticleService.insertEnglishArticle(englishArticle)); } @@ -78,7 +74,7 @@ public class EnglishArticleController extends MyBaseController { @Log(title = "英语文章", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation("修改英语文章") - public AjaxResult edit(@RequestBody EnglishArticle englishArticle) { + public AjaxResult edit(@Validated(UpdateGroup.class)@RequestBody EnglishArticle englishArticle) { return toAjax(englishArticleService.updateEnglishArticle(englishArticle)); } diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/article/domain/EnglishArticle.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/article/domain/EnglishArticle.java index 80687d3e..aa2348f7 100644 --- a/xjs-business/xjs-business-english/src/main/java/com/xjs/article/domain/EnglishArticle.java +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/article/domain/EnglishArticle.java @@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.common.core.annotation.Excel; import com.xjs.entity.BaseEntity; +import com.xjs.validation.group.AddGroup; +import com.xjs.validation.group.UpdateGroup; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; import java.util.Date; /** @@ -29,6 +33,8 @@ public class EnglishArticle extends BaseEntity { /** 文章标题-中文 */ @Excel(name = "文章标题-中文") + @NotBlank(groups = {UpdateGroup.class, AddGroup.class},message = "文章标题不能为空") + @Size(max = 255, message = "请控制英语长度在255字符", groups = {UpdateGroup.class, AddGroup.class}) private String titleChinese; /** 文章内容 */ @@ -37,10 +43,13 @@ public class EnglishArticle extends BaseEntity { /** 文章内容-中文 */ @Excel(name = "文章内容-中文") + @NotBlank(groups = {UpdateGroup.class, AddGroup.class},message = "文章内容不能为空") + @Size(max = 2000, message = "请控制英语长度在2000字符", groups = {UpdateGroup.class, AddGroup.class}) private String contentChinese; /** 文章图片地址 */ @Excel(name = "文章图片地址") + @NotBlank(groups = {UpdateGroup.class, AddGroup.class},message = "文章封面地址不能为空") private String pictureUrl; /** 创建用户 */ diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/article/service/impl/EnglishArticleServiceImpl.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/article/service/impl/EnglishArticleServiceImpl.java index 72ac0584..d2693b4b 100644 --- a/xjs-business/xjs-business-english/src/main/java/com/xjs/article/service/impl/EnglishArticleServiceImpl.java +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/article/service/impl/EnglishArticleServiceImpl.java @@ -6,18 +6,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.constant.HttpStatus; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.api.RemoteFileService; import com.xjs.article.domain.EnglishArticle; import com.xjs.article.mapper.EnglishArticleMapper; import com.xjs.article.service.EnglishArticleService; import com.xjs.business.api.RemoteTranslationFeign; import com.xjs.business.api.domain.TranslationVo; +import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.Vector; +import java.util.*; /** * 英语文章service接口实现 @@ -26,11 +27,19 @@ import java.util.Vector; * @since 2022-03-03 */ @Service +@Log4j2 public class EnglishArticleServiceImpl extends ServiceImpl implements EnglishArticleService { + /** + * 管理员角色权限标识 + */ + private static final String SUPER_ADMIN = "admin"; + @Autowired private RemoteTranslationFeign remoteTranslationFeign; + @Autowired + private RemoteFileService remoteFileService; @Override @@ -42,7 +51,23 @@ public class EnglishArticleServiceImpl extends ServiceImpl selectEnglishArticleList(Page page, EnglishArticle englishArticle) { //封装查询条件 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - // todo 封装查询条件 + //获取当前登录用户 + String username = SecurityUtils.getUsername(); + //admin管理员可以查看所有文章、其他用户只能查看自己的文章 + if (!SUPER_ADMIN.equals(username)) { + wrapper.eq(EnglishArticle::getCreateUser, username); + } + wrapper.orderByDesc(EnglishArticle::getCreateTime); + + boolean b = Objects.nonNull(englishArticle.getCreateTime()) && Objects.nonNull(englishArticle.getEndCreateTime()); + + wrapper.between(b, EnglishArticle::getCreateTime, englishArticle.getCreateTime(), englishArticle.getEndCreateTime()); + + String condition = englishArticle.getCondition(); + + if (StringUtils.isNotEmpty(condition)) { + wrapper.like(EnglishArticle::getContentChinese, condition).or().like(EnglishArticle::getTitleChinese, condition); + } return super.page(page, wrapper); } @@ -50,19 +75,42 @@ public class EnglishArticleServiceImpl extends ServiceImpl threads = new Vector();