|
@@ -16,13 +16,10 @@ import javax.persistence.criteria.Root;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Page;
|
|
|
-import org.springframework.data.domain.Sort;
|
|
|
-import org.springframework.data.domain.Sort.Direction;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import cn.com.qmth.stmms.biz.common.BaseQuery;
|
|
|
import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
|
import cn.com.qmth.stmms.biz.exam.dao.MarkerDao;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
@@ -150,31 +147,23 @@ public class MarkerServiceImpl extends BaseQueryService<Marker> implements Marke
|
|
|
int result = 0;
|
|
|
if (subject != null && count > 0) {
|
|
|
int start = 1;
|
|
|
- Marker previous = findLastMarker(subject.getExamId());
|
|
|
- if (previous != null) {
|
|
|
- start = previous.getId() + 1;
|
|
|
- }
|
|
|
int end = start + count - 1;
|
|
|
+ String randomStr = getRandom();
|
|
|
for (; start <= end; start++) {
|
|
|
Marker marker = new Marker();
|
|
|
marker.setExamId(subject.getExamId());
|
|
|
marker.setSubjectCode(subject.getCode());
|
|
|
if(StringUtils.isEmpty(password)){
|
|
|
- Random random = new Random();
|
|
|
- for (int i=0;i<6;i++)
|
|
|
- {
|
|
|
- password+=random.nextInt(10);
|
|
|
- }
|
|
|
- marker.setPassword(password);
|
|
|
- password = "";//随机码生产后将密码置空
|
|
|
+ marker.setPassword(getRandom());
|
|
|
}else {
|
|
|
marker.setPassword(password);
|
|
|
}
|
|
|
marker.setEnable(true);
|
|
|
- marker.buildLoginName(start);
|
|
|
+ marker.buildLoginName(start,randomStr);
|
|
|
+ randomStr = checkLoginName(start, randomStr, marker);
|
|
|
marker.setName(marker.getLoginName());
|
|
|
if (save(marker) != null) {
|
|
|
- result++;
|
|
|
+ result++;
|
|
|
}
|
|
|
Set<Marker> markers = subject.getMarkers();
|
|
|
markers.add(marker);
|
|
@@ -185,32 +174,25 @@ public class MarkerServiceImpl extends BaseQueryService<Marker> implements Marke
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- private Marker findLastMarker(int examId) {
|
|
|
- BaseQuery<Marker> query = new BaseQuery<Marker>();
|
|
|
- query.setPageNumber(1);
|
|
|
- query.setPageSize(1);
|
|
|
- query.setSort(new Sort(Direction.DESC, "id"));
|
|
|
- List<Marker> list = markerDao.findByExamId(examId, query);
|
|
|
- if (list != null && list.size() > 0) {
|
|
|
-// return Marker.parseLoginName(list.get(0).getLoginName());
|
|
|
- return list.get(0);
|
|
|
- } else {
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
+ private String checkLoginName(int start, String randomStr, Marker marker) {
|
|
|
+ if(countByLoginName(marker.getLoginName())>0){
|
|
|
+ randomStr = getRandom();
|
|
|
+ marker.buildLoginName(start,randomStr);
|
|
|
+ return checkLoginName(start, randomStr, marker);
|
|
|
+ }else{
|
|
|
+ return randomStr;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
-// private Marker findLastCommonMarker(int examId) {
|
|
|
-// BaseQuery<Marker> query = new BaseQuery<Marker>();
|
|
|
-// query.setPageNumber(1);
|
|
|
-// query.setPageSize(1);
|
|
|
-// query.setSort(new Sort(Direction.DESC, "id"));
|
|
|
-// List<Marker> list = markerDao.findByExamIdAndCommon(examId, true, query);
|
|
|
-// if (list != null && list.size() > 0) {
|
|
|
-// return Marker.parseLoginName(list.get(0).getLoginName());
|
|
|
-// } else {
|
|
|
-// return null;
|
|
|
-// }
|
|
|
-// }
|
|
|
+ private String getRandom() {
|
|
|
+ String randomStr = "";
|
|
|
+ Random random = new Random();
|
|
|
+ for (int i=0;i<6;i++)
|
|
|
+ {
|
|
|
+ randomStr+=random.nextInt(10);
|
|
|
+ }
|
|
|
+ return randomStr;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public List<Marker> getMarkCount(int examId) {
|