import fetch from '@/utils/fetch'
import { generateTaskId } from '@/utils/common'

/**
 * 获取公共标签
 * @param {number} uionId 用户id
 */
export function getCommonTags(uionId) {
  return fetch.post('/pc/GetCommonTags', { id: uionId, name: 'pc' })
}

/**
 * 获取公共话术
 * @param {number} uionId 用户id
 */
export function getCommonTerms(uionId) {
  return fetch.post('/pc/GetCommonTerms', { id: uionId, name: 'pc' })
}

/**
 * 定时任务
 * @param {object} message 参数太多以{}的方式传参
 */
export function addTaskTimeInfo(message = {}) {
  const { ...content } = message
  content.TaskId = generateTaskId()
  return fetch.post('/pc/AddTaskTimeInfo', content)
}

/**
 * 查询定时任务的结果
 * @param {number} cid 登录下发下来的supplierid
 * @param {number} accountid 登录的时候已经下发unionid
 * @param {number} page 当前第几页 从1开始
 * @param {number} rows 每页多少条
 * @param {number} tasktype 非必传 1PC群发消息,2PC发朋友圈,3删除好友,4删除群聊,5群发群消息,6按标签群发,7发朋友圈,8批量加好友
 * @param {number} state 非必传 状态1开启中 0已完成
 */
export function getTaskInfoList(cid, accountid, page, rows, tasktype = null, state = null) {
  let xhr = {
    cid: cid,
    accountid: accountid,
    page: page,
    rows: rows
  }
  if (tasktype) {
    xhr.tasktype = tasktype
  }
  if (state) {
    xhr.state = state
  }
  return fetch.post('/pc/GetTaskInfoList', xhr)
}

/**
 * 定时任务详情统计
 * @param {Number} id 定时主任务id
 */
export function getTaskDetail(id) {
  return fetch.post('/pc/TaskDetail', {
    id: id
  })
}

/**
 * 定时任务状态更改接口
 * @param {Number} id 定时主任务id
 * @param {Number} state  状态   -1暂停     1开启中     0已完成       2取消
 */
export function updateTaskState(id, state) {
  return fetch.post('/pc/TaskStateUpdate', {
    id: id,
    state: state
  })
}

/**
 * 查询号码
 * @param {string} wechatid 微信id
 * @param {string} phonenumber 电话号码
 * @param {string} begin_time 开始时间
 * @param {string} end_time 结束时间
 * @param {number} pageNo 页码
 * @param {number} pageSize 每页数据量
 */
export function getPhoneNumberList(wechatid, phonenumber, begin_time, end_time, pageNo, pageSize) {
  return fetch.post('/pc/GetPhoneNumberList', {
    wechatid: wechatid,
    phonenumber: phonenumber,
    begin_time: begin_time,
    end_time: end_time,
    pageNo: pageNo,
    pageSize: pageSize
  })
}

/**
 * 获取自动任务的配置文件
 * @param {String} cid 登录下发下来的supplierid
 * @param {String} wechatId 微信id
 * @param {Number} auto_type 任务类型 2001自动回复 2002自动拉群
 */
export function autoTaskDetailList(cid, wechatId, auto_type) {
  return fetch.post('/pc/AutoTaskDetailList', { cid: cid, wechatId: wechatId, auto_type: auto_type })
}

/**
 * 更新自动任务的配置文件
 * @param {Number} cid 登录下发下来的supplierid
 * @param {String} wechatId 微信id
 * @param {Number} auto_type  1001:自动抢红包 1002:自动通过好友请求 1003:自动通过群邀请链接请求
 * @param {Number} state  0是开启, 其他表示关闭
 * @param {String} remarks 备用字段  传起始时间  如18:6   代表晚上18点到凌晨6点
 */
export function autoTaskUpdate(cid, wechatId, auto_type, state, remarks) {
  return fetch.post('/pc/AutoTaskUpdate', {
    cid: cid,
    wechatId: wechatId,
    auto_type: auto_type,
    state: state,
    remarks: remarks
  })
}

/**
 * 查询关键词自动回复
 * @param {Number} cid 登录下发下来的supplierid
 * @param {String} wechatid 微信id
 * @param {String} keyWord 关键词
 * @param {Number} keyType 0精准完全匹配  1模糊包含匹配
 * @param {Number} resourceType 消息类型 1文字 2图片 3语音 4视频
 * @param {Number} page 必传
 * @param {Number} rows 必传
 */
export function getAutoReplyList(cid, wechatid, keyWord, keyType, resourceType, page, rows) {
  return fetch.post('/user/keyWords/pageList', {
    cid: cid,
    wechatid: wechatid,
    keyWord: keyWord,
    keyType: keyType,
    resourceType: resourceType,
    page: page,
    rows: rows
  })
}

/**
 * 添加关键词回复
 * @param {Number} cid 登录下发下来的supplierid
 * @param {String} wechatid 微信id
 * @param {String} keyWord 关键词
 * @param {Number} keyType 关键词类型 0精准完全匹配  1模糊包含匹配
 * @param {Number} resourceType 消息类型 1文字 2图片 3语音 4视频
 * @param {String} returnString 回复内容
 */
export function addReply(cid, wechatid, keyWord, keyType, resourceType, returnString) {
  return fetch.post('/user/keyWords/add', {
    cid: cid,
    wechatid: wechatid,
    keyWord: keyWord,
    keyType: keyType,
    resourceType: resourceType,
    returnString: returnString
  })
}

/**
 * 修改关键词回复
 * @param {Number} id 回复的id
 * @param {Number} cid 登录下发下来的supplierid
 * @param {String} wechatid 微信id
 * @param {String} keyWord 关键词
 * @param {Number} keyType 关键词类型 0精准完全匹配  1模糊包含匹配
 * @param {Number} resourceType 消息类型 1文字 2图片 3语音 4视频
 * @param {String} returnString 回复内容
 */
export function updateReply(id, cid, wechatid, keyWord, keyType, resourceType, returnString) {
  return fetch.post('/user/keyWords/update', {
    id: id,
    cid: cid,
    wechatid: wechatid,
    keyWord: keyWord,
    keyType: keyType,
    resourceType: resourceType,
    returnString: returnString
  })
}

/**
 * 删除关键词回复
 * @param {String} ids 单条传id,如“12”；多条传id字符串，如“12,34”
 */
export function deleteReply(ids) {
  return fetch.post('/user/keyWords/deletes', {
    ids: ids
  })
}

/**
 * 素材库列表查询
 * @param {Number} cid 用户的supplierid
 * @param {Number} pageNo 页
 * @param {Number} pageSize size
 * @param {Number} type 消息类型 null:所有，1：群发，2：朋友圈
 */
export function resourcesList(cid, pageNo, pageSize, type = null) {
  return fetch.post('/user/resources/pageList', {
    cid: cid,
    type: type,
    page: pageNo,
    rows: pageSize
  })
}

/**
 * 删除素材
 * @param {String} ids 单条传id,如“12”；多条传id字符串，如“12,34”
 */
export function deleteResources(ids) {
  return fetch.post('/user/resources/deletes', {
    ids: ids
  })
}

/**
 * 添加素材
 * @param {String} cid 用户的supplierid
 * @param {String} content 素材的内容
 * @param {Number} type 1:群发 2 朋友圈
 * @param {String} remarks 备注
 */
export function addResources(cid, content, type, remarks = '') {
  return fetch.post('/user/resources/add', {
    cid: cid,
    content: content,
    type: type,
    remarks: remarks
  })
}

/**
 * 更新素材
 * @param {Number} id 素材id
 * @param {Number} cid 用户的supplierid
 * @param {Number} type 1:群发 2 朋友圈
 * @param {String} content 素材的内容
 * @param {String} remarks 备注
 */
export function updateResources(id, cid, type, content, remarks = '') {
  return fetch.post('/user/resources/update', {
    id: id,
    cid: cid,
    type: type,
    content: content,
    remarks: remarks
  })
}

/**
 * 查询聊天记录
 * @param {Number} cid 登录下发下来的supplierid
 * @param {BigInt} WxId 微信id
 * @param {BigInt} FriendWxid 好友id
 * @param {String} Content 关键词
 * @param {Number} Content 页
 * @param {Number} Content 行
 * @param {String} start 起始时间
 * @param {String} end 结束时间
 */
export function queryChatHistory(cid, WxId, FriendWxid, Content, page, rows, start, end) {
  return fetch.post('/user/message/pageList', {
    cid: cid,
    WxId: WxId,
    FriendWxid: FriendWxid,
    Content: Content,
    page: page,
    rows: rows,
    start: start,
    end: end
  })
}

/**
 * 查询消息标识
 * @param {Number} cid 登录下发下来的supplierid
 * @param {String} wechatid 微信id
 * @param {String} friendwechatid 会话id
 * @param {String} msgserverid 消息id
 * @param {String} type 类型
 */
export function queryMessageTag(cid, wechatid, friendwechatid, msgserverid, type = '1') {
  return fetch.post('/user/messageTag/query', {
    cid: cid,
    wechatid: wechatid,
    friendwechatid: friendwechatid,
    msgserverid: msgserverid,
    type: type
  })
}

/**
 * 添加消息标识
 * @param {Number} cid 登录下发下来的supplierid
 * @param {String} wechatid 微信id
 * @param {String} friendwechatid 会话id
 * @param {String} msgserverid 消息id
 * @param {String} type 类型
 */
export function addMessageTag(cid, wechatid, friendwechatid, msgserverid, type = '1') {
  return fetch.post('/user/messageTag/add', {
    cid: cid,
    wechatid: wechatid,
    friendwechatid: friendwechatid,
    msgserverid: msgserverid,
    type: type
  })
}
