|
|
@@ -720,6 +720,43 @@ public class FsCourseQuestionBankServiceImpl implements IFsCourseQuestionBankSer
|
|
|
if (thisRightCount == questionCount) {
|
|
|
logs.setIsRight(1);
|
|
|
courseAnswerLogsMapper.insertFsCourseAnswerLogs(logs);
|
|
|
+
|
|
|
+ // 答题成功自动发放积分
|
|
|
+ try {
|
|
|
+ FsUserCourseVideo video = courseVideoMapper.selectFsUserCourseVideoByVideoId(param.getVideoId());
|
|
|
+ if (video != null && video.getIntegralReward() != null && video.getIntegralReward() > 0) {
|
|
|
+ String businessId = resolveAnswerIntegralBusinessId(param.getVideoId(), param.getPeriodId());
|
|
|
+ FsUserIntegralLogs existed = fsUserIntegralLogsMapper.selectAnswerRewardIntegralLog(param.getUserId(), businessId);
|
|
|
+ if (existed == null) {
|
|
|
+ FsUser user = fsUserMapper.selectFsUserByUserId(param.getUserId());
|
|
|
+ if (user != null) {
|
|
|
+ long baseIntegral = user.getIntegral() != null ? user.getIntegral() : 0L;
|
|
|
+ long reward = video.getIntegralReward().longValue();
|
|
|
+ long newBalance = baseIntegral + reward;
|
|
|
+
|
|
|
+ FsUser upd = new FsUser();
|
|
|
+ upd.setUserId(param.getUserId());
|
|
|
+ upd.setIntegral(newBalance);
|
|
|
+ fsUserMapper.updateFsUser(upd);
|
|
|
+
|
|
|
+ FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
+ integralLogs.setIntegral(reward);
|
|
|
+ integralLogs.setUserId(param.getUserId());
|
|
|
+ integralLogs.setBalance(newBalance);
|
|
|
+ integralLogs.setLogType(FsUserIntegralLogTypeEnum.TYPE_17.getValue());
|
|
|
+ integralLogs.setBusinessId(businessId);
|
|
|
+ integralLogs.setRemark(FsUserIntegralLogTypeEnum.TYPE_17.getDesc());
|
|
|
+ integralLogs.setCreateTime(new Date());
|
|
|
+ fsUserIntegralLogsService.insertFsUserIntegralLogs(integralLogs);
|
|
|
+
|
|
|
+ return R.ok("答题成功").put("integral", video.getIntegralReward()).put("balance", newBalance);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
return R.ok("答题成功");
|
|
|
}
|
|
|
logs.setIsRight(0);
|