ソースを参照

--add updateConsultStatus();add queryByDemand();update queryPageBase()

zzy.zhiyuan.foxmail 8 年 前
コミット
75312ebd65
共有2 個のファイルを変更した104 個の追加19 個の削除を含む
  1. 55 18
      src/main/java/com/ekexiu/portal/dao/ConsultDao.java
  2. 49 1
      src/main/java/com/ekexiu/portal/service/ConsultService.java

+ 55 - 18
src/main/java/com/ekexiu/portal/dao/ConsultDao.java

@ -12,10 +12,13 @@ import java.util.List;
12 12
import org.jfw.apt.annotation.Autowrie;
13 13
import org.jfw.apt.annotation.Nullable;
14 14
import org.jfw.apt.orm.annotation.dao.DAO;
15
import org.jfw.apt.orm.annotation.dao.method.From;
15 16
import org.jfw.apt.orm.annotation.dao.method.OrderBy;
16 17
import org.jfw.apt.orm.annotation.dao.method.operator.Insert;
17 18
import org.jfw.apt.orm.annotation.dao.method.operator.SelectList;
18 19
import org.jfw.apt.orm.annotation.dao.method.operator.SelectOne;
20
import org.jfw.apt.orm.annotation.dao.method.operator.UpdateWith;
21
import org.jfw.apt.orm.annotation.dao.param.Set;
19 22
import org.jfw.util.PageQueryResult;
20 23

21 24
import com.ekexiu.portal.po.Consult;
@ -37,6 +40,10 @@ public abstract class ConsultDao {
37 40
	@Insert
38 41
	public abstract int insert(Connection con, Consult consult) throws SQLException;
39 42
	
43
	@UpdateWith
44
	@From(Consult.class)
45
	public abstract int updateConsultStatus(Connection con,String consultId,@Set Integer consultStatus)throws SQLException;
46
	
40 47
	public int updateReadStatus(Connection con,String consultId) throws SQLException{
41 48
        int _m_1 = 1;
42 49
        String sql ="UPDATE CONSULT SET READ_STATUS = 1 WHERE CONSULT_ID = ? ";
@ -121,6 +128,36 @@ public abstract class ConsultDao {
121 128
        }
122 129
    }
123 130
	
131
	/**
132
	 * 通过需求ID和专家ID查询咨询表中是否有该专家接受需求的咨询记录
133
	 * @param con
134
	 * @param professorId 专家ID
135
	 * @param demandId 需求ID
136
	 * @return 若有记录返回咨询ID,否则返回null
137
	 * @throws SQLException
138
	 */
139
	public String queryDemand(Connection con,String professorId,String demandId) throws SQLException{
140
        int index = 1;
141
        String sql = "SELECT CONSULT_ID FROM CONSULT WHERE DEMAND_ID = ? AND PROFESSOR_ID = ?";
142
        PreparedStatement ps = con.prepareStatement(sql);
143
        try{
144
            ps.setString(index++,demandId);
145
            ps.setString(index++,professorId);
146
            ResultSet rs = ps.executeQuery();
147
            try{
148
                if(rs.next()){
149
                    return rs.getString(1);
150
                }else{
151
                    return null;
152
                }
153
            }finally{
154
                try{rs.close();}catch(Exception e1){}
155
            }
156
        }finally{
157
            try{ps.close();}catch(Exception e2){}
158
        }
159
    }
160
	
124 161
	/**
125 162
	 * 查询当前用户接受咨询被评价的平均星级
126 163
	 * @param con
@ -506,11 +543,11 @@ public abstract class ConsultDao {
506 543
		StringBuilder sql = new StringBuilder();
507 544
		sql.append(" WHERE PROFESSOR_ID = ? ");
508 545
		if(1 == status) {
509
			sql.append(" AND CONSULT_STATUS = 0 ");
546
			sql.append(" AND CONSULT_STATUS = 2 ");
510 547
		}else if(2 == status) {
511
			sql.append(" AND CONSULT_STATUS = 1 AND THANKS_STATUS = 0 ");
548
			sql.append(" AND CONSULT_STATUS = 0 ");
512 549
		}else if(3 == status) {
513
			sql.append(" AND CONSULT_STATUS = 1 AND ASSESS_STATUS = 0 ");
550
			sql.append(" AND CONSULT_STATUS = 3 ");
514 551
		}else if(4 == status) {
515 552
			sql.append(" AND CONSULT_STATUS = 1 ");
516 553
		}
@ -680,11 +717,11 @@ public abstract class ConsultDao {
680 717
		StringBuilder sql = new StringBuilder();
681 718
		sql.append(" WHERE CONSULT.PROFESSOR_ID = ? ");
682 719
		if(1 == status) {
683
			sql.append(" AND CONSULT_STATUS = 0 ");
720
			sql.append(" AND CONSULT_STATUS = 2 ");
684 721
		}else if(2 == status) {
685
			sql.append(" AND CONSULT_STATUS = 1 AND THANKS_STATUS = 0 ");
722
			sql.append(" AND CONSULT_STATUS = 0 ");
686 723
		}else if(3 == status) {
687
			sql.append(" AND CONSULT_STATUS = 1 AND ASSESS_STATUS = 0 ");
724
			sql.append(" AND CONSULT_STATUS = 3 ");
688 725
		}else if(4 == status) {
689 726
			sql.append(" AND CONSULT_STATUS = 1 ");
690 727
		}
@ -883,11 +920,11 @@ public abstract class ConsultDao {
883 920
		StringBuilder sql = new StringBuilder();
884 921
		sql.append(" WHERE CONSULTANT_ID = ? ");
885 922
		if(1 == status) {
886
			sql.append(" AND CONSULT_STATUS = 0 ");
923
			sql.append(" AND CONSULT_STATUS = 2 ");
887 924
		}else if(2 == status) {
888
			sql.append(" AND CONSULT_STATUS = 1 AND THANKS_STATUS = 0 ");
925
			sql.append(" AND CONSULT_STATUS = 0 ");
889 926
		}else if(3 == status) {
890
			sql.append(" AND CONSULT_STATUS = 1 AND ASSESS_STATUS = 0 ");
927
			sql.append(" AND CONSULT_STATUS = 3 ");
891 928
		}else if(4 == status) {
892 929
			sql.append(" AND CONSULT_STATUS = 1 ");
893 930
		}
@ -1056,11 +1093,11 @@ public abstract class ConsultDao {
1056 1093
		StringBuilder sql = new StringBuilder();
1057 1094
		sql.append(" WHERE CONSULT.CONSULTANT_ID = ? ");
1058 1095
		if(1 == status) {
1059
			sql.append(" AND CONSULT_STATUS = 0 ");
1096
			sql.append(" AND CONSULT_STATUS = 2 ");
1060 1097
		}else if(2 == status) {
1061
			sql.append(" AND CONSULT_STATUS = 1 AND THANKS_STATUS = 0 ");
1098
			sql.append(" AND CONSULT_STATUS = 0 ");
1062 1099
		}else if(3 == status) {
1063
			sql.append(" AND CONSULT_STATUS = 1 AND ASSESS_STATUS = 0 ");
1100
			sql.append(" AND CONSULT_STATUS = 3 ");
1064 1101
		}else if(4 == status) {
1065 1102
			sql.append(" AND CONSULT_STATUS = 1 ");
1066 1103
		}
@ -1253,9 +1290,9 @@ public abstract class ConsultDao {
1253 1290
	 * 按条件搜索所有咨询的接口
1254 1291
	 * @param con
1255 1292
	 * @param professorId 用户ID
1256
	 * @param consultOrNeed 接受咨询或咨询别人的状态值,1-别人咨询我的,2-我咨询别人的,默认为0
1293
	 * @param consultOrNeed 接受咨询或咨询别人的状态值,1-收到咨询,2-我的需求,默认为1
1257 1294
	 * @param consultType 咨询类型,包括技术咨询、资源咨询、其他事务
1258
	 * @param status 查询状态 0-全部,1-进行中,2-未感谢,3-未评价,4-已完成,默认为0
1295
	 * @param status 查询状态 0-全部,1-待回复/新咨询,2-进行中,3-已谢绝,4-已完成,默认为0
1259 1296
	 * @param timeType 排序类型 0-按发起时间,1-按最后回复时间,2-按完成时间,默认为0
1260 1297
	 * @param pageSize
1261 1298
	 * @param pageNo
@ -1279,15 +1316,15 @@ public abstract class ConsultDao {
1279 1316
			}else if("资源咨询".equals(consultType)){
1280 1317
				sql.append(" AND CONSULT_TYPE = '资源咨询' ");
1281 1318
			}else if("其他事务".equals(consultType)){
1282
				sql.append(" AND CONSULT_TYPE != '技术咨询' AND CONSULT_TYPE != '资源咨询' ");
1319
				sql.append(" AND CONSULT_TYPE = '其他事务' ");
1283 1320
			}
1284 1321
		}
1285 1322
		if(1 == status) {
1286
			sql.append(" AND CONSULT_STATUS = 0 ");
1323
			sql.append(" AND CONSULT_STATUS = 2 ");
1287 1324
		}else if(2 == status) {
1288
			sql.append(" AND CONSULT_STATUS = 1 AND THANKS_STATUS = 0 ");
1325
			sql.append(" AND CONSULT_STATUS = 0 ");
1289 1326
		}else if(3 == status) {
1290
			sql.append(" AND CONSULT_STATUS = 1 AND ASSESS_STATUS = 0 ");
1327
			sql.append(" AND CONSULT_STATUS = 4 ");
1291 1328
		}else if(4 == status) {
1292 1329
			sql.append(" AND CONSULT_STATUS = 1 ");
1293 1330
		}

+ 49 - 1
src/main/java/com/ekexiu/portal/service/ConsultService.java

@ -16,9 +16,11 @@ import org.jfw.util.PageQueryResult;
16 16
import org.jfw.util.StringUtil;
17 17

18 18
import com.ekexiu.portal.dao.ConsultDao;
19
import com.ekexiu.portal.dao.ConsultRejectDao;
19 20
import com.ekexiu.portal.dao.ProfessorDao;
20 21
import com.ekexiu.portal.dao.TidingsDao;
21 22
import com.ekexiu.portal.po.Consult;
23
import com.ekexiu.portal.po.ConsultReject;
22 24
import com.ekexiu.portal.po.Tidings;
23 25
import com.ekexiu.portal.pojo.EditProfessor;
24 26

@ -32,6 +34,8 @@ public class ConsultService {
32 34
	private ImageService imageService;
33 35
	@Autowrie
34 36
	private TidingsDao tidingsDao;
37
	@Autowrie
38
	private ConsultRejectDao consultRejectDao;
35 39
	
36 40
	public ConsultDao getConsultDao() {
37 41
		return consultDao;
@ -57,12 +61,27 @@ public class ConsultService {
57 61
	public void setTidingsDao(TidingsDao tidingsDao) {
58 62
		this.tidingsDao = tidingsDao;
59 63
	}
64
	public ConsultRejectDao getConsultRejectDao() {
65
		return consultRejectDao;
66
	}
67
	public void setConsultRejectDao(ConsultRejectDao consultRejectDao) {
68
		this.consultRejectDao = consultRejectDao;
69
	}
60 70
	
61 71
	@Post
62 72
	@Path
63 73
	public String insert(@JdbcConn(true) Connection con, Consult consult) throws SQLException {
64 74
		String consultId = StringUtil.buildUUID();
65 75
		consult.setConsultId(consultId);
76
		consult.setAssessStatus(0);
77
		consult.setThanksStatus(0);
78
		if(consult.getDemandId() == null){
79
			consult.setConsultStatus(2);
80
			consult.setReadStatus(0);
81
		}else{
82
			consult.setConsultStatus(0);
83
			consult.setReadStatus(1);
84
		}
66 85
		this.consultDao.insert(con, consult);
67 86
		Tidings tidings = new Tidings();
68 87
		tidings.setTidingsId(StringUtil.buildUUID());
@ -80,6 +99,29 @@ public class ConsultService {
80 99
		this.consultDao.updateReadStatus(con, consultId);
81 100
	}
82 101
	
102
	@Post
103
	@Path("/agree")
104
	public void agreeConsult(@JdbcConn(true) Connection con,String consultId)throws SQLException{
105
		//点击确认接受咨询,更新咨询状态为进行中
106
		this.consultDao.updateConsultStatus(con, consultId, 0);
107
	}
108
	
109
	@Post
110
	@Path("/reject")
111
	public void rejectConsult(@JdbcConn(true) Connection con,String consultId,String professorId,String[] reasons)throws SQLException{
112
		//点击谢绝咨询,更新咨询状态为已谢绝
113
		this.consultDao.updateConsultStatus(con, consultId, 3);
114
		for (int i = 0; i < reasons.length; i++) {
115
			ConsultReject reject = new ConsultReject();
116
			reject.setRejectId(StringUtil.buildUUID());
117
			reject.setConsultId(consultId);
118
			reject.setRejector(professorId);
119
			reject.setSort(i+1);
120
			reject.setRejectReason(reasons[i]);
121
			this.consultRejectDao.insert(con, reject);
122
		}
123
	}
124
	
83 125
	@Post
84 126
	@Path("/finishTime")
85 127
	public boolean updateFinishTime(@JdbcConn(true) Connection con, String consultId, int consultStatus) throws SQLException {
@ -118,6 +160,12 @@ public class ConsultService {
118 160
		return false;
119 161
	}
120 162
	
163
	@Get
164
	@Path("/byDemand")
165
	public String queryDemand(@JdbcConn Connection con, String professorId, String demandId) throws SQLException{
166
		return this.consultDao.queryDemand(con, professorId, demandId);
167
	}
168
	
121 169
	@Get
122 170
	@Path("/pqAssessHis")
123 171
	public PageQueryResult<Consult> queryAssessHis(@JdbcConn Connection con, String professorId,@DefaultValue("5") int pageSize,@DefaultValue("1") int pageNo) throws SQLException {
@ -239,7 +287,7 @@ public class ConsultService {
239 287
	@Get
240 288
	@Path("/pq")
241 289
	public PageQueryResult<Consult> queryPageBase(@JdbcConn Connection con, String professorId, 
242
			@DefaultValue("0") int consultOrNeed, @Nullable String consultType, @DefaultValue("0") int status, 
290
			@DefaultValue("1") int consultOrNeed, @Nullable String consultType, @DefaultValue("0") int status, 
243 291
			@DefaultValue("1") int timeType, @DefaultValue("10") int pageSize, @DefaultValue("1") int pageNo) throws SQLException {
244 292
		PageQueryResult<Consult> queryResult = this.consultDao.queryPageBase(con, professorId, consultOrNeed, consultType, status, timeType, pageSize, pageNo);
245 293
		List<Consult> consults = queryResult.getData();