Commit 0218aadd authored by 王锦盛's avatar 王锦盛

模型属性 增删改查接口

parent 90f5a895
package com.pms.ocp.common.handler;
import org.apache.ibatis.type.LocalDateTimeTypeHandler;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
/**
* @Auther: wangjian
* @Date: 2022/3/10 10:10
* @Description:时间类型处理器
*/
public class MYLocalDateTimeTypeHandler extends LocalDateTimeTypeHandler {
// @Override
// public LocalDateTime getNullableResult(ResultSet rs, String columnName) throws SQLException {
// Timestamp timestamp = rs.getTimestamp(columnName);
// Long remindTime = timestamp.getTime();
// return LocalDateTime.ofEpochSecond(remindTime,0, ZoneOffset.ofHours(8));
// }
// @Override
// public LocalDateTime getResult(ResultSet rs, String columnName) throws SQLException {
// Object object = rs.getObject(columnName);
// System.out.println(object);
// if (object instanceof java.sql.Timestamp) {//在这里强行转换,将sql的时间转换为LocalDateTime
// //可以根据自己的需要进行转化
// return LocalDateTime.ofInstant(((Timestamp) object).toInstant(), ZoneOffset.ofHours(0));
// }
// return super.getResult(rs, columnName);
// }
@Override
public LocalDateTime getResult(ResultSet rs, String columnName) throws SQLException {
Object object = rs.getObject(columnName);
if (object == null) {
return null;
}
// System.out.println(object);
// 如有需要 在这里强行转换,将sql的时间转换为LocalDateTime
if (object instanceof java.sql.Timestamp) {
//可以根据自己的需要进行转化
return LocalDateTime.ofInstant(((Timestamp) object).toInstant(), ZoneOffset.ofHours(8));
}
return super.getResult(rs, columnName);
}
}
package com.pms.ocp.common.handler;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;
import org.postgresql.util.PGTimestamp;
import java.sql.*;
import java.time.LocalDateTime;
/**
* @Auther: wangjian
* @Date: 2022/3/10 09:43
* @Description:
*/
@MappedTypes({LocalDateTime.class})
@MappedJdbcTypes({JdbcType.OTHER})
public class TimestampTypeHandler extends BaseTypeHandler {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException {
Timestamp p = null;
if (parameter != null) {
if (parameter instanceof LocalDateTime) {
PGTimestamp.valueOf(LocalDateTime.now());
p = PGTimestamp.valueOf((LocalDateTime) parameter);
}
ps.setObject(i, p);
}
}
/**
* Gets the nullable result.
*
* @param rs the rs
* @param columnName Colunm name, when configuration <code>useColumnLabel</code> is <code>false</code>
* @return the nullable result
* @throws SQLException the SQL exception
*/
@Override
public Object getNullableResult(ResultSet rs, String columnName) throws SQLException {
return toFill(rs.getObject(columnName));
}
@Override
public Object getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return toFill(rs.getObject(columnIndex));
}
@Override
public Object getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
return toFill(cs.getObject(columnIndex));
}
private Object toFill(Object v) {
if (v != null) {
if (v instanceof PGTimestamp) {
PGTimestamp p = (PGTimestamp) v;
return p.toLocalDateTime();
} else if (v instanceof Timestamp) {
return ((Timestamp) v).toLocalDateTime();
}
}
return v;
}
}
\ No newline at end of file
package com.pms.ocp.controller;
import com.pms.ocp.common.constants.CodeEnum;
import com.pms.ocp.model.dto.ModelPropertyDTO;
import com.pms.ocp.model.entity.Model;
import com.pms.ocp.model.entity.ModelNote;
import com.pms.ocp.model.entity.ModelProperty;
import com.pms.ocp.model.entity.ModelType;
import com.pms.ocp.model.vo.ResponseVO;
import com.pms.ocp.service.ModelGroupService;
......@@ -44,6 +46,9 @@ public class ModelBaseController {
@Autowired
private ModelNoteService modelNoteService;
@Autowired
private ModelPropertyService propertyService;
/**
* 模型分类-查询
*
......@@ -219,8 +224,10 @@ public class ModelBaseController {
*/
@ApiOperation("模型属性-增加")
@PostMapping("create/model/property")
public ResponseVO createModelProperty() {
return ResponseVO.ok();
public ResponseVO createModelProperty(@RequestBody ModelPropertyDTO modelPropertyDTO) {
Integer i = modelPropertyService.createModelProperty(modelPropertyDTO);
return ResponseVO.ok(i);
}
/**
......@@ -230,8 +237,9 @@ public class ModelBaseController {
*/
@ApiOperation("模型属性-查询")
@GetMapping("get/model/property")
public ResponseVO getModelProperty() {
return ResponseVO.ok(modelPropertyService.getModelProperty());
public ResponseVO getModelProperty(@RequestParam(value = "modelCode", required = false) String modelCode,
@RequestParam(value = "propCode", required = false) String propCode) {
return ResponseVO.ok(modelPropertyService.listModelProperty(modelCode, propCode));
}
/**
......@@ -241,19 +249,20 @@ public class ModelBaseController {
*/
@ApiOperation("模型属性-修改")
@PostMapping("/update/model/property")
public ResponseVO updateModelProperty() {
return ResponseVO.ok();
public ResponseVO updateModelProperty(@RequestBody ModelPropertyDTO modelPropertyDTO) {
return ResponseVO.ok(modelPropertyService.updateModelProperty(modelPropertyDTO));
}
/**
* 模型属性-删除
* 模型属性-删除/批量删除
*
* @return
*/
@ApiOperation("模型属性-删除")
@ApiOperation("模型属性-删除/批量删除")
@PostMapping("/delete/model/property")
public ResponseVO deleteModelProperty() {
return ResponseVO.ok();
public ResponseVO deleteModelProperty(@RequestBody List<String> ids) {
return ResponseVO.ok(modelPropertyService.deletePatchModelProperty(ids));
}
/**
......
......@@ -12,5 +12,5 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ModelPropertyMapper extends BaseMapper<Model> {
public interface ModelPropertyMapper extends BaseMapper<ModelProperty> {
}
package com.pms.ocp.model.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.sql.Date;
import java.time.LocalDateTime;
/**
* @Auther: wangjian
* @Date: 2022/2/22 16:40
* @Description:模型属性DTO对象
*/
@ApiModel(value = "模型属性DTO对象")
@Data
public class ModelPropertyDTO {
/**
* 模型属性编号
*/
@ApiModelProperty(value = "模型属性编号")
private String objId;
/**
* 模型编号
*/
@ApiModelProperty(value = "模型编号")
private String modelCode;
/**
* 属性名称
*/
@ApiModelProperty(value = "属性名称")
private String columnName;
/**
* 属性编码
*/
@ApiModelProperty(value = "属性编码")
private String propCode;
/**
* 属性描述
*/
@ApiModelProperty(value = "属性描述")
private String columnComments;
/**
* 数据类型
*/
@ApiModelProperty(value = "数据类型")
private Integer dataType;
/**
* 数据长度
*/
@ApiModelProperty(value = "数据长度")
private Integer dataLength;
/**
* 数据精度
*/
@ApiModelProperty(value = "数据精度")
private Integer dataScale;
/**
* 是否主键 0:否,1:是
*/
@ApiModelProperty(value = "是否主键 0:否,1:是")
private Integer boolPrimaryKey;
/**
* 是否必填 0:否,1:是
*/
@ApiModelProperty(value = "是否必填 0:否,1:是")
private Integer boolRequired;
/**
* 推广类型 0:统推,1:自建
*/
@ApiModelProperty(value = "推广类型 0:统推,1:自建")
private String propPromotion;
/**
* 显示顺序
*/
@ApiModelProperty(value = "显示顺序")
private Integer propOrderNo;
/**
* 提交人编号
*/
@ApiModelProperty(value = "提交人编号")
private String propUserId;
/**
* 提交人姓名
*/
@ApiModelProperty(value = "提交人姓名")
private String propUserName;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "创建时间")
private Date propCtime;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "修改时间")
private Date propMtime;
}
// 字段名称 字段描述 字段类型 允许为NULL 备注
// prop_id 主键 varchar(42) 否
// model_id 模型id varchar(42) 否
// column_name 属性名称 varchar(50) 否
// column_code 属性编码 varchar(42) 否
// column_comments 属性描述 varchar(50) 否
// data_type 数据类型 int4 否
// data_length 数据长度 int4 是
// data_scale 数据精度 int4 是
// is_pk 是否主键 int4 否 0:否,1:是
// is_required 是否必填 int4 是 0:否,1:是
// prop_promotion 推广类型 int4 是 0:统推,1:自建
// company_id 省公司ID varchar(42) 是
// company_name 省公司名称 varchar(50) 是
// prop _dispidx 显示顺序 int4 否
// prop_user_id 提交人id varchar(42) 否
// prop_user_name 提交人姓名 varchar(64) 否
// prop_ctime 创建时间 timestamp(6) 否
// prop_mtime 修改时间 timestamp(6) 否
......@@ -3,9 +3,16 @@ package com.pms.ocp.model.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
/**
* @Auther: wangjian
......@@ -13,6 +20,7 @@ import lombok.NoArgsConstructor;
* @Description:模型属性对象
*/
@Data
@Accessors(chain = true)
@TableName("ocp_model_prop")
public class ModelProperty{
......@@ -45,41 +53,39 @@ public class ModelProperty{
/**
* 数据类型
*/
private String dataType;
private Integer dataType;
/**
* 数据长度
*/
private String dataLength;
private Integer dataLength;
/**
* 数据精度
*/
private String dataScale;
private Integer dataScale;
/**
* 是否主键
*/
@TableField(value = "is_pk")
private String boolPrimaryKey;
private Integer boolPrimaryKey;
/**
* 是否必填
*/
@TableField(value = "is_required")
private String boolRequired;
private Integer boolRequired;
/**
* 推广类型
*/
private String propPromotion;
/**
* 显示顺序
*/
private String propOrderNo;
private Integer propOrderNo;
/**
* 提交人id
......@@ -94,14 +100,21 @@ public class ModelProperty{
/**
* 创建时间
*/
@TableField(value = "prop_ctime")
private String prop_ctime;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
// @TableField()
// @TableField(typeHandler = TimestampTypeHandler.class)
private LocalDateTime propCtime;
/**
* 修改时间
*/
@TableField(value = "prop_mtime")
private String prop_mtime;
// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
// @TableField(typeHandler = TimestampTypeHandler.class)
private LocalDateTime propMtime;
}
// 字段名称 字段描述 字段类型 允许为NULL 备注
......
package com.pms.ocp.service;
import com.pms.ocp.model.dto.ModelPropertyDTO;
import com.pms.ocp.model.entity.ModelProperty;
import io.swagger.models.auth.In;
import java.util.List;
......@@ -14,26 +16,34 @@ public interface ModelPropertyService {
/**
* 创建模型属性
*
* @param modelProperty
* @param modelPropertyDTO
* @return
*/
Integer createModelProperty(ModelProperty modelProperty);
Integer createModelProperty(ModelPropertyDTO modelPropertyDTO);
/**
* 删除模型属性
*
* @param modelId
* @param modelCode
* @return
*/
Integer deleteModelProperty(String modelId);
Integer deleteModelProperty(String modelCode, String propCode);
/**
* 批量删除模型属性
*
* @param ids
* @return
*/
Integer deletePatchModelProperty(List<String> ids);
/**
* 更新模型属性
*
* @param modelProperty
* @param modelPropertyDTO
* @return
*/
Integer updateModelProperty(ModelProperty modelProperty);
Integer updateModelProperty(ModelPropertyDTO modelPropertyDTO);
/**
* 获取模型属性
......@@ -41,7 +51,7 @@ public interface ModelPropertyService {
* @param
* @return
*/
List<ModelProperty> getModelPropertyList();
List<ModelProperty> listModelProperty(String modelCode, String propCode);
/**
* 获取模型属性列表
......@@ -49,5 +59,5 @@ public interface ModelPropertyService {
* @param
* @return
*/
List<ModelProperty> getModelProperty();
ModelPropertyDTO getModelProperty();
}
package com.pms.ocp.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.pms.ocp.mapper.ModelPropertyMapper;
import com.pms.ocp.model.dto.ModelPropertyDTO;
import com.pms.ocp.model.entity.ModelProperty;
import com.pms.ocp.service.ModelPropertyService;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Date;
import java.time.LocalDateTime;
import java.util.List;
/**
......@@ -16,26 +25,69 @@ import java.util.List;
@Service
public class ModelPropertyServiceImpl implements ModelPropertyService {
// @Autowired
@Autowired
private ModelPropertyMapper modelPropertyMapper;
@Override
public Integer createModelProperty(ModelProperty modelProperty) {
return null;
public Integer createModelProperty(ModelPropertyDTO modelPropertyDTO) {
ModelProperty modelProperty = new ModelProperty();
BeanUtils.copyProperties(modelPropertyDTO, modelProperty);
modelProperty.setPropCtime(LocalDateTime.now());
return modelPropertyMapper.insert(modelProperty);
}
@Override
public Integer deleteModelProperty(String modelId) {
return null;
public Integer deleteModelProperty(String modelCode, String propCode) {
QueryWrapper<ModelProperty> queryWrapper = new QueryWrapper();
if (StringUtils.isNotEmpty(modelCode)) {
queryWrapper.lambda().eq(ModelProperty::getModelCode, modelCode);
}
if (StringUtils.isNotEmpty(propCode)) {
queryWrapper.lambda().eq(ModelProperty::getPropCode, propCode);
}
return modelPropertyMapper.delete(queryWrapper);
}
@Override
public Integer updateModelProperty(ModelProperty modelProperty) {
return null;
public Integer deletePatchModelProperty(List<String> ids) {
return modelPropertyMapper.deleteBatchIds(ids);
}
@Override
public List<ModelProperty> getModelPropertyList() {
return null;
public Integer updateModelProperty(ModelPropertyDTO modelPropertyDTO) {
ModelProperty modelProperty = new ModelProperty();
BeanUtils.copyProperties(modelPropertyDTO, modelProperty);
modelProperty.setPropMtime(LocalDateTime.now());
UpdateWrapper<ModelProperty> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda().eq(ModelProperty::getObjId, modelProperty.getObjId());
return modelPropertyMapper.update(modelProperty, updateWrapper);
}
@Override
public List<ModelProperty> listModelProperty(String modelCode, String propCode) {
QueryWrapper<ModelProperty> queryWrapper = new QueryWrapper();
if (StringUtils.isNotEmpty(modelCode)) {
queryWrapper.lambda().eq(ModelProperty::getModelCode, modelCode);
}
if (StringUtils.isNotEmpty(propCode)) {
queryWrapper.lambda().eq(ModelProperty::getPropCode, propCode);
}
return modelPropertyMapper.selectList(queryWrapper);
}
/**
......@@ -44,7 +96,7 @@ public class ModelPropertyServiceImpl implements ModelPropertyService {
* @return
*/
@Override
public List<ModelProperty> getModelProperty() {
public ModelPropertyDTO getModelProperty() {
QueryWrapper<ModelProperty> wrapper = new QueryWrapper<>();
return null;
}
......
package com.pms.ocp.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.pms.ocp.common.config.PageParam;
import com.pms.ocp.common.utils.RandomStringUtil;
import com.pms.ocp.mapper.OcpApiBaseMapper;
import com.pms.ocp.mapper.OcpApiTreeMapper;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment