using OASystem.API.OAMethodLib;
using OASystem.Domain.Dtos.CRM;
using OASystem.Infrastructure.Repositories.CRM;
namespace OASystem.API.Controllers
{
///
/// 市场客户资料
///
[Route("api/[controller]/[action]")]
public class MarketCustomerResourcesController : ControllerBase
{
private readonly NewClientDataRepository _clientDataRepository;
///
/// 初始化
///
public MarketCustomerResourcesController(NewClientDataRepository clientDataRepository)
{
this._clientDataRepository = clientDataRepository;
}
///
/// 客户资料数据
/// 基础数据
///
///
[HttpPost]
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
public async Task MarketCustomerInit(MarketCustomerInitDto dto)
{
JsonView jw = new JsonView();
try
{
Result resultData = await _clientDataRepository._Init(dto);
if (resultData.Code == 0)
{
jw = JsonView(true, "查询成功!", resultData.Data);
}
else
{
jw = JsonView(false, resultData.Msg);
}
}
catch (Exception)
{
jw = JsonView(false, "程序错误!");
}
return Ok(jw);
}
///
/// 查询客户资料数据
///
///
[HttpPost]
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
public async Task QueryNewClientData(NewClientDataQueryDto dto)
{
#region 参数验证
if (dto.OperationUserId < 0)
return Ok(JsonView(false, "请传入有效的OperationUserId参数!"));
if (dto.PortType < 0)
return Ok(JsonView(false, "请传入有效的PortType参数!"));
#endregion
JsonView jw = new JsonView();
try
{
Result resultData = await _clientDataRepository.QueryNewClientData(dto);
if (resultData.Code == 0)
{
#region 客户资料表操作记录
await GeneralMethod.NewClientOperationRecord(dto.PortType, OperationEnum.NoOperation, dto.OperationUserId, 0, "");
#endregion
jw = JsonView(true, "查询成功!", resultData.Data);
}
else
{
jw = JsonView(false, resultData.Msg);
}
}
catch (Exception)
{
jw = JsonView(false, "程序错误!");
}
return Ok(jw);
}
///
/// 客户资料数据
/// Details
///
///
[HttpPost]
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
public async Task PostNewClientDataDetails(NewClientDataDetailsDto dto)
{
#region 参数验证
if (dto.Id < 0)
return Ok(JsonView(false, "请传入有效的Id参数!"));
if (dto.UserId < 0)
return Ok(JsonView(false, "请传入有效的UserId参数!"));
if (dto.PortType < 0)
return Ok(JsonView(false, "请传入有效的PortType参数!"));
#endregion
JsonView jw = new JsonView();
try
{
Result resultData = await _clientDataRepository._Details(dto.PortType, dto.Id);
if (resultData.Code == 0)
{
#region 客户资料表操作记录
await GeneralMethod.NewClientOperationRecord(dto.PortType, OperationEnum.Details, dto.UserId, dto.Id, "");
#endregion
jw = JsonView(true, "查询成功!", resultData.Data);
}
else
{
jw = JsonView(false, resultData.Msg);
}
}
catch (Exception)
{
jw = JsonView(false, "程序错误!");
}
return Ok(jw);
}
///
/// 客户资料操作(Status:1.新增,2.修改)
///
///
///
[HttpPost]
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
public async Task NewClientOp(NewClientOpDto dto)
{
#region 参数验证
if (dto.CreateUserId < 0)
{
return Ok(JsonView(false, "请传入有效的CreateUserId参数!"));
}
if (dto.PortType < 0)
{
return Ok(JsonView(false, "请传入有效的PortType参数!"));
}
#endregion
try
{
Domain.Result result = await _clientDataRepository.NewClientOp(dto);
if (result.Code != 0)
{
return Ok(JsonView(false, result.Msg));
}
#region 客户资料操作记录
OperationEnum operationEnum = OperationEnum.NoOperation;
if (dto.Status == 1)
{
operationEnum = OperationEnum.Add;
dto.Id = Convert.ToInt32(result.Data);
}
else if (dto.Status == 2) operationEnum = OperationEnum.Edit;
await GeneralMethod.NewClientOperationRecord(dto.PortType, operationEnum, dto.CreateUserId, dto.Id, "");
#endregion
return Ok(JsonView(true, result.Msg + "Id:" + dto.Id));
}
catch (Exception ex)
{
return Ok(JsonView(false, "程序错误!Msg:" + ex.Message));
}
}
///
/// 新客户资料操作(删除)
///
///
///
[HttpPost]
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
public async Task NewClientDel(DelBaseDto dto)
{
#region 参数验证
if (dto.Id < 0)
{
return Ok(JsonView(false, "请传入有效的Id参数!"));
}
if (dto.DeleteUserId < 0)
{
return Ok(JsonView(false, "请传入有效的DeleteUserId参数!"));
}
if (dto.PortType < 0)
{
return Ok(JsonView(false, "请传入有效的PortType参数!"));
}
#endregion
var res = await _clientDataRepository.DelNewClientData(dto);
if (res.Code != 0)
{
return Ok(JsonView(false, "删除失败"));
}
#region 客户资料表操作记录
await GeneralMethod.NewClientOperationRecord(dto.PortType, OperationEnum.Del, dto.DeleteUserId, dto.Id, "");
#endregion
return Ok(JsonView(true, "删除成功!"));
}
///
/// 获取下拉列表数据和单条数据信息
///
///
///
[HttpPost]
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
public async Task QuerySelectAndSingleData(QuerySingleDto dto)
{
JsonView jw = new JsonView();
var result = await _clientDataRepository.QuerySelectAndSingleData(dto);
if (result.Code == 0)
{
#region 客户资料表操作记录
await GeneralMethod.NewClientOperationRecord(dto.PortType, OperationEnum.Details, dto.UserId, dto.Id, "");
#endregion
jw = JsonView(true, result.Msg, result.Data);
}
else
{
jw = JsonView(false, result.Msg);
}
return Ok(jw);
}
///
/// 获取现有负责人
///
///
[HttpPost]
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
public async Task QueryUserSelect()
{
try
{
Result resTable = _clientDataRepository.QueryUserSelect();
return Ok(JsonView(true, resTable.Msg, resTable.Data));
}
catch (Exception)
{
return Ok(JsonView(false, "程序错误!"));
}
}
///
/// 获取出团数据
///
///
[HttpPost]
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
public async Task QueryNumberGroups()
{
var result = await _clientDataRepository.QueryNumberGroups();
if (result.Code != 0)
{
return Ok(JsonView(false, result.Msg));
}
return Ok(JsonView(true, result.Msg, result.Data));
}
///
/// 新客户资料操作
/// 批量分配
///
///
///
[HttpPost]
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
public async Task PostBatchAssignment(BatchAssignmentDto dto)
{
#region 参数验证
if (dto.UserId < 0)
{
return Ok(JsonView(false, "请传入有效的UserId参数!"));
}
if (dto.PortType < 0)
{
return Ok(JsonView(false, "请传入有效的PortType参数!"));
}
#endregion
var res = await _clientDataRepository._BatchAssignment(dto);
if (res.Code != 0)
{
return Ok(JsonView(false, res.Msg));
}
return Ok(JsonView(true, "操作成功!"));
}
}
}