Browse Source

等级勋章获取

master
yanyan 3 years ago
parent
commit
c420796922
  1. 31
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/QuestionAnswerController.java
  2. 3
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/WechatLoginController.java

31
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/QuestionAnswerController.java

@ -2,11 +2,14 @@ package com.zdxt.knowledge.controller;
import com.zdxt.common.ZDResponse;
import com.zdxt.common.controller.BaseController;
import com.zdxt.common.util.StringUtils;
import com.zdxt.common.util.TableDataInfo;
import com.zdxt.knowledge.domain.QuestionAnswer;
import com.zdxt.knowledge.domain.QuestionCount;
import com.zdxt.knowledge.domain.SceneMedal;
import com.zdxt.knowledge.domain.WechatUser;
import com.zdxt.knowledge.service.IQuestionAnswerService;
import com.zdxt.knowledge.service.ISceneMedalService;
import com.zdxt.knowledge.service.WechatService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@ -15,8 +18,10 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 选择Controller
@ -35,6 +40,9 @@ public class QuestionAnswerController extends BaseController {
@Autowired
private WechatService wechatService;
@Autowired
private ISceneMedalService sceneMedalService;
@RequiresPermissions("system:answer:view")
@GetMapping()
public String answer() {
@ -78,11 +86,30 @@ public class QuestionAnswerController extends BaseController {
//答错的所有题次
long errCount = list.stream().filter(item -> Objects.equals(item.getCorrect(), 0)).map(QuestionAnswer::getQuestionId).distinct().count();
long score = (count - errCount) * 10;
WechatUser wechatUser = new WechatUser();
wechatUser.setGuid(questionCount.getUserId());
WechatUser wechatUser = wechatService.selectUserById(questionCount.getUserId());
if (Objects.nonNull(wechatUser)) {
//判断用户分数是否达到等级勋章设定,有则更新勋章个数
long total = wechatUser.getScore() + score;
List<SceneMedal> sceneMedals = sceneMedalService.selectSceneMedalList(new SceneMedal());
ArrayList<String> medalNew = new ArrayList<>();
sceneMedals.stream()
.filter(item -> Objects.equals(item.getType(), "2") && item.getLevel() <= total)
.peek(item -> {
if (!wechatUser.getMedal().contains(item.getGuid())) {
medalNew.add(item.getGuid());
}
})
.collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(medalNew)) {
wechatUser.setActive(0);
wechatUser.setMedal(StringUtils.isNotEmpty(wechatUser.getMedal())
? wechatUser.getMedal().concat(",").concat(String.join(",", medalNew))
: String.join(",", medalNew));
}
wechatUser.setScore(wechatUser.getScore() + score);
wechatService.update(wechatUser);
}
}
return ZDResponse.success("操作成功");
}

3
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/WechatLoginController.java

@ -2,6 +2,7 @@ package com.zdxt.knowledge.controller;
import com.zdxt.common.ZDResponse;
import com.zdxt.common.controller.BaseController;
import com.zdxt.common.util.StringUtils;
import com.zdxt.common.util.TableDataInfo;
import com.zdxt.knowledge.domain.SceneMedal;
import com.zdxt.knowledge.domain.WechatLoginRequest;
@ -135,7 +136,7 @@ public class WechatLoginController extends BaseController {
return ZDResponse.success("0", null);
}
// 否则更新
medalStr += "," + medalObj.getGuid();
medalStr += StringUtils.isNotEmpty(medalStr) ? "," + medalObj.getGuid() : medalObj.getGuid();
wechatUser.setMedal(medalStr);
wechatUser.setActive(0);
return wechatService.update(wechatUser) > 0

Loading…
Cancel
Save