Commit 8f6ecebe authored by 周昊's avatar 周昊

Merge branch 'develop' into 公司测试环境4.221

parents a86c6b4b ed3d37f0
...@@ -37,6 +37,15 @@ public class AlgorithmBaseController extends BaseController { ...@@ -37,6 +37,15 @@ public class AlgorithmBaseController extends BaseController {
return getDataTable(list); return getDataTable(list);
} }
/**
* 查询算法列表
*/
@PreAuthorize("@ss.hasPermi('system:algorithmBase:list')")
@GetMapping("/list/all")
public AjaxResult listAll(AlgorithmBase algorithmBase) {
return success(algorithmBaseService.selectAlgorithmBaseList(algorithmBase));
}
/** /**
* 获取算法详细信息 * 获取算法详细信息
*/ */
......
...@@ -48,6 +48,16 @@ public class AlgorithmCameraBaseController extends BaseController ...@@ -48,6 +48,16 @@ public class AlgorithmCameraBaseController extends BaseController
return getDataTable(list); return getDataTable(list);
} }
/**
* 查询算法摄像头列表
*/
@PreAuthorize("@ss.hasPermi('system:algorithmCamera:list')")
@GetMapping("/list/all")
public AjaxResult listAll(AlgorithmCameraBase algorithmCameraBase)
{
return success(algorithmCameraBaseService.selectAlgorithmCameraBaseList(algorithmCameraBase));
}
/** /**
* 获取算法摄像头详细信息 * 获取算法摄像头详细信息
*/ */
......
...@@ -3,6 +3,7 @@ package com.ruoyi.algorithm.controller; ...@@ -3,6 +3,7 @@ package com.ruoyi.algorithm.controller;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ruoyi.algorithm.domain.dto.AlgorithmSceneDetailsDto;
import com.ruoyi.algorithm.domain.dto.AlgorithmSceneListDto; import com.ruoyi.algorithm.domain.dto.AlgorithmSceneListDto;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -55,7 +56,7 @@ public class AlgorithmSceneBaseController extends BaseController ...@@ -55,7 +56,7 @@ public class AlgorithmSceneBaseController extends BaseController
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) public AjaxResult getInfo(@PathVariable("id") Long id)
{ {
return success(algorithmSceneBaseService.selectAlgorithmSceneBaseById(id)); return success(algorithmSceneBaseService.selectAlgorithmSceneDetailsDtoById(id));
} }
/** /**
...@@ -64,9 +65,10 @@ public class AlgorithmSceneBaseController extends BaseController ...@@ -64,9 +65,10 @@ public class AlgorithmSceneBaseController extends BaseController
@PreAuthorize("@ss.hasPermi('system:algorithmScene:add')") @PreAuthorize("@ss.hasPermi('system:algorithmScene:add')")
@Log(title = "算法场景", businessType = BusinessType.INSERT) @Log(title = "算法场景", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody AlgorithmSceneBase algorithmSceneBase) public AjaxResult add(@RequestBody AlgorithmSceneDetailsDto algorithmSceneDetailsDto)
{ {
return toAjax(algorithmSceneBaseService.insertAlgorithmSceneBase(algorithmSceneBase)); algorithmSceneDetailsDto.setCreateBy(getUsername());
return toAjax(algorithmSceneBaseService.insertAlgorithmSceneDetailsDto(algorithmSceneDetailsDto));
} }
/** /**
...@@ -75,9 +77,10 @@ public class AlgorithmSceneBaseController extends BaseController ...@@ -75,9 +77,10 @@ public class AlgorithmSceneBaseController extends BaseController
@PreAuthorize("@ss.hasPermi('system:algorithmScene:edit')") @PreAuthorize("@ss.hasPermi('system:algorithmScene:edit')")
@Log(title = "算法场景", businessType = BusinessType.UPDATE) @Log(title = "算法场景", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody AlgorithmSceneBase algorithmSceneBase) public AjaxResult edit(@RequestBody AlgorithmSceneDetailsDto algorithmSceneDetailsDto)
{ {
return toAjax(algorithmSceneBaseService.updateAlgorithmSceneBase(algorithmSceneBase)); algorithmSceneDetailsDto.setUpdateBy(getUsername());
return toAjax(algorithmSceneBaseService.updateAlgorithmSceneDetailsDto(algorithmSceneDetailsDto));
} }
/** /**
......
...@@ -28,6 +28,10 @@ public class AlgorithmScenePiece extends BaseEntity ...@@ -28,6 +28,10 @@ public class AlgorithmScenePiece extends BaseEntity
@Excel(name = "算法块参数值") @Excel(name = "算法块参数值")
private String variableValue; private String variableValue;
/** 排序 */
@Excel(name = "排序")
private Long sort;
public void setSceneId(Long sceneId) public void setSceneId(Long sceneId)
{ {
this.sceneId = sceneId; this.sceneId = sceneId;
...@@ -65,6 +69,14 @@ public class AlgorithmScenePiece extends BaseEntity ...@@ -65,6 +69,14 @@ public class AlgorithmScenePiece extends BaseEntity
return variableValue; return variableValue;
} }
public Long getSort() {
return sort;
}
public void setSort(Long sort) {
this.sort = sort;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
......
package com.ruoyi.algorithm.domain.dto;
import lombok.Data;
import java.util.List;
/**
* @author 周昊
* @desc ...
* @date 2023-05-15 17:35:21
*/
@Data
public class AlgorithmPieceDetailsDto {
/** 主键id */
private Long id;
/** 算法块名 */
private String pieceName;
/** 算法块参数 */
private List<AlgorithmPieceVariableDetailsDto> variables;
/** 排序 */
private Long sort;
}
package com.ruoyi.algorithm.domain.dto;
import lombok.Data;
/**
* @author 周昊
* @desc ...
* @date 2023-05-16 10:07:12
*/
@Data
public class AlgorithmPieceVariableDetailsDto {
/**
* 算法块主键id
*/
private Long algorithmPieceBaseId;
/**
* 参数唯一标识
*/
private String variableKey;
/**
* 参数名称
*/
private String variableName;
/**
* 参数类型
*/
private String variableType;
/**
* 参数值
*/
private String variableValue;
}
package com.ruoyi.algorithm.domain.dto;
import lombok.Data;
import java.util.List;
@Data
public class AlgorithmSceneDetailsDto {
/**
* 主键id
*/
private Long id;
/**
* 场景名
*/
private String sceneName;
/**
* 算法id
*/
private Long algorithmId;
/**
* 处理的预警类型
*/
private String alarmTypes;
/**
* 每秒帧数(ai算法启动参数)
*/
private Long frameSecond;
/**
* 摄像头id列表
*/
private String cameraIdList;
private List<AlgorithmPieceDetailsDto> pieceDtos;
/**
* 创建者
*/
private String createBy;
/**
* 更新者
*/
private String updateBy;
}
...@@ -2,6 +2,8 @@ package com.ruoyi.algorithm.mapper; ...@@ -2,6 +2,8 @@ package com.ruoyi.algorithm.mapper;
import java.util.List; import java.util.List;
import com.ruoyi.algorithm.domain.AlgorithmScenePiece; import com.ruoyi.algorithm.domain.AlgorithmScenePiece;
import com.ruoyi.algorithm.domain.dto.AlgorithmPieceDetailsDto;
import org.apache.ibatis.annotations.Param;
/** /**
* 场景算法块Mapper接口 * 场景算法块Mapper接口
...@@ -58,4 +60,6 @@ public interface AlgorithmScenePieceMapper ...@@ -58,4 +60,6 @@ public interface AlgorithmScenePieceMapper
* @return 结果 * @return 结果
*/ */
public int deleteAlgorithmScenePieceBySceneIds(Long[] sceneIds); public int deleteAlgorithmScenePieceBySceneIds(Long[] sceneIds);
List<AlgorithmPieceDetailsDto> selectAlgorithmPieceDetailsDtoBySceneId(@Param("sceneId") Long sceneId);
} }
...@@ -2,6 +2,7 @@ package com.ruoyi.algorithm.service; ...@@ -2,6 +2,7 @@ package com.ruoyi.algorithm.service;
import java.util.List; import java.util.List;
import com.ruoyi.algorithm.domain.AlgorithmSceneBase; import com.ruoyi.algorithm.domain.AlgorithmSceneBase;
import com.ruoyi.algorithm.domain.dto.AlgorithmSceneDetailsDto;
import com.ruoyi.algorithm.domain.dto.AlgorithmSceneListDto; import com.ruoyi.algorithm.domain.dto.AlgorithmSceneListDto;
/** /**
...@@ -63,4 +64,10 @@ public interface IAlgorithmSceneBaseService ...@@ -63,4 +64,10 @@ public interface IAlgorithmSceneBaseService
List<AlgorithmSceneListDto> selectAlgorithmSceneListDto(AlgorithmSceneBase algorithmSceneBase); List<AlgorithmSceneListDto> selectAlgorithmSceneListDto(AlgorithmSceneBase algorithmSceneBase);
int editStatus(AlgorithmSceneBase algorithmSceneBase); int editStatus(AlgorithmSceneBase algorithmSceneBase);
AlgorithmSceneDetailsDto selectAlgorithmSceneDetailsDtoById(Long id);
int insertAlgorithmSceneDetailsDto(AlgorithmSceneDetailsDto algorithmSceneDetailsDto);
int updateAlgorithmSceneDetailsDto(AlgorithmSceneDetailsDto algorithmSceneDetailsDto);
} }
...@@ -2,6 +2,7 @@ package com.ruoyi.algorithm.service; ...@@ -2,6 +2,7 @@ package com.ruoyi.algorithm.service;
import java.util.List; import java.util.List;
import com.ruoyi.algorithm.domain.AlgorithmScenePiece; import com.ruoyi.algorithm.domain.AlgorithmScenePiece;
import com.ruoyi.algorithm.domain.dto.AlgorithmPieceDetailsDto;
/** /**
* 场景算法块Service接口 * 场景算法块Service接口
...@@ -58,4 +59,6 @@ public interface IAlgorithmScenePieceService ...@@ -58,4 +59,6 @@ public interface IAlgorithmScenePieceService
* @return 结果 * @return 结果
*/ */
public int deleteAlgorithmScenePieceBySceneId(Long sceneId); public int deleteAlgorithmScenePieceBySceneId(Long sceneId);
List<AlgorithmPieceDetailsDto> selectAlgorithmPieceDetailsDtoBySceneId(Long id);
} }
...@@ -2,17 +2,22 @@ package com.ruoyi.algorithm.service.impl; ...@@ -2,17 +2,22 @@ package com.ruoyi.algorithm.service.impl;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.ruoyi.algorithm.domain.AlgorithmScenePiece;
import com.ruoyi.algorithm.domain.dto.AlgorithmSceneDetailsDto;
import com.ruoyi.algorithm.domain.dto.AlgorithmSceneListDto; import com.ruoyi.algorithm.domain.dto.AlgorithmSceneListDto;
import com.ruoyi.algorithm.service.IAlgorithmScenePieceService;
import com.ruoyi.algorithm.service.IAlgorithmSceneStatusService; import com.ruoyi.algorithm.service.IAlgorithmSceneStatusService;
import com.ruoyi.algorithm.utils.FlinkRestApiUtil; import com.ruoyi.algorithm.utils.FlinkRestApiUtil;
import com.ruoyi.common.config.AiRestApiConfig; import com.ruoyi.common.config.AiRestApiConfig;
import com.ruoyi.common.config.FlinkConfig; import com.ruoyi.common.config.FlinkConfig;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.bean.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.algorithm.mapper.AlgorithmSceneBaseMapper; import com.ruoyi.algorithm.mapper.AlgorithmSceneBaseMapper;
...@@ -35,6 +40,9 @@ public class AlgorithmSceneBaseServiceImpl implements IAlgorithmSceneBaseService ...@@ -35,6 +40,9 @@ public class AlgorithmSceneBaseServiceImpl implements IAlgorithmSceneBaseService
@Resource @Resource
private IAlgorithmSceneStatusService algorithmSceneStatusService; private IAlgorithmSceneStatusService algorithmSceneStatusService;
@Resource
private IAlgorithmScenePieceService algorithmScenePieceService;
/** /**
* 查询算法场景 * 查询算法场景
* *
...@@ -138,6 +146,81 @@ public class AlgorithmSceneBaseServiceImpl implements IAlgorithmSceneBaseService ...@@ -138,6 +146,81 @@ public class AlgorithmSceneBaseServiceImpl implements IAlgorithmSceneBaseService
return 1; return 1;
} }
@Override
public AlgorithmSceneDetailsDto selectAlgorithmSceneDetailsDtoById(Long id) {
AlgorithmSceneBase algorithmSceneBase = algorithmSceneBaseMapper.selectAlgorithmSceneBaseById(id);
AlgorithmSceneDetailsDto algorithmSceneDetailsDto = new AlgorithmSceneDetailsDto();
BeanUtils.copyBeanProp(algorithmSceneDetailsDto, algorithmSceneBase);
algorithmSceneDetailsDto.setPieceDtos(algorithmScenePieceService.selectAlgorithmPieceDetailsDtoBySceneId(id));
return algorithmSceneDetailsDto;
}
@Override
public int insertAlgorithmSceneDetailsDto(AlgorithmSceneDetailsDto algorithmSceneDetailsDto) {
//新建场景
AlgorithmSceneBase algorithmSceneBase = new AlgorithmSceneBase();
BeanUtils.copyBeanProp(algorithmSceneBase, algorithmSceneDetailsDto);
int i = insertAlgorithmSceneBase(algorithmSceneBase);
//删除场景下算法块及参数数据
algorithmScenePieceService.deleteAlgorithmScenePieceBySceneId(algorithmSceneBase.getId());
//新建场景下算法块及参数
List<AlgorithmScenePiece> algorithmScenePieceList = algorithmSceneDetailsDto
.getPieceDtos()
.stream()
.flatMap(pieceDto -> pieceDto.getVariables()
.stream()
.map(variable -> {
AlgorithmScenePiece algorithmScenePiece = new AlgorithmScenePiece();
algorithmScenePiece.setSceneId(algorithmSceneBase.getId());
algorithmScenePiece.setPieceId(pieceDto.getId());
algorithmScenePiece.setVariableKey(variable.getVariableKey());
algorithmScenePiece.setVariableValue(variable.getVariableValue());
algorithmScenePiece.setSort(pieceDto.getSort());
return algorithmScenePiece;
})).collect(Collectors.toList());
for (AlgorithmScenePiece algorithmScenePiece : algorithmScenePieceList) {
algorithmScenePieceService.insertAlgorithmScenePiece(algorithmScenePiece);
}
return i;
}
@Override
public int updateAlgorithmSceneDetailsDto(AlgorithmSceneDetailsDto algorithmSceneDetailsDto) {
//更新场景
AlgorithmSceneBase algorithmSceneBase = new AlgorithmSceneBase();
BeanUtils.copyBeanProp(algorithmSceneBase, algorithmSceneDetailsDto);
int i = updateAlgorithmSceneBase(algorithmSceneBase);
//删除场景下算法块及参数数据
algorithmScenePieceService.deleteAlgorithmScenePieceBySceneId(algorithmSceneBase.getId());
//新建场景下算法块及参数
List<AlgorithmScenePiece> algorithmScenePieceList = algorithmSceneDetailsDto
.getPieceDtos()
.stream()
.flatMap(pieceDto -> pieceDto.getVariables()
.stream()
.map(variable -> {
AlgorithmScenePiece algorithmScenePiece = new AlgorithmScenePiece();
algorithmScenePiece.setSceneId(algorithmSceneBase.getId());
algorithmScenePiece.setPieceId(pieceDto.getId());
algorithmScenePiece.setVariableKey(variable.getVariableKey());
algorithmScenePiece.setVariableValue(variable.getVariableValue());
algorithmScenePiece.setSort(pieceDto.getSort());
return algorithmScenePiece;
})).collect(Collectors.toList());
for (AlgorithmScenePiece algorithmScenePiece : algorithmScenePieceList) {
algorithmScenePieceService.insertAlgorithmScenePiece(algorithmScenePiece);
}
return i;
}
private void sendAi(Long sceneId, String status) { private void sendAi(Long sceneId, String status) {
String statusKey; String statusKey;
//启动 //启动
......
package com.ruoyi.algorithm.service.impl; package com.ruoyi.algorithm.service.impl;
import java.util.List; import java.util.List;
import com.ruoyi.algorithm.domain.dto.AlgorithmPieceDetailsDto;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.algorithm.mapper.AlgorithmScenePieceMapper; import com.ruoyi.algorithm.mapper.AlgorithmScenePieceMapper;
...@@ -90,4 +92,9 @@ public class AlgorithmScenePieceServiceImpl implements IAlgorithmScenePieceServi ...@@ -90,4 +92,9 @@ public class AlgorithmScenePieceServiceImpl implements IAlgorithmScenePieceServi
{ {
return algorithmScenePieceMapper.deleteAlgorithmScenePieceBySceneId(sceneId); return algorithmScenePieceMapper.deleteAlgorithmScenePieceBySceneId(sceneId);
} }
@Override
public List<AlgorithmPieceDetailsDto> selectAlgorithmPieceDetailsDtoBySceneId(Long id) {
return algorithmScenePieceMapper.selectAlgorithmPieceDetailsDtoBySceneId(id);
}
} }
...@@ -70,7 +70,7 @@ spring: ...@@ -70,7 +70,7 @@ spring:
# redis 配置 # redis 配置
redis: redis:
# 地址 # 地址
host: localhost host: 192.168.4.221
# 端口,默认为6379 # 端口,默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引
......
...@@ -54,6 +54,7 @@ ...@@ -54,6 +54,7 @@
<if test="algorithmKey != null and algorithmKey != ''">and algorithm_key = #{algorithmKey}</if> <if test="algorithmKey != null and algorithmKey != ''">and algorithm_key = #{algorithmKey}</if>
<if test="sort != null ">and sort = #{sort}</if> <if test="sort != null ">and sort = #{sort}</if>
<if test="status != null and status != ''">and status = #{status}</if> <if test="status != null and status != ''">and status = #{status}</if>
and del_flag = '0'
</where> </where>
</select> </select>
......
...@@ -112,7 +112,7 @@ ...@@ -112,7 +112,7 @@
FIND_IN_SET( id, #{cameraIdList} ) FIND_IN_SET( id, #{cameraIdList} )
</select> </select>
<insert id="insertAlgorithmSceneBase" parameterType="AlgorithmSceneBase"> <insert id="insertAlgorithmSceneBase" parameterType="AlgorithmSceneBase" useGeneratedKeys="true" keyProperty="id">
insert into algorithm_scene_base insert into algorithm_scene_base
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if> <if test="id != null">id,</if>
......
...@@ -9,10 +9,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -9,10 +9,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="pieceId" column="piece_id" /> <result property="pieceId" column="piece_id" />
<result property="variableKey" column="variable_key" /> <result property="variableKey" column="variable_key" />
<result property="variableValue" column="variable_value" /> <result property="variableValue" column="variable_value" />
<result property="sort" column="sort" />
</resultMap>
<resultMap type="com.ruoyi.algorithm.domain.dto.AlgorithmPieceDetailsDto" id="AlgorithmPieceDetailsDtoResult">
<result property="id" column="piece_id" />
<result property="pieceName" column="piece_name" />
<result property="sort" column="sort" />
<collection property="variables" javaType="ArrayList" ofType="com.ruoyi.algorithm.domain.dto.AlgorithmPieceVariableDetailsDto">
<result property="algorithmPieceBaseId" column="piece_id" />
<result property="variableKey" column="variable_key" />
<result property="variableValue" column="variable_value" />
<result property="variableType" column="variable_type" />
<result property="variableName" column="variable_name" />
</collection>
</resultMap> </resultMap>
<sql id="selectAlgorithmScenePieceVo"> <sql id="selectAlgorithmScenePieceVo">
select scene_id, piece_id, variable_key, variable_value from algorithm_scene_piece select scene_id, piece_id, variable_key, variable_value,sort from algorithm_scene_piece
</sql> </sql>
<select id="selectAlgorithmScenePieceList" parameterType="AlgorithmScenePiece" resultMap="AlgorithmScenePieceResult"> <select id="selectAlgorithmScenePieceList" parameterType="AlgorithmScenePiece" resultMap="AlgorithmScenePieceResult">
...@@ -26,6 +40,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -26,6 +40,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectAlgorithmScenePieceVo"/> <include refid="selectAlgorithmScenePieceVo"/>
where scene_id = #{sceneId} where scene_id = #{sceneId}
</select> </select>
<select id="selectAlgorithmPieceDetailsDtoBySceneId" resultMap="AlgorithmPieceDetailsDtoResult">
SELECT
asp.piece_id,
apb.piece_name,
asp.sort,
asp.variable_key,
asp.variable_value,
apv.variable_name,
apv.variable_type
FROM
algorithm_scene_piece asp
LEFT JOIN algorithm_piece_base apb ON apb.id = asp.piece_id
LEFT JOIN algorithm_piece_variable apv ON apv.algorithm_piece_base_id = asp.piece_id
AND asp.variable_key = apv.variable_key
WHERE
asp.scene_id = #{sceneId}
</select>
<insert id="insertAlgorithmScenePiece" parameterType="AlgorithmScenePiece"> <insert id="insertAlgorithmScenePiece" parameterType="AlgorithmScenePiece">
insert into algorithm_scene_piece insert into algorithm_scene_piece
...@@ -34,12 +65,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -34,12 +65,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="pieceId != null">piece_id,</if> <if test="pieceId != null">piece_id,</if>
<if test="variableKey != null">variable_key,</if> <if test="variableKey != null">variable_key,</if>
<if test="variableValue != null">variable_value,</if> <if test="variableValue != null">variable_value,</if>
<if test="sort != null">sort,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="sceneId != null">#{sceneId},</if> <if test="sceneId != null">#{sceneId},</if>
<if test="pieceId != null">#{pieceId},</if> <if test="pieceId != null">#{pieceId},</if>
<if test="variableKey != null">#{variableKey},</if> <if test="variableKey != null">#{variableKey},</if>
<if test="variableValue != null">#{variableValue},</if> <if test="variableValue != null">#{variableValue},</if>
<if test="sort != null">#{sort},</if>
</trim> </trim>
</insert> </insert>
...@@ -49,6 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -49,6 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="pieceId != null">piece_id = #{pieceId},</if> <if test="pieceId != null">piece_id = #{pieceId},</if>
<if test="variableKey != null">variable_key = #{variableKey},</if> <if test="variableKey != null">variable_key = #{variableKey},</if>
<if test="variableValue != null">variable_value = #{variableValue},</if> <if test="variableValue != null">variable_value = #{variableValue},</if>
<if test="sort != null">sort = #{sort},</if>
</trim> </trim>
where scene_id = #{sceneId} where scene_id = #{sceneId}
</update> </update>
......
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