cshenfu
2024-05-21 09d8c671d5e6e6045677bfb5218a5fb78c26aa0f
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
'use strict';
module.exports = {
    /**
     * 改变收藏状态
     * @url client/course/pub/change_star 前端调用的url参数地址
     * data 请求参数
     * @param {String} params1  参数1
     */
    main: async (event) => {
        let { data = {}, userInfo, util, filterResponse, originalParam } = event;
        let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
        let { uid, course_id, status } = data;
        let res = { code: 0, msg: "" };
        // 业务逻辑开始-----------------------------------------------------------
        if (uid == null) return {
            code: -1,
            msg: "用户未登录"
        }
        const transaction = await vk.baseDao.startTransaction();
 
        try {
            // 收藏
            if (status == 0) {
                await vk.baseDao.add({
                    dbName: "user-star",
                    dataJson: {
                        user_id: uid,
                        course_id: course_id
                    }
                });
                await transaction.commit();
                return {
                    code: 0,
                    msg: "收藏成功",
                    noStatus: 1
                }
            }
            // 取消收藏
            if (status == 1) {
                await vk.baseDao.del({
                    dbName: "user-star",
                    whereJson: {
                        user_id: uid,
                        course_id: course_id
                    }
                });
                await transaction.commit();
                return {
                    code: 0,
                    msg: "已取消收藏",
                    noStatus: 0
                }
            }
 
        } catch (err) {
            // 事务回滚
            await transaction.rollback();
            console.error(`transaction error`, err)
            return {
                code: -1,
                msg: "收藏失败",
                err: {
                    message: err.message,
                    stack: err.stack
                }
            }
        }
 
        // 业务逻辑结束-----------------------------------------------------------
        return res;
    }
}