智能图像处理平台:后端MVC架构

这里我们基于前面的后端配置文件和封装的工具,搭建后端MVC架构。

首先我们提取数据库表的公共字段放入baseEntity:

package com.llpp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @Author 21326
 * @Date 2025 2025/1/31 20:16
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(type = IdType.AUTO)
    private Long id;
    //逻辑删除
    @TableLogic(value = "0", delval = "1")
    private Integer deleted;
    //状态
    private Integer status;
    //备注
    private String remark;
}

然后是我们的每张表对应的entity->mapper->service->controller:

package com.llpp.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @Author 21326
 * @Date 2025 2025/1/31 20:35
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "params")
public class Params extends BaseEntity implements Serializable {
    private static long serialVersionUID = 1L;
    private String code;
    private String value;
}
package com.llpp.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.llpp.entity.Params;
import org.apache.ibatis.annotations.Mapper;

/**
 * @Author 21326
 * @Date 2025 2025/1/31 20:44
 */
@Mapper
public interface ParamsMapper extends BaseMapper<Params> {
}
package com.llpp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.llpp.entity.Params;

/**
 * @Author 21326
 * @Date 2025 2025/1/31 20:46
 */
public interface IParamsService extends IService<Params> {
    String getValue(String key);
}
package com.llpp.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.llpp.entity.Params;
import com.llpp.mapper.ParamsMapper;
import com.llpp.service.IParamsService;
import org.springframework.stereotype.Service;

/**
 * @Author 21326
 * @Date 2025 2025/1/31 20:46
 */
@Service
public class ParamsServiceImpl extends ServiceImpl<ParamsMapper, Params> implements IParamsService {
    @Override
    public String getValue(String key) {
        return baseMapper.selectOne(new QueryWrapper<Params>()
                        .select("value")
                        .eq("code", key).eq("deleted", 0))
                .getValue();
    }
}
package com.llpp.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.llpp.entity.Params;
import com.llpp.service.IParamsService;
import com.llpp.tool.Result;
import lombok.RequiredArgsConstructor;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import java.util.Objects;
import java.util.Optional;

/**
 * @Author 21326
 * @Date 2025 2025/1/31 20:56
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/params")
public class ParamsController {
    private final IParamsService paramsService;

    @GetMapping("/getPage")
    public Result getPage(Page<Params> page, Params params) {
        return Result.data(paramsService.page(page, new QueryWrapper<Params>()
                .like(!StringUtils.isEmpty(params.getCode()), "code", params.getCode())
                .like(!StringUtils.isEmpty(params.getValue()), "value", params.getValue())
                .eq("deleted", 0)));
    }

    @PostMapping("/rowSave")
    public Result rowSave(@RequestBody Params params) {
        return Optional.ofNullable(params)
                .filter(p -> !StringUtils.isEmpty(p.getCode()))
                .filter(p -> !StringUtils.isEmpty(p.getValue()))
                .map(p -> Result.status(paramsService.save(p)))
                .orElse(Result.fail("参数异常"));
    }

    @PostMapping("/rowEdit")
    public Result rowEdit(@RequestBody Params params) {
        return Optional.ofNullable(params)
                .filter(p -> Objects.nonNull(p.getId()))
                .map(p -> Result.status(paramsService.updateById(p)))
                .orElse(Result.fail("参数异常"));
    }

    @PostMapping("/rowDel")
    public Result rowDel(@RequestBody Params params) {
        return Optional.ofNullable(params)
                .filter(p -> Objects.nonNull(p.getId()))
                .map(p -> Result.status(paramsService.removeById(p)))
                .orElse(Result.fail("参数异常"));
    }
}

这里我们以参数表params为例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾北辰20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值