当前位置: 首页 > wzjs >正文

自己设计服装的app免费seo软件全套

自己设计服装的app免费,seo软件全套,重庆的网络公司,腾讯企业邮箱注册申请接着我们讲图片管理,先实现图片基础的增删改查,再去考虑图像处理。 主要是,我们需要完成查询时,查询的图片的上传者的角色等级小于等于我们当前登陆账号。 后端controller: package com.llpp.controller;import cn.…

接着我们讲图片管理,先实现图片基础的增删改查,再去考虑图像处理。

主要是,我们需要完成查询时,查询的图片的上传者的角色等级小于等于我们当前登陆账号。

后端controller:

package com.llpp.controller;import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.llpp.entity.Image;
import com.llpp.entity.User;
import com.llpp.service.impl.ImageServiceImpl;
import com.llpp.service.impl.RedisService;
import com.llpp.tool.PrimaryKey;
import com.llpp.tool.Result;
import com.llpp.vo.ImageVO;
import lombok.RequiredArgsConstructor;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import java.util.Objects;
import java.util.Optional;/*** @Author 21326* @Date 2025 2025/2/25 22:23*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/image")
public class ImageController {private final RedisService redisService;private final ImageServiceImpl imageService;@GetMapping("/getPage")public Result getPage(Page<ImageVO> page, ImageVO image, HttpServletRequest request) {String token = request.getHeader("authorization");token = token.substring(token.indexOf(" ") + 1);String user = redisService.getValueOrDefault(token, "").toString();image.setRoleId(JSONUtil.toBean(user, User.class).getRoleId());return Result.data(imageService.getPage(page, image));}@PostMapping("/rowSave")public Result rowSave(@RequestBody Image image, HttpServletRequest request) {return Optional.ofNullable(image).filter(i -> !StringUtils.isEmpty(i.getUrl())).filter(i -> !StringUtils.isEmpty(i.getName())).map(i -> {String token = request.getHeader("authorization");token = token.substring(token.indexOf(" ") + 1);String user = redisService.getValueOrDefault(token, "").toString();User info = JSONUtil.toBean(user, User.class);i.setStatus(0);i.setUserId(info.getId());i.setId(new PrimaryKey().nextId());i.setCreateTime(LocalDateTime.now());return Result.status(imageService.save(i));}).orElse(Result.fail("参数异常"));}@PostMapping("/rowEdit")public Result rowEdit(@RequestBody Image image) {return Optional.ofNullable(image).filter(i -> Objects.nonNull(i.getId())).map(i -> Result.status(imageService.updateById(i))).orElse(Result.fail("参数异常"));}@PostMapping("/rowDel")public Result rowDel(@RequestBody Image image) {return Optional.ofNullable(image).filter(i -> Objects.nonNull(i.getId())).map(i -> Result.status(imageService.removeById(i.getId()))).orElse(Result.fail("参数异常"));}
}

service:

@Service
public class ImageServiceImpl extends ServiceImpl<ImageMapper, Image> implements IImageService {@Overridepublic IPage<ImageVO> getPage(IPage<ImageVO> page, ImageVO image) {return baseMapper.getPage(page, image);}
}

mapper:

package com.llpp.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.llpp.entity.Image;
import com.llpp.vo.ImageVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;/*** @Author 21326* @Date 2025 2025/1/31 20:44*/
@Mapper
public interface ImageMapper extends BaseMapper<Image> {IPage<ImageVO> getPage(IPage<ImageVO> page, @Param("image") ImageVO imageVO);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.llpp.mapper.ImageMapper"><select id="getPage" resultType="com.llpp.vo.ImageVO">SELECT i.id,i.deleted,i.status,i.remark,i.name,i.url,i.result,i.create_time,u.username,r.name AS role_nameFROM image iLEFT JOIN user u ON i.user_id = u.idLEFT JOIN role r ON u.role_id = r.idWHERE i.deleted=0AND u.deleted=0AND r.deleted=0AND u.role_id &gt;= #{image.roleId}AND r.id &gt;= #{image.roleId}<if test="image.id != null">AND i.id = #{image.id}</if><if test="image.status != null">AND i.status = #{image.status}</if><if test="image.startTime != null">AND i.create_time &gt;= #{image.startTime}</if><if test="image.endTime != null">AND i.create_time &lt;= #{image.endTime}</if><if test="image.name != null and image.name !=''">AND i.name LIKE CONCAT('%',#{image.name},'%')</if><if test="image.remark != null and image.remark !=''">AND i.remark LIKE CONCAT('%',#{image.remark},'%')</if><if test="image.username != null and image.username !=''">AND u.username LIKE CONCAT('%',#{image.username},'%')</if><if test="image.roleName != null and image.roleName !=''">AND r.name LIKE CONCAT('%',#{image.roleName},'%')</if></select>
</mapper>

image.js:

import request from '@/router/axios';
import {baseUrl} from '@/config/env';export const getPage = (current, size, params) => {return request({url: baseUrl + '/image/getPage',method: 'get',params: {current,size,...params}})
}export const rowSave = (form) => {return request({url: baseUrl + '/image/rowSave',method: 'post',data: form})
}export const rowEdit = (row) => {return request({url: baseUrl + '/image/rowEdit',method: 'post',data: row})
}export const rowDel = (row) => {return request({url: baseUrl + '/image/rowDel',method: 'post',data: row})
}

image.vue:

<template><basic-container><avue-crud :option="option":search="search":page="page"v-model="form":table-loading="loading":data="tableData"ref="crud"@row-update="rowUpdate"@row-save="rowSave"@row-del="rowDel"@search-change="searchChange"@search-reset="searchReset"@current-change="currentChange"@size-change="sizeChange"@refresh-change="refreshChange"@on-load="onLoad"></avue-crud></basic-container>
</template><script>
import {getPage, rowDel, rowEdit, rowSave} from "@/api/image/image";export default {name: "image",data() {return {option: {height: 'auto',stripe: true,tip: false,searchShow: true,searchMenuSpan: 6,border: true,index: false,viewBtn: true,addBtn: true,delBtn: true,editBtn: true,column: [{label: '图片编号',prop: 'id',search: true,width: 120,span: 24,addDisplay: false,editDisplay: false,viewDisplay: true,},{label: '图片名称',prop: 'name',search: true,span: 24,rules: [{required: true, message: '请输入图片名称', trigger: 'blur'}]},{label: '上传用户',prop: 'username',search: true,span: 24,addDisplay: false,editDisplay: false,viewDisplay: true,},{label: '上传时间',prop: 'createTime',type: 'datetime',format: 'yyyy-MM-dd HH:mm:ss',valueFormat: 'yyyy-MM-dd HH:mm:ss',search: true,searchRange: true,span: 24,addDisplay: false,editDisplay: false,viewDisplay: true,startPlaceholder: '时间日期开始范围自定义',endPlaceholder: '时间日期结束范围自定义',},{label: '用户角色',prop: 'roleName',search: true,width: 70,span: 24,addDisplay: false,editDisplay: false,viewDisplay: true,}, {label: '状态',prop: 'status',type: 'select',search: true,width: 70,span: 24,addDisplay: false,editDisplay: false,viewDisplay: true,props: {label: 'label',value: 'value'},dicData: [{label: '已处理', value: 1},{label: '未处理', value: 0}],},{label: '备注',prop: 'remark',search: true,span: 24,},{label: '图片详情',prop: 'url',type: 'upload',width: 100,span: 24,listType: 'picture-img',fileSize: 3584,dataType: 'string',action: '/api/file/upload',propsHttp: {res: 'data',url: 'url',},},{label: '处理结果',prop: 'result',type: 'upload',width: 100,span: 24,addDisplay: false,editDisplay: false,viewDisplay: true,listType: 'picture-img',fileSize: 3584,dataType: 'string',action: '/api/file/upload',propsHttp: {res: 'data',url: 'url',},},]},form: {},search: {},page: {total: 0,currentPage: 1,pageSize: 10,pageSizes: [5, 10, 15, 20, 50, 100, 150, 200]},query: {},loading: false,tableData: []}},created() {this.onLoad();},methods: {onLoad(page, params = {}) {this.loading = true;if (this.query.createTime != undefined && this.query.createTime != null && this.query.createTime.length > 0) {this.query.startTime = this.query.createTime[0];this.query.endTime = this.query.createTime[1]this.query.createTime = null;}getPage(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => {const data = res.data.data;this.page.total = data.total;this.tableData = data.records;this.loading = false;})},rowSave(form, done, loading) {rowSave(form).then(res => {if (res.data.code == 200) {this.$message.success(res.data.msg);done();} else {this.$message.error(res.data.msg);loading();}}).then(() => {this.onLoad();}).catch(err => {loading();})},rowUpdate(row, index, done, loading) {rowEdit(row).then(res => {if (res.data.code == 200) {this.$message.success(res.data.msg);done();} else {this.$message.error(res.data.msg);loading();}}).then(() => {this.onLoad();}).catch(err => {loading();})},rowDel(row, done, loading) {rowDel(row).then(res => {if (res.data.code == 200) {this.$message.success(res.data.msg);done();} else {this.$message.error(res.data.msg);loading();}}).then(() => {this.onLoad();}).catch(err => {loading();})},searchReset() {this.query = {}this.onLoad(this.page)},searchChange(params, done) {this.query = paramsthis.onLoad(this.page, params)done()},currentChange(currentPage) {this.page.currentPage = currentPage},sizeChange(pageSize) {this.page.pageSize = pageSize},refreshChange(refresh) {if (refresh) {this.onLoad(this.page, this.query)}},}
}
</script><style scoped></style>

效果展示:

http://www.dtcms.com/wzjs/193344.html

相关文章:

  • 网站建设公司兴田德润专业青岛seo排名扣费
  • 杭州做网站的合肥seo优化外包公司
  • 有什么展厅设计做的好的网站百度网页版登录入口
  • 台湾vps专业网站优化排名
  • 便宜的做网站最新全国疫情实时大数据
  • dw做网站弊端win10优化工具下载
  • 网络建站一般多少钱黑帽seo什么意思
  • 广州网站建设培训班营销网站类型
  • 建站工具免费网络营销的真实案例分析
  • 网站 主营业务品牌运营
  • 深圳宝安天气预报网站优化和网站推广
  • 内部网站做登陆内部链接郑州抖音seo
  • 橙色大气风格网站模板购买seo关键词排名优化官网
  • 做it的网站有哪些餐饮品牌全案策划
  • 河南省住房和建设厅网站首页专业做网站公司
  • 网站建设前台功能重庆森林粤语
  • 高明建网站服务百度推广平台登录
  • 丹徒网站建设包括哪些温州高端网站建设
  • 杭州职业能力建设网百度首页优化排名
  • 保定厂家推荐信息流推广百度关键词优化平台
  • 乌鲁木齐做网站优化创量广告投放平台
  • 深圳国税局网站怎么做票种核定在线服务器网站
  • 一家做公司点评的网站苏州百度推广公司地址
  • 街道人大网站建设自有品牌如何推广
  • 怎么给网站在百度地图上做爬虫北京自动seo
  • 教你做网站seo全网营销的方式
  • 网站建设需要哪些工作室推广如何做网上引流
  • 长沙招聘网站制作百度收录检测
  • 网站建设 价格seo外链发布软件
  • php做各种网站类型得模板百度推广后台登陆首页