mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-27 09:33:55 +08:00
供应器管理-增删改查api
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package xiaozhi.common.service.impl;
|
package xiaozhi.common.service.impl;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
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.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
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.Constants;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
|
import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
@@ -92,6 +94,59 @@ public abstract class BaseServiceImpl<M extends BaseMapper<T>, T> implements Bas
|
|||||||
return page;
|
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) {
|
protected <D> PageData<D> getPageData(List<?> list, long total, Class<D> target) {
|
||||||
List<D> targetList = ConvertUtils.sourceToTarget(list, target);
|
List<D> targetList = ConvertUtils.sourceToTarget(list, target);
|
||||||
|
|
||||||
|
|||||||
+21
-10
@@ -1,11 +1,21 @@
|
|||||||
package xiaozhi.modules.model.controller;
|
package xiaozhi.modules.model.controller;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import java.util.List;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.springframework.validation.annotation.Validated;
|
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.annotation.UpdateGroup;
|
||||||
import xiaozhi.common.page.PageData;
|
import xiaozhi.common.page.PageData;
|
||||||
import xiaozhi.common.utils.Result;
|
import xiaozhi.common.utils.Result;
|
||||||
@@ -31,7 +41,7 @@ public class ModelProviderController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@Operation(summary = "获取模型供应器列表")
|
@Operation(summary = "新增模型供应器")
|
||||||
@RequiresPermissions("sys:role:superAdmin")
|
@RequiresPermissions("sys:role:superAdmin")
|
||||||
public Result<ModelProviderDTO> add(@RequestBody @Validated ModelProviderDTO modelProviderDTO) {
|
public Result<ModelProviderDTO> add(@RequestBody @Validated ModelProviderDTO modelProviderDTO) {
|
||||||
ModelProviderDTO resp = modelProviderService.add(modelProviderDTO);
|
ModelProviderDTO resp = modelProviderService.add(modelProviderDTO);
|
||||||
@@ -39,18 +49,19 @@ public class ModelProviderController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping
|
@PutMapping
|
||||||
@Operation(summary = "获取模型供应器列表")
|
@Operation(summary = "修改模型供应器")
|
||||||
@RequiresPermissions("sys:role:superAdmin")
|
@RequiresPermissions("sys:role:superAdmin")
|
||||||
public Result<ModelProviderDTO> edit(@RequestBody @Validated(UpdateGroup.class) ModelProviderDTO modelProviderDTO) {
|
public Result<ModelProviderDTO> edit(@RequestBody @Validated(UpdateGroup.class) ModelProviderDTO modelProviderDTO) {
|
||||||
ModelProviderDTO resp = modelProviderService.edit(modelProviderDTO);
|
ModelProviderDTO resp = modelProviderService.edit(modelProviderDTO);
|
||||||
return new Result<ModelProviderDTO>().ok(resp);
|
return new Result<ModelProviderDTO>().ok(resp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping("/{id}")
|
@PostMapping("/delete")
|
||||||
@Operation(summary = "获取模型供应器列表")
|
@Operation(summary = "删除模型供应器")
|
||||||
@RequiresPermissions("sys:role:superAdmin")
|
@RequiresPermissions("sys:role:superAdmin")
|
||||||
public Result<Void> delete(@PathVariable String id) {
|
@Parameter(name = "ids", description = "ID数组", required = true)
|
||||||
modelProviderService.delete(id);
|
public Result<Void> delete(@RequestBody List<String> ids) {
|
||||||
|
modelProviderService.delete(ids);
|
||||||
return new Result<>();
|
return new Result<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@ public class ModelProviderEntity {
|
|||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@Schema(description = "供应器字段列表(JSON格式)")
|
@Schema(description = "供应器字段列表(JSON格式)")
|
||||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
// @TableField(typeHandler = JacksonTypeHandler.class)
|
||||||
private String fields;
|
private String fields;
|
||||||
|
|
||||||
@Schema(description = "排序")
|
@Schema(description = "排序")
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ public interface ModelProviderService {
|
|||||||
|
|
||||||
void delete(String id);
|
void delete(String id);
|
||||||
|
|
||||||
|
void delete(List<String> id);
|
||||||
|
|
||||||
PageData<ModelProviderDTO> getListPage(ModelProviderDTO modelProviderDTO, String page, String limit);
|
PageData<ModelProviderDTO> getListPage(ModelProviderDTO modelProviderDTO, String page, String limit);
|
||||||
|
|
||||||
List<ModelProviderDTO> getList(String modelType, String provideCode);
|
List<ModelProviderDTO> getList(String modelType, String provideCode);
|
||||||
|
|||||||
+44
-24
@@ -5,12 +5,13 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONArray;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import xiaozhi.common.constant.Constant;
|
import xiaozhi.common.constant.Constant;
|
||||||
import xiaozhi.common.exception.RenException;
|
import xiaozhi.common.exception.RenException;
|
||||||
@@ -41,49 +42,61 @@ public class ModelProviderServiceImpl extends BaseServiceImpl<ModelProviderDao,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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>();
|
Map<String, Object> params = new HashMap<String, Object>();
|
||||||
params.put(Constant.PAGE, page);
|
params.put(Constant.PAGE, page);
|
||||||
params.put(Constant.LIMIT, limit);
|
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>();
|
QueryWrapper<ModelProviderEntity> wrapper = new QueryWrapper<ModelProviderEntity>();
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(modelProviderEntity.getModelType())) {
|
if (StringUtils.isNotBlank(modelProviderDTO.getModelType())) {
|
||||||
wrapper.eq("model_type", modelProviderEntity.getModelType());
|
wrapper.eq("model_type", modelProviderDTO.getModelType());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(modelProviderEntity.getName())) {
|
if (StringUtils.isNotBlank(modelProviderDTO.getName())) {
|
||||||
wrapper.like("name", "%" + modelProviderEntity.getName() + "%");
|
wrapper.like("name", "%" + modelProviderDTO.getName() + "%");
|
||||||
}
|
}
|
||||||
return getPageData(modelProviderDao.selectPage(pageParam, wrapper), ModelProviderDTO.class);
|
return getPageData(modelProviderDao.selectPage(pageParam, wrapper), ModelProviderDTO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public static void main(String[] args) {
|
||||||
public ModelProviderDTO add(ModelProviderDTO modelProviderEntity) {
|
String jsonString = "\"[]\"";
|
||||||
UserDetail user = SecurityUser.getUser();
|
JSONArray jsonArray = new JSONArray(jsonString);
|
||||||
modelProviderEntity.setCreator(user.getId());
|
System.out.println("字符串转 JSONArray: " + jsonArray.toString());
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ModelProviderDTO edit(ModelProviderDTO modelProviderEntity) {
|
public ModelProviderDTO add(ModelProviderDTO modelProviderDTO) {
|
||||||
UserDetail user = SecurityUser.getUser();
|
UserDetail user = SecurityUser.getUser();
|
||||||
modelProviderEntity.setUpdater(user.getId());
|
modelProviderDTO.setCreator(user.getId());
|
||||||
modelProviderEntity.setUpdateDate(new Date());
|
modelProviderDTO.setUpdater(user.getId());
|
||||||
if (modelProviderDao.updateById(ConvertUtils.sourceToTarget(modelProviderEntity, ModelProviderEntity.class)) == 0) {
|
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("修改数据失败");
|
throw new RenException("修改数据失败");
|
||||||
}
|
}
|
||||||
return ConvertUtils.sourceToTarget(modelProviderEntity, ModelProviderDTO.class);
|
return ConvertUtils.sourceToTarget(modelProviderDTO, ModelProviderDTO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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
|
@Override
|
||||||
public List<ModelProviderDTO> getList(String modelType, String providerCode) {
|
public List<ModelProviderDTO> getList(String modelType, String providerCode) {
|
||||||
QueryWrapper<ModelProviderEntity> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<ModelProviderEntity> queryWrapper = new QueryWrapper<>();
|
||||||
|
|||||||
Reference in New Issue
Block a user