Explorar o código

Merge branch 'dubbo-service-for-anheng' into 'Test'

Dubbo service for anheng



See merge request !187

chensc %!s(int64=8) %!d(string=hai) anos
pai
achega
adbec9f6b4

+ 1 - 1
mooctest-site-server/pom.xml

@@ -31,7 +31,7 @@
         <dependency>
             <groupId>cn.iselab.mooctest</groupId>
             <artifactId>oauth2-dubbo-api</artifactId>
-            <version>1.0.7</version>
+            <version>1.0.12</version>
         </dependency>
 
         <!--dubbo-service-api-->

+ 18 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/OpenId2UserIdDao.java

@@ -0,0 +1,18 @@
+package cn.iselab.mooctest.site.dao;
+
+import cn.iselab.mooctest.site.models.OpenId2UserId;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+
+/**
+ * Created by csc on 2017/8/15.
+ */
+@Transactional
+public interface OpenId2UserIdDao extends CrudRepository<OpenId2UserId, Long> {
+
+    OpenId2UserId findByUserId(long userId);
+
+    OpenId2UserId findByOpenId(String openId);
+
+}

+ 38 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/OpenId2UserId.java

@@ -0,0 +1,38 @@
+package cn.iselab.mooctest.site.models;
+
+import org.hibernate.annotations.GenericGenerator;
+import org.springframework.boot.autoconfigure.web.ResourceProperties;
+
+import javax.persistence.*;
+
+/**
+ * Created by csc on 2017/8/15.
+ */
+
+@Entity
+@Table(name = "openid_2_userid")
+public class OpenId2UserId {
+
+    @Id
+    @Column( name = "user_id" )
+    private long userId;
+
+    @Column( name = "open_id" )
+    private String openId;
+
+    public String getOpenId() {
+        return openId;
+    }
+
+    public void setOpenId(String openid) {
+        this.openId = openid;
+    }
+
+    public long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(long userid) {
+        this.userId = userid;
+    }
+}

+ 1 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/rpc/Oauth2/impl/ExamServiceImpl2.java

@@ -23,7 +23,7 @@ import java.util.List;
 /**
  * Created by shanshan on 2017/8/14.
  */
-@Service(version = "1.0.7")
+@Service(version = "1.0.12")
 @Component
 public class ExamServiceImpl2 implements ExamService {
     @Autowired

+ 76 - 2
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/rpc/Oauth2/impl/Oauth2ServiceImpl.java

@@ -1,21 +1,32 @@
 package cn.iselab.mooctest.site.rpc.Oauth2.impl;
 
+import cn.iselab.mooctest.site.dao.OpenId2UserIdDao;
+import cn.iselab.mooctest.site.models.AssignedTask;
+import cn.iselab.mooctest.site.models.OpenId2UserId;
+import cn.iselab.mooctest.site.models.Task;
 import cn.iselab.mooctest.site.rpc.oauth2.api.UserService;
+import cn.iselab.mooctest.site.rpc.oauth2.data.CaseDetailDTO;
+import cn.iselab.mooctest.site.rpc.oauth2.data.ScoreDetails;
+import cn.iselab.mooctest.site.rpc.oauth2.data.TaskResultDTO;
 import cn.iselab.mooctest.site.rpc.oauth2.data.UserDTO;
+import cn.iselab.mooctest.site.service.AssignedTaskService;
+import cn.iselab.mooctest.site.service.ExamService;
 import cn.iselab.mooctest.site.service.GroupService;
 import cn.iselab.mooctest.site.web.data.UserVO;
 import cn.iselab.mooctest.site.web.logic.UserLogic;
 import com.alibaba.dubbo.config.annotation.Service;
+import org.json.JSONArray;
+import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.sql.Timestamp;
-import java.util.ArrayList;
+import java.util.HashMap;
 
 /**
  * Created by csc on 2017/8/11.
  */
-@Service(version = "1.0.7")
+@Service(version = "1.0.12")
 @Component
 public class Oauth2ServiceImpl implements UserService{
 
@@ -25,6 +36,15 @@ public class Oauth2ServiceImpl implements UserService{
     @Autowired
     private GroupService groupService;
 
+    @Autowired
+    private ExamService examService;
+
+    @Autowired
+    private AssignedTaskService assignedTaskService;
+
+    @Autowired
+    private OpenId2UserIdDao openId2UserIdDao;
+
     @Override
     public UserDTO registerNewUser(String s, String s1, String s2, String s3, String s4) {
         UserVO userVO = new UserVO();
@@ -48,4 +68,58 @@ public class Oauth2ServiceImpl implements UserService{
     public void joinGroup(long l, long l1) {
         groupService.addUserIntoGroupForOauth2(l,l1);
     }
+
+    @Override
+    public UserDTO getUserById(long l) {
+        UserDTO result = new UserDTO();
+        UserVO userVO =  userLogic.findUserById(l);
+        result.setName(userVO.getName());
+        result.setMobile(userVO.getMobile());
+        result.setEmail(userVO.getEmail());
+        result.setSchool(userVO.getSchool());
+        return result;
+    }
+
+    @Override
+    public boolean saveTaskResult(TaskResultDTO taskResultDTO) {
+        long taskId = taskResultDTO.getTask_id();
+        HashMap<Long, String> caseNameMap = taskResultDTO.getTask_case_list();
+        AssignedTask assignedTask;
+        Task task;
+        long participantId;
+        for(ScoreDetails scoreDetails: taskResultDTO.getScoreDetails()) {
+
+            OpenId2UserId openId2UserId = openId2UserIdDao.findByOpenId(scoreDetails.getOpen_id());
+            participantId = openId2UserId.getUserId();
+            task = examService.getExamByIdAndParticipantIdIfPermited(taskId, openId2UserId.getUserId());
+            assignedTask = new AssignedTask();
+            assignedTask.setWorkerId(participantId);
+            assignedTask.setName(task.getName());
+            assignedTask.setTaskId(task.getId());
+            assignedTask.setManagerId(task.getManagerId());
+            assignedTask.setContent("");
+            assignedTask.setScore(0.0);
+            assignedTask.setOwnerId(task.getOwnerId());
+            assignedTask.setParticipantId(participantId);
+
+            JSONObject assignedResults = new JSONObject();
+            JSONObject assignedResultObj = new JSONObject();
+
+            for(CaseDetailDTO caseDetailDTO: scoreDetails.getDetail()) {
+                JSONObject caseDetail =  new JSONObject();
+                caseDetail.put("id", caseDetailDTO.getCase_id());
+                caseDetail.put("maxScore", caseDetailDTO.getScore());
+                JSONArray scores = new JSONArray();
+                scores.put(caseDetailDTO.getScore());
+                caseDetail.put("scores", scores);
+                caseDetail.put("name", caseNameMap.get(caseDetailDTO.getCase_id()));
+                caseDetail.put("resultUrls", new JSONArray());
+                assignedResults.put(String.valueOf(caseDetailDTO.getCase_id()), caseDetail);
+            }
+            assignedResultObj.put("results", assignedResults);
+            assignedTask.setResult(assignedResultObj.toString());
+            assignedTaskService.saveOrUpdateAssignedTask(assignedTask);
+        }
+        return true;
+    }
 }

+ 3 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/AssignedTaskServiceImpl.java

@@ -290,4 +290,7 @@ public class AssignedTaskServiceImpl extends BaseService implements AssignedTask
     public List<Double> getScoreList(Long examId) {
         return assignedTaskDao.findScoreListByExamId(examId);
     }
+
+
+
 }

+ 13 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/UserServiceImpl.java

@@ -1,8 +1,10 @@
 package cn.iselab.mooctest.site.service.impl;
 
+import cn.iselab.mooctest.site.dao.OpenId2UserIdDao;
 import cn.iselab.mooctest.site.dao.Role2PermissionDao;
 import cn.iselab.mooctest.site.dao.User2RoleDao;
 import cn.iselab.mooctest.site.dao.UserDao;
+import cn.iselab.mooctest.site.models.OpenId2UserId;
 import cn.iselab.mooctest.site.models.User;
 import cn.iselab.mooctest.site.service.BaseService;
 import cn.iselab.mooctest.site.service.UserService;
@@ -12,6 +14,7 @@ import org.springframework.stereotype.Service;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 /**
  * @author sean
@@ -29,9 +32,18 @@ public class UserServiceImpl extends BaseService implements UserService {
     @Autowired
     private Role2PermissionDao role2PermissionDao;
 
+    @Autowired
+    private OpenId2UserIdDao openId2UserIdDao;
+
     @Override
     public User createUser(User user) {
-        return userDao.save(user);
+        User result = userDao.save(user);
+        OpenId2UserId openId2UserId = new OpenId2UserId();
+        System.out.println();
+        openId2UserId.setUserId(result.getId());
+        openId2UserId.setOpenId(UUID.randomUUID().toString());
+        openId2UserIdDao.save(openId2UserId);
+        return result;
     }
 
     @Override

+ 0 - 11
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/TestController.java

@@ -150,15 +150,4 @@ public class TestController {
         return true;
     }
 
-    @RequestMapping(value = "/api/test/fuck", method = RequestMethod.GET)
-    public boolean fuck() {
-        UserVO user = new UserVO();
-        user.setEmail(null);
-        user.setName("Dubbo");
-        user.setMobile("130912322");
-        userLogic.registerForOauth2(user);
-        return true;
-    }
-
-
 }

+ 3 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/UserLogic.java

@@ -35,5 +35,8 @@ public interface UserLogic {
 
     UserVO registerForOauth2(UserVO userVO);
 
+    UserVO findUserById(long userId);
+
     UserVO findUserByMobile(String mobile);
+
 }

+ 5 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/UserLogicImpl.java

@@ -244,6 +244,11 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
     }
 
     @Override
+    public UserVO findUserById(long userId) {
+        return userVOWrapper.wrap(userService.findByUserId(userId));
+    }
+
+    @Override
     public UserVO findUserByMobile(String mobile) {
         return userVOWrapper.wrap(userService.findByMobile(mobile));
     }