package com.qog.service;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.qog.util.Constant;
import com.qog.util.Service;
import com.qog.model.Question;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;
import org.springframework.transaction.support.TransactionTemplate;
import java.sql.Statement;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@SuppressWarnings("unused")
public class SurveyService implements Service {
private static final Log logger = LogFactory.getLog(SurveyService.class);
private JdbcTemplate jdao;
private TransactionTemplate jtx;
public SurveyService() {
}
public SurveyService(JdbcTemplate jdao, TransactionTemplate jtx) {
this.jdao = jdao;
this.jtx = jtx;
}
/**
* 判断问卷表标题是否重复
*/
private boolean hasDuplicate(String title) {
return jdao.queryForObject(" SELECT COUNT(*) FROM survey WHERE title = '" + title + "'", Integer.class) > 0;
}
/**
* 插入时判断问卷表标题是否重复
*/
private boolean hasOtherDuplicate(String title, int id) {
return jdao.queryForObject(" SELECT COUNT(*) FROM survey WHERE title = '" + title + "' AND id <>" + id, Integer.class) > 0;
}
/**
* 插入时判断问卷表标题是否重复
*/
public int updateHit(int surveyid) {
String strSql = "UPDATE survey SET hit=hit+1 WHERE id=?";
return jdao.update(conn -> {
int i = 0;
java.sql.PreparedStatement ps = conn.prepareStatement(strSql);
ps.setInt(++i, surveyid);
return ps;
});
}
/**
* 判断问题题号是否重复
*/
private boolean hasDuplicate(int number, int surveyid) {
String tb_questions = "(SELECT * FROM question WHERE surveyid=" + surveyid + ") AS tb_questions";
return jdao.queryForObject("SELECT COUNT(*) FROM " + tb_questions + " WHERE `number` = " + number, Integer.class) > 0;
}
/**
* 插入数据并返回ID
*/
public int insertAndReturnID(String title, String description, String image, String type, int userid) {
KeyHolder keyHolder = new GeneratedKeyHolder();
String strSql = "insert into survey(title,description,createtime,isable,image,userid,`type`) values(?,?,NOW(),?,?,?,?)";
if (!hasDuplicate(title)) {
jdao.update(conn -> {
String isable = "启用";
int i = 0;
java.sql.PreparedStatement ps;
ps = conn.prepareStatement(strSql, Statement.RETURN_GENERATED_KEYS);
ps.setString(++i, title);
ps.setString(++i, description);
ps.setString(++i, isable);
ps.setString(++i, image);
ps.setInt(++i, userid);
ps.setString(++i, type);
return ps;
}, keyHolder);
return keyHolder.getKey().intValue();
} else {
return -1;
}
}
/**
* 插入问卷与题目
*/
public int insertSurveyAndQuestions(String title, String description, String image, String type, int userid, String savestring) {
KeyHolder keyHolder = new GeneratedKeyHolder();
String strSql = "insert into survey(title,description,createtime,isable,image,userid,`type`,publish) values(?,?,NOW(),?,?,?,?,'可编辑')";
// 执行事务
return jtx.execute(status -> {
try {
jdao.update(conn -> {
String isable = "启用";
int i = 0;
java.sql.PreparedStatement ps;
ps = conn.prepareStatement(strSql, Statement.RETURN_GENERATED_KEYS);
ps.setString(++i, title);
ps.setString(++i, description);
ps.setString(++i, isable);
ps.setString(++i, image);
ps.setInt(++i, userid);
ps.setString(++i, type);
return ps;
}, keyHolder);
int surveyid = keyHolder.getKey().intValue();
Gson gson = new Gson();
List<Question> retList = gson.fromJson(savestring, new TypeToken<List<Question>>() {
}.getType());
int affectrows = 0;
for (Question ques : retList) {
String sqlsString;
int number = ques.getNumber();
if (hasDuplicate(number, surveyid)) {
sqlsString = "UPDATE question SET title=?,description=?,`type`=?,surveyid=?,`number`=?,opA=?,opB=?,opC=?,opD=?,opE=?,opF=?,opG=?,opH=?,opI=? WHERE surveyid=? AND `number`=?";
jdao.update(conn -> {
int i = 0;
java.sql.PreparedStatement ps;
ps = conn.prepareStatement(sqlsString);
ps.setString(++i, ques.getTitle());
ps.setString(++i, ques.getDescription());
ps.setString(++i, ques.getType());
ps.setInt(++i, surveyid);
ps.setInt(++i, ques.getNumber());
ps.setString(++i, ques.getOpA());
ps.setString(++i, ques.getOpB());
ps.setString(++i, ques.getOpC());
ps.setString(++i, ques.getOpD());
ps.setString(++i, ques.getOpE());
ps.setString(++i, ques.getOpF());
ps.setString(++i, ques.getOpG());
ps.setString(++i, ques.getOpH());
ps.setString(++i, ques.getOpI());
ps.setInt(++i, surveyid);
ps.setInt(++i, ques.getNumber());
return ps;
});
} else {
KeyHolder keyHolder1 = new GeneratedKeyHolder();
sqlsString = "INSERT INTO question(title,description,`type`,surveyid,`number`,opA,opB,opC,opD,opE,opF,opG,opH,opI) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
jdao.update(conn -> {
int i = 0;
java.sql.PreparedStatement ps;
ps = conn.prepareStatement(sqlsString, Statement.RETURN_GENERATED_KEYS);
ps.setString(++i, ques.getTitle());
ps.setString(++i, ques.getDescription());
ps.setString(++i, ques.getType());
ps.setInt(++i, surveyid);
ps.setInt(++i, ques.getNumber());
ps.setString(++i, ques.getOpA());
ps.setString(++i, ques.getOpB());
ps.setString(++i, ques.getOpC());
ps.setString(++i, ques.getOpD());
ps.setString(++i, ques.getOpE());
ps.setString(++i, ques.getOpF());
ps.setString(++i, ques.getOpG());
ps.setString(++i, ques.getOpH());
ps.setString(++i, ques.getOpI());
return ps;
}, keyHolder1);
}
}
jdao.update("DELETE FROM question WHERE surveyid=" + surveyid + " AND `number`>" + retList.size());
return Constant.STATUS_CODE_SUCCESS;
} catch (Exception e) {
e.print
没有合适的资源?快使用搜索试试~ 我知道了~
高校毕业生问卷调查系统Java.zip
共1076个文件
js:264个
css:247个
png:244个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 148 浏览量
2024-03-25
15:58:09
上传
评论
收藏 7.74MB ZIP 举报
温馨提示
国内外优秀毕业项目
资源推荐
资源详情
资源评论
收起资源包目录
高校毕业生问卷调查系统Java.zip (1076个子文件)
纵向毕业季.bmp 2.79MB
ace.css 478KB
ace-rtl.css 149KB
bootstrap.css 142KB
bootstrap.css 138KB
ace-part2.css 136KB
bootstrap.min.css 115KB
ace-skins.css 99KB
easyui.css 60KB
easyui.css 59KB
easyui.css 59KB
easyui.css 59KB
easyui.css 57KB
easyui.css 56KB
jquery-ui.css 36KB
bootstrap-datepicker3.css 32KB
font-awesome.css 32KB
jquery.ui.css 31KB
font-awesome.min.css 30KB
fullcalendar.css 24KB
bootstrap-theme.css 22KB
bootstrap-editable.css 21KB
bootstrap-theme.min.css 19KB
select2.css 19KB
font-awesome-animation.min.css 18KB
jquery-ui.css 18KB
ui.jqgrid.css 16KB
chosen.css 13KB
dropzone.css 12KB
ace-ie.css 11KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
bootstrap-datetimepicker.css 9KB
tabs.css 7KB
tabs.css 7KB
mobile.css 7KB
daterangepicker.css 6KB
color.css 6KB
datagrid.css 6KB
datagrid.css 6KB
datagrid.css 6KB
datagrid.css 6KB
fullcalendar.print.css 5KB
datagrid.css 5KB
datagrid.css 5KB
ace.onpage-help.css 5KB
icon.css 5KB
colorbox.css 4KB
linkbutton.css 4KB
linkbutton.css 4KB
linkbutton.css 4KB
linkbutton.css 4KB
linkbutton.css 4KB
style.css 4KB
calendar.css 4KB
jquery-ui.custom.css 4KB
calendar.css 4KB
calendar.css 4KB
calendar.css 4KB
calendar.css 4KB
calendar.css 4KB
linkbutton.css 3KB
tree.css 3KB
tree.css 3KB
tree.css 3KB
tree.css 3KB
tree.css 3KB
tree.css 3KB
bootstrap-timepicker.css 3KB
panel.css 3KB
panel.css 3KB
panel.css 3KB
panel.css 3KB
textbox.css 3KB
textbox.css 3KB
textbox.css 3KB
textbox.css 3KB
textbox.css 3KB
textbox.css 3KB
layout.css 3KB
layout.css 3KB
layout.css 3KB
layout.css 3KB
layout.css 3KB
layout.css 3KB
panel.css 2KB
panel.css 2KB
window.css 2KB
window.css 2KB
window.css 2KB
window.css 2KB
colorpicker.css 2KB
menu.css 2KB
menu.css 2KB
menu.css 2KB
menu.css 2KB
menu.css 2KB
menu.css 2KB
共 1076 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
专家-百锦再@新空间代码工作室
- 粉丝: 9888
- 资源: 806
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功