Commit 630d54941cf5dfe4665c994bf603be69a0a1724e

Authored by yiming
1 parent c0340163

考生创建时新增班级

src/main/java/com/bsth/controller/ddexam/DdexamController.java
... ... @@ -23,8 +23,8 @@ public class DdexamController {
23 23  
24 24 //创建账号
25 25 @RequestMapping("initialization")
26   - public Map initializationAll(@RequestParam String name ,@RequestParam Long userName){
27   - return ddexamService.initializationAll(name,userName);
  26 + public Map initializationAll(@RequestParam String name ,@RequestParam Long userName,@RequestParam String className){
  27 + return ddexamService.initializationAll(name,userName,className);
28 28 }
29 29 //初始化
30 30 @RequestMapping("initialization2")
... ...
src/main/java/com/bsth/controller/sys/UserController.java
... ... @@ -308,4 +308,9 @@ public class UserController extends BaseController<SysUser, Integer> {
308 308 return sysUserService.userNameList();
309 309 }
310 310  
  311 + @RequestMapping(value = "/classList")
  312 + public List<String> classList() {
  313 + return sysUserService.getAllClass();
  314 + }
  315 +
311 316 }
... ...
src/main/java/com/bsth/entity/sys/SysUser.java
... ... @@ -46,6 +46,9 @@ public class SysUser implements Serializable {
46 46  
47 47 @Column(name = "parent_id")
48 48 private String parentID;
  49 +
  50 + @Column(name = "class_name")
  51 + private String className;
49 52  
50 53 @ManyToMany(fetch = FetchType.EAGER)
51 54 private Set<Role> roles = new LinkedHashSet<>();
... ... @@ -147,9 +150,17 @@ public class SysUser implements Serializable {
147 150 this.parentID = parentID;
148 151 }
149 152  
  153 + public String getClassName() {
  154 + return className;
  155 + }
  156 +
  157 + public void setClassName(String className) {
  158 + this.className = className;
  159 + }
  160 +
150 161 public SysUser(){
151 162 }
152   - public SysUser(String name,String userName,SysUser loginUser){
  163 + public SysUser(String name,String userName,SysUser loginUser,String className){
153 164 this.createDate=new Date();
154 165 this.enabled=true;
155 166 this.name=name;
... ... @@ -157,5 +168,6 @@ public class SysUser implements Serializable {
157 168 this.userName=userName;
158 169 this.ksstatus="1"; //状态 表示今日账户已用
159 170 this.parentID=String.valueOf(loginUser.getId());
  171 + this.className=className;
160 172 }
161 173 }
... ...
src/main/java/com/bsth/repository/sys/SysUserRepository.java
... ... @@ -52,4 +52,7 @@ public interface SysUserRepository extends BaseRepository&lt;SysUser, Integer&gt;{
52 52  
53 53 @Query("SELECT u FROM SysUser u where u.parentID = ?1")
54 54 List<SysUser> findByParentID(String parentID );
  55 +
  56 + @Query(value ="SELECT class_name FROM bsth_c_sys_user where class_name is not null and parent_id = ?1 GROUP BY class_name",nativeQuery=true)
  57 + List<String> findAllClassByParentID(String parentID );
55 58 }
... ...
src/main/java/com/bsth/service/ddexam/DdexamService.java
... ... @@ -8,7 +8,7 @@ import java.util.Map;
8 8  
9 9 public interface DdexamService {
10 10  
11   - public Map initializationAll(String name,Long userName);
  11 + public Map initializationAll(String name,Long userName,String className);
12 12  
13 13 public Map initializationAll2(Long userName);
14 14  
... ...
src/main/java/com/bsth/service/ddexam/impl/DdexamServiceImpl.java
... ... @@ -194,7 +194,7 @@ public class DdexamServiceImpl implements DdexamService {
194 194 //考生人初始化 单线程 测试1:执行中途再次执行是否同步 测试2:
195 195 @Override
196 196 @Transactional //事务
197   - public synchronized Map initializationAll(String name,Long userName) {
  197 + public synchronized Map initializationAll(String name,Long userName,String className) {
198 198 Long start = System.currentTimeMillis();
199 199 Map m = new HashMap<>();
200 200 try { //用户当天分配完直接改状态 无二次分配的可能
... ... @@ -209,7 +209,7 @@ public class DdexamServiceImpl implements DdexamService {
209 209  
210 210 new Thread() {
211 211 public synchronized void run() {
212   - SysUser user = new SysUser(name,String.valueOf(userName),loginUser);
  212 + SysUser user = new SysUser(name,String.valueOf(userName),loginUser,className);
213 213 if(createUser(user)){
214 214 log.info("考试初始化创建成功");
215 215 kk();
... ... @@ -426,7 +426,7 @@ public class DdexamServiceImpl implements DdexamService {
426 426 for(int i = 0; i < textList.size(); i++) {
427 427 String text = textList.get(i);
428 428 String[] split = text.split(",");
429   - SysUser user = new SysUser(split[1].trim(),split[0].trim(),SecurityUtils.getCurrentUser());
  429 + SysUser user = new SysUser(split[1].trim(),split[0].trim(),SecurityUtils.getCurrentUser(),split[2].trim());
430 430 userList.add(user);
431 431 }
432 432 List<SysUser> users = sysUserRepository.findBySusUserAll();
... ...
src/main/java/com/bsth/service/sys/SysUserService.java
... ... @@ -22,4 +22,6 @@ public interface SysUserService extends BaseService&lt;SysUser, Integer&gt;{
22 22 Map<String, Object> resetPassword(@RequestParam Integer id);
23 23  
24 24 List<Map<String,String>> userNameList();
  25 +
  26 + List<String> getAllClass();
25 27 }
... ...
src/main/java/com/bsth/service/sys/impl/SysUserServiceImpl.java
... ... @@ -193,4 +193,10 @@ public class SysUserServiceImpl extends BaseServiceImpl&lt;SysUser, Integer&gt; implem
193 193 }
194 194 return users;
195 195 }
  196 +
  197 + public List<String> getAllClass(){
  198 + SysUser loginUser=SecurityUtils.getCurrentUser();
  199 + List<String> classList=sysUserRepository.findAllClassByParentID(String.valueOf(loginUser.getId()));
  200 + return classList;
  201 + }
196 202 }
... ...
src/main/resources/static/pages/ddexam/index.html
... ... @@ -56,16 +56,28 @@
56 56 <label class="col-md-12 sizell">请输入学号:</label>
57 57 <div class="col-md-9 scm">
58 58 <input id="userName" type="text" class="form-control" name="userName" autocomplete="off" oninput="value=value.replace(/[^\d]/g,'')"/>
59   -
  59 +
60 60 </div>
61 61  
62 62 <label class="col-md-12 sizell">请输入姓名:</label>
63 63 <div class="col-md-9 scm">
64 64  
65 65 <input id="name" type="text" class="form-control" name="name" autocomplete="off" />
  66 +
  67 + </div>
  68 + <label class="col-md-12 sizell">请输入班级:</label>
  69 + <div class="col-md-9 scm" >
  70 + <div id="className1">
  71 + <select class="form-control" name="className" id="className" ></select>
  72 + </div>
  73 + <input type="text" class="form-control" name="className2" id="className2" autocomplete="off" style="display: none"/>
66 74 <h6>人数过大时,耗时较久,请耐心等待</h6>
67 75 </div>
68   -
  76 + <div class="col-md-3" style="padding-right: 60px; padding-top: 5px">
  77 + <input type="radio" name="isNew" value="1" onclick="isNew()" checked="checked"/><label >已有</label>
  78 + <input type="radio" name="isNew" value="2" onclick="isNew()"/><label >新增</label>
  79 + </div>
  80 +
69 81 <div class="col-md-12 nt" >
70 82 <button type="button" class="btn btn-primary textk" id="onckil">创建账号</button>
71 83 <button type="button" class="btn btn-primary textk" id="upload"><i class="fa fa-file-excel-o"></i>
... ... @@ -112,8 +124,9 @@
112 124 format : 'HH:mm:ss',
113 125 locale : 'zh-cn',
114 126 });
  127 + getClass();
115 128 })
116   -
  129 +
117 130 // 下一步点击事件
118 131 $('#onckil').on('click', function() {
119 132 onckil();// 表单提交
... ... @@ -140,9 +153,16 @@
140 153  
141 154  
142 155 function onckil(){
  156 + var className;
  157 + if($('input[name="isNew"]:checked').val()==2) {
  158 + className=$("#className2").val();
  159 + }else {
  160 + className=$("#className").val();
  161 + }
143 162 var params ={
144 163 userName : $("#userName").val(),
145   - name : $("#name").val()
  164 + name : $("#name").val(),
  165 + className :className
146 166 }
147 167 var i = layer.load(2);
148 168 $.post('/ddexam/initialization',params,function(data) {
... ... @@ -216,5 +236,29 @@
216 236 $.get('upload.html', function(m){$(pjaxContainer).append(m);});
217 237 });
218 238  
  239 + function isNew(){
  240 + if($('input[name="isNew"]:checked').val()==2){
  241 + $('#className1').hide();
  242 + $('#className2').show();
  243 + }else {
  244 + getClass();
  245 + $('#className1').show();
  246 + $('#className2').hide();
  247 + }
  248 + }
  249 + var firstLoad=true;
  250 + function getClass(){
  251 + $.get('/user/classList',function(result){
  252 + var data=[];
  253 + if(firstLoad){
  254 + data.push({id: "", text:"请选择"});
  255 + }
  256 + for(var code in result){
  257 + data.push({id: result[code], text: result[code]});
  258 + }
  259 + initPinYinSelect2('#className',data,'');
  260 + firstLoad=false;
  261 + })
  262 + }
219 263  
220 264 </script>
221 265 \ No newline at end of file
... ...