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; package com.pms.ocp.controller;
import com.pms.ocp.common.constants.CodeEnum; 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.Model;
import com.pms.ocp.model.entity.ModelNote; 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.entity.ModelType;
import com.pms.ocp.model.vo.ResponseVO; import com.pms.ocp.model.vo.ResponseVO;
import com.pms.ocp.service.ModelGroupService; import com.pms.ocp.service.ModelGroupService;
...@@ -44,6 +46,9 @@ public class ModelBaseController { ...@@ -44,6 +46,9 @@ public class ModelBaseController {
@Autowired @Autowired
private ModelNoteService modelNoteService; private ModelNoteService modelNoteService;
@Autowired
private ModelPropertyService propertyService;
/** /**
* 模型分类-查询 * 模型分类-查询
* *
...@@ -219,8 +224,10 @@ public class ModelBaseController { ...@@ -219,8 +224,10 @@ public class ModelBaseController {
*/ */
@ApiOperation("模型属性-增加") @ApiOperation("模型属性-增加")
@PostMapping("create/model/property") @PostMapping("create/model/property")
public ResponseVO createModelProperty() { public ResponseVO createModelProperty(@RequestBody ModelPropertyDTO modelPropertyDTO) {
return ResponseVO.ok();
Integer i = modelPropertyService.createModelProperty(modelPropertyDTO);
return ResponseVO.ok(i);
} }
/** /**
...@@ -230,8 +237,9 @@ public class ModelBaseController { ...@@ -230,8 +237,9 @@ public class ModelBaseController {
*/ */
@ApiOperation("模型属性-查询") @ApiOperation("模型属性-查询")
@GetMapping("get/model/property") @GetMapping("get/model/property")
public ResponseVO getModelProperty() { public ResponseVO getModelProperty(@RequestParam(value = "modelCode", required = false) String modelCode,
return ResponseVO.ok(modelPropertyService.getModelProperty()); @RequestParam(value = "propCode", required = false) String propCode) {
return ResponseVO.ok(modelPropertyService.listModelProperty(modelCode, propCode));
} }
/** /**
...@@ -241,19 +249,20 @@ public class ModelBaseController { ...@@ -241,19 +249,20 @@ public class ModelBaseController {
*/ */
@ApiOperation("模型属性-修改") @ApiOperation("模型属性-修改")
@PostMapping("/update/model/property") @PostMapping("/update/model/property")
public ResponseVO updateModelProperty() { public ResponseVO updateModelProperty(@RequestBody ModelPropertyDTO modelPropertyDTO) {
return ResponseVO.ok();
return ResponseVO.ok(modelPropertyService.updateModelProperty(modelPropertyDTO));
} }
/** /**
* 模型属性-删除 * 模型属性-删除/批量删除
* *
* @return * @return
*/ */
@ApiOperation("模型属性-删除") @ApiOperation("模型属性-删除/批量删除")
@PostMapping("/delete/model/property") @PostMapping("/delete/model/property")
public ResponseVO deleteModelProperty() { public ResponseVO deleteModelProperty(@RequestBody List<String> ids) {
return ResponseVO.ok(); return ResponseVO.ok(modelPropertyService.deletePatchModelProperty(ids));
} }
/** /**
......
...@@ -12,5 +12,5 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -12,5 +12,5 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@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; ...@@ -3,9 +3,16 @@ package com.pms.ocp.model.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; 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.Data;
import lombok.NoArgsConstructor; import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
/** /**
* @Auther: wangjian * @Auther: wangjian
...@@ -13,6 +20,7 @@ import lombok.NoArgsConstructor; ...@@ -13,6 +20,7 @@ import lombok.NoArgsConstructor;
* @Description:模型属性对象 * @Description:模型属性对象
*/ */
@Data @Data
@Accessors(chain = true)
@TableName("ocp_model_prop") @TableName("ocp_model_prop")
public class ModelProperty{ public class ModelProperty{
...@@ -45,41 +53,39 @@ 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") @TableField(value = "is_pk")
private String boolPrimaryKey; private Integer boolPrimaryKey;
/** /**
* 是否必填 * 是否必填
*/ */
@TableField(value = "is_required") @TableField(value = "is_required")
private String boolRequired; private Integer boolRequired;
/** /**
* 推广类型 * 推广类型
*/ */
private String propPromotion; private String propPromotion;
/** /**
* 显示顺序 * 显示顺序
*/ */
private String propOrderNo; private Integer propOrderNo;
/** /**
* 提交人id * 提交人id
...@@ -94,14 +100,21 @@ public class ModelProperty{ ...@@ -94,14 +100,21 @@ public class ModelProperty{
/** /**
* 创建时间 * 创建时间
*/ */
@TableField(value = "prop_ctime") @JsonDeserialize(using = LocalDateTimeDeserializer.class)
private String prop_ctime; @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") // @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String prop_mtime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
// @TableField(typeHandler = TimestampTypeHandler.class)
private LocalDateTime propMtime;
} }
// 字段名称 字段描述 字段类型 允许为NULL 备注 // 字段名称 字段描述 字段类型 允许为NULL 备注
......
package com.pms.ocp.service; package com.pms.ocp.service;
import com.pms.ocp.model.dto.ModelPropertyDTO;
import com.pms.ocp.model.entity.ModelProperty; import com.pms.ocp.model.entity.ModelProperty;
import io.swagger.models.auth.In;
import java.util.List; import java.util.List;
...@@ -14,26 +16,34 @@ public interface ModelPropertyService { ...@@ -14,26 +16,34 @@ public interface ModelPropertyService {
/** /**
* 创建模型属性 * 创建模型属性
* *
* @param modelProperty * @param modelPropertyDTO
* @return * @return
*/ */
Integer createModelProperty(ModelProperty modelProperty); Integer createModelProperty(ModelPropertyDTO modelPropertyDTO);
/** /**
* 删除模型属性 * 删除模型属性
* *
* @param modelId * @param modelCode
* @return * @return
*/ */
Integer deleteModelProperty(String modelId); Integer deleteModelProperty(String modelCode, String propCode);
/**
* 批量删除模型属性
*
* @param ids
* @return
*/
Integer deletePatchModelProperty(List<String> ids);
/** /**
* 更新模型属性 * 更新模型属性
* *
* @param modelProperty * @param modelPropertyDTO
* @return * @return
*/ */
Integer updateModelProperty(ModelProperty modelProperty); Integer updateModelProperty(ModelPropertyDTO modelPropertyDTO);
/** /**
* 获取模型属性 * 获取模型属性
...@@ -41,7 +51,7 @@ public interface ModelPropertyService { ...@@ -41,7 +51,7 @@ public interface ModelPropertyService {
* @param * @param
* @return * @return
*/ */
List<ModelProperty> getModelPropertyList(); List<ModelProperty> listModelProperty(String modelCode, String propCode);
/** /**
* 获取模型属性列表 * 获取模型属性列表
...@@ -49,5 +59,5 @@ public interface ModelPropertyService { ...@@ -49,5 +59,5 @@ public interface ModelPropertyService {
* @param * @param
* @return * @return
*/ */
List<ModelProperty> getModelProperty(); ModelPropertyDTO getModelProperty();
} }
package com.pms.ocp.service.impl; package com.pms.ocp.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.model.entity.ModelProperty;
import com.pms.ocp.service.ModelPropertyService; 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 org.springframework.stereotype.Service;
import java.sql.Date;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -16,26 +25,69 @@ import java.util.List; ...@@ -16,26 +25,69 @@ import java.util.List;
@Service @Service
public class ModelPropertyServiceImpl implements ModelPropertyService { public class ModelPropertyServiceImpl implements ModelPropertyService {
// @Autowired @Autowired
private ModelPropertyMapper modelPropertyMapper;
@Override @Override
public Integer createModelProperty(ModelProperty modelProperty) { public Integer createModelProperty(ModelPropertyDTO modelPropertyDTO) {
return null;
ModelProperty modelProperty = new ModelProperty();
BeanUtils.copyProperties(modelPropertyDTO, modelProperty);
modelProperty.setPropCtime(LocalDateTime.now());
return modelPropertyMapper.insert(modelProperty);
} }
@Override @Override
public Integer deleteModelProperty(String modelId) { public Integer deleteModelProperty(String modelCode, String propCode) {
return null; 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 @Override
public Integer updateModelProperty(ModelProperty modelProperty) { public Integer deletePatchModelProperty(List<String> ids) {
return null; return modelPropertyMapper.deleteBatchIds(ids);
} }
@Override @Override
public List<ModelProperty> getModelPropertyList() { public Integer updateModelProperty(ModelPropertyDTO modelPropertyDTO) {
return null;
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 { ...@@ -44,7 +96,7 @@ public class ModelPropertyServiceImpl implements ModelPropertyService {
* @return * @return
*/ */
@Override @Override
public List<ModelProperty> getModelProperty() { public ModelPropertyDTO getModelProperty() {
QueryWrapper<ModelProperty> wrapper = new QueryWrapper<>(); QueryWrapper<ModelProperty> wrapper = new QueryWrapper<>();
return null; return null;
} }
......
package com.pms.ocp.service.impl; package com.pms.ocp.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.common.utils.RandomStringUtil;
import com.pms.ocp.mapper.OcpApiBaseMapper; import com.pms.ocp.mapper.OcpApiBaseMapper;
import com.pms.ocp.mapper.OcpApiTreeMapper; 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