package com.fs.app.controller;

import com.alibaba.fastjson.JSON;
import com.fs.app.params.SendSopParam;
import com.fs.app.params.SopLogsEditParam;
import com.fs.common.core.domain.R;
import com.fs.common.core.redis.RedisCache;
import com.fs.fastGpt.param.SendHookAIParam;
import com.fs.fastGpt.service.IFastGptChatSessionService;
import com.fs.qw.param.QwLoginParam;
import com.fs.qw.param.SopMsgParam;
import com.fs.qw.result.QwExternalContactByQwResult;
import com.fs.sop.domain.QwSopLogs;
import com.fs.sop.params.GetQwSopLogsByJsApiParam;
import com.fs.sop.params.SendSopParamDetailsC;
import com.fs.sop.service.IQwSopLogsService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;


@RestController
@RequestMapping("/apis/app/qwSop")
public class ApisQwSopController {

    @Autowired
    RedisCache redisCache;
    @Autowired
    IFastGptChatSessionService fastGptChatSessionService;
    @Autowired
    private IQwSopLogsService qwSopLogsService;
    /**
     * 更新AI发送状态
     */
    @PostMapping("/updateQwSopLogs")
    public R updateCourseSopLogs(@RequestBody SopLogsEditParam param){

        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            QwSopLogs qwSopLogs=new QwSopLogs();
            qwSopLogs.setId(param.getId());
            qwSopLogs.setReceivingStatus(param.getReceivingStatus());
            qwSopLogs.setSendStatus(param.getSendStatus());
            qwSopLogs.setRealSendTime(sdf.format(new Date()));
            qwSopLogs.setRemark(param.getRemark());
            qwSopLogsService.updateQwSopLogsSendType(qwSopLogs);
                return  R.ok();
        }catch (Exception e){
                return R.error("更新失败");
            }

    }

    //主动获取发送信息
    @PostMapping("/getQwSopLogsByJsApi")
    public R getQwSopLogsByJsApi(@RequestBody GetQwSopLogsByJsApiParam param) {

        SendSopParamDetailsC qwSopLogsByJsApi = qwSopLogsService.getQwSopLogsByJsApi(param);

        return R.ok().put("data",qwSopLogsByJsApi);
    }

    //获取销售的某个联系人
    @GetMapping("/getExternalContactByAppKey/{appKey}")
    public R getExternalContactByAppKey(@PathVariable("appKey") String appKey) {

        QwExternalContactByQwResult result=qwSopLogsService.getExternalContactByAppKey(appKey);

        return R.ok().put("data",result);
    }

    //清除不是当前员工的 外部联系以及营期
    @PostMapping("/deleteQwSopLogsByJsApi")
    public R deleteQwSopLogsByJsApi(@RequestBody GetQwSopLogsByJsApiParam param) {

        return qwSopLogsService.deleteQwSopLogsByJsApi(param);

    }

    @GetMapping("/getQwSopLogs")
    public R getQwSopLogs(SopMsgParam param) throws Exception {
        //获取记录
        PageHelper.startPage(param.getPageNum(), param.getPageSize());
        List<QwSopLogs> list = qwSopLogsService.selectQwSopLogsListVO(param);
        PageInfo<QwSopLogs> listPageInfo=new PageInfo<>(list);
        return R.ok().put("data",listPageInfo);
    }

}
