Commit 59ae5ada authored by liuyang's avatar liuyang

update

parent f8c06074
......@@ -18,6 +18,7 @@ import com.qkdata.biz.web.vo.QueryConsumeRecordModel;
import com.qkdata.biz.web.vo.SaveConsumeRecord;
import com.qkdata.common.base.enums.CodeEnum;
import com.qkdata.common.base.model.PageResult;
import com.qkdata.common.util.UserContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
......@@ -115,4 +116,5 @@ public class CourseConsumeRecordService extends ServiceImpl<CourseConsumeRecordM
}
return PageResult.<CourseConsumeRecordModel>builder().code(CodeEnum.SUCCESS.getCode()).count(page.getTotal()).data(list).build();
}
}
\ No newline at end of file
......@@ -17,6 +17,7 @@ import com.qkdata.common.base.model.PageResult;
import com.qkdata.common.util.UserContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
......@@ -46,6 +47,7 @@ public class OrgUserReceiveRecordService extends ServiceImpl<OrgUserReceiveRecor
* 企业分配VIP
* @param models
*/
@Transactional
public void assignVip(List<EnterpriseAssignVipModel> models) {
Long orgId = sysUserService.getUserEnterpriesId(UserContext.getUserId());
List<OrgUserReceiveRecordPO> poList = Lists.newArrayList();
......@@ -59,6 +61,7 @@ public class OrgUserReceiveRecordService extends ServiceImpl<OrgUserReceiveRecor
poList.add(po);
}
saveBatch(poList);
validateAndSave(poList);
}
public synchronized void validateAndSave(List<OrgUserReceiveRecordPO> poList){
for (OrgUserReceiveRecordPO po : poList){
......
package com.qkdata.biz.web.controller;
import cn.hutool.core.util.StrUtil;
import com.google.common.collect.Lists;
import com.qkdata.biz.common.BizConstants;
import com.qkdata.biz.management.entity.CourseConsumeRecordPO;
import com.qkdata.biz.management.service.CourseConsumeRecordService;
import com.qkdata.biz.web.vo.SaveConsumeRecord;
import com.qkdata.common.annotation.SysLog;
import com.qkdata.common.base.model.Result;
......@@ -18,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.sql.Struct;
import java.time.LocalDateTime;
import java.util.concurrent.TimeUnit;
......@@ -28,12 +32,17 @@ public class CourseConsumeRecordController {
@Autowired
@Qualifier("objectRedisTemplate")
private RedisTemplate redisTemplate;
@Autowired
private CourseConsumeRecordService recordService;
@ApiOperation("记录课程消耗记录")
@PostMapping("/save")
@RequiresRoles(value = {BizConstants.ROLE_USER,BizConstants.ROLE_ENTERPRISE_ADMIN},logical = Logical.OR)
@SysLog("记录课程消耗记录")
public Result<String> save(@RequestBody SaveConsumeRecord model){
if (StrUtil.isBlank(model.getUuid())){
return Result.succeed("ok");
}
//缓存用户观看记录
redisTemplate.opsForValue().set("record_"+UserContext.getUserId()+"_"+model.getCourseId(),model, 5,TimeUnit.MINUTES);
//缓存课程观看记录
......@@ -42,7 +51,13 @@ public class CourseConsumeRecordController {
cacheModel.setWatchTime(model.getLearnDuration());
cacheModel.setVideoTime(model.getVideoDuration());
cacheModel.setUpdateTime(LocalDateTime.now());
if (StrUtil.isNotBlank(model.getEvent()) && "flush".equals(model.getEvent())){
recordService.saveOrUpdateBatch(Lists.newArrayList(cacheModel));
redisTemplate.opsForHash().delete(BizConstants.CACHE_KE_CONSUME_RECORD,model.getUuid());
}else {
redisTemplate.opsForHash().put(BizConstants.CACHE_KE_CONSUME_RECORD,cacheModel.getId(),cacheModel);
}
}else {
CourseConsumeRecordPO po = new CourseConsumeRecordPO();
po.setId(model.getUuid());
......@@ -53,10 +68,15 @@ public class CourseConsumeRecordController {
po.setVideoTime(model.getVideoDuration());
po.setCreateTime(model.getStartTime());
po.setUpdateTime(model.getStartTime());
redisTemplate.opsForHash().put(BizConstants.CACHE_KE_CONSUME_RECORD,po.getId(),po);
if (StrUtil.isNotBlank(model.getEvent()) && "flush".equals(model.getEvent())){
recordService.saveOrUpdateBatch(Lists.newArrayList(po));
}else {
redisTemplate.opsForHash().put(BizConstants.CACHE_KE_CONSUME_RECORD, po.getId(), po);
}
}
return Result.succeed("ok");
}
}
......@@ -85,9 +85,11 @@ public class FrontendProductOrderController {
if (StrUtil.isBlank(model.getOrderNo())){
throw new BusinessException("请求错误,订单号不能为空");
}
if (model.getPayMethod() == PayMethodEnum.WeiXin && model.getSource() == PaySourceEnum.JSAPI){
if (StrUtil.isBlank(model.getOpenId())){
throw new BusinessException("请求错误,openId不能为空");
}
}
if (model.getSource() == null){
throw new BusinessException("请求错误,source不能为空");
}
......
......@@ -33,4 +33,8 @@ public class SaveConsumeRecord {
* 开始观看时间
*/
private LocalDateTime startTime;
/**
* 事件名
*/
private String event;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment