问卷星:发布,答卷,答卷查询

This commit is contained in:
曹磊 2024-05-13 23:04:35 +08:00
parent eaf943a0bd
commit 0f572a83e8
16 changed files with 289 additions and 77 deletions

View File

@ -85,6 +85,9 @@ public class WjxDjxx {
@TableField(exist = false) @TableField(exist = false)
private List<WjxDjxxTmxx> wjxDjxxTmxxList; private List<WjxDjxxTmxx> wjxDjxxTmxxList;
@ApiModelProperty(value = "任务编号")
@TableField(exist = false)
private String rwbh;
@ApiModelProperty(value = "学期学年") @ApiModelProperty(value = "学期学年")
@TableField(exist = false) @TableField(exist = false)
private String xqxn; private String xqxn;
@ -102,4 +105,8 @@ public class WjxDjxx {
@TableField(exist = false) @TableField(exist = false)
private Date endTime; private Date endTime;
@ApiModelProperty(value = "是否完成")
@TableField(exist = false)
private String isFinished;
} }

View File

@ -40,6 +40,8 @@ public class WjxDjxxTmlbPage {
private java.lang.Integer wjType; private java.lang.Integer wjType;
/**选择项*/ /**选择项*/
private String itemSelected; private String itemSelected;
/**正确答案*/
private String wjAnswer;
/**提交内容*/ /**提交内容*/
@Excel(name = "提交内容", width = 15) @Excel(name = "提交内容", width = 15)
@ApiModelProperty(value = "提交内容") @ApiModelProperty(value = "提交内容")

View File

@ -27,4 +27,5 @@ public interface WjxDjxxMapper extends BaseMapper<WjxDjxx> {
WjxDjxx findDjxx(@Param("id")String id,@Param("userId")String userId); WjxDjxx findDjxx(@Param("id")String id,@Param("userId")String userId);
List<WjxDjxxTmxx> findDjtmxx(@Param("vid")String vid,@Param("jid")String jid); List<WjxDjxxTmxx> findDjtmxx(@Param("vid")String vid,@Param("jid")String jid);
List<WjxDjxx> findDjjgsPage(Page<WjxDjxx> page, WjxDjxx params); List<WjxDjxx> findDjjgsPage(Page<WjxDjxx> page, WjxDjxx params);
List<WjxDjxx> findUnDjjgsPage(Page<WjxDjxx> page, WjxDjxx params);
} }

View File

@ -88,13 +88,13 @@
<select id="findDjxx" parameterType="String" resultType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx"> <select id="findDjxx" parameterType="String" resultType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx">
select b.atype,b.title,a.vid,a.user_id,a.open_time,a.commit_time,a.jid,a.score,a.total_score,a.answer_seconds,a.user_id,a.user_name select b.atype,b.title,a.vid,a.user_id,a.open_time,a.commit_time,a.jid,a.score,a.total_score,a.answer_seconds,a.user_id,a.user_name
from wjx_djxx a from wjx_djxx a
inner join wjx_wjxx b on a.vid = b.vid and b.id = #{id} inner join wjx_wjxx b on a.vid = b.vid
where a.flag = '1' where a.flag = '1'
and a.user_id = #{userId} and a.id = #{id}
</select> </select>
<select id="findDjtmxx" parameterType="String" resultType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmxx"> <select id="findDjtmxx" parameterType="String" resultType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmxx">
select x.id,x.wj_index,x.wj_type,x.wj_title,x.wj_score,y.item_selected,y.item_score select x.id,x.wj_index,x.wj_type,x.wj_title,x.wj_score,y.item_selected,y.item_score,y.answer_text
from ( from (
select c.id,c.wj_index,c.wj_type,c.wj_title,c.wj_score select c.id,c.wj_index,c.wj_type,c.wj_title,c.wj_score
from wjx_djxx a from wjx_djxx a
@ -104,22 +104,38 @@
and a.vid = #{vid} and a.vid = #{vid}
and a.jid = #{jid} and a.jid = #{jid}
) x ) x
inner join ( inner join (
select wj_index,item_score,GROUP_CONCAT(item_index) as item_selected select wj_index,item_score,answer_text,GROUP_CONCAT(item_index) as item_selected
from wjx_djxx_tmxx from wjx_djxx_tmxx
where vid = #{vid} where vid = #{vid}
and jid = #{jid} and jid = #{jid}
group by wj_index,item_score group by wj_index,item_score,answer_text
) y on x.wj_index = y.wj_index ) y on x.wj_index = y.wj_index
order by x.wj_index order by x.wj_index
</select> </select>
<select id="findDjjgsPage" parameterType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx" resultType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx"> <select id="findDjjgsPage" parameterType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx" resultType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx">
select a.id,a.xqxn,a.kcmc,a.start_time,a.end_time,a.title,a.content,b.vid,b.jid,b.user_id,b.user_name,b.open_time,b.commit_time,b.score,b.total_score,b.answer_seconds select a.atype,b.id,a.xqxn,a.kcmc,a.start_time,a.end_time,a.title,a.content,b.vid,b.jid,b.user_id,b.user_name,b.open_time,b.commit_time,b.score,b.total_score,b.answer_seconds
from wjx_wjxx a from wjx_wjxx a
inner join wjx_djxx b on a.vid = b.vid inner join wjx_djxx b on a.vid = b.vid
where a.id = #{params.id} where a.id = #{params.id}
order by b.open_time order by b.user_id
</select>
<select id="findUnDjjgsPage" parameterType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx" resultType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx">
select x.atype,x.id,x.xqxn,x.kcmc,x.start_time,x.end_time,x.title,x.content,'' as vid,'' as jid,y.xh as user_id,y.xm as user_name,0 as score,0 as total_score,'' as answerSfm
from wjx_wjxx x
inner join (
select a.xh,a.xm,b.KCAPZBBH
from xxhbbks a
inner join xxhbxsxkb b on a.xh = b.xh and b.KCAPZBBH = #{params.rwbh}
) y
on y.KCAPZBBH = x.rwbh
WHERE x.id = #{params.id}
and y.xh not in(
select user_id from wjx_djxx c where c.vid = x.vid
)
order by y.xh
</select> </select>
</mapper> </mapper>

View File

@ -69,14 +69,20 @@ public class WjxDjxxServiceImpl extends ServiceImpl<WjxDjxxMapper, WjxDjxx> impl
StringBuffer submitDataSb = new StringBuffer(); StringBuffer submitDataSb = new StringBuffer();
for(WjxDjxxTmlbPage wjxDjxxTmlbPage:list){ for(WjxDjxxTmlbPage wjxDjxxTmlbPage:list){
Integer WjIndex = wjxDjxxTmlbPage.getWjIndex(); Integer WjIndex = wjxDjxxTmlbPage.getWjIndex();
String itemSelected = wjxDjxxTmlbPage.getItemSelected().replaceAll(",","|").trim(); Integer wjType = wjxDjxxTmlbPage.getWjType();
if(itemSelected == null || itemSelected.equals("null") || itemSelected.equals("")){ String itemSelected = "";
if(wjxDjxxTmlbPage.getWjType().equals("5")){ if(wjType == 3 || wjType == 4){
itemSelected = "(跳过)"; itemSelected = wjxDjxxTmlbPage.getItemSelected().replaceAll(",","|").trim();
}else{ if(itemSelected == null || itemSelected.equals("null") || itemSelected.equals("")){
itemSelected = "-3"; itemSelected = "-3";
} }
} }
if(wjType == 5){
itemSelected = wjxDjxxTmlbPage.getWjAnswer();
if(itemSelected == null || itemSelected.equals("null") || itemSelected.equals("")){
itemSelected = "(跳过)";
}
}
submitDataSb.append(WjIndex); submitDataSb.append(WjIndex);
submitDataSb.append("$"); submitDataSb.append("$");
submitDataSb.append(itemSelected); submitDataSb.append(itemSelected);
@ -107,7 +113,7 @@ public class WjxDjxxServiceImpl extends ServiceImpl<WjxDjxxMapper, WjxDjxx> impl
Map<String,Object> selMap = new HashMap<>(); Map<String,Object> selMap = new HashMap<>();
selMap.put("vid",Integer.valueOf(vid)); selMap.put("vid",Integer.valueOf(vid));
selMap.put("jid",Long.valueOf(jidRes)); selMap.put("jid",Long.valueOf(jidRes));
//调用接口,提交 //调用接口,查询答卷结果
String answerStr = wjxUtil.openapi(selMap,"1001002"); String answerStr = wjxUtil.openapi(selMap,"1001002");
if(!answerStr.equals("")){ if(!answerStr.equals("")){
JSONObject ansJsonResult = JSONObject.parseObject(answerStr); JSONObject ansJsonResult = JSONObject.parseObject(answerStr);
@ -133,24 +139,46 @@ public class WjxDjxxServiceImpl extends ServiceImpl<WjxDjxxMapper, WjxDjxx> impl
JSONObject answerItemJson = answer.getJSONObject("answer_items"); JSONObject answerItemJson = answer.getJSONObject("answer_items");
for(String key2 : answerItemJson.keySet()){ for(String key2 : answerItemJson.keySet()){
JSONObject answerItem = answerItemJson.getJSONObject(key2); JSONObject answerItem = answerItemJson.getJSONObject(key2);
Integer wjIndex = answerItem.getInteger("q_index");
String wjTitle = answerItem.getString("title");
JSONArray itemIndex = answerItem.getJSONArray("item_index");
Double itemScore = answerItem.getDouble("item_value");
String answerText = answerItem.getString("answer_text");
WjxDjxxTmxx wjxDjxxTmxx = new WjxDjxxTmxx(); WjxDjxxTmxx wjxDjxxTmxx = new WjxDjxxTmxx();
wjxDjxxTmxx.setVid(answerVid); wjxDjxxTmxx.setVid(answerVid);
wjxDjxxTmxx.setJid(jidAns); wjxDjxxTmxx.setJid(jidAns);
wjxDjxxTmxx.setUserId(user.getUsername()); wjxDjxxTmxx.setUserId(user.getUsername());
wjxDjxxTmxx.setCreateBy(user.getUsername()); wjxDjxxTmxx.setCreateBy(user.getUsername());
wjxDjxxTmxx.setCreateTime(new Date()); wjxDjxxTmxx.setCreateTime(new Date());
wjxDjxxTmxx.setWjIndex(wjIndex);
wjxDjxxTmxx.setWjTitle(wjTitle); if(answerItem.get("q_index")!=null){
wjxDjxxTmxx.setItemScore(itemScore); Integer wjIndex = answerItem.getInteger("q_index");
wjxDjxxTmxx.setAnswerText(answerText); wjxDjxxTmxx.setWjIndex(wjIndex);
for(Object index : itemIndex){ }
Integer ti = (Integer) index; if(answerItem.get("title")!=null){
wjxDjxxTmxx.setItemIndex(ti); String wjTitle = answerItem.getString("title");
wjxDjxxTmxx.setWjTitle(wjTitle);
}
if(answerItem.get("item_value")!=null){
Double itemScore = answerItem.getDouble("item_value");
wjxDjxxTmxx.setItemScore(itemScore);
}
if(answerItem.get("answer_text")!=null){
String answerText = answerItem.getString("answer_text");
wjxDjxxTmxx.setAnswerText(answerText);
}
if(answerItem.get("item_index")!=null){
JSONArray itemIndex = answerItem.getJSONArray("item_index");
if(itemIndex.size()>0){
for(Object index : itemIndex){
Integer ti = (Integer) index;
wjxDjxxTmxx.setItemIndex(ti);
String id = new DefaultIdentifierGenerator().nextId(new WjxDjxxTmxx()).toString();
wjxDjxxTmxx.setId(id);
baseMapper.addDjTmxx(wjxDjxxTmxx);
}
}else{
String id = new DefaultIdentifierGenerator().nextId(new WjxDjxxTmxx()).toString();
wjxDjxxTmxx.setId(id);
baseMapper.addDjTmxx(wjxDjxxTmxx);
}
}else{
String id = new DefaultIdentifierGenerator().nextId(new WjxDjxxTmxx()).toString(); String id = new DefaultIdentifierGenerator().nextId(new WjxDjxxTmxx()).toString();
wjxDjxxTmxx.setId(id); wjxDjxxTmxx.setId(id);
baseMapper.addDjTmxx(wjxDjxxTmxx); baseMapper.addDjTmxx(wjxDjxxTmxx);
@ -301,11 +329,18 @@ public class WjxDjxxServiceImpl extends ServiceImpl<WjxDjxxMapper, WjxDjxx> impl
@Override @Override
public Page<WjxDjxx> findDjjgsPage(WjxDjxx wjxDjxx, Page<WjxDjxx> page){ public Page<WjxDjxx> findDjjgsPage(WjxDjxx wjxDjxx, Page<WjxDjxx> page){
List<WjxDjxx> list = baseMapper.findDjjgsPage(page,wjxDjxx); if(wjxDjxx.getIsFinished().equals("1")){
for(WjxDjxx djxx:list){ //完成答卷的
djxx.setAnswerSfm(convertSecondsToHMS(djxx.getAnswerSeconds())); List<WjxDjxx> list = baseMapper.findDjjgsPage(page,wjxDjxx);
for(WjxDjxx djxx:list){
djxx.setAnswerSfm(convertSecondsToHMS(djxx.getAnswerSeconds()));
}
page.setRecords(list);
}else{
//未完成答卷的
List<WjxDjxx> list = baseMapper.findUnDjjgsPage(page,wjxDjxx);
page.setRecords(list);
} }
page.setRecords(list);
return page; return page;
} }

View File

@ -56,14 +56,35 @@ public class WjxWjxxController extends JeecgController<WjxWjxx, IWjxWjxxService>
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<WjxWjxx> queryWrapper = QueryGenerator.initQueryWrapper(wjxWjxx, req.getParameterMap()); // QueryWrapper<WjxWjxx> queryWrapper = QueryGenerator.initQueryWrapper(wjxWjxx, req.getParameterMap());
queryWrapper.orderByDesc("create_time"); // queryWrapper.orderByDesc("create_time");
queryWrapper.orderByAsc("start_time"); // queryWrapper.orderByAsc("start_time");
Page<WjxWjxx> page = new Page<WjxWjxx>(pageNo, pageSize); // Page<WjxWjxx> page = new Page<WjxWjxx>(pageNo, pageSize);
IPage<WjxWjxx> pageList = wjxWjxxService.page(page, queryWrapper); // IPage<WjxWjxx> pageList = wjxWjxxService.page(page, queryWrapper);
Page<WjxWjxx> pageList = wjxWjxxService.findPage(wjxWjxx, new Page<>(pageNo, pageSize));
return Result.OK(pageList); return Result.OK(pageList);
} }
/**
* 学生问卷分页列表查询
*
* @param wjxWjxx
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "问卷信息-分页列表查询")
@ApiOperation(value="问卷信息-分页列表查询", notes="问卷信息-分页列表查询")
@GetMapping(value = "/stuList")
public Result<IPage<WjxWjxx>> queryPageStuList(WjxWjxx wjxWjxx,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
Page<WjxWjxx> pageList = wjxWjxxService.findStuPage(wjxWjxx, new Page<>(pageNo, pageSize));
return Result.OK(pageList);
}
/** /**
* 添加 * 添加
* *
@ -185,8 +206,8 @@ public class WjxWjxxController extends JeecgController<WjxWjxx, IWjxWjxxService>
@ApiOperation(value="发布问卷", notes="发布问卷") @ApiOperation(value="发布问卷", notes="发布问卷")
@GetMapping(value = "/fbwj") @GetMapping(value = "/fbwj")
public Result<String> fbwj(@RequestParam(name="id",required=true) String id) { public Result<String> fbwj(@RequestParam(name="id",required=true) String id,@RequestParam(name="wjlx",required=true) String wjlx) {
String res = wjxWjxxService.fbwj(id); String res = wjxWjxxService.fbwj(id,wjlx);
return Result.OK(res); return Result.OK(res);
} }

View File

@ -1,15 +1,11 @@
package org.jeecg.modules.kc.wjxWjxx.entity; package org.jeecg.modules.kc.wjxWjxx.entity;
import java.io.Serializable; import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date; import java.util.Date;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.common.aspect.annotation.Dict;
@ -92,6 +88,12 @@ public class WjxWjxx implements Serializable {
private String kcmc; private String kcmc;
@ApiModelProperty(value = "选课人数") @ApiModelProperty(value = "选课人数")
private String xkrs; private String xkrs;
@ApiModelProperty(value = "已完成人数")
@TableField(exist = false)
private Integer ywcrs;
@ApiModelProperty(value = "未完成人数")
@TableField(exist = false)
private Integer wwcrs;
@ApiModelProperty(value = "开始时间") @ApiModelProperty(value = "开始时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ -100,5 +102,13 @@ public class WjxWjxx implements Serializable {
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date endTime; private Date endTime;
@ApiModelProperty(value = "答卷状态标识")
@TableField(exist = false)
private String flag;// -1 未答卷 0已答卷 1已答卷查询
@ApiModelProperty(value = "学生学号")
@TableField(exist = false)
private String userId;
@ApiModelProperty(value = "答卷ID")
@TableField(exist = false)
private String djId;
} }

View File

@ -1,10 +1,10 @@
package org.jeecg.modules.kc.wjxWjxx.mapper; package org.jeecg.modules.kc.wjxWjxx.mapper;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx; import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/** /**
* @Description: 问卷信息 * @Description: 问卷信息
@ -13,6 +13,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @Version: V1.0 * @Version: V1.0
*/ */
public interface WjxWjxxMapper extends BaseMapper<WjxWjxx> { public interface WjxWjxxMapper extends BaseMapper<WjxWjxx> {
List<WjxWjxx> findPage(Page<WjxWjxx> page,WjxWjxx param);
List<WjxWjxx> findStuPage(Page<WjxWjxx> page,WjxWjxx param);
WjxWjxx kcxx(@Param("rwbh")String rwbh,@Param("xqxn")String xqxn); WjxWjxx kcxx(@Param("rwbh")String rwbh,@Param("xqxn")String xqxn);
void updateVid(@Param("id")String id,@Param("vid")String vid); void updateVid(@Param("id")String id,@Param("vid")String vid);
} }

View File

@ -2,6 +2,77 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.kc.wjxWjxx.mapper.WjxWjxxMapper"> <mapper namespace="org.jeecg.modules.kc.wjxWjxx.mapper.WjxWjxxMapper">
<select id="findPage" parameterType="org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx" resultType="org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx">
select
id,
create_by,
create_time,
update_by,
update_time,
creater,
atype,
title,
content,
qpublish,
compress_img,
questions,
vid,
xqxn,
rwbh,
kcmc,
xkrs,
(select count(*) from wjx_djxx b where flag = '1' and vid = a.vid) as ywcrs,
xkrs - (SELECT count(*) FROM wjx_djxx b WHERE flag = '1' AND vid = a.vid ) AS wwcrs,
start_time,
end_time
from wjx_wjxx a
where rwbh = #{param.rwbh}
and xqxn = #{param.xqxn}
and atype = #{param.atype}
and create_by = #{param.createBy}
<if test="param.title != null and param.title != ''">
and a.title like CONCAT('%', #{param.title}, '%')
</if>
<if test="param.qpublish != null and param.qpublish != ''">
and a.qpublish = #{param.qpublish}
</if>
order by create_time desc,start_time asc
</select>
<select id="findStuPage" parameterType="org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx" resultType="org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx">
select
a.id,
a.atype,
a.title,
a.vid,
a.xqxn,
a.rwbh,
a.kcmc,
a.start_time,
a.end_time,
ifnull(b.flag,'-1') as flag,
b.id as djId
from wjx_wjxx a
left join wjx_djxx b on a.vid = b.vid and b.user_id = #{param.userId}
where a.qpublish = '1'
and a.rwbh = #{param.rwbh}
and a.xqxn = #{param.xqxn}
and a.atype = #{param.atype}
<if test="param.title != null and param.title != ''">
and a.title like CONCAT('%', #{param.title}, '%')
</if>
<if test="param.flag != null and param.flag != ''">
<if test="param.flag == '-1'">
and (b.id is null or ifnull(b.flag,'-1') = '-1')
</if>
<if test='param.flag == "0" or param.flag == "1"'>
and b.id is not null
and b.flag = #{param.flag}
</if>
</if>
order by a.create_time desc,a.start_time asc
</select>
<select id="kcxx" parameterType="String" resultType="org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx"> <select id="kcxx" parameterType="String" resultType="org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx">
select distinct kcmc,xkrs select distinct kcmc,xkrs
from kc_kechengbiao from kc_kechengbiao

View File

@ -2,6 +2,7 @@ package org.jeecg.modules.kc.wjxWjxx.service;
import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx; import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/** /**
* @Description: 问卷信息 * @Description: 问卷信息
@ -10,7 +11,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @Version: V1.0 * @Version: V1.0
*/ */
public interface IWjxWjxxService extends IService<WjxWjxx> { public interface IWjxWjxxService extends IService<WjxWjxx> {
Page<WjxWjxx> findPage(WjxWjxx wjxWjxx,Page<WjxWjxx> page);
Page<WjxWjxx> findStuPage(WjxWjxx wjxWjxx,Page<WjxWjxx> page);
WjxWjxx kcxx(String rwbh,String xqxn); WjxWjxx kcxx(String rwbh,String xqxn);
String fbwj(String id); String fbwj(String id,String isKs);
} }

View File

@ -1,13 +1,10 @@
package org.jeecg.modules.kc.wjxWjxx.service.impl; package org.jeecg.modules.kc.wjxWjxx.service.impl;
import java.security.MessageDigest; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.security.NoSuchAlgorithmException;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils;
import org.jeecg.common.util.DateUtils; import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx; import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx;
import org.jeecg.modules.kc.wjxWjxx.mapper.WjxWjxxMapper; import org.jeecg.modules.kc.wjxWjxx.mapper.WjxWjxxMapper;
import org.jeecg.modules.kc.wjxWjxx.service.IWjxWjxxService; import org.jeecg.modules.kc.wjxWjxx.service.IWjxWjxxService;
@ -16,17 +13,11 @@ import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmlb;
import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx; import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx;
import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmlbMapper; import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmlbMapper;
import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmxxMapper; import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmxxMapper;
import org.jeecg.modules.tools.baidu.HttpUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.time.Instant;
import java.util.*; import java.util.*;
import static cn.hutool.crypto.digest.DigestUtil.sha1;
/** /**
* @Description: 问卷信息 * @Description: 问卷信息
* @Author: jeecg-boot * @Author: jeecg-boot
@ -43,6 +34,23 @@ public class WjxWjxxServiceImpl extends ServiceImpl<WjxWjxxMapper, WjxWjxx> impl
@Autowired @Autowired
private WjxUtil wjxUtil; private WjxUtil wjxUtil;
@Override
public Page<WjxWjxx> findPage(WjxWjxx wjxWjxx, Page<WjxWjxx> page){
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
wjxWjxx.setCreateBy(user.getUsername());
List<WjxWjxx> list = baseMapper.findPage(page,wjxWjxx);
page.setRecords(list);
return page;
}
@Override
public Page<WjxWjxx> findStuPage(WjxWjxx wjxWjxx, Page<WjxWjxx> page){
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
wjxWjxx.setUserId(user.getUsername());
List<WjxWjxx> list = baseMapper.findStuPage(page,wjxWjxx);
page.setRecords(list);
return page;
}
// @Override // @Override
// public WjxWjxx fbwj(String id) { // public WjxWjxx fbwj(String id) {
@ -211,7 +219,7 @@ public class WjxWjxxServiceImpl extends ServiceImpl<WjxWjxxMapper, WjxWjxx> impl
} }
@Override @Override
public String fbwj(String id) { public String fbwj(String id,String wjlx) {
WjxWjxx wjxWjxx = baseMapper.selectById(id); WjxWjxx wjxWjxx = baseMapper.selectById(id);
@ -226,29 +234,36 @@ public class WjxWjxxServiceImpl extends ServiceImpl<WjxWjxxMapper, WjxWjxx> impl
map.put("q_type",wWjxWjxxTmlb.getWjType()); map.put("q_type",wWjxWjxxTmlb.getWjType());
map.put("q_title",wWjxWjxxTmlb.getWjTitle()); map.put("q_title",wWjxWjxxTmlb.getWjTitle());
map.put("is_requir",true); map.put("is_requir",true);
if(wWjxWjxxTmlb.getWjScore()!=null){ if(wjlx.equals("6")){
map.put("q_score",wWjxWjxxTmlb.getWjScore()); if(wWjxWjxxTmlb.getWjScore()!=null){
map.put("q_score",wWjxWjxxTmlb.getWjScore());
}
map.put("q_ceshi",true); map.put("q_ceshi",true);
}
if(wWjxWjxxTmlb.getWjType() == 3){
map.put("is_toupiao",3); map.put("is_toupiao",3);
} }
if(wWjxWjxxTmlb.getWjType() == 4){ if(wWjxWjxxTmlb.getWjType() == 3 || wWjxWjxxTmlb.getWjType() == 4){
map.put("is_toupiao",3); //单选和多选
List<Map<String,Object>> itemsList = new ArrayList<>();
List<WjxWjxxTmxx> tmxxList = wjxWjxxTmxxMapper.selectByMainId(wWjxWjxxTmlb.getId());
for(WjxWjxxTmxx wjxWjxxTmxx:tmxxList){
Map<String,Object> tmxxMap = new HashMap<>();
tmxxMap.put("q_index",wjxWjxxTmxx.getWjIndex());
tmxxMap.put("item_index",wjxWjxxTmxx.getItemIndex());
tmxxMap.put("item_title",wjxWjxxTmxx.getItemTitle());
tmxxMap.put("item_selected",Boolean.parseBoolean(wjxWjxxTmxx.getItemSelected()));
tmxxMap.put("item_score",0);
JSONObject json = new JSONObject(tmxxMap);
itemsList.add(json);
}
map.put("items",itemsList);
}else if(wWjxWjxxTmlb.getWjType() == 5){
//填空
if(wWjxWjxxTmlb.getWjAnswer()!=null){
map.put("answer",wWjxWjxxTmlb.getWjAnswer());
}
}else if(wWjxWjxxTmlb.getWjType() == 6){
//多项填空,预留之后有需求再开发
} }
List<Map<String,Object>> itemsList = new ArrayList<>();
List<WjxWjxxTmxx> tmxxList = wjxWjxxTmxxMapper.selectByMainId(wWjxWjxxTmlb.getId());
for(WjxWjxxTmxx wjxWjxxTmxx:tmxxList){
Map<String,Object> tmxxMap = new HashMap<>();
tmxxMap.put("q_index",wjxWjxxTmxx.getWjIndex());
tmxxMap.put("item_index",wjxWjxxTmxx.getItemIndex());
tmxxMap.put("item_title",wjxWjxxTmxx.getItemTitle());
tmxxMap.put("item_selected",Boolean.parseBoolean(wjxWjxxTmxx.getItemSelected()));
tmxxMap.put("item_score",0);
JSONObject json = new JSONObject(tmxxMap);
itemsList.add(json);
}
map.put("items",itemsList);
JSONObject json = new JSONObject(map); JSONObject json = new JSONObject(map);
questionsList.add(json); questionsList.add(json);
} }

View File

@ -280,4 +280,11 @@ public class WjxWjxxTmlbController {
return Result.OK(WjxWjxxTmlbList); return Result.OK(WjxWjxxTmlbList);
} }
@ApiOperation(value="选项信息主表ID查询", notes="选项信息-通主表ID查询")
@GetMapping(value = "/queryDjByMainId")
public Result<List<WjxWjxxTmlb>> queryDjByMainId(@RequestParam(name="id",required=true) String id) {
List<WjxWjxxTmlb> WjxWjxxTmlbList = wjxWjxxTmlbService.queryDjByMainId(id);
return Result.OK(WjxWjxxTmlbList);
}
} }

View File

@ -82,6 +82,10 @@ public class WjxWjxxTmlb implements Serializable {
@Excel(name = "题目解析", width = 15) @Excel(name = "题目解析", width = 15)
@ApiModelProperty(value = "题目解析") @ApiModelProperty(value = "题目解析")
private java.lang.String wjParsing; private java.lang.String wjParsing;
/**正确答案*/
@Excel(name = "正确答案", width = 15)
@ApiModelProperty(value = "正确答案")
private java.lang.String wjAnswer;
/**填写提示*/ /**填写提示*/
@Excel(name = "填写提示", width = 15) @Excel(name = "填写提示", width = 15)
@ApiModelProperty(value = "填写提示") @ApiModelProperty(value = "填写提示")

View File

@ -48,4 +48,6 @@ public interface IWjxWjxxTmlbService extends IService<WjxWjxxTmlb> {
void removeByMainId(String id); void removeByMainId(String id);
List<WjxWjxxTmlb> queryByMainId(String id); List<WjxWjxxTmlb> queryByMainId(String id);
List<WjxWjxxTmlb> queryDjByMainId(String id);
} }

View File

@ -116,4 +116,17 @@ public class WjxWjxxTmlbServiceImpl extends ServiceImpl<WjxWjxxTmlbMapper, WjxWj
return list; return list;
} }
@Override
public List<WjxWjxxTmlb> queryDjByMainId(String id) {
QueryWrapper<WjxWjxxTmlb> wjxWjxxTmlbQueryWrapper = new QueryWrapper<WjxWjxxTmlb>();
wjxWjxxTmlbQueryWrapper.eq("main_id",id);
List<WjxWjxxTmlb> list = wjxWjxxTmlbMapper.selectList(wjxWjxxTmlbQueryWrapper);
for(WjxWjxxTmlb WjxWjxxTmlb:list){
List<WjxWjxxTmxx> list2= wjxWjxxTmxxMapper.selectByMainId(WjxWjxxTmlb.getId());
WjxWjxxTmlb.setWjxWjxxTmxxList(list2);
WjxWjxxTmlb.setWjAnswer("");
}
return list;
}
} }

View File

@ -79,6 +79,10 @@ public class WjxWjxxTmlbPage {
@Excel(name = "题目解析", width = 15) @Excel(name = "题目解析", width = 15)
@ApiModelProperty(value = "题目解析") @ApiModelProperty(value = "题目解析")
private java.lang.String wjParsing; private java.lang.String wjParsing;
/**正确答案*/
@Excel(name = "正确答案", width = 15)
@ApiModelProperty(value = "正确答案")
private java.lang.String wjAnswer;
/**填写提示*/ /**填写提示*/
@Excel(name = "填写提示", width = 15) @Excel(name = "填写提示", width = 15)
@ApiModelProperty(value = "填写提示") @ApiModelProperty(value = "填写提示")