|  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 
|---|
|  |  |  | import com.ruoyi.common.annotation.Log; | 
|---|
|  |  |  | import com.ruoyi.common.basic.PageInfo; | 
|---|
|  |  |  | import com.ruoyi.common.constant.Constants; | 
|---|
|  |  |  | import com.ruoyi.common.core.domain.R; | 
|---|
|  |  |  | import com.ruoyi.common.core.redis.RedisCache; | 
|---|
|  |  |  | import com.ruoyi.common.enums.BusinessType; | 
|---|
|  |  |  | import com.ruoyi.common.utils.SecurityUtils; | 
|---|
|  |  |  | import com.ruoyi.framework.web.service.TokenService; | 
|---|
|  |  |  | import com.ruoyi.system.model.TSysEducationalInfo; | 
|---|
|  |  |  | import com.ruoyi.system.model.TSysLive; | 
|---|
|  |  |  | import com.ruoyi.system.model.TSysProductIntroduction; | 
|---|
|  |  |  | import com.ruoyi.system.query.TSysLiveQuery; | 
|---|
|  |  |  | import com.ruoyi.system.service.TSysLiveService; | 
|---|
|  |  |  | import com.ruoyi.system.vo.TSysLiveVO; | 
|---|
|  |  |  | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.time.LocalDateTime; | 
|---|
|  |  |  | import java.util.HashSet; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Set; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * <p> | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final TSysLiveService sysLiveService; | 
|---|
|  |  |  | private final TokenService tokenService; | 
|---|
|  |  |  | private final RedisCache redisCache; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | public TSysLiveController(TSysLiveService sysLiveService, TokenService tokenService) { | 
|---|
|  |  |  | public TSysLiveController(TSysLiveService sysLiveService, TokenService tokenService, RedisCache redisCache) { | 
|---|
|  |  |  | this.sysLiveService = sysLiveService; | 
|---|
|  |  |  | this.tokenService = tokenService; | 
|---|
|  |  |  | this.redisCache = redisCache; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiOperation(value = "获取直播管理分页列表") | 
|---|
|  |  |  | @PostMapping(value = "/pageList") | 
|---|
|  |  |  | public R<PageInfo<TSysLiveVO>> pageList(@RequestBody TSysLiveQuery query) { | 
|---|
|  |  |  | Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); | 
|---|
|  |  |  | Long userId = tokenService.getLoginUser().getUserId(); | 
|---|
|  |  |  | if(roleType == 5){ | 
|---|
|  |  |  | query.setRoleType(roleType); | 
|---|
|  |  |  | query.setUserId(userId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(sysLiveService.pageList(query)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @PostMapping(value = "/list") | 
|---|
|  |  |  | public R<List<TSysLive>> list() { | 
|---|
|  |  |  | return R.ok(sysLiveService.list(Wrappers.lambdaQuery(TSysLive.class).orderByDesc(TSysLive::getCreateTime))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取直播管理管理列表 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation(value = "获取直播管理列表-banner使用") | 
|---|
|  |  |  | @PostMapping(value = "/listBanner") | 
|---|
|  |  |  | public R<List<TSysLive>> listBanner() { | 
|---|
|  |  |  | return R.ok(sysLiveService.list(Wrappers.lambdaQuery(TSysLive.class) | 
|---|
|  |  |  | .orderByDesc(TSysLive::getCreateTime))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 计算结束时间 | 
|---|
|  |  |  | dto.setEndTime(dto.getStartTime().plusMinutes(dto.getExpectedDuration())); | 
|---|
|  |  |  | dto.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); | 
|---|
|  |  |  | return R.ok(sysLiveService.save(dto)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | // 计算结束时间 | 
|---|
|  |  |  | dto.setEndTime(dto.getStartTime().plusMinutes(dto.getExpectedDuration())); | 
|---|
|  |  |  | dto.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); | 
|---|
|  |  |  | return R.ok(sysLiveService.updateById(dto)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiOperation(value = "查看直播管理详情") | 
|---|
|  |  |  | @GetMapping(value = "/getDetailById") | 
|---|
|  |  |  | public R<TSysLive> getDetailById(@RequestParam String id) { | 
|---|
|  |  |  | return R.ok(sysLiveService.getById(id)); | 
|---|
|  |  |  | TSysLive sysLive = sysLiveService.getById(id); | 
|---|
|  |  |  | // 查询次数自增 使用数据库原子更新操作 | 
|---|
|  |  |  | sysLiveService.update( | 
|---|
|  |  |  | Wrappers.<TSysLive>lambdaUpdate() | 
|---|
|  |  |  | .setSql("click_count = click_count + 1") | 
|---|
|  |  |  | .eq(TSysLive::getId, id) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | // 如果是诊所 | 
|---|
|  |  |  | Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); | 
|---|
|  |  |  | if(roleType == 5){ | 
|---|
|  |  |  | Long userId = tokenService.getLoginUser().getUserId(); | 
|---|
|  |  |  | Set<Long> clickCount = new HashSet<>(); | 
|---|
|  |  |  | clickCount.add(userId); | 
|---|
|  |  |  | redisCache.setCacheSet(Constants.SYS_LIVE_CLICK_COUNT+id,clickCount); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(sysLive); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|