im.js 3.1 KB
'use strict';

const _ = require('lodash');
const crypto = global.yoho.crypto;
const config = global.yoho.config;

const ImService = new global.yoho.ApiBase(config.domains.imCs, {
    name: 'im',
    cache: global.yoho.cache,
    useCache: false
});

const encryptedUid = uid => crypto.encryption(null, uid + '');

/**
 *  新建留言信息
 *  path: {host}/leavemessage/saveLeavemessage
 *
 *  @param {int} uid 用户id
 *  @param {int} conversationId 会话id
 *  @param {str} content 留言内容
 */
exports.saveMessage = (uid, conversationId, content) => {
    let params = {
        uid,
        conversationId,
        content,
        encryptedUid: encryptedUid(uid)
    };


    return ImService.post('/api/leavemessage/saveLeavemessage', params);
};



/**
 *  查询用户聊天记录
 *  @param {int} uid 用户uid
 *  @param [int] pageSize 每次加载的聊天记录
 *  @param [int] startTime
 *  @param [int] endTime
 */
exports.fetchImHistory = (uid, endTime, pageSize, startTime) => {
    pageSize = pageSize || 10;

    let params = {
        uid,
        pageSize,
        encryptedUid: encryptedUid(uid)
    };

    _.forEach({startTime, endTime}, (key, val) => {
        val && (params[key] = val);
    });

    return ImService.get('/api/conversationMessage/pageList', params)
        .then(result => {
            return result;
        }, () => {
            return {
                code: 500,
                data: {
                    records: [], totalCount: 0
                }
            };
        });
};

/**
 *  获取用户订单, 默认最近10笔
 *  @param {int} uid 用户uid
 *  @param {init} createTimeBegin 开始时间
 */
exports.fetchOrderList = (uid, createTimeBegin) => {
    let params = {
        uid,
        encryptedUid: encryptedUid(uid),
        imgSize: '90x120',
    };

    _.forEach({createTimeBegin}, (key, val) => {
        val && (params[key] = val);
    });

    return ImService.get('/api/order/queryLastTenOrder', params);
};



/**
 *
新建评价信息
### url
```
{host}/evalute/saveEvalute
```
### 请求参数说明
| 名称             | 类型     | 是否必须 | 描述              |
| -------------- | ------ | ---- | --------------- |
| conversationId | long   | Y    | 会话id            |
| uid            | int    | Y    | 用户ID            |
|encryptedUid    | String |Y     |加密的用户标识 |
| promoter       | int    | Y    | 评价发起者 1 用户 2 客服 |
| stars          | int    | Y    | 评分星级            |
| reasonIds      | string | N    | 固定原因Id用冒号隔开     |
| reasonMsgs     | string | N    | 固定原因用分号隔开       |
| reasonMsg      | string | N    | 其他原因            |

 */
exports.saveEvalute = (uid, conversationId, promoter, stars) => {
    let params = {
        conversationId,
        uid,
        encryptedUid: encryptedUid(uid),
        promoter,
        stars
    };

    return ImService.post('/api/evalute/saveEvalute', params);
};


/**
 *  获取全球购的订单
 */

exports.queryGlobalOrder = uid => {
    let params = {
        uid
    };

    return ImService.get('/api/order/queryGlobalOrder', params);
};