luodangjia
2024-12-10 ee7ce5d1cbf80bee0a15c1e5bc5eaa30858d812b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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;
 
/**
 * <p>
 * 剧本管理 前端控制器
 * </p>
 *
 * @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<TScriptVO> 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<ScriptSearchOption> pageList() {
        List<TScriptTheme> list = scriptThemeService.list();
        List<TScriptType> list1 = tScriptTypeService.list();
        ScriptSearchOption scriptSearchOption = new ScriptSearchOption();
        scriptSearchOption.setTScriptThemes(list);
        scriptSearchOption.setTScriptTypes(list1);
        return ApiResult.success(scriptSearchOption);
 
    }
 
 
    /**
     * 获取剧本管理列表
     */
    @ApiOperation(value = "获取剧本管理分页列表")
    @PostMapping(value = "/pageList")
    public ApiResult<PageInfo<TScriptVO>> pageList(@RequestBody TScriptQuery query) {
        Long userId = loginInfoUtil.getUserId();
        List<Long> ids = new ArrayList<>();
        if (query.getMine()!=null&&query.getMine()==1){
            List<TOrder> 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));
    }
 
 
 
 
 
 
}