cloudroam
10 天以前 db9900074fa83021a7e3b1445eaf28ab56e675ab
add 分类管理
已添加7个文件
191 ■■■■■ 文件已修改
src/main/java/com/mzl/flower/domain/CategoryConfig.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/domain/CategoryConfigDO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/domain/CategoryConfigSync.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/mapper/CategoryConfigMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/customer/CategoryConfigService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/customer/CategoryConfigServiceImpl.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/web/customer/CategoryConfigController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/domain/CategoryConfig.java
对比新文件
@@ -0,0 +1,15 @@
package com.mzl.flower.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CategoryConfig   {
    private Integer id;
    private String name;
    private Integer order;
    private Boolean isEnabled;
}
src/main/java/com/mzl/flower/domain/CategoryConfigDO.java
对比新文件
@@ -0,0 +1,29 @@
package com.mzl.flower.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mzl.flower.base.BaseAutoEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("category_config")
public class CategoryConfigDO extends BaseAutoEntity {
    @TableField("user_id")
    private String userId;
    @TableField("category_id")
    private Integer categoryId;
    private String name;
    @TableField("`order`")
    private Integer order;
    @TableField("is_enabled")
    private Boolean isEnabled;
}
src/main/java/com/mzl/flower/domain/CategoryConfigSync.java
对比新文件
@@ -0,0 +1,15 @@
package com.mzl.flower.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CategoryConfigSync {
    private String userId;
    private List<CategoryConfig> categories;
}
src/main/java/com/mzl/flower/mapper/CategoryConfigMapper.java
对比新文件
@@ -0,0 +1,27 @@
package com.mzl.flower.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mzl.flower.domain.CategoryConfigDO;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CategoryConfigMapper extends BaseMapper<CategoryConfigDO> {
//    @Insert("INSERT INTO category_config( user_id, category_id, name, `order`, is_enabled) " + "VALUES( #{userId}, #{categoryId}, #{name}, #{order}, #{isEnabled})")
//    void insert(CategoryConfigDO categoryConfigDO);
//
//    @Update("UPDATE category_config SET name = #{name}, `order` = #{order}, " + "is_enabled = #{isEnabled} WHERE id = #{id}")
//    void update(CategoryConfigDO categoryConfigDO);
//    @Select("SELECT * FROM category_config WHERE id = #{id}")
//    CategoryConfigDO findById(Long id);
    @Select("SELECT * FROM category_config WHERE user_id = #{userId}")
    List<CategoryConfigDO> findByUserId(String userId);
    @Delete("DELETE FROM category_config WHERE user_id = #{userId}")
    void deleteByUserId(String userId);
}
src/main/java/com/mzl/flower/service/customer/CategoryConfigService.java
对比新文件
@@ -0,0 +1,11 @@
package com.mzl.flower.service.customer;
import com.mzl.flower.domain.CategoryConfig;
import com.mzl.flower.domain.CategoryConfigSync;
import java.util.List;
public interface CategoryConfigService {
    void saveOrUpdateCategoryConfig(CategoryConfigSync categoryConfigSync);
    List<CategoryConfig> getCategoryConfigsByUserId(String userId);
}
src/main/java/com/mzl/flower/service/customer/CategoryConfigServiceImpl.java
对比新文件
@@ -0,0 +1,67 @@
package com.mzl.flower.service.customer;
import com.mzl.flower.domain.CategoryConfig;
import com.mzl.flower.domain.CategoryConfigDO;
import com.mzl.flower.domain.CategoryConfigSync;
import com.mzl.flower.mapper.CategoryConfigMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Service
public class CategoryConfigServiceImpl implements CategoryConfigService {
    @Autowired
    private CategoryConfigMapper categoryConfigMapper;
    @Override
    @Transactional
    public void saveOrUpdateCategoryConfig(CategoryConfigSync categoryConfigSync) {
        if (categoryConfigSync == null || categoryConfigSync.getUserId() == null) {
            throw new IllegalArgumentException("用户ID不能为空");
        }
        // 先删除该用户之前的所有分类配置
        categoryConfigMapper.deleteByUserId(categoryConfigSync.getUserId());
        // 然后插入新的分类配置
        if (categoryConfigSync.getCategories() != null && !categoryConfigSync.getCategories().isEmpty()) {
            for (CategoryConfig clientCategory : categoryConfigSync.getCategories()) {
                CategoryConfigDO dbCategory = new CategoryConfigDO();
                dbCategory.setUserId(categoryConfigSync.getUserId());
                dbCategory.setCategoryId(clientCategory.getId());
                dbCategory.setName(clientCategory.getName());
                dbCategory.setOrder(clientCategory.getOrder());
                dbCategory.setIsEnabled(clientCategory.getIsEnabled());
                categoryConfigMapper.insert(dbCategory);
            }
        }
    }
    @Override
    public List<CategoryConfig> getCategoryConfigsByUserId(String userId) {
        if (userId == null) {
            throw new IllegalArgumentException("用户ID不能为空");
        }
        List<CategoryConfigDO> dbCategories = categoryConfigMapper.findByUserId(userId);
        if (dbCategories == null || dbCategories.isEmpty()) {
            return new ArrayList<>();
        }
        List<CategoryConfig> clientCategories = new ArrayList<>();
        for (CategoryConfigDO dbCategory : dbCategories) {
            CategoryConfig clientCategory = new CategoryConfig();
            clientCategory.setId(dbCategory.getCategoryId());
            clientCategory.setName(dbCategory.getName());
            clientCategory.setOrder(dbCategory.getOrder());
            clientCategory.setIsEnabled(dbCategory.getIsEnabled());
            clientCategories.add(clientCategory);
        }
        return clientCategories;
    }
}
src/main/java/com/mzl/flower/web/customer/CategoryConfigController.java
对比新文件
@@ -0,0 +1,27 @@
package com.mzl.flower.web.customer;
import com.mzl.flower.domain.CategoryConfig;
import com.mzl.flower.domain.CategoryConfigSync;
import com.mzl.flower.service.customer.CategoryConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/categoryConfig")
public class CategoryConfigController {
    @Autowired
    private CategoryConfigService categoryConfigService;
    @PostMapping("/saveOrUpdate")
    public void saveOrUpdateCategoryConfig(@RequestBody CategoryConfigSync categoryConfigSync) {
        categoryConfigService.saveOrUpdateCategoryConfig(categoryConfigSync);
    }
    @GetMapping("/getByUserId/{userId}")
    public List<CategoryConfig> getCategoryConfigsByUserId(@PathVariable String userId) {
        return categoryConfigService.getCategoryConfigsByUserId(userId);
    }
}