Bladeren bron

add diy module

Mr.qian 2 weken geleden
bovenliggende
commit
061fb75b7e

+ 106 - 0
mall-service/src/main/java/com/txz/mall/controller/DiyController.java

@@ -0,0 +1,106 @@
+package com.txz.mall.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.txz.mall.core.Result;
+import com.txz.mall.core.UserUtil;
+import com.txz.mall.model.Diy;
+import com.txz.mall.service.DiyService;
+import com.txz.mall.web.param.BasePageParam;
+import com.txz.mall.web.ro.DiyRO;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * diy
+ *
+ * @author: MTD®️
+ * @date: 2026/2/3
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("diy")
+public class DiyController {
+    
+    private final DiyService diyService;
+    
+    /**
+     * 分页
+     */
+    @GetMapping("page")
+    public Result<Page<Diy>> page(BasePageParam page, String queryStr) {
+        PageHelper.startPage(page.getPage(), page.getSize());
+        return Result.success(
+                new PageInfo<>(diyService.list(Wrappers.<Diy>lambdaQuery()
+                        .select(Diy::getId, Diy::getTitle, Diy::getImage, Diy::getSort, Diy::getCreateTime, Diy::getUpdateTime, Diy::getStatus)
+                        .and(StrUtil.isNotBlank(queryStr),
+                                item -> item
+                                        .like(Diy::getTitle, queryStr)
+                        )
+                        .orderByDesc(Diy::getCreateTime)
+                ))
+        );
+    }
+    
+    
+    /**
+     * 新增
+     */
+    @PostMapping("save")
+    public Result save(@Validated({DiyRO.Add.class}) @RequestBody DiyRO ro, HttpServletRequest request) {
+        Diy diy = BeanUtil.copyProperties(ro, Diy.class);
+        diy.setCreateUserId(UserUtil.getAdminUserId(request));
+        diyService.save(diy);
+        return Result.success();
+    }
+    
+    /**
+     * 详情
+     */
+    @GetMapping("info/{id:^\\d+$}")
+    public Result info(@PathVariable("id") Long id) {
+        Diy info = diyService.getById(id);
+        if (ObjectUtil.isEmpty(info)) {
+            return Result.fail("数据不存在");
+        }
+        return Result.success(info);
+    }
+    
+    /**
+     * 修改状态
+     */
+    @DeleteMapping("changeStatus/{id:^\\d+$}")
+    public Result delete(@PathVariable("id") Long id) {
+        Diy info = diyService.getById(id);
+        if (ObjectUtil.isEmpty(info)) {
+            return Result.fail("数据不存在");
+        }
+        info.setStatus(!info.getStatus());
+        return Result.success();
+    }
+    
+    /**
+     * 更新
+     */
+    @PatchMapping("update/{id:^\\d+$}")
+    public Result update(@Validated({DiyRO.Update.class}) @RequestBody DiyRO ro, @PathVariable("id") Long id, HttpServletRequest request) {
+        Diy info = diyService.getById(id);
+        if (ObjectUtil.isEmpty(info)) {
+            return Result.fail("数据不存在");
+        }
+        BeanUtil.copyProperties(ro, info);
+        info.setUpdateUserId(UserUtil.getAdminUserId(request));
+        diyService.updateById(info);
+        return Result.success();
+    }
+    
+    
+}

+ 13 - 0
mall-service/src/main/java/com/txz/mall/dao/DiyMapper.java

@@ -0,0 +1,13 @@
+package com.txz.mall.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.txz.mall.model.Diy;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author: MTD®️
+ * @date: 2025/8/26
+ */
+@Mapper
+public interface DiyMapper extends BaseMapper<Diy> {
+}

+ 74 - 0
mall-service/src/main/java/com/txz/mall/model/Diy.java

@@ -0,0 +1,74 @@
+package com.txz.mall.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ *
+ * @author: MTD®️
+ * @date: 2026/2/3
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("m_diy")
+public class Diy extends Model<Diy> {
+    
+    /**
+     * null
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    
+    /**
+     * 名称
+     */
+    private String title;
+    
+    /**
+     * 图片地址
+     */
+    private String image;
+    
+    /**
+     * 排序
+     */
+    private Integer sort;
+    
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+    
+    /**
+     * 创建人id
+     */
+    private Long createUserId;
+    
+    /**
+     * 更新人id
+     */
+    private Long updateUserId;
+    
+    /**
+     * 是否删除
+     */
+    private Boolean status;
+    
+    /**
+     * null
+     */
+    private String diyData;
+}

+ 13 - 0
mall-service/src/main/java/com/txz/mall/service/DiyService.java

@@ -0,0 +1,13 @@
+package com.txz.mall.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.txz.mall.model.Diy;
+
+/**
+ * @author: MTD®️
+ * @date: 2025/8/26
+ */
+
+public interface DiyService extends IService<Diy> {
+    
+}

+ 20 - 0
mall-service/src/main/java/com/txz/mall/service/impl/DiyServiceImpl.java

@@ -0,0 +1,20 @@
+package com.txz.mall.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.txz.mall.dao.DiyMapper;
+import com.txz.mall.model.Diy;
+import com.txz.mall.service.DiyService;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author: MTD®️
+ * @date: 2025/8/26
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class DiyServiceImpl extends ServiceImpl<DiyMapper, Diy> implements DiyService {
+    
+}

+ 54 - 0
mall-service/src/main/java/com/txz/mall/web/ro/DiyRO.java

@@ -0,0 +1,54 @@
+package com.txz.mall.web.ro;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * @author: MTD®️
+ * @date: 2026/2/3
+ */
+@Data
+public class DiyRO {
+    
+    /**
+     * 名称
+     */
+    @NotBlank(message = "名称不能为空", groups = {Add.class, Update.class})
+    private String title;
+    
+    /**
+     * 图片地址
+     */
+    @NotBlank(message = "图片地址不能为空", groups = {Add.class, Update.class})
+    private String image;
+    
+    /**
+     * 排序
+     */
+    @NotEmpty(message = "排序不能为空", groups = {Add.class, Update.class})
+    private Integer sort;
+    
+    /**
+     * 启用状态
+     */
+    @NotNull(message = "启用状态", groups = {Add.class, Update.class})
+    private Boolean status;
+    
+    /**
+     * null
+     */
+    @NotBlank(message = "null不能为空", groups = {Add.class, Update.class})
+    private String diyData;
+    
+    public interface Add {
+    }
+    
+    public interface Update {
+    }
+    
+    
+}