退出bug

beetlsql3-dev
Mlxa0324 2 years ago
parent 1097a4a88f
commit 0717e9e033

@ -417,7 +417,7 @@
Common.awaitTime(1200, function () {
//window.location.href = ret.data;
// window.location.href = "http://116.205.131.177:8080/Login";
window.location.href = Common.ctxPath;
window.location.href = Common.ctxPath.replaceAll(/\/server.+/g, '')
});
}
});

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -453,3 +453,39 @@ CREATE TABLE `general_question_log` (
ALTER TABLE student_client_link ADD COLUMN student_client_link_desc varchar(600) COMMENT '描述说明';
drop table if exists question_log_summary;
/*==============================================================*/
/* Table: question_log_summary */
/*==============================================================*/
create table question_log_summary
(
question_log_summary_id bigint not null comment '学生做题日志汇总ID',
question_setting_id bigint comment '题目配置ID',
question_setting_name bigint comment '题目配置名称',
question_setting_type bigint comment '类型 枚举ResourcesQuestionSnapshotFromTypeEnum',
question_log_summary_from_type varchar(50) comment '来源类型 枚举',
question_setting_total_score int comment '配置的题目总分数',
person_id bigint comment '人员ID学生ID等等',
question_log_summary_question_total_count int comment '配置的题目总数',
question_log_summary_student_do_count int comment '学生做题总数',
question_log_summary_success_count int comment '全对数量',
question_log_summary_half_success_count int comment '半对数量',
question_log_summary_error_count int comment '错题数量',
question_log_summary_success_rate float comment '正确率,最大100',
question_log_summary_current_pass_rate float comment '当前配置的及格比率',
question_log_summary_is_pass int(2) comment '是否及格',
question_log_summary_status int(2) comment '状态1正常 2删除',
question_log_summary_add_time datetime comment '添加时间',
org_id bigint comment '组织ID',
user_id bigint comment '用户ID',
primary key (question_log_summary_id)
)
auto_increment = 1
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
alter table question_log_summary comment '学生-题目日志-分析汇总';

@ -0,0 +1,33 @@
package com.ibeetl.jlw.dao;
import com.ibeetl.jlw.entity.QuestionLogSummary;
import com.ibeetl.jlw.web.query.QuestionLogSummaryQuery;
import org.beetl.sql.core.engine.PageQuery;
import org.beetl.sql.mapper.BaseMapper;
import org.beetl.sql.mapper.annotation.SqlResource;
import org.beetl.sql.mapper.annotation.Update;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* Dao
*/
// 实际可以不用加Repository注解调用的地方注入时候Idea会报红看着难受
@Repository
@SqlResource("jlw.questionLogSummary")
public interface QuestionLogSummaryDao extends BaseMapper<QuestionLogSummary>{
PageQuery<QuestionLogSummary> queryByCondition(PageQuery query);
PageQuery<QuestionLogSummary> queryByConditionQuery(PageQuery query);
@Update
void deleteQuestionLogSummaryByIds(String ids);
@Update
void deleteByIds(String ids);
@Update
int updateGivenByIds(QuestionLogSummaryQuery questionLogSummaryQuery);
List<QuestionLogSummary> getByIds(String ids);
List<QuestionLogSummary> getValuesByQuery(QuestionLogSummaryQuery questionLogSummaryQuery);
List<QuestionLogSummary> getValuesByQueryNotWithPermission(QuestionLogSummaryQuery questionLogSummaryQuery);
List<Map<String,Object>>getExcelValues(QuestionLogSummaryQuery questionLogSummaryQuery);
}

@ -0,0 +1,106 @@
package com.ibeetl.jlw.entity;
import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.entity.BaseEntity;
import com.ibeetl.admin.core.util.ValidateConfig;
import com.ibeetl.jlw.enums.BusinessCourseInfoEnum;
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.beetl.sql.annotation.entity.AssignID;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
/*
* --
* gen by Spring Boot2 Admin 2022-12-02
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class QuestionLogSummary extends BaseEntity{
//学生做题日志汇总ID
@NotNull(message = "ID不能为空", groups =ValidateConfig.UPDATE.class)
// @SeqID(name = ORACLE_CORE_SEQ_NAME)
@AssignID(value = "maskAutoID",param = "com.ibeetl.jlw.entity.QuestionLogSummary")
private Long questionLogSummaryId ;
//题目配置ID
private Long questionSettingId ;
//题目配置名称
private Long questionSettingName ;
/**
* {@link ResourcesQuestionSnapshotFromTypeEnum}
*/
private ResourcesQuestionSnapshotFromTypeEnum questionSettingType ;
/**
* {@link BusinessCourseInfoEnum}
*/
private BusinessCourseInfoEnum questionLogSummaryFromType ;
//配置的题目总分数
private Integer questionSettingTotalScore ;
//人员ID学生ID等等
private Long personId ;
//配置的题目总数
private Integer questionLogSummaryQuestionTotalCount ;
//学生做题总数
private Integer questionLogSummaryStudentDoCount ;
//全对数量
private Integer questionLogSummarySuccessCount ;
//半对数量
private Integer questionLogSummaryHalfSuccessCount ;
//错题数量
private Integer questionLogSummaryErrorCount ;
//正确率,最大100
private BigDecimal questionLogSummarySuccessRate ;
//当前配置的及格比率
private BigDecimal questionLogSummaryCurrentPassRate ;
//是否及格
private Integer questionLogSummaryIsPass ;
//状态1正常 2删除
@Dict(type="global_status")
private Integer questionLogSummaryStatus ;
//添加时间
private Date questionLogSummaryAddTime ;
//组织ID
private Long orgId ;
//用户ID
private Long userId ;
}

@ -0,0 +1,378 @@
package com.ibeetl.jlw.service;
import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.admin.core.web.JsonReturnCode;
import com.ibeetl.jlw.dao.QuestionLogSummaryDao;
import com.ibeetl.jlw.entity.FileEntity;
import com.ibeetl.jlw.entity.QuestionLogSummary;
import com.ibeetl.jlw.enums.BusinessCourseInfoEnum;
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import com.ibeetl.jlw.web.query.QuestionLogSummaryQuery;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.beetl.sql.core.SqlId;
import org.beetl.sql.core.engine.PageQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.io.*;
import java.math.BigDecimal;
import java.util.*;
import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
/**
* Service
* ID使insert(*,true)
*/
@Service
@Transactional
@Validated
public class QuestionLogSummaryService extends CoreBaseService<QuestionLogSummary>{
@Autowired private QuestionLogSummaryDao questionLogSummaryDao;
public PageQuery<QuestionLogSummary>queryByCondition(PageQuery query){
PageQuery ret = questionLogSummaryDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret;
}
public PageQuery<QuestionLogSummary>queryByConditionQuery(PageQuery query){
PageQuery ret = questionLogSummaryDao.queryByConditionQuery(query);
queryListAfter(ret.getList());
return ret;
}
public void deleteByList(List list){
String ids = "";
ToolUtils.deleteNullList(list);
for(int i=0;null != list && i<list.size();i++){
ids += list.get(i).toString()+(i==list.size()-1?"":",");
}
if(StringUtils.isNotBlank(ids)){
questionLogSummaryDao.deleteByIds(ids);
}
}
public void deleteQuestionLogSummary(String ids){
try {
questionLogSummaryDao.deleteQuestionLogSummaryByIds(ids);
} catch (Exception e) {
throw new PlatformException("批量删除通用题目日志汇总失败", e);
}
}
public String addAll(QuestionLogSummaryQuery questionLogSummaryQuery){
String msg = "";
List<QuestionLogSummary> questionLogSummaryList = new ArrayList<>();
try {
questionLogSummaryList = JSON.parseArray(questionLogSummaryQuery.getQuestionLogSummaryJsonStr(), QuestionLogSummary.class);
} catch (Exception e) {
try {
questionLogSummaryList.add(JSONObject.parseObject(questionLogSummaryQuery.getQuestionLogSummaryJsonStr(), QuestionLogSummary.class));
} catch (Exception e1) {}
}
ToolUtils.deleteNullList(questionLogSummaryList);
if(null != questionLogSummaryList && questionLogSummaryList.size()>0){
for(int i=0;i<questionLogSummaryList.size();i++){
QuestionLogSummary questionLogSummary = questionLogSummaryList.get(i);
questionLogSummary.setQuestionLogSummaryAddTime(questionLogSummaryQuery.getQuestionLogSummaryAddTime());
questionLogSummary.setUserId(questionLogSummaryQuery.getUserId());
questionLogSummary.setOrgId(questionLogSummaryQuery.getOrgId());
}
insertBatch(questionLogSummaryList);
}
return msg;
}
public JsonResult add(QuestionLogSummaryQuery questionLogSummaryQuery){
String msg = "";
QuestionLogSummary questionLogSummary = questionLogSummaryQuery.pojo();
questionLogSummaryDao.insert(questionLogSummary);
questionLogSummaryQuery.setQuestionLogSummaryId(questionLogSummary.getQuestionLogSummaryId());
JsonResult jsonResult = new JsonResult();
jsonResult.setData(questionLogSummary.getQuestionLogSummaryId());//自增的ID丢进去
jsonResult.setCode(JsonReturnCode.SUCCESS.getCode());
jsonResult.setMsg(msg);
return jsonResult;
}
public String edit(QuestionLogSummaryQuery questionLogSummaryQuery){
String msg = "";
QuestionLogSummary questionLogSummary = questionLogSummaryQuery.pojo();
questionLogSummaryDao.updateTemplateById(questionLogSummary);
return msg;
}
public String updateGivenByIds(QuestionLogSummaryQuery questionLogSummaryQuery){
String msg = "";
if(StringUtils.isNotBlank(questionLogSummaryQuery.get_given())){
boolean flag = questionLogSummaryDao.updateGivenByIds(questionLogSummaryQuery) > 0;
if(!flag){
msg = "更新指定参数失败";
}
}else{
msg = "指定参数为空";
}
return msg;
}
public List<QuestionLogSummary> getValues (Object paras){
return sqlManager.select(SqlId.of("jlw.questionLogSummary.getQuestionLogSummaryValues"), QuestionLogSummary.class, paras);
}
public List<QuestionLogSummary> getValuesByQuery (QuestionLogSummaryQuery questionLogSummaryQuery){
return questionLogSummaryDao.getValuesByQuery(questionLogSummaryQuery);
}
public List<QuestionLogSummary> getValuesByQueryNotWithPermission (QuestionLogSummaryQuery questionLogSummaryQuery){
return questionLogSummaryDao.getValuesByQueryNotWithPermission(questionLogSummaryQuery);
}
public QuestionLogSummary getInfo (Long questionLogSummaryId){
QuestionLogSummaryQuery questionLogSummaryQuery = new QuestionLogSummaryQuery();
questionLogSummaryQuery.setQuestionLogSummaryId(questionLogSummaryId);
questionLogSummaryQuery.setQuestionLogSummaryStatusPlural("1,2");//需要根据实际情况来
List<QuestionLogSummary> list = questionLogSummaryDao.getValuesByQuery(questionLogSummaryQuery);
if(null != list && list.size()>0){
return list.get(0);
}else{
return null;
}
}
public QuestionLogSummary getInfo (QuestionLogSummaryQuery questionLogSummaryQuery){
List<QuestionLogSummary> list = questionLogSummaryDao.getValuesByQuery(questionLogSummaryQuery);
if(null != list && list.size()>0){
return list.get(0);
}else{
return null;
}
}
public JsonResult importTemplate(List<FileEntity> fileEntityList,List<Long>list,CoreUser coreUser){
List<String[]>errMsg = new ArrayList<>();
String msg ="";
int count = 0;
Date date = new Date();
for(int item=0;null != fileEntityList && item<fileEntityList.size();item++){
FileEntity fileEntity = fileEntityList.get(item);
if(null != fileEntity){
File file = new File(fileEntity.getAbsoluteUrl());
if(file.exists() && file.isFile() && file.canRead() && ToolUtils.findInSet("xls,xlsx",fileEntity.getFormat())){
Workbook wb = null;
InputStream is = null;
try {
is = new FileInputStream(fileEntity.getAbsoluteUrl());
if("xls".equals(fileEntity.getFormat())){
wb = new HSSFWorkbook(is);
}else if("xlsx".equals(fileEntity.getFormat())){
wb = new XSSFWorkbook(is);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
if(null != is){
is.close();
}
}catch (Exception e){
e.printStackTrace();
}
if(wb != null){
//获取Sheet1
Sheet sheet = wb.getSheet("Sheet1");
//获取最大行数
int rowNum = sheet.getPhysicalNumberOfRows();
//获取第一行
Row firstRow = sheet.getRow(0);
//获取最大列数
int colNum = firstRow.getPhysicalNumberOfCells();
String columns[] = {
"题目配置",
"题目配置名称",
"类型 枚举",
"来源类型 枚举",
"配置的题目总分数",
"人员",
"配置的题目总数",
"学生做题总数",
"全对数量",
"半对数量",
"错题数量",
"正确率,最大100",
"当前配置的及格比率",
"是否及格",
"状态",
};
Map<String,Integer> map = new HashMap<>();//获取需要的表头的列
//从第一列找到需要的表头
for (int i=0; i<colNum; i++){
String cellData = getCellFormatValue(firstRow.getCell(i));
for(int j=0;j<columns.length;j++){
if(columns[j].equals(cellData)){
map.put(columns[j],i);
}
}
}
//验证所需要的表头是否全
Integer flag = 0;
for(int i=0;i<columns.length;i++){
if(null != map.get(columns[i])){
flag ++;
}
}
if(flag != columns.length){
String str = " ";
for(int i=0;i<columns.length;i++){
str += "\""+columns[i]+"\""+(i == columns.length-1?"":", ");
}
return JsonResult.failMessage("导入失败,表格表头应包含"+str);
}
for (int i = 1; i<rowNum; i++) {
Row row = sheet.getRow(i);
if(null == row){
errMsg.add(new String[]{"第"+(i+1)+"数据为空"});
continue;
}
String questionSettingId = getCellFormatValue(row.getCell(map.get(columns[0])));
String questionSettingName = getCellFormatValue(row.getCell(map.get(columns[1])));
String questionSettingType = getCellFormatValue(row.getCell(map.get(columns[2])));
String questionLogSummaryFromType = getCellFormatValue(row.getCell(map.get(columns[3])));
String questionSettingTotalScore = getCellFormatValue(row.getCell(map.get(columns[4])));
String personId = getCellFormatValue(row.getCell(map.get(columns[5])));
String questionLogSummaryQuestionTotalCount = getCellFormatValue(row.getCell(map.get(columns[6])));
String questionLogSummaryStudentDoCount = getCellFormatValue(row.getCell(map.get(columns[7])));
String questionLogSummarySuccessCount = getCellFormatValue(row.getCell(map.get(columns[8])));
String questionLogSummaryHalfSuccessCount = getCellFormatValue(row.getCell(map.get(columns[9])));
String questionLogSummaryErrorCount = getCellFormatValue(row.getCell(map.get(columns[10])));
String questionLogSummarySuccessRate = getCellFormatValue(row.getCell(map.get(columns[11])));
String questionLogSummaryCurrentPassRate = getCellFormatValue(row.getCell(map.get(columns[12])));
String questionLogSummaryIsPass = getCellFormatValue(row.getCell(map.get(columns[13])));
String questionLogSummaryStatus = getCellFormatValue(row.getCell(map.get(columns[14])));
//TODO 判断(如重复等复杂判断要额外写)
if(StringUtils.isBlank(questionSettingId)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[0])+1)+"列,第"+(i+1)+"行题目配置为空"});
continue;
}else
if(StringUtils.isBlank(questionSettingName)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[1])+1)+"列,第"+(i+1)+"行题目配置名称为空"});
continue;
}else
if(StringUtils.isBlank(questionSettingType)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[2])+1)+"列,第"+(i+1)+"行类型 枚举为空"});
continue;
}else
if(StringUtils.isBlank(questionLogSummaryFromType)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[3])+1)+"列,第"+(i+1)+"行来源类型 枚举为空"});
continue;
}else
if(StringUtils.isBlank(questionSettingTotalScore)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[4])+1)+"列,第"+(i+1)+"行配置的题目总分数为空"});
continue;
}else
if(StringUtils.isBlank(personId)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[5])+1)+"列,第"+(i+1)+"行人员为空"});
continue;
}else
if(StringUtils.isBlank(questionLogSummaryQuestionTotalCount)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[6])+1)+"列,第"+(i+1)+"行配置的题目总数为空"});
continue;
}else
if(StringUtils.isBlank(questionLogSummaryStudentDoCount)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[7])+1)+"列,第"+(i+1)+"行学生做题总数为空"});
continue;
}else
if(StringUtils.isBlank(questionLogSummarySuccessCount)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[8])+1)+"列,第"+(i+1)+"行全对数量为空"});
continue;
}else
if(StringUtils.isBlank(questionLogSummaryHalfSuccessCount)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[9])+1)+"列,第"+(i+1)+"行半对数量为空"});
continue;
}else
if(StringUtils.isBlank(questionLogSummaryErrorCount)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[10])+1)+"列,第"+(i+1)+"行错题数量为空"});
continue;
}else
if(StringUtils.isBlank(questionLogSummarySuccessRate)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[11])+1)+"列,第"+(i+1)+"行正确率,最大100为空"});
continue;
}else
if(StringUtils.isBlank(questionLogSummaryCurrentPassRate)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[12])+1)+"列,第"+(i+1)+"行当前配置的及格比率为空"});
continue;
}else
if(StringUtils.isBlank(questionLogSummaryIsPass)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[13])+1)+"列,第"+(i+1)+"行是否及格为空"});
continue;
}else
if(StringUtils.isBlank(questionLogSummaryStatus)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[14])+1)+"列,第"+(i+1)+"行状态为空"});
continue;
}else
{
//TODO 保存
QuestionLogSummary questionLogSummary = new QuestionLogSummary();
questionLogSummary.setQuestionSettingId(Long.parseLong(questionSettingId));
questionLogSummary.setQuestionSettingName(Long.parseLong(questionSettingName));
questionLogSummary.setQuestionSettingType(ResourcesQuestionSnapshotFromTypeEnum.valueOf(questionSettingType));
questionLogSummary.setQuestionLogSummaryFromType(BusinessCourseInfoEnum.valueOf(questionLogSummaryFromType));
questionLogSummary.setQuestionSettingTotalScore(Integer.parseInt(questionSettingTotalScore));
questionLogSummary.setPersonId(Long.parseLong(personId));
questionLogSummary.setQuestionLogSummaryQuestionTotalCount(Integer.parseInt(questionLogSummaryQuestionTotalCount));
questionLogSummary.setQuestionLogSummaryStudentDoCount(Integer.parseInt(questionLogSummaryStudentDoCount));
questionLogSummary.setQuestionLogSummarySuccessCount(Integer.parseInt(questionLogSummarySuccessCount));
questionLogSummary.setQuestionLogSummaryHalfSuccessCount(Integer.parseInt(questionLogSummaryHalfSuccessCount));
questionLogSummary.setQuestionLogSummaryErrorCount(Integer.parseInt(questionLogSummaryErrorCount));
questionLogSummary.setQuestionLogSummarySuccessRate(new BigDecimal(questionLogSummarySuccessRate));
questionLogSummary.setQuestionLogSummaryCurrentPassRate(new BigDecimal(questionLogSummaryCurrentPassRate));
questionLogSummary.setQuestionLogSummaryIsPass(Integer.parseInt(questionLogSummaryIsPass));
questionLogSummary.setQuestionLogSummaryStatus(Integer.parseInt(questionLogSummaryStatus));
questionLogSummary.setQuestionLogSummaryAddTime(new Date());
questionLogSummary.setOrgId(coreUser.getOrgId());
questionLogSummary.setUserId(coreUser.getId());
count++;
}
}
}
}
}
}
JsonResult jsonResult = new JsonResult();
jsonResult.setCode(count>0?JsonReturnCode.SUCCESS.getCode():JsonReturnCode.FAIL.getCode());
jsonResult.setData(errMsg);
jsonResult.setMsg((count>0?"导入成功,共导入"+count+"条":"导入失败")+(StringUtils.isNotBlank(msg)?"<br>"+msg:""));
return jsonResult;
}
public List<Map<String,Object>> getExcelValues (QuestionLogSummaryQuery questionLogSummaryQuery){
return questionLogSummaryDao.getExcelValues(questionLogSummaryQuery);
}
}

@ -0,0 +1,439 @@
package com.ibeetl.jlw.web;
import cn.hutool.core.lang.Assert;
import cn.jlw.Interceptor.GetFile;
import cn.jlw.Interceptor.RFile;
import cn.jlw.Interceptor.SCoreUser;
import cn.jlw.util.ToolUtils;
import cn.jlw.validate.ValidateConfig;
import com.ibeetl.admin.core.annotation.Function;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.file.FileService;
import com.ibeetl.admin.core.util.TimeTool;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.FileEntity;
import com.ibeetl.jlw.entity.QuestionLogSummary;
import com.ibeetl.jlw.service.QuestionLogSummaryService;
import com.ibeetl.jlw.web.query.QuestionLogSummaryQuery;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.beetl.sql.core.engine.PageQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
/**
* --
* 线
*/
@RestController
@Validated
public class QuestionLogSummaryController{
private final Log log = LogFactory.getLog(this.getClass());
private static final String MODEL = "/jlw/questionLogSummary";
private static final String API = "/api/questionLogSummary";
@Autowired private QuestionLogSummaryService questionLogSummaryService;
@Autowired FileService fileService;
/* 前端接口 */
@PostMapping(API + "/getPageList.do")
public JsonResult<PageQuery> getPageList(QuestionLogSummaryQuery condition,@SCoreUser CoreUser coreUser){
if(null == coreUser){
return JsonResult.failMessage("请登录后再操作");
}else{
PageQuery page = condition.getPageQuery();
questionLogSummaryService.queryByConditionQuery(page);
return JsonResult.success(page);
}
}
@GetMapping(API + "/getInfo.do")
public JsonResult<QuestionLogSummary>getInfo(QuestionLogSummaryQuery param,@SCoreUser CoreUser coreUser) {
if(null == coreUser){
return JsonResult.failMessage("请登录后再操作");
}else{
QuestionLogSummary questionLogSummary = questionLogSummaryService.getInfo(param);
return JsonResult.success(questionLogSummary);
}
}
@GetMapping(API + "/getList.do")
public JsonResult<List<QuestionLogSummary>>getList(QuestionLogSummaryQuery param,@SCoreUser CoreUser coreUser) {
if(null == coreUser){
return JsonResult.failMessage("请登录后再操作");
}else{
List<QuestionLogSummary>list = questionLogSummaryService.getValuesByQuery(param);
return JsonResult.success(list);
}
}
/* 后台页面 */
@GetMapping(MODEL + "/index.do")
@Function("questionLogSummary.query")
public ModelAndView index() {
ModelAndView view = new ModelAndView("/jlw/questionLogSummary/index.html") ;
view.addObject("search", QuestionLogSummaryQuery.class.getName());
return view;
}
@GetMapping(MODEL + "/edit.do")
@Function("questionLogSummary.edit")
public ModelAndView edit(Long questionLogSummaryId) {
ModelAndView view = new ModelAndView("/jlw/questionLogSummary/edit.html");
QuestionLogSummary questionLogSummary = questionLogSummaryService.queryById(questionLogSummaryId);
view.addObject("questionLogSummary", questionLogSummary);
return view;
}
@GetMapping(MODEL + "/add.do")
@Function("questionLogSummary.add")
public ModelAndView add(Long questionLogSummaryId) {
ModelAndView view = new ModelAndView("/jlw/questionLogSummary/add.html");
if(null != questionLogSummaryId){
QuestionLogSummary questionLogSummary = questionLogSummaryService.queryById(questionLogSummaryId);
view.addObject("questionLogSummary", questionLogSummary);
}else {
view.addObject("questionLogSummary", new QuestionLogSummary());
}
return view;
}
/* 后台接口 */
@PostMapping(MODEL + "/list.json")
@Function("questionLogSummary.query")
public JsonResult<PageQuery> list(QuestionLogSummaryQuery condition){
PageQuery page = condition.getPageQuery();
questionLogSummaryService.queryByCondition(page);
return JsonResult.success(page);
}
@PostMapping(MODEL + "/addAll.json")
@Function("questionLogSummary.add")
public JsonResult addAll(QuestionLogSummaryQuery questionLogSummaryQuery,@SCoreUser CoreUser coreUser){
if(null == coreUser){
return JsonResult.failMessage("请登录后再操作");
}else{
questionLogSummaryQuery.setQuestionLogSummaryAddTime(new Date());
questionLogSummaryQuery.setUserId(coreUser.getId());
questionLogSummaryQuery.setOrgId(coreUser.getOrgId());
String msg = questionLogSummaryService.addAll(questionLogSummaryQuery);
if (StringUtils.isBlank(msg)) {
return JsonResult.success();
} else {
return JsonResult.failMessage("新增失败,"+msg);
}
}
}
@PostMapping(MODEL + "/add.json")
@Function("questionLogSummary.add")
public JsonResult add(@Validated(ValidateConfig.ADD.class) QuestionLogSummaryQuery questionLogSummaryQuery, BindingResult result,@SCoreUser CoreUser coreUser){
if(result.hasErrors()){
return JsonResult.failMessage(result);
}else{
questionLogSummaryQuery.setQuestionLogSummaryAddTime(new Date());
questionLogSummaryQuery.setUserId(coreUser.getId());
questionLogSummaryQuery.setOrgId(coreUser.getOrgId());
if(null == questionLogSummaryQuery.getQuestionLogSummaryStatus()){
questionLogSummaryQuery.setQuestionLogSummaryStatus(1);
}
return questionLogSummaryService.add(questionLogSummaryQuery);
}
}
@PostMapping(MODEL + "/edit.json")
@Function("questionLogSummary.edit")
public JsonResult<String> update(@Validated(ValidateConfig.UPDATE.class) QuestionLogSummaryQuery questionLogSummaryQuery, BindingResult result) {
if(result.hasErrors()){
return JsonResult.failMessage(result);
}else {
Assert.notNull(getUser(), "请登录后再操作");
questionLogSummaryQuery.setQuestionLogSummaryAddTime(null);
questionLogSummaryQuery.setUserId(null);
questionLogSummaryQuery.setOrgId(null);
String msg = questionLogSummaryService.edit(questionLogSummaryQuery);
if (StringUtils.isBlank(msg)) {
return JsonResult.success();
} else {
return JsonResult.failMessage("更新失败,"+msg);
}
}
}
@GetMapping(MODEL + "/view.json")
@Function("questionLogSummary.query")
public JsonResult<QuestionLogSummary>queryInfo(Long questionLogSummaryId) {
QuestionLogSummary questionLogSummary = questionLogSummaryService.queryById( questionLogSummaryId);
return JsonResult.success(questionLogSummary);
}
@GetMapping(MODEL + "/getValues.json")
@Function("questionLogSummary.query")
public JsonResult<List<QuestionLogSummary>>getValues(QuestionLogSummaryQuery param) {
List<QuestionLogSummary>list = questionLogSummaryService.getValuesByQuery(param);
return JsonResult.success(list);
}
@PostMapping(MODEL + "/delete.json")
@Function("questionLogSummary.delete")
@ResponseBody
public JsonResult delete(String ids) {
questionLogSummaryService.deleteQuestionLogSummary(ids);
return JsonResult.success();
}
//下载模板信息
@GetMapping(MODEL + "/downloadTemplate.json")
public void download(HttpServletRequest request,HttpServletResponse response,@SCoreUser CoreUser coreUser) {
if(null == coreUser){
return;
}
XSSFWorkbook workbook = null;
InputStream is = null;
try {
//TODO 改导入模板名字
is = new FileInputStream(GetFile.p + File.separator +"filesystem"+ File.separator +"template"+ File.separator+ "导入模板.xlsx");
workbook = new XSSFWorkbook(is);
try {
if(null != is){
is.close();
}
}catch (Exception e){
e.printStackTrace();
}
//准备将Excel的输出流通过response输出到页面下载
//八进制输出流
response.setContentType("application/octet-stream");
//这后面可以设置导出Excel的名称此例中名为template.xls
String fileName = ToolUtils.web2fileName(request,"questionLogSummaryTemplate(" + TimeTool.getNowTime("YMD") + ").xlsx");
response.setHeader("Content-disposition", "attachment;filename="+fileName);
//刷新缓冲
response.flushBuffer();
//workbook将Excel写入到response的输出流中供页面下载
workbook.write(response.getOutputStream());
}catch (Exception e){
e.printStackTrace();
} finally {
try {
if (null != workbook) {
workbook.close();
}
if (null != response && null != response.getOutputStream()) {
response.getOutputStream().close();
}
} catch (Exception e) { }
}
}
//导入模板信息
@PostMapping(MODEL + "/importTemplate.json")
@Function("questionLogSummary.importTemplate")
public JsonResult importTemplate(@RFile List<FileEntity> fileEntityList,@SCoreUser CoreUser coreUser) {
if(null == coreUser){
return JsonResult.failMessage("请登录后再操作");
}
List<Long>list=new ArrayList<>();
JsonResult jsonResult = questionLogSummaryService.importTemplate(fileEntityList,list,coreUser);
if(list.size()>0){
questionLogSummaryService.deleteByList(list);
}
return jsonResult;
}
//导出信息
@GetMapping(MODEL + "/excel/export.json")
@Function("questionLogSummary.exportDocument")
public void export(HttpServletRequest request,HttpServletResponse response,QuestionLogSummaryQuery questionLogSummaryQuery,@SCoreUser CoreUser coreUser) {
if(null == coreUser){
return;
}
HSSFWorkbook workbook = null;
try {
//表头数据
String[] header = {
"题目配置",
"题目配置名称",
"类型 枚举",
"来源类型 枚举",
"配置的题目总分数",
"人员",
"配置的题目总数",
"学生做题总数",
"全对数量",
"半对数量",
"错题数量",
"正确率,最大100",
"当前配置的及格比率",
"是否及格",
"状态",
"添加时间",
};
String[] headerCode = {
"questionSettingId",
"questionSettingName",
"questionSettingType",
"questionLogSummaryFromType",
"questionSettingTotalScore",
"personId",
"questionLogSummaryQuestionTotalCount",
"questionLogSummaryStudentDoCount",
"questionLogSummarySuccessCount",
"questionLogSummaryHalfSuccessCount",
"questionLogSummaryErrorCount",
"questionLogSummarySuccessRate",
"questionLogSummaryCurrentPassRate",
"questionLogSummaryIsPass",
"questionLogSummaryStatus",
"questionLogSummaryAddTime",
};
//数据内容
List<Map<String, Object>> mapList = questionLogSummaryService.getExcelValues(questionLogSummaryQuery);
//内容宽度
Map<String, Object> widthMap = mapList.get(0);
mapList.remove(0);
//声明一个工作簿
workbook = new HSSFWorkbook();
//生成一个表格,设置表格名称为"Sheet1"
HSSFSheet sheet = workbook.createSheet("Sheet1");
//冻结表头
sheet.createFreezePane(0, 1, 0, 1);
//设置默认列宽度为5个字节
sheet.setDefaultColumnWidth(5);
//创建第一行表头
HSSFRow headRow = sheet.createRow(0);
//头部样式
HSSFCellStyle headerStyle = workbook.createCellStyle();
//垂直居中
headerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//水平居中
headerStyle.setAlignment(HorizontalAlignment.CENTER);
//单元格样式
HSSFCellStyle cellStyle = workbook.createCellStyle();
//垂直居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//水平居左
cellStyle.setAlignment(HorizontalAlignment.CENTER);
//自动换行
cellStyle.setWrapText(true);
//遍历添加表头
for (int i = 0; i < header.length; i++) {
//设置表格特定的列宽度
if (null != widthMap.get(headerCode[i])) {
String width = widthMap.get(headerCode[i]).toString().split("\\.")[0];
Integer w = Integer.parseInt(width) > header[i].length()*3?Integer.parseInt(width):header[i].length()*3;
sheet.setColumnWidth(i, w * 190);
}
//创建一个单元格
HSSFCell cell = headRow.createCell(i);
//创建一个内容对象
HSSFRichTextString text = new HSSFRichTextString(header[i]);
//将内容对象的文字内容写入到单元格中
cell.setCellValue(text);
//设置样式
cell.setCellStyle(headerStyle);
}
//遍历结果集,把内容加入表格
for (int i = 0; i < mapList.size(); i++) {
HSSFRow row = sheet.createRow(i + 1);
row.setHeight((short) (50*10));
Map<String, Object> map = mapList.get(i);
for (int j = 0; j < headerCode.length; j++) {
HSSFCell cell = row.createCell(j);
cell.setCellStyle(cellStyle);
HSSFRichTextString text = new HSSFRichTextString(null != map.get(headerCode[j]) ? map.get(headerCode[j]).toString() : " ");
cell.setCellValue(text);
}
}
//准备将Excel的输出流通过response输出到页面下载
//八进制输出流
response.setContentType("application/octet-stream");
//这后面可以设置导出Excel的名称此例中名为student.xls
String fileName = ToolUtils.web2fileName(request,"questionLogSummary(" + TimeTool.getNowTime("YMD") + ").xls");
response.setHeader("Content-disposition", "attachment;filename="+fileName);
//刷新缓冲
response.flushBuffer();
//workbook将Excel写入到response的输出流中供页面下载
workbook.write(response.getOutputStream());
}catch (Exception e){
e.printStackTrace();
} finally {
try {
if (null != workbook) {
workbook.close();
}
if (null != response && null != response.getOutputStream()) {
response.getOutputStream().close();
}
} catch (Exception e) { }
}
}
}

@ -0,0 +1,101 @@
package com.ibeetl.jlw.web.query;
import cn.jlw.validate.ValidateConfig;
import com.ibeetl.admin.core.annotation.Query;
import com.ibeetl.admin.core.web.query.PageParam;
import com.ibeetl.jlw.entity.QuestionLogSummary;
import com.ibeetl.jlw.enums.BusinessCourseInfoEnum;
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
/**
*
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class QuestionLogSummaryQuery extends PageParam {
@NotNull(message = "ID不能为空", groups =ValidateConfig.UPDATE.class)
@Query(name = "学生做题日志汇总ID", display = false)
private Long questionLogSummaryId;
@Query(name = "题目配置ID", display = false)
private Long questionSettingId;
@Query(name = "题目配置名称", display = false)
private Long questionSettingName;
@Query(name = "类型 枚举ResourcesQuestionSnapshotFromTypeEnum", display = false)
private ResourcesQuestionSnapshotFromTypeEnum questionSettingType;
@Query(name = "来源类型 枚举(BusinessCourseInfoEnum)", display = false)
private BusinessCourseInfoEnum questionLogSummaryFromType;
@Query(name = "配置的题目总分数", display = false)
private Integer questionSettingTotalScore;
@Query(name = "人员ID学生ID等等", display = false)
private Long personId;
@Query(name = "配置的题目总数", display = false)
private Integer questionLogSummaryQuestionTotalCount;
@Query(name = "学生做题总数", display = false)
private Integer questionLogSummaryStudentDoCount;
@Query(name = "全对数量", display = false)
private Integer questionLogSummarySuccessCount;
@Query(name = "半对数量", display = false)
private Integer questionLogSummaryHalfSuccessCount;
@Query(name = "错题数量", display = false)
private Integer questionLogSummaryErrorCount;
@Query(name = "正确率", display = false)
private BigDecimal questionLogSummarySuccessRate;
@Query(name = "当前配置的及格比率", display = false)
private BigDecimal questionLogSummaryCurrentPassRate;
@Query(name = "是否及格", display = false)
private Integer questionLogSummaryIsPass;
@Query(name = "状态1正常 2删除", display = true,type=Query.TYPE_DICT,dict="global_status")
private Integer questionLogSummaryStatus;
@Query(name = "添加时间", display = false)
private Date questionLogSummaryAddTime;
@Query(name = "组织ID", display = false)
private Long orgId;
@Query(name = "用户ID", display = false)
private Long userId;
private String questionLogSummaryIdPlural;
private String questionSettingIdPlural;
private String personIdPlural;
private String questionLogSummaryStatusPlural;
private String orgIdPlural;
private String userIdPlural;
//json格式
private String questionLogSummaryJsonStr;
//指定更新的特定字段,多个逗号隔开
private String _given;
public QuestionLogSummary pojo(){
QuestionLogSummary pojo = new QuestionLogSummary();
pojo.setQuestionLogSummaryId(this.getQuestionLogSummaryId());
pojo.setQuestionSettingId(this.getQuestionSettingId());
pojo.setQuestionSettingName(this.getQuestionSettingName());
pojo.setQuestionSettingType(this.getQuestionSettingType());
pojo.setQuestionLogSummaryFromType(this.getQuestionLogSummaryFromType());
pojo.setQuestionSettingTotalScore(this.getQuestionSettingTotalScore());
pojo.setPersonId(this.getPersonId());
pojo.setQuestionLogSummaryQuestionTotalCount(this.getQuestionLogSummaryQuestionTotalCount());
pojo.setQuestionLogSummaryStudentDoCount(this.getQuestionLogSummaryStudentDoCount());
pojo.setQuestionLogSummarySuccessCount(this.getQuestionLogSummarySuccessCount());
pojo.setQuestionLogSummaryHalfSuccessCount(this.getQuestionLogSummaryHalfSuccessCount());
pojo.setQuestionLogSummaryErrorCount(this.getQuestionLogSummaryErrorCount());
pojo.setQuestionLogSummarySuccessRate(this.getQuestionLogSummarySuccessRate());
pojo.setQuestionLogSummaryCurrentPassRate(this.getQuestionLogSummaryCurrentPassRate());
pojo.setQuestionLogSummaryIsPass(this.getQuestionLogSummaryIsPass());
pojo.setQuestionLogSummaryStatus(this.getQuestionLogSummaryStatus());
pojo.setQuestionLogSummaryAddTime(this.getQuestionLogSummaryAddTime());
pojo.setOrgId(this.getOrgId());
pojo.setUserId(this.getUserId());
return pojo;
}
}

@ -0,0 +1,797 @@
queryByCondition
===
* 根据不为空的参数进行分页查询
select
@pageTag(){
t.*
@}
from question_log_summary t
where 1=1
@//数据权限该sql语句功能点,如果不考虑数据权限,可以删除此行
and #function("questionLogSummary.query")#
@if(!isEmpty(questionLogSummaryId)){
and t.question_log_summary_id =#questionLogSummaryId#
@}
@if(!isEmpty(questionLogSummaryIdPlural)){
and find_in_set(t.question_log_summary_id,#questionLogSummaryIdPlural#)
@}
@if(!isEmpty(questionSettingId)){
and t.question_setting_id =#questionSettingId#
@}
@if(!isEmpty(questionSettingIdPlural)){
and find_in_set(t.question_setting_id,#questionSettingIdPlural#)
@}
@if(!isEmpty(questionSettingName)){
and t.question_setting_name =#questionSettingName#
@}
@if(!isEmpty(questionSettingType)){
and t.question_setting_type =#questionSettingType#
@}
@if(!isEmpty(questionLogSummaryFromType)){
and t.question_log_summary_from_type =#questionLogSummaryFromType#
@}
@if(!isEmpty(questionSettingTotalScore)){
and t.question_setting_total_score =#questionSettingTotalScore#
@}
@if(!isEmpty(personId)){
and t.person_id =#personId#
@}
@if(!isEmpty(personIdPlural)){
and find_in_set(t.person_id,#personIdPlural#)
@}
@if(!isEmpty(questionLogSummaryQuestionTotalCount)){
and t.question_log_summary_question_total_count =#questionLogSummaryQuestionTotalCount#
@}
@if(!isEmpty(questionLogSummaryStudentDoCount)){
and t.question_log_summary_student_do_count =#questionLogSummaryStudentDoCount#
@}
@if(!isEmpty(questionLogSummarySuccessCount)){
and t.question_log_summary_success_count =#questionLogSummarySuccessCount#
@}
@if(!isEmpty(questionLogSummaryHalfSuccessCount)){
and t.question_log_summary_half_success_count =#questionLogSummaryHalfSuccessCount#
@}
@if(!isEmpty(questionLogSummaryErrorCount)){
and t.question_log_summary_error_count =#questionLogSummaryErrorCount#
@}
@if(!isEmpty(questionLogSummarySuccessRate)){
and t.question_log_summary_success_rate =#questionLogSummarySuccessRate#
@}
@if(!isEmpty(questionLogSummaryCurrentPassRate)){
and t.question_log_summary_current_pass_rate =#questionLogSummaryCurrentPassRate#
@}
@if(!isEmpty(questionLogSummaryIsPass)){
and t.question_log_summary_is_pass =#questionLogSummaryIsPass#
@}
@if(isEmpty(questionLogSummaryStatus) && isEmpty(questionLogSummaryStatusPlural)){
and t.question_log_summary_status != 2
@}else{
@if(!isEmpty(questionLogSummaryStatus)){
and t.question_log_summary_status =#questionLogSummaryStatus#
@}else if(!isEmpty(questionLogSummaryStatusPlural)){
and find_in_set(t.question_log_summary_status,#questionLogSummaryStatusPlural#)
@}
@}
@if(!isEmpty(questionLogSummaryAddTime)){
and t.question_log_summary_add_time =#questionLogSummaryAddTime#
@}
@if(!isEmpty(orgId)){
and t.org_id =#orgId#
@}
@if(!isEmpty(orgIdPlural)){
and find_in_set(t.org_id,#orgIdPlural#)
@}
@if(!isEmpty(userId)){
and t.user_id =#userId#
@}
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
queryByConditionQuery
===
* 根据不为空的参数进行分页查询(无权限)
select
@pageTag(){
t.*
@}
from question_log_summary t
where 1=1
@if(!isEmpty(questionLogSummaryId)){
and t.question_log_summary_id =#questionLogSummaryId#
@}
@if(!isEmpty(questionLogSummaryIdPlural)){
and find_in_set(t.question_log_summary_id,#questionLogSummaryIdPlural#)
@}
@if(!isEmpty(questionSettingId)){
and t.question_setting_id =#questionSettingId#
@}
@if(!isEmpty(questionSettingIdPlural)){
and find_in_set(t.question_setting_id,#questionSettingIdPlural#)
@}
@if(!isEmpty(questionSettingName)){
and t.question_setting_name =#questionSettingName#
@}
@if(!isEmpty(questionSettingType)){
and t.question_setting_type =#questionSettingType#
@}
@if(!isEmpty(questionLogSummaryFromType)){
and t.question_log_summary_from_type =#questionLogSummaryFromType#
@}
@if(!isEmpty(questionSettingTotalScore)){
and t.question_setting_total_score =#questionSettingTotalScore#
@}
@if(!isEmpty(personId)){
and t.person_id =#personId#
@}
@if(!isEmpty(personIdPlural)){
and find_in_set(t.person_id,#personIdPlural#)
@}
@if(!isEmpty(questionLogSummaryQuestionTotalCount)){
and t.question_log_summary_question_total_count =#questionLogSummaryQuestionTotalCount#
@}
@if(!isEmpty(questionLogSummaryStudentDoCount)){
and t.question_log_summary_student_do_count =#questionLogSummaryStudentDoCount#
@}
@if(!isEmpty(questionLogSummarySuccessCount)){
and t.question_log_summary_success_count =#questionLogSummarySuccessCount#
@}
@if(!isEmpty(questionLogSummaryHalfSuccessCount)){
and t.question_log_summary_half_success_count =#questionLogSummaryHalfSuccessCount#
@}
@if(!isEmpty(questionLogSummaryErrorCount)){
and t.question_log_summary_error_count =#questionLogSummaryErrorCount#
@}
@if(!isEmpty(questionLogSummarySuccessRate)){
and t.question_log_summary_success_rate =#questionLogSummarySuccessRate#
@}
@if(!isEmpty(questionLogSummaryCurrentPassRate)){
and t.question_log_summary_current_pass_rate =#questionLogSummaryCurrentPassRate#
@}
@if(!isEmpty(questionLogSummaryIsPass)){
and t.question_log_summary_is_pass =#questionLogSummaryIsPass#
@}
@if(isEmpty(questionLogSummaryStatus) && isEmpty(questionLogSummaryStatusPlural)){
and t.question_log_summary_status != 2
@}else{
@if(!isEmpty(questionLogSummaryStatus)){
and t.question_log_summary_status =#questionLogSummaryStatus#
@}else if(!isEmpty(questionLogSummaryStatusPlural)){
and find_in_set(t.question_log_summary_status,#questionLogSummaryStatusPlural#)
@}
@}
@if(!isEmpty(questionLogSummaryAddTime)){
and t.question_log_summary_add_time =#questionLogSummaryAddTime#
@}
@if(!isEmpty(orgId)){
and t.org_id =#orgId#
@}
@if(!isEmpty(orgIdPlural)){
and find_in_set(t.org_id,#orgIdPlural#)
@}
@if(!isEmpty(userId)){
and t.user_id =#userId#
@}
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
deleteQuestionLogSummaryByIds
===
* 批量删除(假删除)
update question_log_summary set question_log_summary_status = 2 where find_in_set(question_log_summary_id,#ids#)
deleteByIds
===
* 批量删除(真删除)
delete from question_log_summary where find_in_set(question_log_summary_id,#ids#)
getByIds
===
select * from question_log_summary where find_in_set(question_log_summary_id,#ids#)
updateGivenByIds
===
* 批量更新指定字段,无论此字段是否有值
update question_log_summary
set
@if(contain("questionSettingId",_given)){
@if(isEmpty(questionSettingId)){
question_setting_id = null ,
@}else{
question_setting_id = #questionSettingId# ,
@}
@}
@if(contain("questionSettingName",_given)){
@if(isEmpty(questionSettingName)){
question_setting_name = null ,
@}else{
question_setting_name = #questionSettingName# ,
@}
@}
@if(contain("questionSettingType",_given)){
@if(isEmpty(questionSettingType)){
question_setting_type = null ,
@}else{
question_setting_type = #questionSettingType# ,
@}
@}
@if(contain("questionLogSummaryFromType",_given)){
@if(isEmpty(questionLogSummaryFromType)){
question_log_summary_from_type = null ,
@}else{
question_log_summary_from_type = #questionLogSummaryFromType# ,
@}
@}
@if(contain("questionSettingTotalScore",_given)){
@if(isEmpty(questionSettingTotalScore)){
question_setting_total_score = null ,
@}else{
question_setting_total_score = #questionSettingTotalScore# ,
@}
@}
@if(contain("personId",_given)){
@if(isEmpty(personId)){
person_id = null ,
@}else{
person_id = #personId# ,
@}
@}
@if(contain("questionLogSummaryQuestionTotalCount",_given)){
@if(isEmpty(questionLogSummaryQuestionTotalCount)){
question_log_summary_question_total_count = null ,
@}else{
question_log_summary_question_total_count = #questionLogSummaryQuestionTotalCount# ,
@}
@}
@if(contain("questionLogSummaryStudentDoCount",_given)){
@if(isEmpty(questionLogSummaryStudentDoCount)){
question_log_summary_student_do_count = null ,
@}else{
question_log_summary_student_do_count = #questionLogSummaryStudentDoCount# ,
@}
@}
@if(contain("questionLogSummarySuccessCount",_given)){
@if(isEmpty(questionLogSummarySuccessCount)){
question_log_summary_success_count = null ,
@}else{
question_log_summary_success_count = #questionLogSummarySuccessCount# ,
@}
@}
@if(contain("questionLogSummaryHalfSuccessCount",_given)){
@if(isEmpty(questionLogSummaryHalfSuccessCount)){
question_log_summary_half_success_count = null ,
@}else{
question_log_summary_half_success_count = #questionLogSummaryHalfSuccessCount# ,
@}
@}
@if(contain("questionLogSummaryErrorCount",_given)){
@if(isEmpty(questionLogSummaryErrorCount)){
question_log_summary_error_count = null ,
@}else{
question_log_summary_error_count = #questionLogSummaryErrorCount# ,
@}
@}
@if(contain("questionLogSummarySuccessRate",_given)){
@if(isEmpty(questionLogSummarySuccessRate)){
question_log_summary_success_rate = null ,
@}else{
question_log_summary_success_rate = #questionLogSummarySuccessRate# ,
@}
@}
@if(contain("questionLogSummaryCurrentPassRate",_given)){
@if(isEmpty(questionLogSummaryCurrentPassRate)){
question_log_summary_current_pass_rate = null ,
@}else{
question_log_summary_current_pass_rate = #questionLogSummaryCurrentPassRate# ,
@}
@}
@if(contain("questionLogSummaryIsPass",_given)){
@if(isEmpty(questionLogSummaryIsPass)){
question_log_summary_is_pass = null ,
@}else{
question_log_summary_is_pass = #questionLogSummaryIsPass# ,
@}
@}
@if(contain("questionLogSummaryStatus",_given)){
@if(isEmpty(questionLogSummaryStatus)){
question_log_summary_status = null ,
@}else{
question_log_summary_status = #questionLogSummaryStatus# ,
@}
@}
@if(contain("questionLogSummaryAddTime",_given)){
@if(isEmpty(questionLogSummaryAddTime)){
question_log_summary_add_time = null ,
@}else{
question_log_summary_add_time = #questionLogSummaryAddTime# ,
@}
@}
@if(contain("orgId",_given)){
@if(isEmpty(orgId)){
org_id = null ,
@}else{
org_id = #orgId# ,
@}
@}
@if(contain("userId",_given)){
@if(isEmpty(userId)){
user_id = null ,
@}else{
user_id = #userId# ,
@}
@}
question_log_summary_id = question_log_summary_id
where find_in_set(question_log_summary_id,#questionLogSummaryIdPlural#)
getQuestionLogSummaryValues
===
* 根据不为空的参数进行查询
select t.*
from question_log_summary t
where 1=1
@if(!isEmpty(questionLogSummaryId)){
and t.question_log_summary_id =#questionLogSummaryId#
@}
@if(!isEmpty(questionSettingId)){
and t.question_setting_id =#questionSettingId#
@}
@if(!isEmpty(questionSettingName)){
and t.question_setting_name =#questionSettingName#
@}
@if(!isEmpty(questionSettingType)){
and t.question_setting_type =#questionSettingType#
@}
@if(!isEmpty(questionLogSummaryFromType)){
and t.question_log_summary_from_type =#questionLogSummaryFromType#
@}
@if(!isEmpty(questionSettingTotalScore)){
and t.question_setting_total_score =#questionSettingTotalScore#
@}
@if(!isEmpty(personId)){
and t.person_id =#personId#
@}
@if(!isEmpty(questionLogSummaryQuestionTotalCount)){
and t.question_log_summary_question_total_count =#questionLogSummaryQuestionTotalCount#
@}
@if(!isEmpty(questionLogSummaryStudentDoCount)){
and t.question_log_summary_student_do_count =#questionLogSummaryStudentDoCount#
@}
@if(!isEmpty(questionLogSummarySuccessCount)){
and t.question_log_summary_success_count =#questionLogSummarySuccessCount#
@}
@if(!isEmpty(questionLogSummaryHalfSuccessCount)){
and t.question_log_summary_half_success_count =#questionLogSummaryHalfSuccessCount#
@}
@if(!isEmpty(questionLogSummaryErrorCount)){
and t.question_log_summary_error_count =#questionLogSummaryErrorCount#
@}
@if(!isEmpty(questionLogSummarySuccessRate)){
and t.question_log_summary_success_rate =#questionLogSummarySuccessRate#
@}
@if(!isEmpty(questionLogSummaryCurrentPassRate)){
and t.question_log_summary_current_pass_rate =#questionLogSummaryCurrentPassRate#
@}
@if(!isEmpty(questionLogSummaryIsPass)){
and t.question_log_summary_is_pass =#questionLogSummaryIsPass#
@}
@if(!isEmpty(questionLogSummaryStatus)){
and t.question_log_summary_status =#questionLogSummaryStatus#
@}else{
and t.question_log_summary_status != 2
@}
@if(!isEmpty(questionLogSummaryAddTime)){
and t.question_log_summary_add_time =#questionLogSummaryAddTime#
@}
@if(!isEmpty(orgId)){
and t.org_id =#orgId#
@}
@if(!isEmpty(userId)){
and t.user_id =#userId#
@}
getValuesByQuery
===
* 根据不为空的参数进行查询
select t.*
from question_log_summary t
where 1=1 and #function("questionLogSummary.query")#
@if(!isEmpty(questionLogSummaryId)){
and t.question_log_summary_id =#questionLogSummaryId#
@}
@if(!isEmpty(questionLogSummaryIdPlural)){
and find_in_set(t.question_log_summary_id,#questionLogSummaryIdPlural#)
@}
@if(!isEmpty(questionSettingId)){
and t.question_setting_id =#questionSettingId#
@}
@if(!isEmpty(questionSettingIdPlural)){
and find_in_set(t.question_setting_id,#questionSettingIdPlural#)
@}
@if(!isEmpty(questionSettingName)){
and t.question_setting_name =#questionSettingName#
@}
@if(!isEmpty(questionSettingType)){
and t.question_setting_type =#questionSettingType#
@}
@if(!isEmpty(questionLogSummaryFromType)){
and t.question_log_summary_from_type =#questionLogSummaryFromType#
@}
@if(!isEmpty(questionSettingTotalScore)){
and t.question_setting_total_score =#questionSettingTotalScore#
@}
@if(!isEmpty(personId)){
and t.person_id =#personId#
@}
@if(!isEmpty(personIdPlural)){
and find_in_set(t.person_id,#personIdPlural#)
@}
@if(!isEmpty(questionLogSummaryQuestionTotalCount)){
and t.question_log_summary_question_total_count =#questionLogSummaryQuestionTotalCount#
@}
@if(!isEmpty(questionLogSummaryStudentDoCount)){
and t.question_log_summary_student_do_count =#questionLogSummaryStudentDoCount#
@}
@if(!isEmpty(questionLogSummarySuccessCount)){
and t.question_log_summary_success_count =#questionLogSummarySuccessCount#
@}
@if(!isEmpty(questionLogSummaryHalfSuccessCount)){
and t.question_log_summary_half_success_count =#questionLogSummaryHalfSuccessCount#
@}
@if(!isEmpty(questionLogSummaryErrorCount)){
and t.question_log_summary_error_count =#questionLogSummaryErrorCount#
@}
@if(!isEmpty(questionLogSummarySuccessRate)){
and t.question_log_summary_success_rate =#questionLogSummarySuccessRate#
@}
@if(!isEmpty(questionLogSummaryCurrentPassRate)){
and t.question_log_summary_current_pass_rate =#questionLogSummaryCurrentPassRate#
@}
@if(!isEmpty(questionLogSummaryIsPass)){
and t.question_log_summary_is_pass =#questionLogSummaryIsPass#
@}
@if(isEmpty(questionLogSummaryStatus) && isEmpty(questionLogSummaryStatusPlural)){
and t.question_log_summary_status != 2
@}else{
@if(!isEmpty(questionLogSummaryStatus)){
and t.question_log_summary_status =#questionLogSummaryStatus#
@}else if(!isEmpty(questionLogSummaryStatusPlural)){
and find_in_set(t.question_log_summary_status,#questionLogSummaryStatusPlural#)
@}
@}
@if(!isEmpty(questionLogSummaryAddTime)){
and t.question_log_summary_add_time =#questionLogSummaryAddTime#
@}
@if(!isEmpty(orgId)){
and t.org_id =#orgId#
@}
@if(!isEmpty(orgIdPlural)){
and find_in_set(t.org_id,#orgIdPlural#)
@}
@if(!isEmpty(userId)){
and t.user_id =#userId#
@}
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
getValuesByQueryNotWithPermission
===
* 根据不为空的参数进行查询(不包含权限)
select t.*
from question_log_summary t
where 1=1
@if(!isEmpty(questionLogSummaryId)){
and t.question_log_summary_id =#questionLogSummaryId#
@}
@if(!isEmpty(questionLogSummaryIdPlural)){
and find_in_set(t.question_log_summary_id,#questionLogSummaryIdPlural#)
@}
@if(!isEmpty(questionSettingId)){
and t.question_setting_id =#questionSettingId#
@}
@if(!isEmpty(questionSettingIdPlural)){
and find_in_set(t.question_setting_id,#questionSettingIdPlural#)
@}
@if(!isEmpty(questionSettingName)){
and t.question_setting_name =#questionSettingName#
@}
@if(!isEmpty(questionSettingType)){
and t.question_setting_type =#questionSettingType#
@}
@if(!isEmpty(questionLogSummaryFromType)){
and t.question_log_summary_from_type =#questionLogSummaryFromType#
@}
@if(!isEmpty(questionSettingTotalScore)){
and t.question_setting_total_score =#questionSettingTotalScore#
@}
@if(!isEmpty(personId)){
and t.person_id =#personId#
@}
@if(!isEmpty(personIdPlural)){
and find_in_set(t.person_id,#personIdPlural#)
@}
@if(!isEmpty(questionLogSummaryQuestionTotalCount)){
and t.question_log_summary_question_total_count =#questionLogSummaryQuestionTotalCount#
@}
@if(!isEmpty(questionLogSummaryStudentDoCount)){
and t.question_log_summary_student_do_count =#questionLogSummaryStudentDoCount#
@}
@if(!isEmpty(questionLogSummarySuccessCount)){
and t.question_log_summary_success_count =#questionLogSummarySuccessCount#
@}
@if(!isEmpty(questionLogSummaryHalfSuccessCount)){
and t.question_log_summary_half_success_count =#questionLogSummaryHalfSuccessCount#
@}
@if(!isEmpty(questionLogSummaryErrorCount)){
and t.question_log_summary_error_count =#questionLogSummaryErrorCount#
@}
@if(!isEmpty(questionLogSummarySuccessRate)){
and t.question_log_summary_success_rate =#questionLogSummarySuccessRate#
@}
@if(!isEmpty(questionLogSummaryCurrentPassRate)){
and t.question_log_summary_current_pass_rate =#questionLogSummaryCurrentPassRate#
@}
@if(!isEmpty(questionLogSummaryIsPass)){
and t.question_log_summary_is_pass =#questionLogSummaryIsPass#
@}
@if(isEmpty(questionLogSummaryStatus) && isEmpty(questionLogSummaryStatusPlural)){
and t.question_log_summary_status != 2
@}else{
@if(!isEmpty(questionLogSummaryStatus)){
and t.question_log_summary_status =#questionLogSummaryStatus#
@}else if(!isEmpty(questionLogSummaryStatusPlural)){
and find_in_set(t.question_log_summary_status,#questionLogSummaryStatusPlural#)
@}
@}
@if(!isEmpty(questionLogSummaryAddTime)){
and t.question_log_summary_add_time =#questionLogSummaryAddTime#
@}
@if(!isEmpty(orgId)){
and t.org_id =#orgId#
@}
@if(!isEmpty(orgIdPlural)){
and find_in_set(t.org_id,#orgIdPlural#)
@}
@if(!isEmpty(userId)){
and t.user_id =#userId#
@}
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
getExcelValues
===
* 根据不为空的参数进行查询导入需要的参数
SELECT * FROM (
(
select
MAX(LENGTH(t.question_setting_id)) question_setting_id,
MAX(LENGTH(t.question_setting_name)) question_setting_name,
MAX(LENGTH(t.question_setting_type)) question_setting_type,
MAX(LENGTH(t.question_log_summary_from_type)) question_log_summary_from_type,
MAX(LENGTH(t.question_setting_total_score)) question_setting_total_score,
MAX(LENGTH(t.person_id)) person_id,
MAX(LENGTH(t.question_log_summary_question_total_count)) question_log_summary_question_total_count,
MAX(LENGTH(t.question_log_summary_student_do_count)) question_log_summary_student_do_count,
MAX(LENGTH(t.question_log_summary_success_count)) question_log_summary_success_count,
MAX(LENGTH(t.question_log_summary_half_success_count)) question_log_summary_half_success_count,
MAX(LENGTH(t.question_log_summary_error_count)) question_log_summary_error_count,
MAX(LENGTH(t.question_log_summary_success_rate)) question_log_summary_success_rate,
MAX(LENGTH(t.question_log_summary_current_pass_rate)) question_log_summary_current_pass_rate,
MAX(LENGTH(t.question_log_summary_is_pass)) question_log_summary_is_pass,
MAX(LENGTH(t.question_log_summary_status)) question_log_summary_status,
from question_log_summary t
where 1=1 and #function("questionLogSummary.query")#
@if(!isEmpty(questionLogSummaryId)){
and t.question_log_summary_id =#questionLogSummaryId#
@}
@if(!isEmpty(questionLogSummaryIdPlural)){
and find_in_set(t.question_log_summary_id,#questionLogSummaryIdPlural#)
@}
@if(!isEmpty(questionSettingId)){
and t.question_setting_id =#questionSettingId#
@}
@if(!isEmpty(questionSettingIdPlural)){
and find_in_set(t.question_setting_id,#questionSettingIdPlural#)
@}
@if(!isEmpty(questionSettingName)){
and t.question_setting_name =#questionSettingName#
@}
@if(!isEmpty(questionSettingType)){
and t.question_setting_type =#questionSettingType#
@}
@if(!isEmpty(questionLogSummaryFromType)){
and t.question_log_summary_from_type =#questionLogSummaryFromType#
@}
@if(!isEmpty(questionSettingTotalScore)){
and t.question_setting_total_score =#questionSettingTotalScore#
@}
@if(!isEmpty(personId)){
and t.person_id =#personId#
@}
@if(!isEmpty(personIdPlural)){
and find_in_set(t.person_id,#personIdPlural#)
@}
@if(!isEmpty(questionLogSummaryQuestionTotalCount)){
and t.question_log_summary_question_total_count =#questionLogSummaryQuestionTotalCount#
@}
@if(!isEmpty(questionLogSummaryStudentDoCount)){
and t.question_log_summary_student_do_count =#questionLogSummaryStudentDoCount#
@}
@if(!isEmpty(questionLogSummarySuccessCount)){
and t.question_log_summary_success_count =#questionLogSummarySuccessCount#
@}
@if(!isEmpty(questionLogSummaryHalfSuccessCount)){
and t.question_log_summary_half_success_count =#questionLogSummaryHalfSuccessCount#
@}
@if(!isEmpty(questionLogSummaryErrorCount)){
and t.question_log_summary_error_count =#questionLogSummaryErrorCount#
@}
@if(!isEmpty(questionLogSummarySuccessRate)){
and t.question_log_summary_success_rate =#questionLogSummarySuccessRate#
@}
@if(!isEmpty(questionLogSummaryCurrentPassRate)){
and t.question_log_summary_current_pass_rate =#questionLogSummaryCurrentPassRate#
@}
@if(!isEmpty(questionLogSummaryIsPass)){
and t.question_log_summary_is_pass =#questionLogSummaryIsPass#
@}
@if(isEmpty(questionLogSummaryStatus) && isEmpty(questionLogSummaryStatusPlural)){
and t.question_log_summary_status != 2
@}else{
@if(!isEmpty(questionLogSummaryStatus)){
and t.question_log_summary_status =#questionLogSummaryStatus#
@}else if(!isEmpty(questionLogSummaryStatusPlural)){
and find_in_set(t.question_log_summary_status,#questionLogSummaryStatusPlural#)
@}
@}
@if(!isEmpty(questionLogSummaryAddTime)){
and t.question_log_summary_add_time =#questionLogSummaryAddTime#
@}
@if(!isEmpty(orgId)){
and t.org_id =#orgId#
@}
@if(!isEmpty(orgIdPlural)){
and find_in_set(t.org_id,#orgIdPlural#)
@}
@if(!isEmpty(userId)){
and t.user_id =#userId#
@}
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
)
UNION ALL
(
select
t.question_setting_id ,
t.question_setting_name ,
t.question_setting_type ,
t.question_log_summary_from_type ,
t.question_setting_total_score ,
t.person_id ,
t.question_log_summary_question_total_count ,
t.question_log_summary_student_do_count ,
t.question_log_summary_success_count ,
t.question_log_summary_half_success_count ,
t.question_log_summary_error_count ,
t.question_log_summary_success_rate ,
t.question_log_summary_current_pass_rate ,
t.question_log_summary_is_pass ,
t.question_log_summary_status ,
from question_log_summary t
where 1=1 and #function("questionLogSummary.query")#
@if(!isEmpty(questionLogSummaryId)){
and t.question_log_summary_id =#questionLogSummaryId#
@}
@if(!isEmpty(questionLogSummaryIdPlural)){
and find_in_set(t.question_log_summary_id,#questionLogSummaryIdPlural#)
@}
@if(!isEmpty(questionSettingId)){
and t.question_setting_id =#questionSettingId#
@}
@if(!isEmpty(questionSettingIdPlural)){
and find_in_set(t.question_setting_id,#questionSettingIdPlural#)
@}
@if(!isEmpty(questionSettingName)){
and t.question_setting_name =#questionSettingName#
@}
@if(!isEmpty(questionSettingType)){
and t.question_setting_type =#questionSettingType#
@}
@if(!isEmpty(questionLogSummaryFromType)){
and t.question_log_summary_from_type =#questionLogSummaryFromType#
@}
@if(!isEmpty(questionSettingTotalScore)){
and t.question_setting_total_score =#questionSettingTotalScore#
@}
@if(!isEmpty(personId)){
and t.person_id =#personId#
@}
@if(!isEmpty(personIdPlural)){
and find_in_set(t.person_id,#personIdPlural#)
@}
@if(!isEmpty(questionLogSummaryQuestionTotalCount)){
and t.question_log_summary_question_total_count =#questionLogSummaryQuestionTotalCount#
@}
@if(!isEmpty(questionLogSummaryStudentDoCount)){
and t.question_log_summary_student_do_count =#questionLogSummaryStudentDoCount#
@}
@if(!isEmpty(questionLogSummarySuccessCount)){
and t.question_log_summary_success_count =#questionLogSummarySuccessCount#
@}
@if(!isEmpty(questionLogSummaryHalfSuccessCount)){
and t.question_log_summary_half_success_count =#questionLogSummaryHalfSuccessCount#
@}
@if(!isEmpty(questionLogSummaryErrorCount)){
and t.question_log_summary_error_count =#questionLogSummaryErrorCount#
@}
@if(!isEmpty(questionLogSummarySuccessRate)){
and t.question_log_summary_success_rate =#questionLogSummarySuccessRate#
@}
@if(!isEmpty(questionLogSummaryCurrentPassRate)){
and t.question_log_summary_current_pass_rate =#questionLogSummaryCurrentPassRate#
@}
@if(!isEmpty(questionLogSummaryIsPass)){
and t.question_log_summary_is_pass =#questionLogSummaryIsPass#
@}
@if(isEmpty(questionLogSummaryStatus) && isEmpty(questionLogSummaryStatusPlural)){
and t.question_log_summary_status != 2
@}else{
@if(!isEmpty(questionLogSummaryStatus)){
and t.question_log_summary_status =#questionLogSummaryStatus#
@}else if(!isEmpty(questionLogSummaryStatusPlural)){
and find_in_set(t.question_log_summary_status,#questionLogSummaryStatusPlural#)
@}
@}
@if(!isEmpty(questionLogSummaryAddTime)){
and t.question_log_summary_add_time =#questionLogSummaryAddTime#
@}
@if(!isEmpty(orgId)){
and t.org_id =#orgId#
@}
@if(!isEmpty(orgIdPlural)){
and find_in_set(t.org_id,#orgIdPlural#)
@}
@if(!isEmpty(userId)){
and t.user_id =#userId#
@}
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
)
)t

@ -0,0 +1,38 @@
layui.define([ 'form', 'laydate', 'table','questionLogSummaryApi'], function(exports) {
var form = layui.form;
var questionLogSummaryApi = layui.questionLogSummaryApi;
var index = layui.index;
var view = {
init:function(){
Lib.initGenrealForm($("#addForm"),form);
this.initSubmit();
},
initSubmit:function(){
$("#addButton").click(function(){
form.on('submit(form)', function(){
var questionLogSummaryId = $("#addForm input[name='questionLogSummaryId']").val();
if(!$.isEmpty(questionLogSummaryId)){
questionLogSummaryApi.updateQuestionLogSummary($('#addForm'),function(){
parent.window.dataReload();
Common.info("更新成功");
Lib.closeFrame();
});
}else{
questionLogSummaryApi.addQuestionLogSummary($('#addForm'),function(){
parent.window.dataReload();
Common.info("添加成功");
Lib.closeFrame();
});
}
});
});
$("#addButton-cancel").click(function(){
Lib.closeFrame();
});
}
}
exports('add',view);
});

@ -0,0 +1,23 @@
layui.define(['table', 'questionLogSummaryApi'], function(exports) {
var questionLogSummaryApi = layui.questionLogSummaryApi;
var table=layui.table;
var view = {
init:function(){
},
delBatch:function(){
var data = Common.getMoreDataFromTable(table,"questionLogSummaryTable");
if(data==null){
return ;
}
Common.openConfirm("确认要删除这些通用题目日志汇总?",function(){
var ids =Common.concatBatchId(data,"questionLogSummaryId");
questionLogSummaryApi.del(ids,function(){
Common.info("删除成功");
dataReload();
})
})
}
}
exports('del',view);
});

@ -0,0 +1,28 @@
layui.define([ 'form', 'laydate', 'table','questionLogSummaryApi'], function(exports) {
var form = layui.form;
var questionLogSummaryApi = layui.questionLogSummaryApi;
var index = layui.index;
var view = {
init:function(){
Lib.initGenrealForm($("#updateForm"),form);
this.initSubmit();
},
initSubmit:function(){
$("#updateButton").click(function(){
form.on('submit(form)', function(){
questionLogSummaryApi.updateQuestionLogSummary($('#updateForm'),function(){
parent.window.dataReload();
Common.info("更新成功");
Lib.closeFrame();
});
});
});
$("#updateButton-cancel").click(function(){
Lib.closeFrame();
});
}
}
exports('edit',view);
});

@ -0,0 +1,273 @@
layui.define([ 'form', 'laydate', 'table' ], function(exports) {
var form = layui.form;
var laydate = layui.laydate;
var table = layui.table;
var questionLogSummaryTable = null;
var view ={
init:function(){
var that = this
this.initTable();
this.initSearchForm();
this.initToolBar();
window.dataReload = function(){
Lib.doSearchForm($("#searchForm"),questionLogSummaryTable)
that.initToolBar();
}
},
initTable:function(){
var sx_ = localStorage.getItem("questionLogSummaryTable_field_"+Common.userInfoId); //筛选值显示、隐藏缓存
if($.isEmpty(sx_)){sx_ = {};}else {sx_ = JSON.parse(sx_);}
questionLogSummaryTable = table.render({
elem : '#questionLogSummaryTable',
height : Lib.getTableHeight(1),
cellMinWidth: 100,
method : 'post',
url : Common.ctxPath + '/jlw/questionLogSummary/list.json' // 数据接口
,page : Lib.tablePage // 开启分页
,toolbar: '#toolbar_questionLogSummary' //自定义头部左侧工具栏
,defaultToolbar: ['filter', 'print', 'exports'] //头部右侧工具栏
,limit : 10,
cols : [ [ // 表头
{
type : 'checkbox',
},
{
field : 'questionLogSummaryId',
title : '学生做题日志汇总ID',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryId'])?false:sx_['questionLogSummaryId'],
width : 60,
},
{
field : 'questionSettingId',
title : '题目配置ID',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionSettingId'])?false:sx_['questionSettingId'],
},
{
field : 'questionSettingName',
title : '题目配置名称',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionSettingName'])?false:sx_['questionSettingName'],
},
{
field : 'questionSettingType',
title : '类型 枚举ResourcesQuestionSnapshotFromTypeEnum',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionSettingType'])?false:sx_['questionSettingType'],
},
{
field : 'questionLogSummaryFromType',
title : '来源类型 枚举',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryFromType'])?false:sx_['questionLogSummaryFromType'],
},
{
field : 'questionSettingTotalScore',
title : '配置的题目总分数',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionSettingTotalScore'])?false:sx_['questionSettingTotalScore'],
},
{
field : 'personId',
title : '人员ID学生ID等等',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['personId'])?false:sx_['personId'],
},
{
field : 'questionLogSummaryQuestionTotalCount',
title : '配置的题目总数',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryQuestionTotalCount'])?false:sx_['questionLogSummaryQuestionTotalCount'],
},
{
field : 'questionLogSummaryStudentDoCount',
title : '学生做题总数',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryStudentDoCount'])?false:sx_['questionLogSummaryStudentDoCount'],
},
{
field : 'questionLogSummarySuccessCount',
title : '全对数量',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummarySuccessCount'])?false:sx_['questionLogSummarySuccessCount'],
},
{
field : 'questionLogSummaryHalfSuccessCount',
title : '半对数量',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryHalfSuccessCount'])?false:sx_['questionLogSummaryHalfSuccessCount'],
},
{
field : 'questionLogSummaryErrorCount',
title : '错题数量',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryErrorCount'])?false:sx_['questionLogSummaryErrorCount'],
},
{
field : 'questionLogSummarySuccessRate',
title : '正确率',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummarySuccessRate'])?false:sx_['questionLogSummarySuccessRate'],
},
{
field : 'questionLogSummaryCurrentPassRate',
title : '当前配置的及格比率',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryCurrentPassRate'])?false:sx_['questionLogSummaryCurrentPassRate'],
},
{
field : 'questionLogSummaryIsPass',
title : '是否及格',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryIsPass'])?false:sx_['questionLogSummaryIsPass'],
},
{
field : 'questionLogSummaryStatusText', //数据字典类型为 global_status
title : '状态1正常 2删除',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryStatusText'])?false:sx_['questionLogSummaryStatusText'],
},
{
field : 'questionLogSummaryAddTime',
title : '添加时间',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryAddTime'])?false:sx_['questionLogSummaryAddTime'],
},
{
field : 'orgId',
title : '组织ID',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['orgId'])?false:sx_['orgId'],
},
{
field : 'userId',
title : '用户ID',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['userId'])?false:sx_['userId'],
}
,{
field : 'operation_',title : '操作',align:"center", templet: function (d) {
var htm = '<button type="button" class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">编辑</button>';
htm += '<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button>';
return htm;
}
}
] ]
});
table.on('checkbox(questionLogSummaryTable)', function(obj){
var questionLogSummary = obj.data;
if(obj.checked){
//按钮逻辑Lib.buttonEnable()
}else{
}
})
},
initSearchForm:function(){
Lib.initSearchForm( $("#searchForm"),questionLogSummaryTable,form);
},
initToolBar:function(){
toolbar = {
add: function () {
var url = "/jlw/questionLogSummary/add.do";
Common.openDlg(url,"通用题目日志汇总管理>新增");
},
edit: function () {
var data = Common.getOneFromTable(table,"questionLogSummaryTable");
if(data==null){
return ;
}
var url = "/jlw/questionLogSummary/add.do?questionLogSummaryId="+data.questionLogSummaryId;
Common.openDlg(url,"通用题目日志汇总管理>"+data.questionLogSummaryId+">编辑");
},
del: function () {
layui.use(['del'], function(){
var delView = layui.del
delView.delBatch();
});
},
search: function () {
Lib.doSearchForm($("#searchForm"), questionLogSummaryTable, 1);
view.initToolBar()
},
refresh: function () {
searchForm.reset();
Lib.doSearchForm($("#searchForm"), questionLogSummaryTable, 1);
view.initToolBar()
},
exportDocument: function () {
layui.use([ 'questionLogSummaryApi' ], function() {
var questionLogSummaryApi = layui.questionLogSummaryApi
Common.openConfirm("确认要导出这些通用题目日志汇总数据?", function() {
questionLogSummaryApi.exportExcel($("#searchForm"), function(fileId) {
Lib.download(fileId);
})
})
});
},
importDocument: function () {
var uploadUrl = Common.ctxPath+"/jlw/questionLogSummary/importTemplate.json";
//模板,
var templatePath= Common.ctxPath+"/jlw/questionLogSummary/downloadTemplate.json";
//公共的简单上传文件处理
var url = "/core/file/simpleUpload.do?uploadUrl="+uploadUrl+"&templatePath="+templatePath;
Common.openDlg(url, "通用题目日志汇总管理>上传");
}
}
//触发事件
$('.ext-toolbar').on('click', function() {
var type = $(this).data('type');
toolbar[type] ? toolbar[type].call(this) : '';
});
}, initTableTool: table.on('tool(questionLogSummaryTable)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
var url = "/jlw/questionLogSummary/add.do?questionLogSummaryId="+data.questionLogSummaryId;
Common.openDlg(url,"通用题目日志汇总管理>"+data.questionLogSummaryId+">编辑");
}else if(obj.event === "del"){
layer.confirm('是否确定删除该信息?', function (index) {
var ret = Common.postAjax("/jlw/questionLogSummary/delete.json",{ids:data.questionLogSummaryId});
layer.msg(ret.code == 0?"删除成功!":ret.msg, {
offset: ['50%'],
icon: ret.code == 0?1:2,
time: 1500 //2秒关闭如果不配置默认是3秒
},function (){
if(ret.code == 0){
Lib.tableRefresh();
}
});
});
}
})
}
exports('index',view);
});

@ -0,0 +1,26 @@
/*访问后台的代码*/
layui.define([], function(exports) {
var api={
updateQuestionLogSummary:function(form,callback){
Lib.submitForm("/jlw/questionLogSummary/edit.json",form,{},callback)
},
addQuestionLogSummary:function(form,callback){
Lib.submitForm("/jlw/questionLogSummary/add.json",form,{},callback)
},
del:function(ids,callback){
Common.post("/jlw/questionLogSummary/delete.json",{"ids":ids},function(){
callback();
})
}
,
exportExcel:function(form,callback){
var formPara = form.serializeJson();
Common.downLoad("/jlw/questionLogSummary/excel/export.json", formPara, 'POST')
// Common.post("/jlw/questionLogSummary/excel/export.json", formPara, function(fileId) {
// callback(fileId);
// })
}
};
exports('questionLogSummaryApi',api);
});

@ -0,0 +1,159 @@
<!--# layout("/common/layout.html",{"jsBase":"/js/jlw/questionLogSummary/"}){ -->
<form class="layui-form" id="addForm">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">题目配置ID</label>
<div class="layui-input-inline">
<input type="text" id="questionSettingId" name="questionSettingId" value="${questionLogSummary.questionSettingId}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">题目配置名称</label>
<div class="layui-input-inline">
<input type="text" id="questionSettingName" name="questionSettingName" value="${questionLogSummary.questionSettingName}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">类型 枚举ResourcesQuestionSnapshotFromTypeEnum</label>
<div class="layui-input-inline">
<input type="text" id="questionSettingType" name="questionSettingType" value="${questionLogSummary.questionSettingType}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">来源类型 枚举</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryFromType" name="questionLogSummaryFromType" value="${questionLogSummary.questionLogSummaryFromType}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">配置的题目总分数</label>
<div class="layui-input-inline">
<input type="text" id="questionSettingTotalScore" name="questionSettingTotalScore" value="${questionLogSummary.questionSettingTotalScore}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">人员ID学生ID等等</label>
<div class="layui-input-inline">
<input type="text" id="personId" name="personId" value="${questionLogSummary.personId}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">配置的题目总数</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryQuestionTotalCount" name="questionLogSummaryQuestionTotalCount" value="${questionLogSummary.questionLogSummaryQuestionTotalCount}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">学生做题总数</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryStudentDoCount" name="questionLogSummaryStudentDoCount" value="${questionLogSummary.questionLogSummaryStudentDoCount}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">全对数量</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummarySuccessCount" name="questionLogSummarySuccessCount" value="${questionLogSummary.questionLogSummarySuccessCount}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">半对数量</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryHalfSuccessCount" name="questionLogSummaryHalfSuccessCount" value="${questionLogSummary.questionLogSummaryHalfSuccessCount}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">错题数量</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryErrorCount" name="questionLogSummaryErrorCount" value="${questionLogSummary.questionLogSummaryErrorCount}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">正确率</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummarySuccessRate" name="questionLogSummarySuccessRate" value="${questionLogSummary.questionLogSummarySuccessRate}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">当前配置的及格比率</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryCurrentPassRate" name="questionLogSummaryCurrentPassRate" value="${questionLogSummary.questionLogSummaryCurrentPassRate}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">是否及格</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryIsPass" name="questionLogSummaryIsPass" value="${questionLogSummary.questionLogSummaryIsPass}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">状态1正常 2删除</label>
<div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' type="global_status"
id="questionLogSummaryStatus" name="questionLogSummaryStatus" value="${questionLogSummary.questionLogSummaryStatus}" layVerify="" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">添加时间</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryAddTime" name="questionLogSummaryAddTime" value="${questionLogSummary.questionLogSummaryAddTime,"yyyy-MM-dd"}" class="layui-input input-date" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">组织ID</label>
<div class="layui-input-inline">
<input type="text" id="orgId" name="orgId" value="${questionLogSummary.orgId}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">用户ID</label>
<div class="layui-input-inline">
<input type="text" id="userId" name="userId" value="${questionLogSummary.userId}" class="layui-input" >
</div>
</div>
</div>
</div>
<!-- 业务对象须有hidden字段保存delFlag和version字段-->
<input type="hidden" name="questionLogSummaryId" value="${questionLogSummary.questionLogSummaryId}" />
<layui:submitButtons id="addButton" buttonType="" showExamine="2" />
</form>
<!--#} -->
<script>
layui.use(['add'], function(){
var questionLogSummaryAdd = layui.add
questionLogSummaryAdd.init();
});
</script>

@ -0,0 +1,159 @@
<!--# layout("/common/layout.html",{"jsBase":"/js/jlw/questionLogSummary/"}){ -->
<form class="layui-form" id="updateForm">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">题目配置ID</label>
<div class="layui-input-inline">
<input type="text" id="questionSettingId" name="questionSettingId" value="${questionLogSummary.questionSettingId}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">题目配置名称</label>
<div class="layui-input-inline">
<input type="text" id="questionSettingName" name="questionSettingName" value="${questionLogSummary.questionSettingName}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">类型 枚举ResourcesQuestionSnapshotFromTypeEnum</label>
<div class="layui-input-inline">
<input type="text" id="questionSettingType" name="questionSettingType" value="${questionLogSummary.questionSettingType}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">来源类型 枚举</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryFromType" name="questionLogSummaryFromType" value="${questionLogSummary.questionLogSummaryFromType}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">配置的题目总分数</label>
<div class="layui-input-inline">
<input type="text" id="questionSettingTotalScore" name="questionSettingTotalScore" value="${questionLogSummary.questionSettingTotalScore}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">人员ID学生ID等等</label>
<div class="layui-input-inline">
<input type="text" id="personId" name="personId" value="${questionLogSummary.personId}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">配置的题目总数</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryQuestionTotalCount" name="questionLogSummaryQuestionTotalCount" value="${questionLogSummary.questionLogSummaryQuestionTotalCount}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">学生做题总数</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryStudentDoCount" name="questionLogSummaryStudentDoCount" value="${questionLogSummary.questionLogSummaryStudentDoCount}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">全对数量</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummarySuccessCount" name="questionLogSummarySuccessCount" value="${questionLogSummary.questionLogSummarySuccessCount}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">半对数量</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryHalfSuccessCount" name="questionLogSummaryHalfSuccessCount" value="${questionLogSummary.questionLogSummaryHalfSuccessCount}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">错题数量</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryErrorCount" name="questionLogSummaryErrorCount" value="${questionLogSummary.questionLogSummaryErrorCount}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">正确率</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummarySuccessRate" name="questionLogSummarySuccessRate" value="${questionLogSummary.questionLogSummarySuccessRate}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">当前配置的及格比率</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryCurrentPassRate" name="questionLogSummaryCurrentPassRate" value="${questionLogSummary.questionLogSummaryCurrentPassRate}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">是否及格</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryIsPass" name="questionLogSummaryIsPass" value="${questionLogSummary.questionLogSummaryIsPass}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">状态1正常 2删除</label>
<div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' type="global_status"
id="questionLogSummaryStatus" name="questionLogSummaryStatus" value="${questionLogSummary.questionLogSummaryStatus}" layVerify="" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">添加时间</label>
<div class="layui-input-inline">
<input type="text" id="questionLogSummaryAddTime" name="questionLogSummaryAddTime" value="${questionLogSummary.questionLogSummaryAddTime,"yyyy-MM-dd"}" class="layui-input input-date" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">组织ID</label>
<div class="layui-input-inline">
<input type="text" id="orgId" name="orgId" value="${questionLogSummary.orgId}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">用户ID</label>
<div class="layui-input-inline">
<input type="text" id="userId" name="userId" value="${questionLogSummary.userId}" class="layui-input" >
</div>
</div>
</div>
</div>
<!-- 业务对象须有hidden字段保存delFlag和version字段-->
<input type="hidden" name="questionLogSummaryId" value="${questionLogSummary.questionLogSummaryId}" />
<layui:submitButtons id="updateButton" buttonType="" showExamine="2" />
</form>
<!--#} -->
<script>
layui.use(['edit'], function(){
var questionLogSummaryEdit = layui.edit
questionLogSummaryEdit.init();
});
</script>

@ -0,0 +1,31 @@
<!--#layout("/common/layout.html",{"jsBase":"/js/jlw/questionLogSummary/"}){ -->
<layui:searchForm formId="searchForm" searchList="" condition="${search}">
</layui:searchForm>
<table id="questionLogSummaryTable" lay-filter="questionLogSummaryTable"></table>
<!--#} -->
<script type="text/html" id="toolbar_questionLogSummary">
<div class="layui-btn-container">
<div class="layui-btn-group" >
<!--# if(core.searchIsShow(search)) {-->
<layui:accessButton function="questionLogSummary.query" id="searchFormSearch" action="search"><i class="layui-icon">&#xe615;</i>搜索</layui:accessButton>
<!--# }-->
<layui:accessButton function="questionLogSummary.add" action="add">添加</layui:accessButton>
<layui:accessButton function="questionLogSummary.edit" action="edit">修改</layui:accessButton>
<layui:accessButton function="questionLogSummary.del" action="del">删除</layui:accessButton>
<!--# if(!isEmpty(search)) {-->
<layui:accessButton function="questionLogSummary.query" action="refresh"><i class="layui-icon">&#xe669;</i>刷新</layui:accessButton>
<!--# }-->
<layui:accessButton function="questionLogSummary.exportDocument" action="exportDocument">导出</layui:accessButton>
<layui:accessButton function="questionLogSummary.importTemplate" action="importDocument">导入</layui:accessButton>
</div>
</div>
</script>
<script>
layui.use(['index'], function(){
var index = layui.index;
index.init();
});
</script>
Loading…
Cancel
Save