From e937894891b0aef613c01d621be7c03ab2a37ca8 Mon Sep 17 00:00:00 2001 From: qianlan <3220857484@qq.com> Date: Tue, 12 Oct 2021 19:54:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E7=AD=9B=E9=80=89=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E5=9F=BA=E6=9C=AC=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/common/utils/HttpRequestUtils.java | 48 +++ .../controller/HjcSelectionController.java | 111 ++++++ .../controller/PictureDisplayController.java | 132 ++++++++ .../com/ruoyi/demo/domain/HjcSelection.java | 42 +++ .../com/ruoyi/demo/domain/PictureDisplay.java | 47 +++ .../ruoyi/demo/domain/bo/HjcSelectionBo.java | 64 ++++ .../demo/domain/bo/PictureDisplayBo.java | 76 +++++ .../ruoyi/demo/domain/vo/HjcSelectionVo.java | 44 +++ .../demo/domain/vo/PictureDisplayVo.java | 51 +++ .../ruoyi/demo/domain/vo/PictureListVo.java | 26 ++ .../ruoyi/demo/mapper/HjcSelectionMapper.java | 16 + .../demo/mapper/PictureDisplayMapper.java | 16 + .../demo/service/IHjcSelectionService.java | 56 +++ .../demo/service/IPictureDisplayService.java | 77 +++++ .../service/impl/HjcSelectionServiceImpl.java | 85 +++++ .../impl/PictureDisplayServiceImpl.java | 141 ++++++++ .../mapper/demo/HjcSelectionMapper.xml | 14 + .../mapper/demo/PictureDisplayMapper.xml | 15 + ruoyi-ui/src/api/demo/picture.js | 71 ++++ ruoyi-ui/src/api/demo/selection.js | 53 +++ ruoyi-ui/src/assets/images/loading.gif | Bin 0 -> 9427 bytes ruoyi-ui/src/views/demo/data/index.vue | 176 ++++++++++ ruoyi-ui/src/views/demo/picture/index.vue | 320 ++++++++++++++++++ ruoyi-ui/src/views/demo/selection/index.vue | 288 ++++++++++++++++ ruoyi-ui/src/views/picture/index.vue | 175 ++++++++++ 25 files changed, 2144 insertions(+) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpRequestUtils.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/HjcSelectionController.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/PictureDisplayController.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/HjcSelection.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/PictureDisplay.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/HjcSelectionBo.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/PictureDisplayBo.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/HjcSelectionVo.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/PictureDisplayVo.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/PictureListVo.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/HjcSelectionMapper.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/PictureDisplayMapper.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/service/IHjcSelectionService.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/service/IPictureDisplayService.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/HjcSelectionServiceImpl.java create mode 100644 ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/PictureDisplayServiceImpl.java create mode 100644 ruoyi-demo/src/main/resources/mapper/demo/HjcSelectionMapper.xml create mode 100644 ruoyi-demo/src/main/resources/mapper/demo/PictureDisplayMapper.xml create mode 100644 ruoyi-ui/src/api/demo/picture.js create mode 100644 ruoyi-ui/src/api/demo/selection.js create mode 100644 ruoyi-ui/src/assets/images/loading.gif create mode 100644 ruoyi-ui/src/views/demo/data/index.vue create mode 100644 ruoyi-ui/src/views/demo/picture/index.vue create mode 100644 ruoyi-ui/src/views/demo/selection/index.vue create mode 100644 ruoyi-ui/src/views/picture/index.vue diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpRequestUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpRequestUtils.java new file mode 100644 index 000000000..d71abf28d --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpRequestUtils.java @@ -0,0 +1,48 @@ +package com.ruoyi.common.utils; + +import cn.hutool.core.util.RandomUtil; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONArray; +import lombok.extern.slf4j.Slf4j; +import com.alibaba.fastjson.JSONObject; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Slf4j +public class HttpRequestUtils { + public static List testHutoolGet(String url, String param) { + String getResult = HttpUtil + .createGet(url + param) + .execute() + .charset("utf-8") + .body(); + + JSONObject jsonObject = JSONObject.parseObject(getResult); + JSONObject data = jsonObject.getJSONObject("data"); + JSONArray avp = data.getJSONArray("avp"); + log.info("data" + data); + log.info("jsonarr" + avp); + List list = new ArrayList<>(); + for (int i = 0; i < avp.size(); i++) { + JSONArray subArr = avp.getJSONArray(i); + list.add(subArr.toArray()); + } + //Object[] array = avp.stream().toArray(); + //List list = avp.stream().collect(Collectors.toList()); + return list; + } + + public static void main(String[] args) { + + List list = testHutoolGet("https://api.ownthink.com/kg/knowledge?entity=", "周杰伦"); + for (Object[] objects : list) { + for (Object object : objects) { + System.out.println(object); + } + } + + } + +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/HjcSelectionController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/HjcSelectionController.java new file mode 100644 index 000000000..2ddc0d018 --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/HjcSelectionController.java @@ -0,0 +1,111 @@ +package com.ruoyi.demo.controller; + +import java.util.List; +import java.util.Arrays; + +import lombok.RequiredArgsConstructor; +import javax.validation.constraints.*; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.demo.domain.vo.HjcSelectionVo; +import com.ruoyi.demo.domain.bo.HjcSelectionBo; +import com.ruoyi.demo.service.IHjcSelectionService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +/** + * 图片选择参数Controller + * + * @author qianlan + * @date 2021-10-12 + */ +@Validated +@Api(value = "图片选择参数控制器", tags = {"图片选择参数管理"}) +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/demo/selection") +public class HjcSelectionController extends BaseController { + + private final IHjcSelectionService iHjcSelectionService; + + /** + * 查询图片选择参数列表 + */ + @ApiOperation("查询图片选择参数列表") + @PreAuthorize("@ss.hasPermi('demo:selection:list')") + @GetMapping("/list") + public TableDataInfo list(@Validated HjcSelectionBo bo) { + return iHjcSelectionService.queryPageList(bo); + } + + /** + * 导出图片选择参数列表 + */ + @ApiOperation("导出图片选择参数列表") + @PreAuthorize("@ss.hasPermi('demo:selection:export')") + @Log(title = "图片选择参数", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(@Validated HjcSelectionBo bo) { + List list = iHjcSelectionService.queryList(bo); + ExcelUtil util = new ExcelUtil(HjcSelectionVo.class); + return util.exportExcel(list, "图片选择参数"); + } + + /** + * 获取图片选择参数详细信息 + */ + @ApiOperation("获取图片选择参数详细信息") + @PreAuthorize("@ss.hasPermi('demo:selection:query')") + @GetMapping("/{sid}") + public AjaxResult getInfo(@NotNull(message = "主键不能为空") + @PathVariable("sid") Long sid) { + return AjaxResult.success(iHjcSelectionService.queryById(sid)); + } + + /** + * 新增图片选择参数 + */ + @ApiOperation("新增图片选择参数") + @PreAuthorize("@ss.hasPermi('demo:selection:add')") + @Log(title = "图片选择参数", businessType = BusinessType.INSERT) + @RepeatSubmit + @PostMapping() + public AjaxResult add(@Validated(AddGroup.class) @RequestBody HjcSelectionBo bo) { + return toAjax(iHjcSelectionService.insertByBo(bo) ? 1 : 0); + } + + /** + * 修改图片选择参数 + */ + @ApiOperation("修改图片选择参数") + @PreAuthorize("@ss.hasPermi('demo:selection:edit')") + @Log(title = "图片选择参数", businessType = BusinessType.UPDATE) + @RepeatSubmit + @PutMapping() + public AjaxResult edit(@Validated(EditGroup.class) @RequestBody HjcSelectionBo bo) { + return toAjax(iHjcSelectionService.updateByBo(bo) ? 1 : 0); + } + + /** + * 删除图片选择参数 + */ + @ApiOperation("删除图片选择参数") + @PreAuthorize("@ss.hasPermi('demo:selection:remove')") + @Log(title = "图片选择参数" , businessType = BusinessType.DELETE) + @DeleteMapping("/{sids}") + public AjaxResult remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] sids) { + return toAjax(iHjcSelectionService.deleteWithValidByIds(Arrays.asList(sids), true) ? 1 : 0); + } +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/PictureDisplayController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/PictureDisplayController.java new file mode 100644 index 000000000..18deb4d9c --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/PictureDisplayController.java @@ -0,0 +1,132 @@ +package com.ruoyi.demo.controller; + +import java.util.List; +import java.util.Arrays; + +import com.ruoyi.demo.domain.vo.PictureListVo; +import lombok.RequiredArgsConstructor; +import javax.validation.constraints.*; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.demo.domain.vo.PictureDisplayVo; +import com.ruoyi.demo.domain.bo.PictureDisplayBo; +import com.ruoyi.demo.service.IPictureDisplayService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +/** + * 图片展示Controller + * + * @author qianlan + * @date 2021-10-10 + */ +@Validated +@Api(value = "图片展示控制器", tags = {"图片展示管理"}) +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/demo/picture") +public class PictureDisplayController extends BaseController { + + private final IPictureDisplayService iPictureDisplayService; + + /** + * 查询没有被选中的图片,一次显示十条 + * @return + */ + @ApiOperation("查询没有被选中的图片,一次显示十条") + @GetMapping("/picList") + public List pictureList(){ + return iPictureDisplayService.queryListWithCondition(); + } + + /** + * 提交要修改的图片选项 + * @return + */ + @ApiOperation("提交要修改的图片选项") + @PostMapping("/commitPic") + public AjaxResult commitPic(@RequestBody List lists){ + return iPictureDisplayService.commitPic(lists); + } + + /** + * 查询图片展示列表 + */ + @ApiOperation("查询图片展示列表") + @PreAuthorize("@ss.hasPermi('demo:picture:list')") + @GetMapping("/list") + public TableDataInfo list(@Validated PictureDisplayBo bo) { + return iPictureDisplayService.queryPageList(bo); + } + + /** + * 导出图片展示列表 + */ + @ApiOperation("导出图片展示列表") + @PreAuthorize("@ss.hasPermi('demo:picture:export')") + @Log(title = "图片展示", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(@Validated PictureDisplayBo bo) { + List list = iPictureDisplayService.queryList(bo); + ExcelUtil util = new ExcelUtil(PictureDisplayVo.class); + return util.exportExcel(list, "图片展示"); + } + + /** + * 获取图片展示详细信息 + */ + @ApiOperation("获取图片展示详细信息") + @PreAuthorize("@ss.hasPermi('demo:picture:query')") + @GetMapping("/{picId}") + public AjaxResult getInfo(@NotNull(message = "主键不能为空") + @PathVariable("picId") Long picId) { + return AjaxResult.success(iPictureDisplayService.queryById(picId)); + } + + /** + * 新增图片展示 + */ + @ApiOperation("新增图片展示") + @PreAuthorize("@ss.hasPermi('demo:picture:add')") + @Log(title = "图片展示", businessType = BusinessType.INSERT) + @RepeatSubmit + @PostMapping() + public AjaxResult add(@Validated(AddGroup.class) @RequestBody PictureDisplayBo bo) { + return toAjax(iPictureDisplayService.insertByBo(bo) ? 1 : 0); + } + + /** + * 修改图片展示 + */ + @ApiOperation("修改图片展示") + @PreAuthorize("@ss.hasPermi('demo:picture:edit')") + @Log(title = "图片展示", businessType = BusinessType.UPDATE) + @RepeatSubmit + @PutMapping() + public AjaxResult edit(@Validated(EditGroup.class) @RequestBody PictureDisplayBo bo) { + return toAjax(iPictureDisplayService.updateByBo(bo) ? 1 : 0); + } + + /** + * 删除图片展示 + */ + @ApiOperation("删除图片展示") + @PreAuthorize("@ss.hasPermi('demo:picture:remove')") + @Log(title = "图片展示" , businessType = BusinessType.DELETE) + @DeleteMapping("/{picIds}") + public AjaxResult remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] picIds) { + return toAjax(iPictureDisplayService.deleteWithValidByIds(Arrays.asList(picIds), true) ? 1 : 0); + } +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/HjcSelection.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/HjcSelection.java new file mode 100644 index 000000000..78c9ec616 --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/HjcSelection.java @@ -0,0 +1,42 @@ +package com.ruoyi.demo.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +/** + * 图片选择参数对象 hjc_selection + * + * @author qianlan + * @date 2021-10-12 + */ +@Data +@NoArgsConstructor +@Accessors(chain = true) +@TableName("hjc_selection") +public class HjcSelection implements Serializable { + + private static final long serialVersionUID=1L; + + + /** + * 主键 + */ + @TableId(value = "sid") + private Long sid; + + /** + * hjc_pic表的主键 + */ + private Long pid; + + /** + * 选择 + */ + private Integer selection; + +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/PictureDisplay.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/PictureDisplay.java new file mode 100644 index 000000000..e5fcf0cec --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/PictureDisplay.java @@ -0,0 +1,47 @@ +package com.ruoyi.demo.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +/** + * 图片展示对象 hjc_pic + * + * @author qianlan + * @date 2021-10-10 + */ +@Data +@NoArgsConstructor +@Accessors(chain = true) +@TableName("hjc_pic") +public class PictureDisplay implements Serializable { + + private static final long serialVersionUID=1L; + + + /** + * 主键 + */ + @TableId(value = "pic_id") + private Long picId; + + /** + * url地址 + */ + private String picUrl; + + /** + * 图片选择 + */ + private Integer picSelection; + + /** + * 是否被选 + */ + private Integer picBool; + +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/HjcSelectionBo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/HjcSelectionBo.java new file mode 100644 index 000000000..a8bcc22df --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/HjcSelectionBo.java @@ -0,0 +1,64 @@ +package com.ruoyi.demo.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 图片选择参数业务对象 hjc_selection + * + * @author qianlan + * @date 2021-10-12 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel("图片选择参数业务对象") +public class HjcSelectionBo extends BaseEntity { + + /** + * hjc_pic表的主键 + */ + @ApiModelProperty("hjc_pic表的主键") + private Long pid; + + /** + * 选择 + */ + @ApiModelProperty("选择") + private Integer selection; + + + /** + * 分页大小 + */ + @ApiModelProperty("分页大小") + private Integer pageSize; + + /** + * 当前页数 + */ + @ApiModelProperty("当前页数") + private Integer pageNum; + + /** + * 排序列 + */ + @ApiModelProperty("排序列") + private String orderByColumn; + + /** + * 排序的方向desc或者asc + */ + @ApiModelProperty(value = "排序的方向", example = "asc,desc") + private String isAsc; + +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/PictureDisplayBo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/PictureDisplayBo.java new file mode 100644 index 000000000..933be63c4 --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/PictureDisplayBo.java @@ -0,0 +1,76 @@ +package com.ruoyi.demo.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 图片展示业务对象 hjc_pic + * + * @author qianlan + * @date 2021-10-10 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel("图片展示业务对象") +public class PictureDisplayBo extends BaseEntity { + + /** + * 主键 + */ + @ApiModelProperty("主键") + private Long picId; + + /** + * url地址 + */ + @ApiModelProperty("url地址") + private String picUrl; + + /** + * 图片选择 + */ + @ApiModelProperty("图片选择") + private Long picSelection; + + /** + * 是否被选 + */ + @ApiModelProperty("是否被选") + private Long picBool; + + + /** + * 分页大小 + */ + @ApiModelProperty("分页大小") + private Integer pageSize; + + /** + * 当前页数 + */ + @ApiModelProperty("当前页数") + private Integer pageNum; + + /** + * 排序列 + */ + @ApiModelProperty("排序列") + private String orderByColumn; + + /** + * 排序的方向desc或者asc + */ + @ApiModelProperty(value = "排序的方向", example = "asc,desc") + private String isAsc; + +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/HjcSelectionVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/HjcSelectionVo.java new file mode 100644 index 000000000..ab61ab379 --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/HjcSelectionVo.java @@ -0,0 +1,44 @@ +package com.ruoyi.demo.domain.vo; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + + + +/** + * 图片选择参数视图对象 hjc_selection + * + * @author qianlan + * @date 2021-10-12 + */ +@Data +@ApiModel("图片选择参数视图对象") +public class HjcSelectionVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + private Long sid; + + /** + * hjc_pic表的主键 + */ + @Excel(name = "hjc_pic表的主键") + @ApiModelProperty("hjc_pic表的主键") + private Long pid; + + /** + * 选择 + */ + @Excel(name = "选择") + @ApiModelProperty("选择") + private Integer selection; + + +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/PictureDisplayVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/PictureDisplayVo.java new file mode 100644 index 000000000..8db23c798 --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/PictureDisplayVo.java @@ -0,0 +1,51 @@ +package com.ruoyi.demo.domain.vo; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + + + +/** + * 图片展示视图对象 hjc_pic + * + * @author qianlan + * @date 2021-10-10 + */ +@Data +@ApiModel("图片展示视图对象") +public class PictureDisplayVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + private Long picId; + + /** + * url地址 + */ + @Excel(name = "url地址") + @ApiModelProperty("url地址") + private String picUrl; + + /** + * 图片选择 + */ + @Excel(name = "图片选择") + @ApiModelProperty("图片选择") + private Integer picSelection; + + /** + * 是否被选 + */ + @Excel(name = "是否被选") + @ApiModelProperty("是否被选") + private Integer picBool; + + +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/PictureListVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/PictureListVo.java new file mode 100644 index 000000000..35da9e6c2 --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/PictureListVo.java @@ -0,0 +1,26 @@ +package com.ruoyi.demo.domain.vo; + +import lombok.Data; + +/** + * @author qianlan + * @version 1.0 + * @date 2021/10/11 19:16 + */ +@Data +public class PictureListVo { + /** + * 主键 + */ + private Long picId; + + /** + * url地址 + */ + private String picUrl; + + /** + * 图片选择 + */ + private Long picSelection; +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/HjcSelectionMapper.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/HjcSelectionMapper.java new file mode 100644 index 000000000..b0bea2d80 --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/HjcSelectionMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.demo.mapper; + +import com.ruoyi.demo.domain.HjcSelection; +import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus; +import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache; +import org.apache.ibatis.annotations.CacheNamespace; + +/** + * 图片选择参数Mapper接口 + * + * @author qianlan + * @date 2021-10-12 + */ +public interface HjcSelectionMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/PictureDisplayMapper.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/PictureDisplayMapper.java new file mode 100644 index 000000000..7826713b0 --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/PictureDisplayMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.demo.mapper; + +import com.ruoyi.demo.domain.PictureDisplay; +import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus; +import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache; +import org.apache.ibatis.annotations.CacheNamespace; + +/** + * 图片展示Mapper接口 + * + * @author qianlan + * @date 2021-10-10 + */ +public interface PictureDisplayMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/IHjcSelectionService.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/IHjcSelectionService.java new file mode 100644 index 000000000..aafe51b98 --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/IHjcSelectionService.java @@ -0,0 +1,56 @@ +package com.ruoyi.demo.service; + +import com.ruoyi.demo.domain.HjcSelection; +import com.ruoyi.demo.domain.vo.HjcSelectionVo; +import com.ruoyi.demo.domain.bo.HjcSelectionBo; +import com.ruoyi.common.core.mybatisplus.core.IServicePlus; +import com.ruoyi.common.core.page.TableDataInfo; + +import java.util.Collection; +import java.util.List; + +/** + * 图片选择参数Service接口 + * + * @author qianlan + * @date 2021-10-12 + */ +public interface IHjcSelectionService extends IServicePlus { + /** + * 查询单个 + * @return + */ + HjcSelectionVo queryById(Long sid); + + /** + * 查询列表 + */ + TableDataInfo queryPageList(HjcSelectionBo bo); + + /** + * 查询列表 + */ + List queryList(HjcSelectionBo bo); + + /** + * 根据新增业务对象插入图片选择参数 + * @param bo 图片选择参数新增业务对象 + * @return + */ + Boolean insertByBo(HjcSelectionBo bo); + + /** + * 根据编辑业务对象修改图片选择参数 + * @param bo 图片选择参数编辑业务对象 + * @return + */ + Boolean updateByBo(HjcSelectionBo bo); + + /** + * 校验并删除数据 + * @param ids 主键集合 + * @param isValid 是否校验,true-删除前校验,false-不校验 + * @return + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/IPictureDisplayService.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/IPictureDisplayService.java new file mode 100644 index 000000000..a1af4345a --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/IPictureDisplayService.java @@ -0,0 +1,77 @@ +package com.ruoyi.demo.service; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.demo.domain.PictureDisplay; +import com.ruoyi.demo.domain.vo.PictureDisplayVo; +import com.ruoyi.demo.domain.bo.PictureDisplayBo; +import com.ruoyi.common.core.mybatisplus.core.IServicePlus; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.demo.domain.vo.PictureListVo; + +import java.util.Collection; +import java.util.List; + +/** + * 图片展示Service接口 + * + * @author qianlan + * @date 2021-10-10 + */ +public interface IPictureDisplayService extends IServicePlus { + /** + * 查询单个 + * + * @return + */ + PictureDisplayVo queryById(Long picId); + + /** + * 查询列表 + */ + TableDataInfo queryPageList(PictureDisplayBo bo); + + /** + * 查询列表 + */ + List queryList(PictureDisplayBo bo); + + /** + * 根据新增业务对象插入图片展示 + * + * @param bo 图片展示新增业务对象 + * @return + */ + Boolean insertByBo(PictureDisplayBo bo); + + /** + * 根据编辑业务对象修改图片展示 + * + * @param bo 图片展示编辑业务对象 + * @return + */ + Boolean updateByBo(PictureDisplayBo bo); + + /** + * 校验并删除数据 + * + * @param ids 主键集合 + * @param isValid 是否校验,true-删除前校验,false-不校验 + * @return + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 获取图片,每十个为一组 + * + * @return + */ + List queryListWithCondition(); + + + /** + * 提交要修改的图片选项 + * @return + */ + AjaxResult commitPic(List lists); + +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/HjcSelectionServiceImpl.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/HjcSelectionServiceImpl.java new file mode 100644 index 000000000..017751cfe --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/HjcSelectionServiceImpl.java @@ -0,0 +1,85 @@ +package com.ruoyi.demo.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.common.core.page.PagePlus; +import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.stereotype.Service; +import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.demo.domain.bo.HjcSelectionBo; +import com.ruoyi.demo.domain.vo.HjcSelectionVo; +import com.ruoyi.demo.domain.HjcSelection; +import com.ruoyi.demo.mapper.HjcSelectionMapper; +import com.ruoyi.demo.service.IHjcSelectionService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 图片选择参数Service业务层处理 + * + * @author qianlan + * @date 2021-10-12 + */ +@Service +public class HjcSelectionServiceImpl extends ServicePlusImpl implements IHjcSelectionService { + + @Override + public HjcSelectionVo queryById(Long sid){ + return getVoById(sid); + } + + @Override + public TableDataInfo queryPageList(HjcSelectionBo bo) { + PagePlus result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo)); + return PageUtils.buildDataInfo(result); + } + + @Override + public List queryList(HjcSelectionBo bo) { + return listVo(buildQueryWrapper(bo)); + } + + private LambdaQueryWrapper buildQueryWrapper(HjcSelectionBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getPid() != null, HjcSelection::getPid, bo.getPid()); + lqw.eq(bo.getSelection() != null, HjcSelection::getSelection, bo.getSelection()); + return lqw; + } + + @Override + public Boolean insertByBo(HjcSelectionBo bo) { + HjcSelection add = BeanUtil.toBean(bo, HjcSelection.class); + validEntityBeforeSave(add); + return save(add); + } + + @Override + public Boolean updateByBo(HjcSelectionBo bo) { + HjcSelection update = BeanUtil.toBean(bo, HjcSelection.class); + validEntityBeforeSave(update); + return updateById(update); + } + + /** + * 保存前的数据校验 + * + * @param entity 实体类数据 + */ + private void validEntityBeforeSave(HjcSelection entity){ + //TODO 做一些数据校验,如唯一约束 + } + + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return removeByIds(ids); + } +} diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/PictureDisplayServiceImpl.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/PictureDisplayServiceImpl.java new file mode 100644 index 000000000..bd992f743 --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/PictureDisplayServiceImpl.java @@ -0,0 +1,141 @@ +package com.ruoyi.demo.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.common.core.page.PagePlus; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.demo.domain.HjcSelection; +import com.ruoyi.demo.domain.vo.PictureListVo; +import com.ruoyi.demo.service.IHjcSelectionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.demo.domain.bo.PictureDisplayBo; +import com.ruoyi.demo.domain.vo.PictureDisplayVo; +import com.ruoyi.demo.domain.PictureDisplay; +import com.ruoyi.demo.mapper.PictureDisplayMapper; +import com.ruoyi.demo.service.IPictureDisplayService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 图片展示Service业务层处理 + * + * @author qianlan + * @date 2021-10-10 + */ +@Service +@Transactional +public class PictureDisplayServiceImpl extends ServicePlusImpl implements IPictureDisplayService { + + + @Autowired + private IPictureDisplayService pictureDisplayService; + + @Autowired + private IHjcSelectionService selectionService; + + @Override + public PictureDisplayVo queryById(Long picId) { + return getVoById(picId); + } + + @Override + public TableDataInfo queryPageList(PictureDisplayBo bo) { + PagePlus result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo)); + return PageUtils.buildDataInfo(result); + } + + @Override + public List queryList(PictureDisplayBo bo) { + return listVo(buildQueryWrapper(bo)); + } + + private LambdaQueryWrapper buildQueryWrapper(PictureDisplayBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getPicId() != null, PictureDisplay::getPicId, bo.getPicId()); + lqw.eq(StrUtil.isNotBlank(bo.getPicUrl()), PictureDisplay::getPicUrl, bo.getPicUrl()); + lqw.eq(bo.getPicSelection() != null, PictureDisplay::getPicSelection, bo.getPicSelection()); + lqw.eq(bo.getPicBool() != null, PictureDisplay::getPicBool, bo.getPicBool()); + return lqw; + } + + @Override + public Boolean insertByBo(PictureDisplayBo bo) { + PictureDisplay add = BeanUtil.toBean(bo, PictureDisplay.class); + validEntityBeforeSave(add); + return save(add); + } + + @Override + public Boolean updateByBo(PictureDisplayBo bo) { + PictureDisplay update = BeanUtil.toBean(bo, PictureDisplay.class); + validEntityBeforeSave(update); + return updateById(update); + } + + /** + * 保存前的数据校验 + * + * @param entity 实体类数据 + */ + private void validEntityBeforeSave(PictureDisplay entity) { + //TODO 做一些数据校验,如唯一约束 + } + + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return removeByIds(ids); + } + + @Override + public List queryListWithCondition() { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.last(" ORDER BY RAND() LIMIT 20"); + List pictureDisplays = baseMapper.selectList(wrapper); + List lists = pictureDisplays.stream().map((list) -> { + PictureListVo listVo = new PictureListVo(); + BeanUtil.copyProperties(list, listVo); + return listVo; + }).collect(Collectors.toList()); + return lists; + } + + @Override + public AjaxResult commitPic(List lists) { + int len = lists.size(); + HashSet ids = new HashSet<>(); + for (int i = len - 1; i >= 0; i--) { + Long picId = lists.get(i).getPicId(); + int selection = lists.get(i).getPicSelection(); + if (!ids.contains(picId)) { + + PictureDisplay pictureDisplay = new PictureDisplay(); + Integer picBool = pictureDisplayService.getOne(new QueryWrapper().eq("pic_id", picId)).getPicBool(); + pictureDisplay.setPicId(picId); + pictureDisplay.setPicBool(picBool + 1); + pictureDisplayService.updateById(pictureDisplay); + + HjcSelection hjcSelection = new HjcSelection(); + hjcSelection.setPid(picId); + hjcSelection.setSelection(selection); + selectionService.save(hjcSelection); + + } + ids.add(picId); + } + return AjaxResult.success(); + } + +} diff --git a/ruoyi-demo/src/main/resources/mapper/demo/HjcSelectionMapper.xml b/ruoyi-demo/src/main/resources/mapper/demo/HjcSelectionMapper.xml new file mode 100644 index 000000000..1759a1e7e --- /dev/null +++ b/ruoyi-demo/src/main/resources/mapper/demo/HjcSelectionMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-demo/src/main/resources/mapper/demo/PictureDisplayMapper.xml b/ruoyi-demo/src/main/resources/mapper/demo/PictureDisplayMapper.xml new file mode 100644 index 000000000..e4a608771 --- /dev/null +++ b/ruoyi-demo/src/main/resources/mapper/demo/PictureDisplayMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-ui/src/api/demo/picture.js b/ruoyi-ui/src/api/demo/picture.js new file mode 100644 index 000000000..9e207281b --- /dev/null +++ b/ruoyi-ui/src/api/demo/picture.js @@ -0,0 +1,71 @@ +import request from '@/utils/request' + +// 查询图片展示列表 +export function listPicture(query) { + return request({ + url: '/demo/picture/list', + method: 'get', + params: query + }) +} + +// 查询没有被选中的图片,一次显示十条 +export function listPictureWithCondition(query) { + return request({ + url: '/demo/picture/picList', + method: 'get', + params: query + }) +} + +// 提交到后端 +export function commitPic(data) { + return request({ + url: '/demo/picture/commitPic', + method: 'post', + data: data + }) +} + +// 查询图片展示详细 +export function getPicture(picId) { + return request({ + url: '/demo/picture/' + picId, + method: 'get' + }) +} + +// 新增图片展示 +export function addPicture(data) { + return request({ + url: '/demo/picture', + method: 'post', + data: data + }) +} + +// 修改图片展示 +export function updatePicture(data) { + return request({ + url: '/demo/picture', + method: 'put', + data: data + }) +} + +// 删除图片展示 +export function delPicture(picId) { + return request({ + url: '/demo/picture/' + picId, + method: 'delete' + }) +} + +// 导出图片展示 +export function exportPicture(query) { + return request({ + url: '/demo/picture/export', + method: 'get', + params: query + }) +} diff --git a/ruoyi-ui/src/api/demo/selection.js b/ruoyi-ui/src/api/demo/selection.js new file mode 100644 index 000000000..3e51188fa --- /dev/null +++ b/ruoyi-ui/src/api/demo/selection.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询图片选择参数列表 +export function listSelection(query) { + return request({ + url: '/demo/selection/list', + method: 'get', + params: query + }) +} + +// 查询图片选择参数详细 +export function getSelection(sid) { + return request({ + url: '/demo/selection/' + sid, + method: 'get' + }) +} + +// 新增图片选择参数 +export function addSelection(data) { + return request({ + url: '/demo/selection', + method: 'post', + data: data + }) +} + +// 修改图片选择参数 +export function updateSelection(data) { + return request({ + url: '/demo/selection', + method: 'put', + data: data + }) +} + +// 删除图片选择参数 +export function delSelection(sid) { + return request({ + url: '/demo/selection/' + sid, + method: 'delete' + }) +} + +// 导出图片选择参数 +export function exportSelection(query) { + return request({ + url: '/demo/selection/export', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/ruoyi-ui/src/assets/images/loading.gif b/ruoyi-ui/src/assets/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..e2a116c7280b4d9786ddb960fff4439a542866ec GIT binary patch literal 9427 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 OhM#~I&wK(i`}3bHw&zm- literal 0 HcmV?d00001 diff --git a/ruoyi-ui/src/views/demo/data/index.vue b/ruoyi-ui/src/views/demo/data/index.vue new file mode 100644 index 000000000..b8a3b49e2 --- /dev/null +++ b/ruoyi-ui/src/views/demo/data/index.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/ruoyi-ui/src/views/demo/picture/index.vue b/ruoyi-ui/src/views/demo/picture/index.vue new file mode 100644 index 000000000..f9b53b022 --- /dev/null +++ b/ruoyi-ui/src/views/demo/picture/index.vue @@ -0,0 +1,320 @@ + + + diff --git a/ruoyi-ui/src/views/demo/selection/index.vue b/ruoyi-ui/src/views/demo/selection/index.vue new file mode 100644 index 000000000..2d74ec7a5 --- /dev/null +++ b/ruoyi-ui/src/views/demo/selection/index.vue @@ -0,0 +1,288 @@ + + + diff --git a/ruoyi-ui/src/views/picture/index.vue b/ruoyi-ui/src/views/picture/index.vue new file mode 100644 index 000000000..cdd4bdc4e --- /dev/null +++ b/ruoyi-ui/src/views/picture/index.vue @@ -0,0 +1,175 @@ + + + + + + +