package com.hollywood.applet.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hollywood.applet.dto.*; import com.hollywood.applet.query.TScriptThemeQuery; import com.hollywood.applet.service.TOrderService; import com.hollywood.applet.service.TScriptService; import com.hollywood.applet.service.TScriptThemeService; import com.hollywood.applet.service.TScriptTypeService; import com.hollywood.applet.utils.LoginInfoUtil; import com.hollywood.common.basic.ApiResult; import com.hollywood.common.basic.PageInfo; import com.hollywood.common.model.TOrder; import com.hollywood.common.model.TScript; import com.hollywood.common.model.TScriptTheme; import com.hollywood.common.model.TScriptType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.bouncycastle.cms.PasswordRecipient; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 剧本管理 前端控制器 *

* * @author xiaochen * @since 2024-02-29 */ @Api(tags = "剧本管理") @RestController @RequestMapping("/tScript") public class TScriptController { private final TScriptService scriptService; @Autowired private TOrderService orderService; @Autowired private LoginInfoUtil loginInfoUtil; @Autowired private TScriptThemeService scriptThemeService; @Autowired private TScriptTypeService tScriptTypeService; @Autowired public TScriptController(TScriptService scriptService) { this.scriptService = scriptService; } @ApiOperation(value = "购买剧本操作") @PostMapping(value = "/pay") public ApiResult pay(@RequestBody ScriptPayDto scriptPayDto) throws Exception { Long userId = loginInfoUtil.getUserId(); return scriptService.pay(scriptPayDto,userId); } @ApiOperation(value = "查看剧本管理详情") @GetMapping(value = "/geTScriptDetailById") public ApiResult geTScriptDetailById(@RequestParam Long id) { TScript script = scriptService.getById(id); TScriptVO scriptVO = new TScriptVO(); BeanUtils.copyProperties(script,scriptVO); TScriptTheme scriptTheme = scriptThemeService.getById(script.getThemeId()); scriptVO.setThemeName(scriptTheme.getThemeName()); TScriptType scriptType = tScriptTypeService.getById(script.getTypeId()); if (scriptType!=null) { scriptVO.setTypeName(scriptType.getTypeName()); } return ApiResult.success(scriptVO); } @ApiOperation(value = "获取剧本题材和类别") @PostMapping(value = "/getoptins") public ApiResult pageList() { List list = scriptThemeService.list(); List list1 = tScriptTypeService.list(); ScriptSearchOption scriptSearchOption = new ScriptSearchOption(); scriptSearchOption.setTScriptThemes(list); scriptSearchOption.setTScriptTypes(list1); return ApiResult.success(scriptSearchOption); } /** * 获取剧本管理列表 */ @ApiOperation(value = "获取剧本管理分页列表") @PostMapping(value = "/pageList") public ApiResult> pageList(@RequestBody TScriptQuery query) { Long userId = loginInfoUtil.getUserId(); List ids = new ArrayList<>(); if (query.getMine()!=null&&query.getMine()==1){ List list = orderService.list(Wrappers.lambdaQuery(TOrder.class).eq(TOrder::getProductType, 1) .eq(TOrder::getUserId, userId) .eq(TOrder::getIsPay, 1)); ids = list.stream() .map(TOrder::getProductId) .collect(Collectors.toList()); if (ids.size()==0){ return ApiResult.success(new PageInfo<>()); } } return ApiResult.success(scriptService.pageList(query,ids)); } }