|
@ -0,0 +1,159 @@
|
|
|
package com.yihu.wlyy.service.manager.survey;
|
|
|
|
|
|
import com.yihu.wlyy.entity.HospitalDept;
|
|
|
import com.yihu.wlyy.entity.survey.QuestionnairePrize;
|
|
|
import com.yihu.wlyy.repository.*;
|
|
|
import com.yihu.wlyy.repository.survey.QuestionnairePrizeDao;
|
|
|
import com.yihu.wlyy.service.common.excel.ExcelData;
|
|
|
import com.yihu.wlyy.service.manager.hos.HosDoctorService;
|
|
|
import com.yihu.wlyy.util.MD5;
|
|
|
import com.yihu.wlyy.util.ReadExcelUtil;
|
|
|
import com.yihu.wlyy.util.RivaEDCode;
|
|
|
import com.yihu.wlyy.util.query.BaseJpaService;
|
|
|
import com.yihu.wlyy.vo.SignPayVO;
|
|
|
import com.yihu.wlyy.vo.UserPrizeVO;
|
|
|
import jxl.Sheet;
|
|
|
import jxl.Workbook;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.commons.lang3.time.DateUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.domain.PageImpl;
|
|
|
import org.springframework.data.domain.PageRequest;
|
|
|
import org.springframework.data.domain.Sort;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.text.ParseException;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* Created by yww on 2016/12/13.
|
|
|
*/
|
|
|
@Service
|
|
|
public class QuestionnaireService extends BaseJpaService {
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
@Autowired
|
|
|
private QuestionnairePrizeDao prizeDao;
|
|
|
//双层对称加密使用到的KEY
|
|
|
@Value("${Riva.RIVAED_KEY1}")
|
|
|
private String key1;//key1值
|
|
|
@Value("${Riva.RIVAED_KEY2}")
|
|
|
private String key2;//key2值
|
|
|
|
|
|
public List<UserPrizeVO> searchList(String name,String idCard,Integer page,Integer pageSize) throws Exception{
|
|
|
if(page <= 0){
|
|
|
page = 1;
|
|
|
}
|
|
|
if(pageSize <= 0){
|
|
|
pageSize = 15;
|
|
|
}
|
|
|
String sql = "SELECT w.user_name, w.user_idcard, w.user_openid, w.prize_type, w.prize_code, p.validity, p.address FROM wlyy_questionnaire_winning w, wlyy_questionnaire_prize p WHERE w.prize_code = p.`code` and w.winning = 1 and w.del = 0 and p.used = 1 and p.del = 0 " +
|
|
|
"and type = 2";
|
|
|
if (StringUtils.isNotEmpty(name) && StringUtils.isNotEmpty(idCard)){
|
|
|
sql += " w.user_name = " + name + " w.user_idcard = " + idCard;
|
|
|
}else if (StringUtils.isEmpty(name) && StringUtils.isNotEmpty(idCard)){
|
|
|
sql += " w.user_idcard = " + idCard;
|
|
|
}else if (StringUtils.isNotEmpty(name) && StringUtils.isEmpty(idCard)){
|
|
|
sql += " w.user_name = " + name;
|
|
|
}
|
|
|
sql += " order by w.update_time desc limit " + (page-1) +"," +pageSize;
|
|
|
List<UserPrizeVO> userPrizeVOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(UserPrizeVO.class));
|
|
|
return userPrizeVOList;
|
|
|
}
|
|
|
|
|
|
public List<UserPrizeVO> searchListCount(String name,String idCard) throws Exception{
|
|
|
|
|
|
String sql = "SELECT w.user_name, w.user_idcard, w.user_openid, w.prize_type, w.prize_code, p.validity, p.address FROM wlyy_questionnaire_winning w, wlyy_questionnaire_prize p WHERE w.prize_code = p.`code` and w.winning = 1 and w.del = 0 and p.used = 1 and p.del = 0 " +
|
|
|
"and type = 2";
|
|
|
if (StringUtils.isNotEmpty(name) && StringUtils.isNotEmpty(idCard)){
|
|
|
sql += " w.user_name = " + name + " w.user_idcard = " + idCard;
|
|
|
}else if (StringUtils.isEmpty(name) && StringUtils.isNotEmpty(idCard)){
|
|
|
sql += " w.user_idcard = " + idCard;
|
|
|
}else if (StringUtils.isNotEmpty(name) && StringUtils.isEmpty(idCard)){
|
|
|
sql += " w.user_name = " + name;
|
|
|
}
|
|
|
sql += " order by w.idCard desc ";
|
|
|
List<UserPrizeVO> userPrizeVOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper<UserPrizeVO>());
|
|
|
return userPrizeVOList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 导入奖品信息Excel表格
|
|
|
* @param workbook
|
|
|
* @return
|
|
|
* @throws ParseException
|
|
|
*/
|
|
|
public boolean importData(Workbook workbook) throws ParseException {
|
|
|
Sheet[] sheets = workbook.getSheets();
|
|
|
Sheet sheet = sheets[0];
|
|
|
int rows = ReadExcelUtil.getRightRows(sheet);
|
|
|
|
|
|
List<QuestionnairePrize> prizeList = new ArrayList<>();
|
|
|
for (int row = 1; row < rows; row++) { //索引从0开始,第一行为标题
|
|
|
//读取单行数据并取单元格数据保存到实体类部分字段中(单元格从0开始)
|
|
|
QuestionnairePrize prize = new QuestionnairePrize();
|
|
|
//映射实体类部分字段
|
|
|
Map<Integer, ExcelData> mappingPrize = mappingQuestionnairePrize(prize);
|
|
|
int finalRow = row;
|
|
|
mappingPrize.forEach((index, excelData) -> {
|
|
|
String value = sheet.getCell(index, finalRow).getContents().trim();
|
|
|
excelData.transform(value);
|
|
|
});
|
|
|
|
|
|
//判断导入的奖品资源是否存在,不存在则保存
|
|
|
QuestionnairePrize existPrize = prizeDao.findByPrizeType(1,prize.getPrizeCode());
|
|
|
if(existPrize == null){
|
|
|
// 需要从表格取值
|
|
|
prize.setCode(getCode());
|
|
|
prize.setType(1);
|
|
|
prize.setUsed(0);
|
|
|
prize.setDel(0);
|
|
|
prize.setCreateTime(new Date());
|
|
|
prize.setUpdateTime(new Date());
|
|
|
prizeList.add(prize);
|
|
|
}
|
|
|
}
|
|
|
prizeDao.save(prizeList);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* //映射实体类部分字段
|
|
|
* @param prize 奖品资源
|
|
|
* @return
|
|
|
*/
|
|
|
private Map<Integer, ExcelData> mappingQuestionnairePrize(QuestionnairePrize prize) {
|
|
|
Map<Integer, ExcelData> dataMap = new HashMap<>();
|
|
|
//兑奖码
|
|
|
dataMap.put(0, new ExcelData() {
|
|
|
@Override
|
|
|
public void transform(String data) {
|
|
|
//加密
|
|
|
String prizeCode = RivaEDCode.passEncode(key1,key2,data);
|
|
|
prize.setPrizeCode(prizeCode);
|
|
|
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//有效期
|
|
|
dataMap.put(1, new ExcelData() {
|
|
|
@Override
|
|
|
public void transform(String data) {
|
|
|
prize.setValidity(new Date());
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//领取地址
|
|
|
dataMap.put(2, new ExcelData() {
|
|
|
@Override
|
|
|
public void transform(String data) {
|
|
|
prize.setAddress(data);
|
|
|
}
|
|
|
});
|
|
|
return dataMap;
|
|
|
}
|
|
|
}
|