Przeglądaj źródła

资源模块附件上传功能。

zzy.zhiyuan.foxmail 8 lat temu
rodzic
commit
e0f164302b

+ 97 - 0
src/main/java/com/ekexiu/portal/dao/AccessoryDao.java

@ -0,0 +1,97 @@
1
package com.ekexiu.portal.dao;
2

3
import java.sql.Connection;
4
import java.sql.PreparedStatement;
5
import java.sql.ResultSet;
6
import java.sql.SQLException;
7
import java.util.ArrayList;
8
import java.util.List;
9

10
import org.jfw.apt.orm.annotation.dao.DAO;
11
import org.jfw.apt.orm.annotation.dao.method.From;
12
import org.jfw.apt.orm.annotation.dao.method.operator.DeleteWith;
13
import org.jfw.apt.orm.annotation.dao.method.operator.Insert;
14

15
import com.ekexiu.portal.po.Accessory;
16
import com.ekexiu.portal.po.Professor;
17

18

19
@DAO
20
public abstract class AccessoryDao {
21
	@Insert
22
	public abstract int insert(Connection con, Accessory accessory) throws SQLException;
23
	
24
	public List<Accessory> queryOper(Connection con, String operationId) throws SQLException {
25
        int _m_1 = 1;
26
        String sql = "SELECT ACCESSORY_ID,ACCESSORY_SRC,ACCESSORY.OPERATION_ID,ACCESSORY.PROFESSOR_ID,ACCESSORY_NAME,ACCESSORY.CREATE_TIME,PROFESSOR.NAME FROM ACCESSORY LEFT JOIN PROFESSOR ON ACCESSORY.PROFESSOR_ID = PROFESSOR.ID WHERE ACCESSORY.OPERATION_ID = ? ORDER BY ACCESSORY.CREATE_TIME";
27
        PreparedStatement ps = con.prepareStatement(sql);
28
        try{
29
            ps.setString(_m_1++,operationId);
30
            ResultSet rs = ps.executeQuery();
31
            try{
32
                List<Accessory> _result = new ArrayList<Accessory>();
33
                while(rs.next()){
34
                    Accessory _obj =  new Accessory();
35
                    _obj.setAccessoryId(rs.getString(1));
36
                    _obj.setAccessorySrc(rs.getString(2));
37
                    _obj.setOperationId(rs.getString(3));
38
                    Professor professor = new Professor();
39
                    professor.setId(rs.getString(4));
40
                    String _m_2 = rs.getString(5);
41
                    if(rs.wasNull()){
42
                        _m_2 = null;
43
                    }
44
                    _obj.setAccessoryName(_m_2);
45
                    _obj.setCreateTime(rs.getString(6));
46
                    professor.setName(rs.getString(7));
47
                    _obj.setProfessor(professor);
48
                    _result.add(_obj);
49
                }
50
                return _result;
51
            }finally{
52
                try{rs.close();}catch(Exception _m_3){}
53
            }
54
        }finally{
55
            try{ps.close();}catch(Exception _m_4){}
56
        }
57
    }
58
	
59
	public List<Accessory> queryPro(Connection con, String professorId) throws SQLException {
60
        int _m_1 = 1;
61
        String sql = "SELECT ACCESSORY_ID,ACCESSORY_SRC,ACCESSORY.OPERATION_ID,ACCESSORY.PROFESSOR_ID,ACCESSORY_NAME,ACCESSORY.CREATE_TIME,PROFESSOR.NAME FROM ACCESSORY LEFT JOIN PROFESSOR ON ACCESSORY.PROFESSOR_ID = PROFESSOR.ID WHERE ACCESSORY.PROFESSOR_ID = ? ORDER BY ACCESSORY.CREATE_TIME";
62
        PreparedStatement ps = con.prepareStatement(sql);
63
        try{
64
            ps.setString(_m_1++,professorId);
65
            ResultSet rs = ps.executeQuery();
66
            try{
67
                List<Accessory> _result = new ArrayList<Accessory>();
68
                while(rs.next()){
69
                    Accessory _obj =  new Accessory();
70
                    _obj.setAccessoryId(rs.getString(1));
71
                    _obj.setAccessorySrc(rs.getString(2));
72
                    _obj.setOperationId(rs.getString(3));
73
                    Professor professor = new Professor();
74
                    professor.setId(rs.getString(4));
75
                    String _m_2 = rs.getString(5);
76
                    if(rs.wasNull()){
77
                        _m_2 = null;
78
                    }
79
                    _obj.setAccessoryName(_m_2);
80
                    _obj.setCreateTime(rs.getString(6));
81
                    professor.setName(rs.getString(7));
82
                    _obj.setProfessor(professor);
83
                    _result.add(_obj);
84
                }
85
                return _result;
86
            }finally{
87
                try{rs.close();}catch(Exception _m_3){}
88
            }
89
        }finally{
90
            try{ps.close();}catch(Exception _m_4){}
91
        }
92
    }
93
	
94
	@DeleteWith
95
	@From(Accessory.class)
96
	public abstract int delete(Connection con, String accessoryId) throws SQLException;
97
}

+ 83 - 0
src/main/java/com/ekexiu/portal/po/Accessory.java

@ -0,0 +1,83 @@
1
package com.ekexiu.portal.po;
2

3
import org.jfw.apt.orm.annotation.entry.Column;
4
import org.jfw.apt.orm.annotation.entry.PrimaryKey;
5
import org.jfw.apt.orm.annotation.entry.Table;
6
import org.jfw.apt.orm.core.enums.DE;
7

8
import com.ekexiu.portal.basepo.CreateTimeSupported;
9

10
@PrimaryKey("accessoryId")
11
@Table
12
public class Accessory implements CreateTimeSupported {
13
	private String accessoryId;
14
	private String accessorySrc;
15
	private String operationId;
16
	private String professorId;
17
	private String createTime; 
18
	private String accessoryName;
19
	private Operation operation;
20
	private Professor professor;
21
	
22
	public Operation getOperation() {
23
		return operation;
24
	}
25
	public void setOperation(Operation operation) {
26
		this.operation = operation;
27
	}
28
	
29
	public Professor getProfessor() {
30
		return professor;
31
	}
32
	public void setProfessor(Professor professor) {
33
		this.professor = professor;
34
	}
35
	
36
	@Column(DE.id_32)
37
	public String getAccessoryId() {
38
		return accessoryId;
39
	}
40
	public void setAccessoryId(String accessoryId) {
41
		this.accessoryId = accessoryId;
42
	}
43
	
44
	@Column(DE.string_de)
45
	public String getAccessorySrc() {
46
		return accessorySrc;
47
	}
48
	public void setAccessorySrc(String accessorySrc) {
49
		this.accessorySrc = accessorySrc;
50
	}
51
	
52
	@Column(DE.id_32)
53
	public String getOperationId() {
54
		return operationId;
55
	}
56
	public void setOperationId(String operationId) {
57
		this.operationId = operationId;
58
	}
59
	
60
	@Column(DE.id_32)
61
	public String getProfessorId() {
62
		return professorId;
63
	}
64
	public void setProfessorId(String professorId) {
65
		this.professorId = professorId;
66
	}
67
	
68
	public String getCreateTime() {
69
		return createTime;
70
	}
71
	public void setCreateTime(String createTime) {
72
		this.createTime = createTime;
73
	}
74
	
75
	@Column(DE.String_de)
76
	public String getAccessoryName() {
77
		return accessoryName;
78
	}
79
	public void setAccessoryName(String accessoryName) {
80
		this.accessoryName = accessoryName;
81
	}
82
	
83
}

+ 122 - 0
src/main/java/com/ekexiu/portal/service/AccessoryService.java

@ -0,0 +1,122 @@
1
package com.ekexiu.portal.service;
2

3
import java.io.File;
4
import java.io.FileInputStream;
5
import java.io.FileOutputStream;
6
import java.io.IOException;
7
import java.io.InputStream;
8
import java.sql.Connection;
9
import java.sql.SQLException;
10
import java.text.SimpleDateFormat;
11
import java.util.Date;
12
import java.util.List;
13

14
import org.jfw.apt.annotation.Autowrie;
15
import org.jfw.apt.web.annotation.Path;
16
import org.jfw.apt.web.annotation.operate.Get;
17
import org.jfw.apt.web.annotation.operate.Post;
18
import org.jfw.apt.web.annotation.param.JdbcConn;
19
import org.jfw.util.StringUtil;
20
import org.jfw.util.exception.JfwBaseException;
21
import org.jfw.util.io.IoUtil;
22

23
import com.ekexiu.portal.dao.AccessoryDao;
24
import com.ekexiu.portal.po.Accessory;
25

26
@Path("/accessory")
27
public class AccessoryService {
28
	private File tmpPath;
29
	private File accessoryPath;
30
	@Autowrie
31
	private AccessoryDao accessoryDao;
32

33
	public AccessoryDao getAccessoryDao() {
34
		return accessoryDao;
35
	}
36
	public void setAccessoryDao(AccessoryDao accessoryDao) {
37
		this.accessoryDao = accessoryDao;
38
	}
39
	
40
	
41
	public File getTmpPath() {
42
		return tmpPath;
43
	}
44
	public void setTmpPath(File tmpPath) {
45
		this.tmpPath = tmpPath;
46
	}
47

48
	public File getAccessoryPath() {
49
		return accessoryPath;
50
	}
51
	public void setAccessoryPath(File accessoryPath) {
52
		this.accessoryPath = accessoryPath;
53
	}
54
	
55
//	/**
56
//	 * 保存附件功能
57
//	 * @param fn 临时文件名
58
//	 * @param operationId 资源申请ID
59
//	 * @param fileName 文件名
60
//	 * @throws IOException
61
//	 * @throws JfwBaseException
62
//	 */
63
//	public void saveAccessory(String fn, String operationId, String fileName) throws IOException, JfwBaseException {
64
//		InputStream in = new FileInputStream(new File(this.tmpPath, fn));
65
//		//以月为单位创建时间目录
66
//		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
67
//		String date = df.format(new Date());
68
//		String datePath = this.accessoryPath.getPath() + "/" +  date;
69
//		File dateFile = new File(datePath);
70
//		if (!datePath.exists()) {
71
//			// 创建日期目录
72
//			datePath.mkdir();
73
//		}
74
//		try {
75
//			IoUtil.copy(in, new FileOutputStream(new File(datePath, operationId + fileName)), false, true);
76
//		} finally {
77
//			in.close();
78
//		}
79
//	}
80

81
	@Post
82
	@Path("/save")
83
	public String insert(@JdbcConn(true) Connection con, String operationId, String professorId,  String fileName, 
84
			String fn) throws SQLException, IOException, JfwBaseException {
85
		InputStream in = new FileInputStream(new File(this.tmpPath, fn));
86
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
87
		String date = df.format(new Date());
88
		String datePath = this.accessoryPath + "/" +  date;
89
		String realFileName = operationId + "-" +fileName;
90
		File dateFile = new File(datePath);
91
		if (!dateFile.exists()) {
92
			// 创建日期目录
93
			dateFile.mkdir();
94
		}
95
		try {
96
			IoUtil.copy(in, new FileOutputStream(new File(dateFile, realFileName)), false, true);
97
		} finally {
98
			in.close();
99
		}
100
		String accessorySrc = datePath + "/" + realFileName;
101
		Accessory accessory = new Accessory();
102
		accessory.setAccessoryId(StringUtil.buildUUID());
103
		accessory.setAccessorySrc(accessorySrc);
104
		accessory.setOperationId(operationId);
105
		accessory.setProfessorId(professorId);
106
		accessory.setAccessoryName(fileName);
107
		this.accessoryDao.insert(con, accessory);
108
		return accessory.getAccessoryId();
109
	}
110
	
111
	@Get
112
	@Path("/qaoper")
113
	public List<Accessory> queryOper(@JdbcConn Connection con, String operationId) throws SQLException {
114
		return this.accessoryDao.queryOper(con, operationId);
115
	}
116
	
117
	@Get
118
	@Path("/qapro")
119
	public List<Accessory> quetyPro(@JdbcConn Connection con, String professorId) throws SQLException {
120
		return this.accessoryDao.queryPro(con, professorId);
121
	}
122
}