不废话,上代码:
controller如下:
/** * 上传附件 * @param request * @param baseBlob * @param response */ @RequestMapping(value="/uploadSeal",method=RequestMethod.POST) @ResponseBody public void addBaseBlob(HttpServletRequest request,Seal seal,HttpServletResponse response,@RequestParam(required=false) String sealId){ int flag=0; try { request.setCharacterEncoding("utf-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request; MultipartFile multipartFile = multipartRequest.getFile("file"); // 上传的文件名 //需要保存 String uploadFileName = multipartFile.getOriginalFilename(); // 获取文件后缀名 //需要保存 String fileType = StringUtils.substringAfterLast(uploadFileName, "."); if("PNG".equalsIgnoreCase(fileType)||"JPEG".equalsIgnoreCase(fileType)||"JPG".equalsIgnoreCase(fileType)){ if(multipartFile!=null&&!"".equals(multipartFile.getName())){ File file = new File(request.getSession().getServletContext() .getRealPath("WEB-INF"+File.separator+"upload"), multipartFile.getOriginalFilename()); // 判断文件夹是否存在,不存在则创建 if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } try { String userId=request.getParameter("userId"); FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), file); seal.setUpdateUser(((BaseUsers)request.getSession().getAttribute(WebConstants.CURRENT_USER)).getUserId()); seal.setUpdateTime(new Date()); seal.setSealImage(FileDigest.getBytesFromFile(file)); if(StringUtils.isNotBlank(sealId)){ seal.setId(sealId); flag = sealService.update(seal); }else{ flag=sealService.insert(seal); } } catch (IOException e) { e.printStackTrace(); flag=0; }finally{ file.delete(); } } response.setContentType("text/html;charset=utf-8;"); try { if(flag==1) response.getWriter().write("{success:true,msg:""+seal.getId()+""}"); else response.getWriter().write("{success:false,msg:"上传失败!"}"); } catch (IOException e) { e.printStackTrace(); }finally{ try { response.getWriter().flush(); response.getWriter().close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }else{ response.setContentType("text/html;charset=utf-8;"); try { response.getWriter().write("{success:false,msg:"格式不正确!"}"); response.getWriter().flush(); response.getWriter().close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
前台ext如下:
Ext.ns('Ext.seal')
Ext.seal.SealUploadWindow = Ext.extend(Ext.Window, {
store : null,
/* 保存路径 */
uploadUrl : null,
//grid : null,
title : '上传印章',
constructor : function(_config) {
Ext.apply(this, _config || {});
this.myform = new Ext.FormPanel({
fileUpload : true, // 默认为图片上传
id : Ext.id(),
baseCls : 'x-plain',// 基本效果为纯色效果
bodyStyle : 'padding-top:10px;padding-left:0px;',
closealbe : true,
// 里面组件的布局方式
// layout : 'fit',
height : 400,
items : [{
labeWidth : 80,
xtype : 'textfield',
name : 'file',
inputType : 'file',
allowBlank : false,
width : 200,
fieldLabel : '上传印章'
},{
xtype : 'textfield',
name : 'sealId',
hidden : true
}]
});
this.url = {
uploadUrl : ctx+'/seal/uploadSeal'
}
Ext.seal.SealUploadWindow.superclass.constructor.call(this, {
width : 350,
height : 150,
title : '上传印章',
frame : true,
// 可以关闭
closable : true,
// 关闭 按钮 销毁 窗口并销毁所以子控件。这使得Window对象和它的子控件不可 复用.
// 如果想复用Window, 设置
closeAction: 'hide' ,
//closeAction : 'close',
// 打开window页面在window页面加了个遮罩层
modal : true,
// 纯色效果
plain : true,
// 里面组件的布局方式
layout : 'fit',
items : [this.myform],
buttons : [{
text : '上传印章',
scope : this,
handler : this.uploadPhoto
}, {
text : '重置印章',
scope : this,
handler : function() {
this.myform.getForm().reset();
}
}, {
text : '关闭',
iconCls:'cancel',
scope : this,
handler : function() {
this.hide();
}
}]
});
},
// 提交表单
uploadPhoto : function() {
if (this.myform.getForm().isValid()) {
this.myform.getForm().submit({
url : this.url.uploadUrl,
method : 'post',
waitMsg : '印章上传中...',
scope : this,
success : function(form, action) {
Ext.Msg.alert('提示', '上传成功!', function() {
var sealId = action.result.msg;
this.myform.getForm().findField('sealId').setValue(sealId);
this.hide();
}, this);
},
failure : function(form, action) {
Ext.Msg.alert('提示', action.result.msg, function() {
}, this);
}
});
}
}
});
formpanel:
Ext.ns('Ext.seal');
Ext.seal.SealFormPanel = new Ext.extend(Ext.form.FormPanel, {
sealId:null,
constructor : function(_config) {
if (_config == null) {
_config = {};
}
this.imgBox = new Ext.BoxComponent({
xtype : 'box',
id : 'browseImage',
name : 'photopath',
anchor : '20%',
height : 120,
width : 240,
autoEl : {
tag : 'img',
src : '',
style : 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);',
complete : 'off'
}
});
this.store = new Ext.data.Store();
this.tempID = Ext.id();
this.labeID = Ext.id();
Ext.apply(this, _config);
this.contentPanelId = Ext.id();
Ext.seal.SealFormPanel.superclass.constructor.call(this, {
labelWidth : 80,
frame : true,
border : false,
bodyStyle : 'border:0px;',
defaults : {
bodyStyle : 'border:0px;',
width : 560
},
items : [{
layout : 'column',
xtype : 'fieldset',
title : '详细信息',
items : [{
columnWidth : .5,
defaults : {
// 设置默认类型
xtype : 'textfield',
// 自动调整宽度
anchor : '90%',
disabledClass : 'txtDisabled'
},
layout : 'form',
autoHeight : true,
// 分栏中的元素
items : [{
name : 'id',
xtype : 'textfield',
hidden : true
}, {
fieldLabel : '印章名称',
xtype : 'textfield',
name : 'sealName',
allowBlank : false,
blankText : '请输入印章名称'
}, {
fieldLabel : '备注',
xtype : 'textarea',
name : 'remark'
},{
xtype:'hidden',
name:'sealId'
}]
}, {
columnWidth : .5,
defaults : {
// 设置默认类型
xtype : 'textfield',
// 自动调整宽度
anchor : '90%',
disabledClass : 'txtDisabled'
},
layout : 'form',
autoHeight : true,
style : 'margin-left:20px',
// 分栏中的元素
items : [this.imgBox,{
xtype : 'button',
text : '上传印章',
allowBlank : false,
anchor : '20%',
scope:this,
handler : this.uploadWindow
}]
}]
}],
// items : [this.imgBox,{
// xtype : 'button',
// text : '上传印章',
// allowBlank : false,
// anchor : '20%',
// scope:this,
// handler : this.uploadWindow
// },{
// name : 'id',
// xtype : 'textfield',
// hidden : true
// }, {
// fieldLabel : '印章名称',
// xtype : 'textfield',
// name : 'sealName',
// allowBlank : false,
// blankText : '请输入印章名称'
// }, {
// fieldLabel : '备注',
// xtype : 'textarea',
// name : 'remark'
// },{
// xtype:'hidden',
// name:'sealId'
// }
// ]
});
},
uploadWindow : function (){
if (this.myUploadWin == null) {
this.myUploadWin = new Ext.seal.SealUploadWindow({
});
}
this.myUploadWin.on('show', function(win) {
win.myform.getForm().reset();
if(this.sealId){
win.myform.getForm().findField('sealId').setValue(this.sealId);
}
},
this);
this.myUploadWin.show();
this.myUploadWin.on('hide', function(win) {
var sealId2 = win.myform.getForm().findField('sealId').getValue();
this.getForm().findField('sealId').setValue(sealId2);
Ext.getCmp('browseImage').getEl().dom.src=ctx+"/seal/download?sealId="+sealId2+"&thisTime="+Date.parse(new Date());
},
this);
}
})
winpanel:
Ext.ns('Ext.seal');
Ext.seal.SealWin = Ext.extend(Ext.Window, {
store : null,
saveUrl : null,
sealId:null,
constructor : function(config) {
if (config == null) {
config = {}
}
Ext.apply(this, config);
this.formPanel = new Ext.seal.SealFormPanel({
sealId:this.sealId
});
Ext.seal.SealWin.superclass.constructor.call(this,
{
width : 600,
height : 280,
closeAction : 'hide',
plain : true,
modal : true,
resizable : true,
layout:'fit',
items : [this.formPanel],
buttons : [{
text : '保存',
scope : this,
handler : this.save
}, {
text : '重置',
scope : this,
handler : this.reset
}]
});
},
save : function() {
var form = this.formPanel.getForm();
var sealId = form
if (!form.isValid()) {
return;
}
// 发送请求
this.formPanel.getForm().submit({
url : this.saveUrl,
method:'post',
success : function(form,action) {
Ext.MessageBox.alert('提示',action.result.msg,function(){
this.store.reload();
this.hide();
},this);
},
scope:this
});
},
loadRecord : function(record) {
this.formPanel.getForm().loadRecord(record);
},
reset : function() {
this.formPanel.getForm().reset();
}
});
GridPanel:
Ext.ns('Ext.seal');
Ext.seal.SealGridPanel= Ext.extend(Ext.grid.GridPanel, {
actionJson : null,
pageSize : 20,
constructor : function(_config) {
Ext.apply(this, _config || {});
this.Url = {
allUrl : ctx + '/seal/queryListForPage',
insertUrl : ctx + '/seal/insert',
deleteUrl : ctx + '/seal/delete',
updateUrl : ctx + '/seal/update',
findByIdUrl:ctx + '/seal/getSeal',
isEnableOrNot:ctx + '/seal/isEnableOrNot'
};
/** 顶部工具栏 */
this.actionToolBar = new Ext.Toolbar({
items:[new Ext.Action({
text : '新增',
scope:this,
handler : this.addWindow
}),'-',new Ext.Action({
text : '修改',
scope:this,
handler : this.modifyWindow
}),'-',new Ext.Action({
text : '删除',
scope:this,
handler : this.deleteWindow
}),'-',new Ext.Action({
text:'启用',
scope:this,
handler:this.isEnableTrue
}),'-',new Ext.Action({
text:'停用',
scope:this,
handler:this.isEnableFalse
})]
});
/** 顶部工具栏*/
// this.actionToolBar = new Ext.ActionToolbar({
// actionPanel : this,
// actionJson : this.actionJson,
// deleteFunction : this.deleteWindow,
// addFunction : this.addWindow,
// editFunction : this.modifyWindow
//
// });
this.store = new Ext.data.JsonStore({
baseParams : {
start : 0,
limit : this.pageSize
},
url : this.Url.allUrl,
root : 'rows', // Json中的列表数据根节点
totalProperty : 'results',
fields : ['id', 'updateUser', 'realName','sealName','remark','isEnable','sealImage',{
name : 'updateTime',
type : 'date',
dateFormat : 'time'
}]
});
/** 基本信息-选择模式 */
this.selModel = new Ext.grid.CheckboxSelectionModel({
singleSelect:true,
// listeners : {
//
// 'rowselect' : function(selectionModel, rowIndex, record) {
// this.actionToolBar.enableEditDelete();
// },
// 'rowdeselect' : function(selectionModel, rowIndex,
// record) {
// if (!selectionModel.hasSelection()) {
// this.actionToolBar.disableEditDelete();
// }
// },
// scope : this
// }
});
this.colModel = new Ext.grid.ColumnModel([this.selModel,{
header : '主键',
dataIndex : 'id',
hidden : true
},{
header : '印章名称',
dataIndex : 'sealName',
width : 150
},{
header : '启用/停用',
dataIndex : 'isEnable',
width : 150,
renderer:function(value){
if(value==1){
return "启用";
}else if(value==0){
return "停用";
}
return value;
}
},{
header : '修改人',
dataIndex : 'realName',
width : 150
},{
header : '修改时间',
dataIndex : 'updateTime',
width : 150,
renderer : Ext.util.Format.dateRenderer('Y-m-d H:i:s')
},{
header : '备注',
dataIndex : 'remark',
width : 150
},{
header : '印章',
dataIndex : 'sealImg',
200,
renderer:function(value,metc,record){
return "<img src="+ctx+"/seal/download?sealId="+record.data.id+"&thisTime="+Date.parse(new Date())+" />";
//return ctx+"/seal/download?sealId="+record.data.id;
}
}]);
this.bbar = new Ext.PagingToolbar({
pageSize : this.pageSize,
store : this.store,
displayInfo : true
});
Ext.seal.SealGridPanel.superclass.constructor.call(this, {
store : this.store,
cm : this.colModel,
sm : this.selModel,
tbar : this.actionToolBar,
bbar : this.bbar,
loadMask : true
});
this.on('rowdblclick', this.readSeal, this);
this.store.load();
},
addWindow : function() {
var record = this.getSelectionModel().getSelected();
if (this.addWin == null) {
this.addWin = new Ext.seal.SealWin({
saveUrl : this.Url.insertUrl,
store : this.store
});
this.addWin.setTitle("新增印章");
}
this.addWin.reset();
this.addWin.show();
this.addWin.on('show', function(win) {
Ext.getCmp('browseImage').getEl().dom.src='';
},
this);
},
modifyWindow : function() {
var record = this.getSelectionModel().getSelected();
if (record) {
if (this.editWin == null) {
this.editWin = new Ext.seal.SealWin({
saveUrl : this.Url.updateUrl,
store : this.store,
sealId:record.data.id
});
this.editWin.setTitle("修改印章");
}
this.editWin.reset();
this.editWin.show();
this.editWin.on('show', function(win) {
Ext.getCmp('browseImage').getEl().dom.src=ctx+"/seal/download?sealId="+record.data.id+"&thisTime="+Date.parse(new Date());
},
this);
this.editWin.loadRecord(record);
} else {
Ext.MessageBox.alert('提示', '请选中一条记录!');
}
},
deleteWindow : function() {
/** 选中的记录 */
var record = this.getSelectionModel().getSelected();
if(!record){
Ext.MessageBox.alert('提示', '请选中一条记录!');
return;
}
Ext.MessageBox.confirm('提示', '您确定要删除选中记录吗?', function(btn) {
if (btn == 'yes') {
Ext.Ajax.request({
url : this.Url.deleteUrl,
method : 'post',
params : {
id : record.data.id
},
success : function(response, options) {
var text = Ext.util.JSON.decode(response.responseText);
Ext.MessageBox.alert('提示', text.msg,function(){
if(text.success){
this.store.reload();
}
},this);
},
failure : function(response, options) {
Ext.MessageBox.alert('提示', '请求失败!');
},
scope : this
});
}
}, this);
},
/** 查看印章 */
readSeal : function(grid, rowIndex, e) {
var rec = grid.getStore().getAt(rowIndex);
if (rec == undefined) {
Ext.Msg.alert("提示", "每次只能且必须查看一条记录");
} else {
if (this.readWin == null) {
this.readWin = new Ext.seal.SealReadWindow({
sealId:rec.data.id
});
this.readWin.setTitle('查看详细');
}
this.readWin.show();
Ext.Ajax.request({
url : this.Url.findByIdUrl,
method : 'post',
params : {
sealId : rec.data.id
},
success : function(response, opts) {
var content = Ext.decode(response.responseText);
this.readWin.loadSeal(content);
},
scope : this
});
}
},
/**启用*/
isEnableTrue:function(){
var record = this.getSelectionModel().getSelected();
if(!record){
Ext.MessageBox.alert('提示', '请选中一条记录!');
return;
}else if(record.data.isEnable==1){
Ext.MessageBox.alert('提示','选中行已经启用!');
return;
}
Ext.Ajax.request({
url : this.Url.isEnableOrNot,
method : 'post',
params : {
id : record.data.id,
isEnable:1
},
success : function(response, options) {
var text = Ext.util.JSON.decode(response.responseText);
Ext.MessageBox.alert('提示', text.msg,function(){
if(text.success){
this.store.reload();
}
},this);
},
failure : function(response, options) {
Ext.MessageBox.alert('提示', '请求失败!');
},
scope : this
});
},
/**停用*/
isEnableFalse:function(){
var record = this.getSelectionModel().getSelected();
if(!record){
Ext.MessageBox.alert('提示', '请选中一条记录!');
return;
}else if(record.data.isEnable==0){
Ext.MessageBox.alert('提示','选中行已经停用!');
return;
}
Ext.Ajax.request({
url : this.Url.isEnableOrNot,
method : 'post',
params : {
id : record.data.id,
isEnable:0
},
success : function(response, options) {
var text = Ext.util.JSON.decode(response.responseText);
Ext.MessageBox.alert('提示', text.msg,function(){
if(text.success){
this.store.reload();
}
},this);
},
failure : function(response, options) {
Ext.MessageBox.alert('提示', '请求失败!');
},
scope : this
});
}
});
extreturn实体类:
package cn.edu.hbcf.common.vo; /** * Ext Ajax 返回对象 * * @author LiPenghui * @date 2012-02-21 19:30:00 * */ public class ExtReturn { private boolean success; // 是否成功 private Object msg; // 返回消息 private Object otherObject;// 其他对象 public ExtReturn() { } /** * 是否更新成功的构造方法 * * @param success * 是否成功 * @param msg * 消息 */ public ExtReturn(boolean success, Object msg) { this.success = success; this.msg = msg; this.otherObject = ""; } /** * 是否更新成功的构造方法 * * @param success * 是否成功 * @param msg * 消息 * @param otherObject * 其他对象 */ public ExtReturn(boolean success, Object msg, Object otherObject) { this.success = success; this.msg = msg; this.otherObject = otherObject; } /** * 异常时的构造函数 * * @param errormsg * 异常消息 */ public ExtReturn(Object errormsg) { this.success = false; this.msg = false; this.otherObject = ""; } /** * 判断是否成功 * * @return */ public boolean isSuccess() { return success; } /** * 设置返回是否成功的状态 * * @param success */ public void setSuccess(boolean success) { this.success = success; } /** * 设置其他对象 * * @return */ public Object getOtherObject() { return otherObject; } /** * 获取其他对象 * * @param otherObject */ public void setOtherObject(Object otherObject) { this.otherObject = otherObject; } /** * 获取返回的消息 * * @return */ public Object getMsg() { return msg; } /** * 设置返回的消息 * * @param msg */ public void setMsg(Object msg) { this.msg = msg; } }
文件下载controller:
/** * 下载附件 * @param response * @param request * @param blobId 附件主键 * @throws UnsupportedEncodingException */ @RequestMapping("/download") public void download (HttpServletResponse response,HttpServletRequest request,String sealId,String thisTime) throws UnsupportedEncodingException{ Seal seal = sealService.getSeal(sealId); InputStream inputStream=new ByteArrayInputStream(seal.getSealImage()); byte[] b = new byte[1024]; int len = -1; OutputStream out = null; String filename=""; if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") >0) filename = URLEncoder.encode(filename, "UTF-8");//IE浏览器 else filename = new String(filename.getBytes("UTF-8"), "ISO8859-1"); response.reset();//清除首部的空白行 //下载的文件内容 // response.setContentType("application/x-msdownload"); // response.setContentType("text/html;charset=utf-8;"); response.setContentType("image/jpeg;charset=utf-8"); //下载的文件头部内容(自动下载) // response.setHeader("Content-Disposition", "attachment;filename=" + filename.replace(" ", "_") ); //输出文件内容 response.setHeader("Content-type", "attachment;filename=" + filename.replace(" ", "_") ); // response.setHeader("Connection", "close"); try { while ((len = inputStream.read(b, 0, 1024)) != -1) { out = response.getOutputStream(); out.write(b, 0, len); } } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { try { out.flush(); out.close(); } catch (IOException e1) { e1.printStackTrace(); } if(inputStream!=null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
/** * 下载附件 * @param response * @param request * @param blobId 附件主键 * @throws UnsupportedEncodingException */ @RequestMapping("/download") public void download (HttpServletResponse response,HttpServletRequest request,String sealId,String thisTime) throws UnsupportedEncodingException{ Seal seal = sealService.getSeal(sealId); InputStream inputStream=new ByteArrayInputStream(seal.getSealImage()); byte[] b = new byte[1024]; int len = -1; OutputStream out = null; String filename=""; if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") >0) filename = URLEncoder.encode(filename, "UTF-8");//IE浏览器 else filename = new String(filename.getBytes("UTF-8"), "ISO8859-1"); response.reset();//清除首部的空白行 //下载的文件内容 // response.setContentType("application/x-msdownload"); // response.setContentType("text/html;charset=utf-8;"); response.setContentType("image/jpeg;charset=utf-8"); //下载的文件头部内容(自动下载) // response.setHeader("Content-Disposition", "attachment;filename=" + filename.replace(" ", "_") ); //输出文件内容 response.setHeader("Content-type", "attachment;filename=" + filename.replace(" ", "_") ); // response.setHeader("Connection", "close"); try { while ((len = inputStream.read(b, 0, 1024)) != -1) { out = response.getOutputStream(); out.write(b, 0, len); } } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { try { out.flush(); out.close(); } catch (IOException e1) { e1.printStackTrace(); } if(inputStream!=null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
mapper:
<?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="cn.edu.hbcf.plugin.seal.dao.SealMapper">
<!-- 查询所有的印章管理数据 -->
<select id="queryListForPage" resultType="cn.edu.hbcf.plugin.seal.pojo.Seal" parameterType="cn.edu.hbcf.common.vo.Criteria">
SELECT
l.id id,
l.update_user updateUser,
l.update_time updateTime,
l.seal_name sealName,
l.remark remark,
l.is_enable isEnable,
l.seal_image sealImage,
s.real_name realName
FROM
seal l
LEFT JOIN base_users s
ON l.update_user = s.user_id
WHERE l.seal_name IS NOT NULL
AND seal_name != ''
<if test="condition.limit != null">
<![CDATA[ limit #{condition.start},#{condition.limit} ]]>
</if>
</select>
<!-- 查询所有的印章管理数据的总数 -->
<select id="getTotalCount" resultType="int" parameterType="cn.edu.hbcf.common.vo.Criteria">
SELECT
count(*)
FROM
seal l
</select>
<!-- 新增印章数据 -->
<insert id="insert" parameterType="cn.edu.hbcf.plugin.seal.pojo.Seal">
<selectKey resultType="String" keyProperty="id" order="BEFORE">
select replace(uuid(), '-', '') from dual
</selectKey>
INSERT INTO seal(id,update_user,update_time,seal_name,remark,is_enable,seal_image)
VALUES(#{id},#{updateUser},#{updateTime},#{sealName},#{remark},#{isEnable},#{sealImage})
</insert>
<!-- 修改印章数据 -->
<update id="update" parameterType="cn.edu.hbcf.plugin.seal.pojo.Seal">
UPDATE seal SET update_user=#{updateUser},update_time=#{updateTime},
<if test="sealName!=null">seal_name=#{sealName},</if>
<if test="remark!=null">remark=#{remark},</if>
<if test="isEnable!=null">is_enable=#{isEnable},</if>
<if test="sealImage!=null">seal_image=#{sealImage}</if>
WHERE id=#{id}
</update>
<!-- 批量删除印章数据 -->
<delete id="delete">
delete from seal
<where>
id in
<foreach collection="ids" item="item" index="index"
open="(" separator="," close=")">#{item}</foreach>
</where>
</delete>
<!-- 新增印章图片到数据库中 -->
<insert id="insertSeal" parameterType="String">
<selectKey resultType="String" keyProperty="id" order="BEFORE">
select replace(uuid(), '-', '') from dual
</selectKey>
insert into seal(id,seal_image) values(#{id},#{sealImage})
</insert>
<!-- 修改印章图片 -->
<update id="updateSeal" parameterType="cn.edu.hbcf.plugin.seal.pojo.Seal">
update seal set seal_image=#{sealImage} where id=#{id}
</update>
<!-- 根据Id查询信息-->
<select id="getSeal" resultType="cn.edu.hbcf.plugin.seal.pojo.Seal" parameterType="java.lang.String">
SELECT
l.id id,
l.update_user updateUser,
l.update_time updateTime,
l.seal_name sealName,
l.remark remark,
l.is_enable isEnable,
l.seal_image sealImage,
s.real_name realName
FROM
seal l
LEFT JOIN base_users s
ON l.update_user = s.user_id
WHERE l.id = #{id}
</select>
<!-- 启用或者停用 -->
<update id="isEnableOrNot" parameterType="cn.edu.hbcf.plugin.seal.pojo.Seal">
UPDATE seal SET is_enable=#{isEnable}
WHERE id=#{id}
</update>
</mapper>