using Competition.Common.Util;
using CompetitionAPI.Util;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace CompetitionAPI.Controllers
{
///
/// 受电点方案
///
[Route("api/[controller]")]
[ApiController]
public class AcceptPowerPlanController : BaseHandlerController
{
Competition.Mysql.BLL.app_accept_power_plan bll = new Competition.Mysql.BLL.app_accept_power_plan();
Competition.Mysql.BLL.app_client_collect bll_client_collect = new Competition.Mysql.BLL.app_client_collect();
private readonly IWebHostEnvironment _env;
public AcceptPowerPlanController(IHttpContextAccessor IHttpContextAccessor, IWebHostEnvironment env, IConfiguration iconfiguration)
{
Configuration = iconfiguration;
_env = env;
context = IHttpContextAccessor.HttpContext!;
CrossDomain();
}
//[Authorize]
///
/// 查询所有信息
///
[Route("All")]
public JsonResult QueryALL()
{
/*
accept_type '受电点类型',
accept_name '受电点名称',
power_count '电源数目',
high_power_factor '高峰负荷时功率因数',
have_self_power '有无自备电源',
power_remark '受电点备注',
power_plan_note '供电方案说明',
price_type '定价策略类型',
power_factor_checktype '功率因数考核方式',
fee_compute_type '基本电费计算方式',
protocol_stand '协议额定值',
*/
var check = new Competition.Mysql.Model.app_accept_power_plan();
check.accept_type = "受电点类型";
check.accept_name = "受电点名称";
check.power_count = "电源数目";
check.high_power_factor = (decimal)1.00;
check.have_self_power = "有无自备电源";
check.power_remark = "受电点备注";
check.power_plan_note = "供电方案说明";
check.price_type = "定价策略类型";
check.power_factor_checktype = "功率因数考核方式";
check.fee_compute_type = "基本电费计算方式";
check.protocol_stand = "协议额定值";
var obj = new
{
accept_type = "受电点类型",
accept_name = "受电点名称",
power_count = "电源数目",
high_power_factor = (decimal)1.00,
have_self_power = "有无自备电源",
power_remark = "受电点备注",
power_plan_note = "供电方案说明",
price_type = "定价策略类型",
power_factor_checktype = "功率因数考核方式",
fee_compute_type = "基本电费计算方式",
protocol_stand = "协议额定值",
};
var json = JsonConvert.SerializeObject(obj);
var list = bll.GetModelList("");
var result = GetResult(true, list);
return result;
}
//[Authorize]
///
/// 查询受电点方案
///
[Route("Query")]
public JsonResult QueryByClient()
{
JsonResult ret;
var client_id = GetValue("client_id");
if (string.IsNullOrEmpty(client_id))
{
ret = GetResult(false, "client_id不能为空");
return ret;
}
var model = bll.GetModelList("client_id='" + client_id + "'").FirstOrDefault();
if (null == model)
{
var result = GetResult(false, "记录不存在");
return result;
}
else
{
var result = GetResult(true, model, "");
return result;
}
}
#region 添加或修改受电点方案
//[Authorize]
[HttpPost]
[Route("AddUpdate")]
public JsonResult AddUpdate()
{
try
{
JsonResult ret;
var client_id = GetValue("client_id");
if (string.IsNullOrEmpty(client_id))
{
ret = GetResult(false, "client_id不能为空");
return ret;
}
var client = bll_client_collect.GetModel(client_id);
if (null == client)
{
ret = GetResult(false, "客户收资材料不能为空:client_id:" + client_id);
return ret;
}
var data = GetValue("data");
if (string.IsNullOrEmpty(data))
{
ret = GetResult(false, "data不能为空");
return ret;
}
var model = new Competition.Mysql.Model.app_accept_power_plan();
try
{
model = JsonConvert.DeserializeObject(data)!;
}
catch (Exception ex)
{
ret = GetResult(false, "data转换错误:" + ex.Message);
return ret;
}
var exist_model = bll.GetModelList("client_id='" + client_id + "'").OrderByDescending(s => s.id).FirstOrDefault();
if (null == exist_model)
{
model.id = Tool.GetId();
model.client_id = client_id;
model.create_time = DateTime.Now;
if (bll.Add(model))
{
return GetResult(true, model, "");
}
else
{
return GetResult(false, "添加失败");
}
}
else
{
model.id = exist_model.id;
model.client_id = client_id;
model.create_time = DateTime.Now;
if (bll.Update(model))
{
return GetResult(true, model, "");
}
else
{
return GetResult(false, "修改失败");
}
}
}
catch (Exception ex)
{
LogHelper.WriteLog(ex.Message + ",行号:" + ex.StackTrace);
return GetResult(false, "发生错误,请联系管理员");
}
}
#endregion
}
}