//package com.storlead.sales.controller.ai;
//
//import cn.hutool.core.util.StrUtil;
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.storlead.ai.dto.AiMailPromptQueryDTO;
//import com.storlead.ai.dto.AiPromptQueryDTO;
//import com.storlead.ai.entity.AiPromptTemplateEntity;
//import com.storlead.ai.service.AiPromptTemplateService;
//import com.storlead.framework.common.constant.CommonConstant;
//import com.storlead.framework.common.result.Result;
//import com.storlead.sales.pojo.entity.customer.CustomerEntity;
//import com.storlead.sales.service.customer.CustomerService;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import org.springframework.util.CollectionUtils;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.annotation.Resource;
//import java.util.List;
//import java.util.Objects;
//
///**
// * @program: sp-sales-platform
// * @description:
// * @author: chenkq
// * @create: 2025-04-08 14:25
// */
//@RestController
//@RequestMapping("/ai/prompt")
//@Api(tags = "销售: AI提示词配置")
//public class AiPromptTemplateController {
//
//    @Resource
//    private AiPromptTemplateService promptTemplateService;
//
//    @Resource
//    private CustomerService customerService;
//
//    @ApiOperation("保存提示词模板")
//    @PostMapping("save")
//    public Result save(@RequestBody AiPromptTemplateEntity entity) {
//        if(StrUtil.isBlank(entity.getTemplateCode())) {
//            return Result.error("参数错误，模板编码不能为空!");
//        }
//        LambdaQueryWrapper<AiPromptTemplateEntity> queryWrapper = new LambdaQueryWrapper<>();
//        queryWrapper.eq(AiPromptTemplateEntity::getTemplateCode,entity.getTemplateCode());
//        queryWrapper.eq(AiPromptTemplateEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
//        if (Objects.isNull(entity.getId())) {
//            Integer exit = promptTemplateService.count(queryWrapper);
//            if (exit > 0) {
//                return Result.error("模板编码'"+ entity.getTemplateCode() +"'已存在!");
//            }
//        } else {
//            AiPromptTemplateEntity oldTemplate = promptTemplateService.getOne(queryWrapper);
//            if (Objects.nonNull(oldTemplate)) {
//                if (!oldTemplate.getId().equals(entity.getId())) {
//                    return Result.error("模板编码'"+ entity.getTemplateCode() +"'已存在,无法修改!");
//                }
//            }
//        }
//        promptTemplateService.saveOrUpdate(entity);
//        return Result.ok();
//    }
//
//    @ApiOperation("分页查询")
//    @PostMapping("listPage")
//    public Result listPage(@RequestBody AiPromptQueryDTO param) {
//        IPage<AiPromptTemplateEntity> page = new Page<>(param.getPageIndex(),param.getPageSize());
//        LambdaQueryWrapper<AiPromptTemplateEntity> queryWrapper = new LambdaQueryWrapper();
//        queryWrapper.eq(AiPromptTemplateEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
//        IPage<AiPromptTemplateEntity> pageList = promptTemplateService.page(page, queryWrapper);
//        return Result.result(pageList);
//    }
//
//    @ApiOperation("查询")
//    @PostMapping("list")
//    public Result list(@RequestBody AiPromptQueryDTO param) {
//
//        LambdaQueryWrapper<AiPromptTemplateEntity> queryWrapper = new LambdaQueryWrapper();
//        queryWrapper.eq(AiPromptTemplateEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
//        if (!CollectionUtils.isEmpty(param.getTemplateCodes())) {
//            queryWrapper.in(AiPromptTemplateEntity::getTemplateCode,param.getTemplateCodes());
//        }
//        List<AiPromptTemplateEntity> pageList = promptTemplateService.list(queryWrapper);
//        return Result.result(pageList);
//    }
//
//    @ApiOperation("删除提示词配置")
//    @PostMapping("delete")
//    public Result delete(Long id) {
//        if(Objects.isNull(id)) {
//            return Result.error("参数错误");
//        }
//        promptTemplateService.lgDelete(id);
//        return Result.ok();
//    }
//
//    @ApiOperation("获取提示词")
//    @PostMapping("getMailAiPrompt")
//    public Result getMailAiPrompt(@RequestBody AiMailPromptQueryDTO param) {
//        if(StrUtil.isBlank(param.getTemplateCode())) {
//            return Result.error("参数错误");
//        }
//        if (StrUtil.isBlank(param.getTemplateCode())) {
//            return Result.error("参数错误");
//        }
//        LambdaQueryWrapper<AiPromptTemplateEntity> queryWrapper = new LambdaQueryWrapper();
//        queryWrapper.eq(AiPromptTemplateEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
//        queryWrapper.eq(AiPromptTemplateEntity::getTemplateCode,param.getTemplateCode());
//        queryWrapper.last(" limit 1");
//        AiPromptTemplateEntity entity = promptTemplateService.getOne(queryWrapper);
//        if(Objects.isNull(entity)) {
//            return Result.error("参数错误，未找到对应的AI提示词,请联系管理员进行配置!");
//        }
//        String promptContent = entity.getPromptContent();
//        if (Objects.nonNull(param.getCustomerId())) {
//            CustomerEntity customer = customerService.getById(param.getCustomerId());
//            if (Objects.nonNull(customer)) {
//                promptContent = promptContent.replace("$continent$", customer.getContinent());
//                promptContent = promptContent.replace("$country$", customer.getCountry());
//            }
//        }
//        if (StrUtil.isNotBlank(param.getSubject())) {
//            promptContent = promptContent.replace("$subject$",param.getSubject());
//        }
//        if (StrUtil.isNotBlank(param.getContent())) {
//            promptContent = promptContent.replace("$content$",param.getContent());
//        }
//        if (StrUtil.isNotBlank(param.getCustomerName())) {
//            promptContent = promptContent.replace("$customerName$",param.getCustomerName());
//            promptContent = promptContent.replace("$liaisonName$",param.getLiaisonName());
//        }
//        return Result.result(promptContent);
//    }
//
//    @ApiOperation("获取提示词")
//    @PostMapping("getAiPrompt")
//    public Result getAiPrompt(@RequestBody AiPromptQueryDTO param) {
//        if(StrUtil.isBlank(param.getTemplateCode())) {
//            return Result.error("参数错误");
//        }
//        LambdaQueryWrapper<AiPromptTemplateEntity> queryWrapper = new LambdaQueryWrapper();
//        queryWrapper.eq(AiPromptTemplateEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
//        queryWrapper.last(" limit 1");
//        AiPromptTemplateEntity entity = promptTemplateService.getOne(queryWrapper);
//        if(Objects.isNull(entity)) {
//            return Result.error("参数错误，未找到对应的AI提示词,请联系管理员进行配置!");
//        }
//        return Result.result(entity);
//    }
//}
