供应器管理-增删改查api

This commit is contained in:
ljwwd2
2025-05-17 01:18:03 +08:00
parent cbabf01902
commit ae8f11d5a8
5 changed files with 123 additions and 35 deletions
@@ -1,6 +1,7 @@
package xiaozhi.common.service.impl;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -18,6 +19,7 @@ import com.baomidou.mybatisplus.core.enums.SqlMethod;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -92,6 +94,59 @@ public abstract class BaseServiceImpl<M extends BaseMapper<T>, T> implements Bas
return page;
}
/**
* 获取分页对象
* @see xiaozhi.common.constant.Constant
* params.put(Constant.PAGE, "1");
* params.put(Constant.LIMIT, "10");
* params.put(Constant.ORDER_FIELD, List.of("model_type", "sort"));
* params.put(Constant.ORDER, "asc");
*
* @param params 分页查询参数
*/
protected IPage<T> getPage(Map<String, Object> params) {
// 分页参数
long curPage = 1;
long limit = 10;
if (params.get(Constant.PAGE) != null) {
curPage = Long.parseLong((String) params.get(Constant.PAGE));
}
if (params.get(Constant.LIMIT) != null) {
limit = Long.parseLong((String) params.get(Constant.LIMIT));
}
// 分页对象
Page<T> page = new Page<>(curPage, limit);
// 分页参数
params.put(Constant.PAGE, page);
// 排序字段
Object orderField = params.get(Constant.ORDER_FIELD);
List<String> orderFields = new ArrayList<>();
if (orderField instanceof String) {
orderFields.add((String) orderField);
} else if (orderField instanceof List) {
orderFields.addAll( (List<String>) orderField);
}
String order = (String) params.get(Constant.ORDER);
// 有排序字段则排序,默认降序
if (CollectionUtils.isNotEmpty(orderFields)) {
if (StringUtils.isNotBlank(order) && Constant.ASC.equalsIgnoreCase(order)) {
return page.addOrder(OrderItem.ascs(orderFields.toArray(new String[orderFields.size()])));
} else {
return page.addOrder(OrderItem.descs(orderFields.toArray(new String[orderFields.size()])));
}
}
return page;
}
protected <D> PageData<D> getPageData(List<?> list, long total, Class<D> target) {
List<D> targetList = ConvertUtils.sourceToTarget(list, target);
@@ -1,11 +1,21 @@
package xiaozhi.modules.model.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import xiaozhi.common.annotation.UpdateGroup;
import xiaozhi.common.page.PageData;
import xiaozhi.common.utils.Result;
@@ -31,7 +41,7 @@ public class ModelProviderController {
}
@PostMapping
@Operation(summary = "获取模型供应器列表")
@Operation(summary = "新增模型供应器")
@RequiresPermissions("sys:role:superAdmin")
public Result<ModelProviderDTO> add(@RequestBody @Validated ModelProviderDTO modelProviderDTO) {
ModelProviderDTO resp = modelProviderService.add(modelProviderDTO);
@@ -39,18 +49,19 @@ public class ModelProviderController {
}
@PutMapping
@Operation(summary = "获取模型供应器列表")
@Operation(summary = "修改模型供应器")
@RequiresPermissions("sys:role:superAdmin")
public Result<ModelProviderDTO> edit(@RequestBody @Validated(UpdateGroup.class) ModelProviderDTO modelProviderDTO) {
ModelProviderDTO resp = modelProviderService.edit(modelProviderDTO);
return new Result<ModelProviderDTO>().ok(resp);
}
@DeleteMapping("/{id}")
@Operation(summary = "获取模型供应器列表")
@PostMapping("/delete")
@Operation(summary = "删除模型供应器")
@RequiresPermissions("sys:role:superAdmin")
public Result<Void> delete(@PathVariable String id) {
modelProviderService.delete(id);
@Parameter(name = "ids", description = "ID数组", required = true)
public Result<Void> delete(@RequestBody List<String> ids) {
modelProviderService.delete(ids);
return new Result<>();
}
@@ -30,7 +30,7 @@ public class ModelProviderEntity {
private String name;
@Schema(description = "供应器字段列表(JSON格式)")
@TableField(typeHandler = JacksonTypeHandler.class)
// @TableField(typeHandler = JacksonTypeHandler.class)
private String fields;
@Schema(description = "排序")
@@ -17,6 +17,8 @@ public interface ModelProviderService {
void delete(String id);
void delete(List<String> id);
PageData<ModelProviderDTO> getListPage(ModelProviderDTO modelProviderDTO, String page, String limit);
List<ModelProviderDTO> getList(String modelType, String provideCode);
@@ -5,12 +5,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import cn.hutool.json.JSONArray;
import lombok.AllArgsConstructor;
import xiaozhi.common.constant.Constant;
import xiaozhi.common.exception.RenException;
@@ -41,49 +42,61 @@ public class ModelProviderServiceImpl extends BaseServiceImpl<ModelProviderDao,
}
@Override
public PageData<ModelProviderDTO> getListPage(ModelProviderDTO modelProviderEntity, String page, String limit) {
public PageData<ModelProviderDTO> getListPage(ModelProviderDTO modelProviderDTO, String page, String limit) {
Map<String, Object> params = new HashMap<String, Object>();
params.put(Constant.PAGE, page);
params.put(Constant.LIMIT, limit);
params.put(Constant.ORDER_FIELD, List.of("model_type", "sort"));
params.put(Constant.ORDER, "asc");
IPage<ModelProviderEntity> pageParam = getPage(params, "model_type", true);
IPage<ModelProviderEntity> pageParam = getPage(params);
QueryWrapper<ModelProviderEntity> wrapper = new QueryWrapper<ModelProviderEntity>();
if (StringUtils.isNotBlank(modelProviderEntity.getModelType())) {
wrapper.eq("model_type", modelProviderEntity.getModelType());
if (StringUtils.isNotBlank(modelProviderDTO.getModelType())) {
wrapper.eq("model_type", modelProviderDTO.getModelType());
}
if (StringUtils.isNotBlank(modelProviderEntity.getName())) {
wrapper.like("name", "%" + modelProviderEntity.getName() + "%");
if (StringUtils.isNotBlank(modelProviderDTO.getName())) {
wrapper.like("name", "%" + modelProviderDTO.getName() + "%");
}
return getPageData(modelProviderDao.selectPage(pageParam, wrapper), ModelProviderDTO.class);
}
@Override
public ModelProviderDTO add(ModelProviderDTO modelProviderEntity) {
UserDetail user = SecurityUser.getUser();
modelProviderEntity.setCreator(user.getId());
modelProviderEntity.setUpdater(user.getId());
modelProviderEntity.setCreateDate(new Date());
modelProviderEntity.setUpdateDate(new Date());
if (modelProviderDao.insert(ConvertUtils.sourceToTarget(modelProviderEntity, ModelProviderEntity.class)) == 0) {
throw new RenException("新增数据失败");
}
return ConvertUtils.sourceToTarget(modelProviderEntity, ModelProviderDTO.class);
public static void main(String[] args) {
String jsonString = "\"[]\"";
JSONArray jsonArray = new JSONArray(jsonString);
System.out.println("字符串转 JSONArray: " + jsonArray.toString());
}
@Override
public ModelProviderDTO edit(ModelProviderDTO modelProviderEntity) {
public ModelProviderDTO add(ModelProviderDTO modelProviderDTO) {
UserDetail user = SecurityUser.getUser();
modelProviderEntity.setUpdater(user.getId());
modelProviderEntity.setUpdateDate(new Date());
if (modelProviderDao.updateById(ConvertUtils.sourceToTarget(modelProviderEntity, ModelProviderEntity.class)) == 0) {
modelProviderDTO.setCreator(user.getId());
modelProviderDTO.setUpdater(user.getId());
modelProviderDTO.setCreateDate(new Date());
modelProviderDTO.setUpdateDate(new Date());
// 去除Fields左右的双引号
modelProviderDTO.setFields(modelProviderDTO.getFields());
ModelProviderEntity entity = ConvertUtils.sourceToTarget(modelProviderDTO, ModelProviderEntity.class);
if (modelProviderDao.insert(entity) == 0) {
throw new RenException("新增数据失败");
}
return ConvertUtils.sourceToTarget(modelProviderDTO, ModelProviderDTO.class);
}
@Override
public ModelProviderDTO edit(ModelProviderDTO modelProviderDTO) {
UserDetail user = SecurityUser.getUser();
modelProviderDTO.setUpdater(user.getId());
modelProviderDTO.setUpdateDate(new Date());
if (modelProviderDao.updateById(ConvertUtils.sourceToTarget(modelProviderDTO, ModelProviderEntity.class)) == 0) {
throw new RenException("修改数据失败");
}
return ConvertUtils.sourceToTarget(modelProviderEntity, ModelProviderDTO.class);
return ConvertUtils.sourceToTarget(modelProviderDTO, ModelProviderDTO.class);
}
@Override
@@ -93,6 +106,13 @@ public class ModelProviderServiceImpl extends BaseServiceImpl<ModelProviderDao,
}
}
@Override
public void delete(List<String> ids) {
if (modelProviderDao.deleteBatchIds(ids) == 0) {
throw new RenException("删除数据失败");
}
}
@Override
public List<ModelProviderDTO> getList(String modelType, String providerCode) {
QueryWrapper<ModelProviderEntity> queryWrapper = new QueryWrapper<>();