|
@@ -55,6 +55,7 @@ import com.fs.course.vo.*;
|
|
|
import com.fs.course.vo.newfs.*;
|
|
import com.fs.course.vo.newfs.*;
|
|
|
import com.fs.enums.ExceptionCodeEnum;
|
|
import com.fs.enums.ExceptionCodeEnum;
|
|
|
import com.fs.his.config.AppConfig;
|
|
import com.fs.his.config.AppConfig;
|
|
|
|
|
+import com.fs.his.config.IntegralConfig;
|
|
|
import com.fs.his.domain.*;
|
|
import com.fs.his.domain.*;
|
|
|
import com.fs.his.mapper.FsCouponMapper;
|
|
import com.fs.his.mapper.FsCouponMapper;
|
|
|
import com.fs.his.mapper.FsUserCouponMapper;
|
|
import com.fs.his.mapper.FsUserCouponMapper;
|
|
@@ -66,6 +67,7 @@ import com.fs.his.service.IFsUserIntegralLogsService;
|
|
|
import com.fs.his.service.IFsUserService;
|
|
import com.fs.his.service.IFsUserService;
|
|
|
import com.fs.his.service.IFsUserWxService;
|
|
import com.fs.his.service.IFsUserWxService;
|
|
|
import com.fs.his.utils.ConfigUtil;
|
|
import com.fs.his.utils.ConfigUtil;
|
|
|
|
|
+import com.fs.his.utils.IntegralConfigHelper;
|
|
|
import com.fs.his.vo.OptionsVO;
|
|
import com.fs.his.vo.OptionsVO;
|
|
|
import com.fs.hisStore.domain.FsStoreProductScrm;
|
|
import com.fs.hisStore.domain.FsStoreProductScrm;
|
|
|
import com.fs.hisStore.mapper.FsStoreProductScrmMapper;
|
|
import com.fs.hisStore.mapper.FsStoreProductScrmMapper;
|
|
@@ -2537,15 +2539,19 @@ public class FsUserCourseVideoServiceImpl extends ServiceImpl<FsUserCourseVideoM
|
|
|
* @return 处理结果
|
|
* @return 处理结果
|
|
|
*/
|
|
*/
|
|
|
private R sendIntegralReward(FsCourseSendRewardUParam param, FsUser user, FsCourseWatchLog log, CourseConfig config) {
|
|
private R sendIntegralReward(FsCourseSendRewardUParam param, FsUser user, FsCourseWatchLog log, CourseConfig config) {
|
|
|
|
|
+ Integer answerIntegral = resolveFinishCourseIntegral(param.getVideoId(), config);
|
|
|
|
|
+ if (answerIntegral == null || answerIntegral <= 0) {
|
|
|
|
|
+ return R.error("完课积分未配置");
|
|
|
|
|
+ }
|
|
|
// 更新用户积分
|
|
// 更新用户积分
|
|
|
FsUser userMap = new FsUser();
|
|
FsUser userMap = new FsUser();
|
|
|
userMap.setUserId(user.getUserId());
|
|
userMap.setUserId(user.getUserId());
|
|
|
- userMap.setIntegral(user.getIntegral() + config.getAnswerIntegral());
|
|
|
|
|
|
|
+ userMap.setIntegral(user.getIntegral() + answerIntegral);
|
|
|
fsUserMapper.updateFsUser(userMap);
|
|
fsUserMapper.updateFsUser(userMap);
|
|
|
|
|
|
|
|
// 记录积分日志
|
|
// 记录积分日志
|
|
|
FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
- integralLogs.setIntegral(config.getAnswerIntegral().longValue());
|
|
|
|
|
|
|
+ integralLogs.setIntegral(answerIntegral.longValue());
|
|
|
integralLogs.setUserId(user.getUserId());
|
|
integralLogs.setUserId(user.getUserId());
|
|
|
integralLogs.setBalance(userMap.getIntegral());
|
|
integralLogs.setBalance(userMap.getIntegral());
|
|
|
integralLogs.setLogType(17);
|
|
integralLogs.setLogType(17);
|
|
@@ -2556,7 +2562,7 @@ public class FsUserCourseVideoServiceImpl extends ServiceImpl<FsUserCourseVideoM
|
|
|
//更新看课记录的奖励类型
|
|
//更新看课记录的奖励类型
|
|
|
log.setRewardType(config.getRewardType());
|
|
log.setRewardType(config.getRewardType());
|
|
|
courseWatchLogMapper.updateFsCourseWatchLog(log);
|
|
courseWatchLogMapper.updateFsCourseWatchLog(log);
|
|
|
- logger.info("发放奖励====================》看课记录,{}", log);
|
|
|
|
|
|
|
+ logger.info("发放奖励====================》看课记录,{}, integral={}", log, answerIntegral);
|
|
|
|
|
|
|
|
// 红德堂不要积分转红包
|
|
// 红德堂不要积分转红包
|
|
|
if (CloudHostUtils.hasCloudHostName("弘德堂") || CloudHostUtils.hasCloudHostName("恒春来")) {
|
|
if (CloudHostUtils.hasCloudHostName("弘德堂") || CloudHostUtils.hasCloudHostName("恒春来")) {
|
|
@@ -2574,7 +2580,7 @@ public class FsUserCourseVideoServiceImpl extends ServiceImpl<FsUserCourseVideoM
|
|
|
redPacketLog.setQwUserId(param.getQwUserId() != null ? param.getQwUserId() : null);
|
|
redPacketLog.setQwUserId(param.getQwUserId() != null ? param.getQwUserId() : null);
|
|
|
redPacketLog.setCompanyUserId(param.getCompanyUserId());
|
|
redPacketLog.setCompanyUserId(param.getCompanyUserId());
|
|
|
redPacketLog.setCreateTime(new Date());
|
|
redPacketLog.setCreateTime(new Date());
|
|
|
- redPacketLog.setAmount(BigDecimal.valueOf(config.getAnswerIntegral()).divide(BigDecimal.valueOf(1000)));
|
|
|
|
|
|
|
+ redPacketLog.setAmount(BigDecimal.valueOf(answerIntegral).divide(BigDecimal.valueOf(1000)));
|
|
|
redPacketLog.setRemark("点播答题领取积分转");
|
|
redPacketLog.setRemark("点播答题领取积分转");
|
|
|
redPacketLog.setWatchLogId(log.getLogId() != null ? log.getLogId() : null);
|
|
redPacketLog.setWatchLogId(log.getLogId() != null ? log.getLogId() : null);
|
|
|
redPacketLog.setPeriodId(param.getPeriodId());
|
|
redPacketLog.setPeriodId(param.getPeriodId());
|
|
@@ -2582,6 +2588,22 @@ public class FsUserCourseVideoServiceImpl extends ServiceImpl<FsUserCourseVideoM
|
|
|
return R.ok("积分奖励发放成功").put("rewardType", config.getRewardType());
|
|
return R.ok("积分奖励发放成功").put("rewardType", config.getRewardType());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 完课/答题积分:关联商品(转化素材)用 integralCommentProduct,未关联用 integralComment(后台完课评价积分)。
|
|
|
|
|
+ */
|
|
|
|
|
+ private Integer resolveFinishCourseIntegral(Long videoId, CourseConfig config) {
|
|
|
|
|
+ IntegralConfig integralConfig = IntegralConfigHelper.load(configService);
|
|
|
|
|
+ FsUserCourseVideo video = videoId == null ? null
|
|
|
|
|
+ : fsUserCourseVideoMapper.selectFsUserCourseVideoByVideoId(videoId);
|
|
|
|
|
+ if (video != null && Integer.valueOf(1).equals(video.getIsProduct())) {
|
|
|
|
|
+ return integralConfig.getIntegralCommentProduct();
|
|
|
|
|
+ }
|
|
|
|
|
+ if (integralConfig.getIntegralComment() != null) {
|
|
|
|
|
+ return integralConfig.getIntegralComment();
|
|
|
|
|
+ }
|
|
|
|
|
+ return config != null ? config.getAnswerIntegral() : null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public List<FsUserCourseVideoPageListVO> pageListCourseVideo(UserCourseVideoPageParam param) {
|
|
public List<FsUserCourseVideoPageListVO> pageListCourseVideo(UserCourseVideoPageParam param) {
|
|
|
List<FsUserCourseVideoPageListVO> courseVideoPageListVOList = fsUserCourseVideoMapper.selectFsUserCourseVideoPageList(param);
|
|
List<FsUserCourseVideoPageListVO> courseVideoPageListVOList = fsUserCourseVideoMapper.selectFsUserCourseVideoPageList(param);
|