教师端新增创建案例接口

master
whb
parent fe5b9cedc1
commit 1757d7d9f1

@ -14,10 +14,11 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import java.io.BufferedReader; import java.io.*;
import java.io.IOException; import java.nio.file.Files;
import java.io.InputStreamReader; import java.nio.file.Path;
import java.io.OutputStream; import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
public class JupyterHubTokenManager { public class JupyterHubTokenManager {
@ -128,7 +129,7 @@ public class JupyterHubTokenManager {
} }
// 启动用户的 Jupyter 服务器 // 启动用户的 Jupyter 服务器
public static void startServer(String username,String caseName) throws IOException { public static void startServer(String username,String caseName,Boolean flag) throws IOException {
// 启动服务器后将需要的文件复制到刚创建的容器内 模拟实现文件挂载 // 启动服务器后将需要的文件复制到刚创建的容器内 模拟实现文件挂载
CloseableHttpClient client = HttpClients.createDefault(); CloseableHttpClient client = HttpClients.createDefault();
@ -150,6 +151,28 @@ public class JupyterHubTokenManager {
System.out.println("服务成功的启动: " + username+"不需要挂载文件!"); System.out.println("服务成功的启动: " + username+"不需要挂载文件!");
return; return;
} }
//教师端,或者管理员新增
if (flag)
{
//1.创建案例名.ipynb文件移动到挂载目录下
//2.用户保存的案例, 创建案例时候保存调用接口 将案例放到/etc/jupyterhub/data/"+caseName目录下然后转为html
// 指定文件的路径
//复制文件并改名
String directory = "/etc/jupyterhub/admincreatefile/Untitled.ipynb";
String tofileName = "/home/"+username+"/"+caseName+".ipynb"; // 文件名
// 创建源文件路径
Path sourcePath = Paths.get(directory);
// 创建目标文件路径
Path destinationPath = Paths.get(tofileName);
// 复制文件并重命名
Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING,StandardCopyOption.COPY_ATTRIBUTES);
return;
}
//需要挂载的文件 //需要挂载的文件
String path = "/etc/jupyterhub/data/"+caseName+"/."; String path = "/etc/jupyterhub/data/"+caseName+"/.";

@ -3,6 +3,9 @@ package com.sztzjy.financial_bigdata.controller.stu;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.sztzjy.financial_bigdata.annotation.AnonymousAccess; import com.sztzjy.financial_bigdata.annotation.AnonymousAccess;
import com.sztzjy.financial_bigdata.entity.SysJupyterUserInfo;
import com.sztzjy.financial_bigdata.entity.SysJupyterUserInfoExample;
import com.sztzjy.financial_bigdata.mapper.SysJupyterUserInfoMapper;
import com.sztzjy.financial_bigdata.util.ResultEntity; import com.sztzjy.financial_bigdata.util.ResultEntity;
import com.sztzjy.financial_bigdata.util.file.IFileUtil; import com.sztzjy.financial_bigdata.util.file.IFileUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -21,9 +24,11 @@ import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.*; import java.io.*;
import java.util.List; import java.util.List;
@ -41,10 +46,100 @@ public class JupyterhubController {
@Autowired @Autowired
IFileUtil iFileUtil; IFileUtil iFileUtil;
@Resource
private SysJupyterUserInfoMapper sysJupyterUserInfoMapper;
@ApiOperation("创建案例保存时调用")
@GetMapping("/createCaseNameSave")
@AnonymousAccess
public ResultEntity createCaseNameSave(@ApiParam("案例名") String caseName) {
//用户保存的案例, 创建案例时候保存调用接口 将案例放到/etc/jupyterhub/data/"+caseName目录下然后转为html
SysJupyterUserInfoExample sysJupyterUserInfoExample = new SysJupyterUserInfoExample();
sysJupyterUserInfoExample.createCriteria().andCaseNameEqualTo(caseName);
List<SysJupyterUserInfo> jupyterUserInfoList = sysJupyterUserInfoMapper.selectByExample(sysJupyterUserInfoExample);
if (!jupyterUserInfoList.isEmpty())
{
//String name = "zy" + substring;
String jupyterUsername = jupyterUserInfoList.get(0).getJupyterUsername();
//将案例从 home/jupyterUsername 放到/etc/jupyterhub/data/"+caseName目录下
try {
String fileName = "/home/"+jupyterUsername+"/"+caseName+".ipynb";
String jupyterFilePath = "/etc/jupyterhub/data/"+caseName+"/";
File directory = new File(jupyterFilePath);
if (!directory.exists()) {
directory.mkdirs();
}
String[] command = { "cp", fileName ,jupyterFilePath};
// 创建一个新的进程来执行Python代码
Process process = Runtime.getRuntime().exec(command);
// 等待进程执行完成
int exitCode = process.waitFor();
if (exitCode == 0) {
// 执行成功输出Python代码的结果
//System.out.println("文件挂载成功!");
// System.out.println("文件同步");
//讲文件转为HTML
// 创建文件输入流
File file = new File(fileName);
FileInputStream input = new FileInputStream(file);
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int bytesRead;
// 将文件内容读取到 ByteArrayOutputStream 中
while ((bytesRead = input.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
}
// 转换为字节数组
byte[] fileBytes = output.toByteArray();
// 使用 MockMultipartFile 转换
MultipartFile multipartFile = new MockMultipartFile(
file.getName(),
file.getName(),
"application/octet-stream", // 这里你可以根据实际情况设置 MIME 类型
fileBytes
);
input.close(); // 关闭输入流
output.close(); // 关闭输出流
;
uploadFileByIpynb(multipartFile,caseName,false);
return new ResultEntity(HttpStatus.OK);
} else {
// 执行失败,输出错误信息
System.out.println("文件同步失败");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
return new ResultEntity<>(HttpStatus.BAD_REQUEST,"案例创建异常!");
}
@ApiOperation("创建容器") @ApiOperation("创建容器")
@GetMapping("/jumpJupyerHub") @GetMapping("/jumpJupyerHub")
@AnonymousAccess @AnonymousAccess
public ResultEntity jumpJupyerHub(@ApiParam("案例名") String caseName) { public ResultEntity jumpJupyerHub(@ApiParam("案例名") String caseName,
@RequestParam(required = false,defaultValue = "false")Boolean flag) {
String username = IdUtil.fastSimpleUUID(); String username = IdUtil.fastSimpleUUID();
String substring = username.substring(2, 9); String substring = username.substring(2, 9);
@ -53,7 +148,16 @@ public class JupyterhubController {
try { try {
JupyterHubTokenManager.createUser(name); JupyterHubTokenManager.createUser(name);
JupyterHubTokenManager.startServer(name, caseName); JupyterHubTokenManager.startServer(name, caseName,flag);
if (flag)
{
SysJupyterUserInfo sysJupyterUserInfo = new SysJupyterUserInfo();
sysJupyterUserInfo.setCaseName(caseName);
sysJupyterUserInfo.setJupyterUsername(name);
sysJupyterUserInfo.setId(IdUtil.simpleUUID());
sysJupyterUserInfoMapper.insert(sysJupyterUserInfo);
}
// System.out.println("启动服务!"); // System.out.println("启动服务!");
String url = JupyterHubTokenManager.generateToken(name); String url = JupyterHubTokenManager.generateToken(name);
return new ResultEntity<>(HttpStatus.OK, "容器创建成功!", url); return new ResultEntity<>(HttpStatus.OK, "容器创建成功!", url);
@ -64,6 +168,9 @@ public class JupyterhubController {
} }
//创建案例老师那边打开生成一个案例名相同的ipynb文件为空案例,编辑后保存找到挂载文件下目录调用ipynb文件接口
/** /**
* 1. * 1.
@ -284,15 +391,21 @@ public class JupyterhubController {
@ApiOperation("超管端或者教师端上传ipynb文件") @ApiOperation("超管端或者教师端上传ipynb文件")
@PostMapping("/uploadFileByIpynb") @PostMapping("/uploadFileByIpynb")
@AnonymousAccess @AnonymousAccess
public ResultEntity uploadFileByIpynb(@RequestPart @ApiParam("文件") MultipartFile file, @ApiParam("案例名") String caseName) { public ResultEntity uploadFileByIpynb(@RequestPart @ApiParam("文件") MultipartFile file, @ApiParam("案例名") String caseName,
@RequestParam(required = false,defaultValue = "true") Boolean flag) {
String filepath = "/etc/jupyterhub/data/" + caseName; String newIpynb = null;
iFileUtil.uploadResource(file, filepath, caseName); newIpynb = "/etc/jupyterhub/data/"+caseName+"/"+ caseName + ".ipynb";
if (flag)
{
String filepath = "/etc/jupyterhub/data/" + caseName;
iFileUtil.uploadResource(file, filepath, caseName);
newIpynb = "/etc/jupyterhub/data/" + caseName + ".ipynb";
}
//上传之后转换html到前端展示 //上传之后转换html到前端展示
String newIpynb = "/etc/jupyterhub/data/" + caseName + ".ipynb";
String htmlIpynb = "/etc/jupyterhub/html/" + caseName + ".html"; String htmlIpynb = "/etc/jupyterhub/html/" + caseName + ".html";
@ -360,6 +473,7 @@ public class JupyterhubController {
// Use ByteArrayBody with proper encoding for the file name // Use ByteArrayBody with proper encoding for the file name
ByteArrayBody byteArrayBody = new ByteArrayBody(fileBytes, file.getOriginalFilename()); ByteArrayBody byteArrayBody = new ByteArrayBody(fileBytes, file.getOriginalFilename());
builder.addPart("file", byteArrayBody); builder.addPart("file", byteArrayBody);
builder.addTextBody("caseName", caseName, ContentType.TEXT_PLAIN.withCharset("UTF-8")); builder.addTextBody("caseName", caseName, ContentType.TEXT_PLAIN.withCharset("UTF-8"));
builder.setMode(HttpMultipartMode.RFC6532);//解决文件名乱码问题 builder.setMode(HttpMultipartMode.RFC6532);//解决文件名乱码问题

@ -0,0 +1,54 @@
package com.sztzjy.financial_bigdata.entity;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
/**
*
* @author xcj
* sys_jupyter_userinfo
*/
public class SysJupyterUserInfo {
private String id;
@ApiModelProperty("用户名")
private String jupyterUsername;
@ApiModelProperty("案例名")
private String caseName;
@ApiModelProperty("创建时间")
private Date createTime;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id == null ? null : id.trim();
}
public String getJupyterUsername() {
return jupyterUsername;
}
public void setJupyterUsername(String jupyterUsername) {
this.jupyterUsername = jupyterUsername == null ? null : jupyterUsername.trim();
}
public String getCaseName() {
return caseName;
}
public void setCaseName(String caseName) {
this.caseName = caseName == null ? null : caseName.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}

@ -0,0 +1,470 @@
package com.sztzjy.financial_bigdata.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class SysJupyterUserInfoExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public SysJupyterUserInfoExample() {
oredCriteria = new ArrayList<>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(String value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(String value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(String value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(String value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(String value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(String value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdLike(String value) {
addCriterion("id like", value, "id");
return (Criteria) this;
}
public Criteria andIdNotLike(String value) {
addCriterion("id not like", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<String> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<String> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(String value1, String value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(String value1, String value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andJupyterUsernameIsNull() {
addCriterion("jupyter_username is null");
return (Criteria) this;
}
public Criteria andJupyterUsernameIsNotNull() {
addCriterion("jupyter_username is not null");
return (Criteria) this;
}
public Criteria andJupyterUsernameEqualTo(String value) {
addCriterion("jupyter_username =", value, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameNotEqualTo(String value) {
addCriterion("jupyter_username <>", value, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameGreaterThan(String value) {
addCriterion("jupyter_username >", value, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameGreaterThanOrEqualTo(String value) {
addCriterion("jupyter_username >=", value, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameLessThan(String value) {
addCriterion("jupyter_username <", value, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameLessThanOrEqualTo(String value) {
addCriterion("jupyter_username <=", value, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameLike(String value) {
addCriterion("jupyter_username like", value, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameNotLike(String value) {
addCriterion("jupyter_username not like", value, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameIn(List<String> values) {
addCriterion("jupyter_username in", values, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameNotIn(List<String> values) {
addCriterion("jupyter_username not in", values, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameBetween(String value1, String value2) {
addCriterion("jupyter_username between", value1, value2, "jupyterUsername");
return (Criteria) this;
}
public Criteria andJupyterUsernameNotBetween(String value1, String value2) {
addCriterion("jupyter_username not between", value1, value2, "jupyterUsername");
return (Criteria) this;
}
public Criteria andCaseNameIsNull() {
addCriterion("case_name is null");
return (Criteria) this;
}
public Criteria andCaseNameIsNotNull() {
addCriterion("case_name is not null");
return (Criteria) this;
}
public Criteria andCaseNameEqualTo(String value) {
addCriterion("case_name =", value, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameNotEqualTo(String value) {
addCriterion("case_name <>", value, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameGreaterThan(String value) {
addCriterion("case_name >", value, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameGreaterThanOrEqualTo(String value) {
addCriterion("case_name >=", value, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameLessThan(String value) {
addCriterion("case_name <", value, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameLessThanOrEqualTo(String value) {
addCriterion("case_name <=", value, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameLike(String value) {
addCriterion("case_name like", value, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameNotLike(String value) {
addCriterion("case_name not like", value, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameIn(List<String> values) {
addCriterion("case_name in", values, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameNotIn(List<String> values) {
addCriterion("case_name not in", values, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameBetween(String value1, String value2) {
addCriterion("case_name between", value1, value2, "caseName");
return (Criteria) this;
}
public Criteria andCaseNameNotBetween(String value1, String value2) {
addCriterion("case_name not between", value1, value2, "caseName");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

@ -0,0 +1,32 @@
package com.sztzjy.financial_bigdata.mapper;
import com.sztzjy.financial_bigdata.entity.SysJupyterUserInfo;
import com.sztzjy.financial_bigdata.entity.SysJupyterUserInfoExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface SysJupyterUserInfoMapper {
long countByExample(SysJupyterUserInfoExample example);
int deleteByExample(SysJupyterUserInfoExample example);
int deleteByPrimaryKey(String id);
int insert(SysJupyterUserInfo record);
int insertSelective(SysJupyterUserInfo record);
List<SysJupyterUserInfo> selectByExample(SysJupyterUserInfoExample example);
SysJupyterUserInfo selectByPrimaryKey(String id);
int updateByExampleSelective(@Param("record") SysJupyterUserInfo record, @Param("example") SysJupyterUserInfoExample example);
int updateByExample(@Param("record") SysJupyterUserInfo record, @Param("example") SysJupyterUserInfoExample example);
int updateByPrimaryKeySelective(SysJupyterUserInfo record);
int updateByPrimaryKey(SysJupyterUserInfo record);
}

@ -0,0 +1,196 @@
<?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">
<mapper namespace="com.sztzjy.financial_bigdata.mapper.SysJupyterUserInfoMapper">
<resultMap id="BaseResultMap" type="com.sztzjy.financial_bigdata.entity.SysJupyterUserInfo">
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="jupyter_username" jdbcType="VARCHAR" property="jupyterUsername" />
<result column="case_name" jdbcType="VARCHAR" property="caseName" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, jupyter_username, case_name, create_time
</sql>
<select id="selectByExample" parameterType="com.sztzjy.financial_bigdata.entity.SysJupyterUserInfoExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from sys_jupyter_userinfo
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from sys_jupyter_userinfo
where id = #{id,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from sys_jupyter_userinfo
where id = #{id,jdbcType=VARCHAR}
</delete>
<delete id="deleteByExample" parameterType="com.sztzjy.financial_bigdata.entity.SysJupyterUserInfoExample">
delete from sys_jupyter_userinfo
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.sztzjy.financial_bigdata.entity.SysJupyterUserInfo">
insert into sys_jupyter_userinfo (id, jupyter_username, case_name,
create_time)
values (#{id,jdbcType=VARCHAR}, #{jupyterUsername,jdbcType=VARCHAR}, #{caseName,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.financial_bigdata.entity.SysJupyterUserInfo">
insert into sys_jupyter_userinfo
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="jupyterUsername != null">
jupyter_username,
</if>
<if test="caseName != null">
case_name,
</if>
<if test="createTime != null">
create_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=VARCHAR},
</if>
<if test="jupyterUsername != null">
#{jupyterUsername,jdbcType=VARCHAR},
</if>
<if test="caseName != null">
#{caseName,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.sztzjy.financial_bigdata.entity.SysJupyterUserInfoExample" resultType="java.lang.Long">
select count(*) from sys_jupyter_userinfo
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update sys_jupyter_userinfo
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=VARCHAR},
</if>
<if test="record.jupyterUsername != null">
jupyter_username = #{record.jupyterUsername,jdbcType=VARCHAR},
</if>
<if test="record.caseName != null">
case_name = #{record.caseName,jdbcType=VARCHAR},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update sys_jupyter_userinfo
set id = #{record.id,jdbcType=VARCHAR},
jupyter_username = #{record.jupyterUsername,jdbcType=VARCHAR},
case_name = #{record.caseName,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.sztzjy.financial_bigdata.entity.SysJupyterUserInfo">
update sys_jupyter_userinfo
<set>
<if test="jupyterUsername != null">
jupyter_username = #{jupyterUsername,jdbcType=VARCHAR},
</if>
<if test="caseName != null">
case_name = #{caseName,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.sztzjy.financial_bigdata.entity.SysJupyterUserInfo">
update sys_jupyter_userinfo
set jupyter_username = #{jupyterUsername,jdbcType=VARCHAR},
case_name = #{caseName,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>
Loading…
Cancel
Save