Pārlūkot izejas kodu

对象类型 接口实现

yucheng 3 gadi atpakaļ
vecāks
revīzija
45f92a798a

+ 4 - 4
dc-business/dc-digital/src/main/java/com/persagy/dc/common/model/QueryCriteria.java

@@ -4,9 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.*;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dc.common.model.entity.BaseEntity;
 import lombok.Data;
-import org.apache.poi.ss.formula.functions.T;
 
 import java.util.Iterator;
 import java.util.List;
@@ -88,7 +88,7 @@ public class QueryCriteria {
      * 转换为查询条件
      * @param wrapper
      */
-    public void toWrapper(QueryWrapper<T> wrapper) {
+    public <T extends BaseEntity> void toWrapper(QueryWrapper<T> wrapper) {
         if(criteria == null || criteria.isEmpty(null)) {
             return;
         }
@@ -126,7 +126,7 @@ public class QueryCriteria {
      * @param operator
      * @param valueNode
      */
-    private void addCondition(QueryWrapper<T> wrapper, String field, String operator, JsonNode valueNode) {
+    private <T extends BaseEntity> void addCondition(QueryWrapper<T> wrapper, String field, String operator, JsonNode valueNode) {
         if("$ne".equalsIgnoreCase(operator)) {
             wrapper.ne(field, JsonNodeUtils.getNodeValue(valueNode));
         } else if("$gt".equalsIgnoreCase(operator)) {

+ 66 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/define/controller/ObjectTypeController.java

@@ -0,0 +1,66 @@
+package com.persagy.dc.define.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.persagy.common.exception.BusinessException;
+import com.persagy.dc.common.constant.CommonConstant;
+import com.persagy.dc.common.constant.ResponseCode;
+import com.persagy.dc.common.context.AppContext;
+import com.persagy.dc.common.model.QueryCriteria;
+import com.persagy.dc.common.model.response.CommonResult;
+import com.persagy.dc.common.model.response.PageList;
+import com.persagy.dc.common.utils.ResultHelper;
+import com.persagy.dc.define.entity.ObjectType;
+import com.persagy.dc.define.service.IObjectTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 对象类型 Controller
+ * @author Charlie Yu
+ * @date 2021-06-25
+ */
+@RestController
+@RequestMapping("/rwd/def/class")
+public class ObjectTypeController {
+
+    @Autowired
+    private IObjectTypeService typeService;
+
+    @PostMapping("")
+    public CommonResult<PageList<ObjectType>> queryClass(@RequestBody QueryCriteria criteria) {
+        if(criteria == null) {
+            throw new BusinessException(ResponseCode.A0400.getCode(), ResponseCode.A0400.getDesc());
+        }
+        QueryWrapper<ObjectType> wrapper = new QueryWrapper<>();
+        // 添加所属项目条件
+        if(StrUtil.isNotBlank(AppContext.getContext().getProjectId())) {
+            wrapper.in(AppContext.PROJECT_ID, CommonConstant.DEFAULT_ID, AppContext.getContext().getProjectId());
+        }
+        // 转换查询条件
+        criteria.toWrapper(wrapper);
+        Page page = typeService.queryByCondition(criteria.toPage(), wrapper);
+        return ResultHelper.multi(page.getRecords());
+    }
+
+    @PostMapping("/create")
+	public CommonResult<ObjectType> create(@RequestBody ObjectType vo){
+        vo = typeService.insert(vo);
+		return ResultHelper.single(vo);
+	}
+
+	@PostMapping("/update")
+	public CommonResult<ObjectType> update(@RequestBody ObjectType vo){
+        vo = typeService.update(vo);
+		return ResultHelper.single(vo);
+	}
+
+	@PostMapping("/delete")
+	public void delete(@RequestBody String id){
+        typeService.delete(id);
+	}
+}

+ 12 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/define/dao/ObjectTypeMapper.java

@@ -0,0 +1,12 @@
+package com.persagy.dc.define.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.persagy.dc.define.entity.ObjectType;
+
+/**
+ * 对象类型 DAO
+ * @author Charlie Yu
+ * @date 2021-06-25
+ */
+public interface ObjectTypeMapper extends BaseMapper<ObjectType> {
+}

+ 49 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/define/service/IObjectTypeService.java

@@ -0,0 +1,49 @@
+package com.persagy.dc.define.service;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.persagy.dc.define.entity.ObjectType;
+
+import java.util.List;
+
+/**
+ * 对象类型 接口
+ * @author Charlie Yu
+ * @date 2021-06-25
+ */
+public interface IObjectTypeService {
+
+    /**
+     * 按条件查询
+     * @param queryWrapper 查询条件
+     * @return 列表
+     */
+    List<ObjectType> queryByCondition(Wrapper<ObjectType> queryWrapper);
+
+    /**
+     * 按条件查询
+     * @param page 分页条件
+     * @param queryWrapper 查询条件
+     * @return 分页结果
+     */
+    Page queryByCondition(Page page, Wrapper<ObjectType> queryWrapper);
+
+    /**
+     * 新增
+     * @param vo 待新增数据
+     * @return 新增后数据
+     */
+    ObjectType insert(ObjectType vo);
+
+    /**
+     * 修改
+     * @param vo 待修改数据
+     * @return 修改后数据
+     */
+    ObjectType update(ObjectType vo);
+
+    /**
+     * 删除
+     */
+    void delete(String id);
+}

+ 55 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/define/service/impl/ObjectTypeServiceImpl.java

@@ -0,0 +1,55 @@
+package com.persagy.dc.define.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.persagy.dc.common.constant.ValidEnum;
+import com.persagy.dc.define.dao.ObjectTypeMapper;
+import com.persagy.dc.define.entity.ObjectType;
+import com.persagy.dc.define.service.IObjectTypeService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 对象类型 实现类
+ * @author Charlie Yu
+ * @date 2021-06-25
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ObjectTypeServiceImpl implements IObjectTypeService {
+
+    @Resource
+    private ObjectTypeMapper dao;
+
+    @Override
+    public List<ObjectType> queryByCondition(Wrapper<ObjectType> queryWrapper) {
+        return dao.selectList(queryWrapper);
+    }
+
+    @Override
+    public Page queryByCondition(Page page, Wrapper<ObjectType> queryWrapper) {
+        return dao.selectPage(page, queryWrapper);
+    }
+
+    @Override
+    public ObjectType insert(ObjectType vo) {
+        dao.insert(vo);
+        return vo;
+    }
+
+    @Override
+    public ObjectType update(ObjectType vo) {
+        dao.updateById(vo);
+        return vo;
+    }
+
+    @Override
+    public void delete(String id) {
+        ObjectType vo = dao.selectById(id);
+        vo.setValid(ValidEnum.FALSE.getType());
+        dao.updateById(vo);
+    }
+}

+ 12 - 0
dc-common/src/main/java/com/persagy/dc/common/constant/CommonConstant.java

@@ -0,0 +1,12 @@
+package com.persagy.dc.common.constant;
+
+/**
+ * 通用常量
+ * @author Charlie Yu
+ * @date 2021-06-25
+ */
+public interface CommonConstant {
+
+    /** 默认ID */
+    String DEFAULT_ID = "0";
+}

+ 10 - 10
dc-common/src/main/java/com/persagy/dc/common/context/AppContext.java

@@ -15,16 +15,16 @@ public abstract class AppContext implements Serializable {
 
     /** 序列id */
     private static final long serialVersionUID = 697592850956445675L;
-//    /** 集团编码 */
-//    public static final String GROUP_CODE = "groupCode";
-//    /** 应用标识 */
-//    public static final String APP_ID = "appId";
-//    /** 用户ID */
-//    public static final String ACCOUNT_ID = "accountId";
-//    /** 项目ID */
-//    public static final String PROJECT_ID = "projectId";
-//    /** 数据源 */
-//    public static final String DATA_SOURCE_NAME = "dataSourceName";
+    /** 集团编码 */
+    public static final String GROUP_CODE = "groupCode";
+    /** 应用标识 */
+    public static final String APP_ID = "appId";
+    /** 用户ID */
+    public static final String ACCOUNT_ID = "accountId";
+    /** 项目ID */
+    public static final String PROJECT_ID = "projectId";
+    /** 数据源 */
+    public static final String DATA_SOURCE_NAME = "dataSourceName";
 
     /** 工厂对象 */
     private static IAppContextFactory factory = null;