Browse Source

Merge remote-tracking branch 'origin/master'

master
yanyan 2 months ago
parent
commit
2dbed7f28e
  1. 62
      src/main/java/com/xujie/modules/quickQuery/controller/QuickQueryFieldController.java
  2. 19
      src/main/java/com/xujie/modules/quickQuery/data/QuickQueryFieldData.java
  3. 45
      src/main/java/com/xujie/modules/quickQuery/entity/QuickQueryField.java
  4. 21
      src/main/java/com/xujie/modules/quickQuery/mapper/QuickQueryFieldMapper.java
  5. 19
      src/main/java/com/xujie/modules/quickQuery/service/QuickQueryFieldService.java
  6. 74
      src/main/java/com/xujie/modules/quickQuery/service/impl/QuickQueryFieldServiceImpl.java
  7. 27
      src/main/resources/mapper/quickQuery/QuickQueryFieldMapper.xml

62
src/main/java/com/xujie/modules/quickQuery/controller/QuickQueryFieldController.java

@ -0,0 +1,62 @@
package com.xujie.modules.quickQuery.controller;
import com.xujie.common.utils.R;
import com.xujie.modules.quickQuery.data.QuickQueryFieldData;
import com.xujie.modules.quickQuery.service.QuickQueryFieldService;
import com.xujie.modules.sys.controller.AbstractController;
import com.xujie.modules.sys.entity.SysUserEntity;
import org.apache.shiro.SecurityUtils;
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;
import java.util.List;
import java.util.Map;
/**
* 快捷查询字段配置接口 - rqrq
*/
@RestController
@RequestMapping("/quickQuery/field")
public class QuickQueryFieldController extends AbstractController {
@Autowired
private QuickQueryFieldService quickQueryFieldService;
/**
* tableId及可选 site加载可查询字段供快捷查询弹窗使用
*/
@PostMapping("/listByTableId")
public R listByTableId(@RequestBody QuickQueryFieldData query) {
List<QuickQueryFieldData> rows = quickQueryFieldService.listByTableId(
query.getTableId(), query.getSite());
return R.ok().put("rows", rows);
}
/**
* 维护新增或修改一条字段配置
*/
@PostMapping("/save")
public R save(@RequestBody QuickQueryFieldData data) {
SysUserEntity user = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
String op = user != null ? user.getUsername() : "system";
quickQueryFieldService.saveOrUpdateField(data, op);
return R.ok();
}
/**
* 维护删除
*/
@PostMapping("/delete")
public R delete(@RequestBody Map<String, Object> body) {
Object idObj = body == null ? null : body.get("id");
if (idObj == null) {
throw new RuntimeException("id 不能为空");
}
Long id = Long.valueOf(String.valueOf(idObj));
quickQueryFieldService.deleteById(id);
return R.ok();
}
}

19
src/main/java/com/xujie/modules/quickQuery/data/QuickQueryFieldData.java

@ -0,0 +1,19 @@
package com.xujie.modules.quickQuery.data;
import com.xujie.modules.quickQuery.entity.QuickQueryField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.Alias;
/**
* 快捷查询字段请求/展示 - rqrq
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Alias("QuickQueryFieldData")
public class QuickQueryFieldData extends QuickQueryField {
private Integer page;
private Integer limit;
}

45
src/main/java/com/xujie/modules/quickQuery/entity/QuickQueryField.java

@ -0,0 +1,45 @@
package com.xujie.modules.quickQuery.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* 快捷查询字段配置 - rqrq
*/
@Data
@TableName("srm_quick_query_field")
public class QuickQueryField {
@TableId(type = IdType.AUTO)
private Long id;
private String tableId;
private String fieldName;
private String fieldLabel;
/** NUMBER / TEXT / DATETIME */
private String dataType;
private Integer sortOrder;
private String site;
/** ACTIVE / INACTIVE */
private String status;
private String remark;
private String createdBy;
private Date createdDate;
private String updatedBy;
private Date updatedDate;
}

21
src/main/java/com/xujie/modules/quickQuery/mapper/QuickQueryFieldMapper.java

@ -0,0 +1,21 @@
package com.xujie.modules.quickQuery.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xujie.modules.quickQuery.data.QuickQueryFieldData;
import com.xujie.modules.quickQuery.entity.QuickQueryField;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 快捷查询字段配置 Mapper - rqrq
*/
@Mapper
public interface QuickQueryFieldMapper extends BaseMapper<QuickQueryField> {
/**
* 按表格编码拉取可查询字段启用按排序 - rqrq
*/
List<QuickQueryFieldData> listByTableId(@Param("tableId") String tableId, @Param("site") String site);
}

19
src/main/java/com/xujie/modules/quickQuery/service/QuickQueryFieldService.java

@ -0,0 +1,19 @@
package com.xujie.modules.quickQuery.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xujie.modules.quickQuery.data.QuickQueryFieldData;
import com.xujie.modules.quickQuery.entity.QuickQueryField;
import java.util.List;
/**
* 快捷查询字段配置 - rqrq
*/
public interface QuickQueryFieldService extends IService<QuickQueryField> {
List<QuickQueryFieldData> listByTableId(String tableId, String site);
void saveOrUpdateField(QuickQueryFieldData data, String operator);
void deleteById(Long id);
}

74
src/main/java/com/xujie/modules/quickQuery/service/impl/QuickQueryFieldServiceImpl.java

@ -0,0 +1,74 @@
package com.xujie.modules.quickQuery.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xujie.modules.quickQuery.data.QuickQueryFieldData;
import com.xujie.modules.quickQuery.entity.QuickQueryField;
import com.xujie.modules.quickQuery.mapper.QuickQueryFieldMapper;
import com.xujie.modules.quickQuery.service.QuickQueryFieldService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.Date;
import java.util.List;
/**
* 快捷查询字段配置实现 - rqrq
*/
@Service
public class QuickQueryFieldServiceImpl extends ServiceImpl<QuickQueryFieldMapper, QuickQueryField>
implements QuickQueryFieldService {
@Override
public List<QuickQueryFieldData> listByTableId(String tableId, String site) {
if (!StringUtils.hasText(tableId)) {
throw new RuntimeException("tableId 不能为空");
}
String siteParam = StringUtils.hasText(site) ? site.trim() : "";
return baseMapper.listByTableId(tableId.trim(), siteParam);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveOrUpdateField(QuickQueryFieldData data, String operator) {
if (!StringUtils.hasText(data.getTableId()) || !StringUtils.hasText(data.getFieldName())) {
throw new RuntimeException("tableId、fieldName 不能为空");
}
if (!StringUtils.hasText(data.getDataType())) {
throw new RuntimeException("dataType 不能为空");
}
String dt = data.getDataType().trim().toUpperCase();
if (!"NUMBER".equals(dt) && !"TEXT".equals(dt) && !"DATETIME".equals(dt)) {
throw new RuntimeException("dataType 仅支持 NUMBER、TEXT、DATETIME");
}
data.setDataType(dt);
if (data.getSortOrder() == null) {
data.setSortOrder(0);
}
if (!StringUtils.hasText(data.getSite())) {
data.setSite("");
}
if (!StringUtils.hasText(data.getStatus())) {
data.setStatus("ACTIVE");
}
Date now = new Date();
if (data.getId() == null) {
data.setCreatedBy(operator);
data.setCreatedDate(now);
baseMapper.insert(data);
} else {
data.setUpdatedBy(operator);
data.setUpdatedDate(now);
baseMapper.updateById(data);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteById(Long id) {
if (id == null) {
throw new RuntimeException("id 不能为空");
}
baseMapper.deleteById(id);
}
}

27
src/main/resources/mapper/quickQuery/QuickQueryFieldMapper.xml

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- rqrq - 快捷查询字段 -->
<mapper namespace="com.xujie.modules.quickQuery.mapper.QuickQueryFieldMapper">
<select id="listByTableId" resultType="QuickQueryFieldData">
SELECT
id,
table_id AS tableId,
field_name AS fieldName,
field_label AS fieldLabel,
data_type AS dataType,
sort_order AS sortOrder,
site,
status,
remark,
created_by AS createdBy,
created_date AS createdDate,
updated_by AS updatedBy,
updated_date AS updatedDate
FROM srm_quick_query_field
WHERE table_id = #{tableId}
AND status = N'ACTIVE'
AND (site = N'' OR site = #{site})
ORDER BY sort_order ASC, id ASC
</select>
</mapper>
Loading…
Cancel
Save