2025-03-28 09:49:56 +08:00

510 lines
26 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Web.Http;
using System.Web.Http.Description;
using ESCG = CommercialApi.GeneralMethod;
using ESCM = CommercialApi.Model;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using HZQR.Common;
using System.Diagnostics;
namespace CommercialApi.Controllers
{
/// <summary>
/// 服务区门店商家数量相关接口
/// </summary>
public class BaseInfoController : BaseController
{
#region
/// <summary>
/// 获取服务区门店商家数量列表(查询条件对象)
/// </summary>
/// <param name="searchModel">查询条件对象</param>
/// <returns></returns>
[Route("BaseInfo/GetShopCountList")]
[AcceptVerbs("POST")]
[ResponseType(typeof(Models.JsonMsg<Models.JsonList<ESCM.SHOPCOUNTModel>>))]
public IHttpActionResult GetShopCountList(ESCM.SearchModel<ESCM.SHOPCOUNTModel> searchModel)
{
string Parameter = "入参信息:查询方式【" + searchModel.QueryType + "】查询页码【" + searchModel.PageIndex + "】," +
"每页显示数量【" + searchModel.PageSize + "】,排序条件【" + searchModel.SortStr + "】";
try
{
int TotalCount = 0;
//获取服务区门店商家数量列表
List<ESCM.SHOPCOUNTModel> SHOPCOUNTList = ESCG.SHOPCOUNTHelper.GetSHOPCOUNTList(
transaction, ref TotalCount, searchModel);
//转化json形式
Models.JsonList<ESCM.SHOPCOUNTModel> jsonList = Models.JsonList<ESCM.SHOPCOUNTModel>.Success(
SHOPCOUNTList, TotalCount, searchModel.PageIndex, searchModel.PageSize);
return Ok(Models.JsonMsg<Models.JsonList<ESCM.SHOPCOUNTModel>>.Success(jsonList, 100, "查询成功"));
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_GetShopCountList");
return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message));
}
}
#endregion
#region
/// <summary>
/// 获取服务区门店商家数量列表(根据省份、服务区、区域、统计日期查询)
/// </summary>
/// <param name="pushProvinceCode">推送省份</param>
/// <param name="Statistics_Date">统计日期</param>
/// <param name="Serverpart_ID">服务区内码</param>
/// <param name="SPRegionType_ID">区域内码</param>
/// <returns></returns>
[Route("BaseInfo/GetShopCountList")]
[AcceptVerbs("GET")]
[ResponseType(typeof(Models.JsonMsg<Models.JsonList<ESCM.SHOPCOUNTModel>>))]
public IHttpActionResult GetShopCountList(string pushProvinceCode, string Statistics_Date,
int? Serverpart_ID = null, int? SPRegionType_ID = null)
{
string Parameter = "入参信息:推送省份【" + pushProvinceCode + "】,统计日期【" + Statistics_Date + "】," +
"服务区内码【" + Serverpart_ID + "】,区域内码【" + SPRegionType_ID + "】";
try
{
string TransmitUrl = "TransmitUrl";
if (CommonHelper.IsFromNewServer(pushProvinceCode, ref TransmitUrl))
{
string result = ESCG.HttpUtil.HttpUrlGet(TransmitUrl +
"BaseInfo/GetShopCountList?pushProvinceCode=" + pushProvinceCode + "&Statistics_Date=" +
Statistics_Date + "&Serverpart_ID=" + Serverpart_ID + "&SPRegionType_ID=" + SPRegionType_ID);
try
{
JObject keyValuePairs = JObject.Parse(result);
if (keyValuePairs["Result_Code"].ToString() == "100")
{
//获取服务区门店信息
Models.JsonList<ESCM.SHOPCOUNTModel> jsonList = JsonConvert.DeserializeObject<
Models.JsonList<ESCM.SHOPCOUNTModel>>(keyValuePairs["Result_Data"].ToString());
return Ok(Models.JsonMsg<Models.JsonList<ESCM.SHOPCOUNTModel>>.Success(jsonList, 100, "查询成功"));
}
else
{
return Ok(ESCG.Common.ReturnJson(keyValuePairs["Result_Code"].TryParseToInt(),
keyValuePairs["Result_Desc"].ToString()));
}
}
catch (Exception _Exception)
{
LogUtil.WriteLog(null, "查询失败!" + Parameter + ",失败原因:" + _Exception.Message,
DateTime.Now.ToString("yyyyMMdd") + "_GetShopCountList");
return Ok(ESCG.Common.ReturnJson(999, "查询失败" + _Exception.Message));
}
}
else
{
int TotalCount = 0;
//获取服务区门店商家数量列表
List<ESCM.SHOPCOUNTModel> SHOPCOUNTList = ESCG.SHOPCOUNTHelper.GetSHOPCOUNTList(transaction,
ref TotalCount, pushProvinceCode, Statistics_Date, Serverpart_ID.TryParseToString(), SPRegionType_ID);
//转化json形式
Models.JsonList<ESCM.SHOPCOUNTModel> jsonList = Models.JsonList<ESCM.SHOPCOUNTModel>.Success(
SHOPCOUNTList, TotalCount, 1, TotalCount);
return Ok(Models.JsonMsg<Models.JsonList<ESCM.SHOPCOUNTModel>>.Success(jsonList, 100, "查询成功"));
}
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_GetShopCountList");
return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message));
}
}
#endregion
#region
/// <summary>
/// 记录服务区门店商家数量
/// </summary>
/// <param name="Serverpart_ID">服务区内码</param>
/// <param name="Statistics_Date">统计日期</param>
/// <returns></returns>
[Route("BaseInfo/RecordShopCount")]
[AcceptVerbs("GET", "POST")]
[ResponseType(typeof(string))]
public IHttpActionResult RecordShopCount(int Serverpart_ID, string Statistics_Date)
{
string Parameter = "入参信息:服务区内码【" + Serverpart_ID + "】,统计日期【" + Statistics_Date + "】";
try
{
//获取服务区门店商家数量明细
if (ESCG.SHOPCOUNTHelper.RecordShopCount(transaction, Serverpart_ID, Statistics_Date))
{
return Ok(ESCG.Common.ReturnJson(100, "记录成功"));
}
else
{
return Ok(ESCG.Common.ReturnJson(200, "记录失败"));
}
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_RecordShopCount");
return Ok(ESCG.Common.ReturnJson(999, "记录失败" + ex.Message));
}
}
#endregion
#region
/// <summary>
/// 记录全省服务区门店商家数量
/// </summary>
/// <param name="ProvinceID">推送省份</param>
/// <param name="Statistics_Date">统计日期</param>
/// <returns></returns>
[Route("BaseInfo/RecordProvinceShopCount")]
[AcceptVerbs("GET", "POST")]
[ResponseType(typeof(string))]
public IHttpActionResult RecordProvinceShopCount(int ProvinceID, string Statistics_Date)
{
string Parameter = "入参信息:省份编码【" + ProvinceID + "】,统计日期【" + Statistics_Date + "】";
try
{
//获取服务区门店商家数量明细
ESCG.SHOPCOUNTHelper.RecordProvinceShopCount(transaction, ProvinceID, Statistics_Date);
return Ok(ESCG.Common.ReturnJson(100, "记录成功"));
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_RecordProvinceShopCount");
return Ok(ESCG.Common.ReturnJson(999, "记录失败" + ex.Message));
}
}
#endregion
#region
/// <summary>
/// 获取经营业态列表(查询条件对象)
/// </summary>
/// <param name="searchModel">查询条件对象</param>
/// <returns></returns>
[Route("BaseInfo/GetBusinessTradeList")]
[AcceptVerbs("POST")]
[ResponseType(typeof(Models.JsonMsg<Models.JsonList<ESCM.BUSINESSTRADEModel>>))]
public IHttpActionResult GetBusinessTradeList(ESCM.SearchModel<ESCM.BUSINESSTRADEModel> searchModel)
{
string Parameter = "入参信息:查询方式【" + searchModel.QueryType + "】查询页码【" + searchModel.PageIndex + "】," +
"每页显示数量【" + searchModel.PageSize + "】,排序条件【" + searchModel.SortStr + "】";
try
{
int TotalCount = 0;
//获取自定义统计归口表列表
List<ESCM.BUSINESSTRADEModel> AUTOSTATISTICSList = ESCG.BUSINESSTRADEHelper.GetBUSINESSTRADEList(
transaction, ref TotalCount, searchModel);
//转化json形式
Models.JsonList<ESCM.BUSINESSTRADEModel> jsonList = Models.JsonList<ESCM.BUSINESSTRADEModel>.Success(
AUTOSTATISTICSList, TotalCount, searchModel.PageIndex, searchModel.PageSize);
return Ok(Models.JsonMsg<Models.JsonList<ESCM.BUSINESSTRADEModel>>.Success(jsonList, 100, "查询成功"));
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_GetBusinessTradeList");
return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message));
}
}
#endregion
#region
/// <summary>
/// 获取经营业态列表(根据经营品牌子父级内码或者名称查询)
/// </summary>
/// <param name="pushProvinceCode">省份编码</param>
/// <param name="BusinessTradeId">经营品牌内码</param>
/// <param name="BusinessTradeName">经营品牌名称</param>
/// <param name="BusinessTradePId">经营品牌父级内码</param>
/// <param name="BusinessTradePName">经营品牌父级名称</param>
/// <returns></returns>
[Route("BaseInfo/GetBusinessTradeList")]
[AcceptVerbs("GET")]
[ResponseType(typeof(Models.JsonMsg<Models.JsonList<ESCM.BUSINESSTRADEModel>>))]
public IHttpActionResult GetBusinessTradeList(string pushProvinceCode, int? BusinessTradeId = null,
string BusinessTradeName = "", int? BusinessTradePId = null, string BusinessTradePName = "")
{
string Parameter = "入参信息:经营品牌内码【" + BusinessTradeId + "】,经营品牌名称【" + BusinessTradeName + "】," +
"经营品牌父级内码【" + BusinessTradePId + "】,经营品牌父级名称【" + BusinessTradePName + "】";
try
{
int TotalCount = 0;
//获取自定义统计归口表列表
List<ESCM.BUSINESSTRADEModel> AUTOSTATISTICSList = ESCG.BUSINESSTRADEHelper.GetBUSINESSTRADEList(transaction,
ref TotalCount, pushProvinceCode, BusinessTradeId, BusinessTradeName, BusinessTradePId, BusinessTradePName);
//转化json形式
Models.JsonList<ESCM.BUSINESSTRADEModel> jsonList = Models.JsonList<ESCM.BUSINESSTRADEModel>.Success(
AUTOSTATISTICSList, TotalCount, 1, TotalCount);
return Ok(Models.JsonMsg<Models.JsonList<ESCM.BUSINESSTRADEModel>>.Success(jsonList, 100, "查询成功"));
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_GetBusinessTradeList");
return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message));
}
}
#endregion
#region ->
/// <summary>
/// 服务区经营品牌分析
/// </summary>
/// <param name="ProvinceCode">省份编码</param>
/// <param name="Serverpart_ID">服务区内码</param>
/// <param name="Statistics_Date">统计日期</param>
/// <param name="BusinessTradeIds">经营业态内码,多个用,隔开</param>
/// <param name="BrandType">品牌类型,多个用,隔开</param>
/// <param name="ShowAllShop">是否显示所有门店</param>
/// <returns></returns>
[Route("BaseInfo/GetBrandAnalysis")]
[AcceptVerbs("GET")]
[ResponseType(typeof(Models.JsonMsg<ESCM.BrandAnalysisModel>))]
public IHttpActionResult GetBrandAnalysis(string ProvinceCode, string Serverpart_ID,
string Statistics_Date = "", string BusinessTradeIds = "", string BrandType = "", bool ShowAllShop = true)
{
string Parameter = "入参信息:省份编码【" + ProvinceCode + "】,服务区内码【" + Serverpart_ID + "】," +
"统计日期【" + Statistics_Date + "】,经营业态内码【" + BusinessTradeIds + "】," +
"品牌类型【" + BrandType + "】,是否显示所有门店【" + ShowAllShop + "】";
try
{
//获取自定义统计归口表列表
ESCM.BrandAnalysisModel brandAnalysisModel = ESCG.BrandAnalysisHelper.GetBrandAnalysis(transaction,
ProvinceCode, Serverpart_ID, Statistics_Date, BusinessTradeIds, BrandType, ShowAllShop);
if (brandAnalysisModel == null)
{
return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!"));
}
return Ok(Models.JsonMsg<ESCM.BrandAnalysisModel>.Success(brandAnalysisModel, 100, "查询成功"));
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_GetBrandAnalysis");
return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message));
}
}
#endregion
#region ->
/// <summary>
/// 获取片区列表
/// </summary>
/// <param name="Province_Code">省份编码</param>
/// <returns></returns>
[Route("BaseInfo/GetSPRegionList")]
[AcceptVerbs("GET")]
[ResponseType(typeof(Models.JsonMsg<Models.JsonList<ESCM.CommonModel>>))]
public IHttpActionResult GetSPRegionList(string Province_Code)
{
string Parameter = "入参信息:省份编码【" + Province_Code + "】";
try
{
//获取自定义统计归口表列表
List<ESCM.CommonModel> SPRegionList = ESCG.ServerpartHelper.GetSPRegionList(transaction, Province_Code);
Models.JsonList<ESCM.CommonModel> jsonList = Models.JsonList<ESCM.CommonModel>.Success(
SPRegionList, SPRegionList.Count, 1, SPRegionList.Count);
return Ok(Models.JsonMsg<Models.JsonList<ESCM.CommonModel>>.Success(jsonList, 100, "查询成功"));
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_GetSPRegionList");
return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message));
}
}
#endregion
#region ->
/// <summary>
/// 获取服务区列表
/// </summary>
/// <param name="Province_Code">省份编码</param>
/// <param name="SPRegionType_ID">片区内码</param>
/// <param name="Serverpart_Name">服务区名称,模糊查询</param>
/// <param name="longitude">经度</param>
/// <param name="latitude">纬度</param>
/// <param name="Serverpart_ID">当前服务区内码</param>
/// <param name="BusinessTrade">经营业态</param>
/// <param name="BusinessBrand">经营品牌</param>
/// <param name="MerchantName">经营商户</param>
/// <param name="ShopName">门店名称</param>
/// <param name="ProjectName">项目名称</param>
/// <param name="WarningType">预警类型</param>
/// <param name="ServerpartType">服务区类型</param>
/// <param name="BusinessType">经营模式</param>
/// <param name="ShowWeather">是否显示天气</param>
/// <param name="ShowService">显示设施服务信息</param>
/// <param name="HasScanOrder">是否有点餐门店</param>
/// <param name="HasDriverHome">是否有司机之家</param>
/// <param name="SearchKeyName">模糊查询字段</param>
/// <param name="SearchKeyValue">模糊查询内容</param>
/// <param name="PageIndex">查询页码数</param>
/// <param name="PageSize">每页显示数量</param>
/// <param name="excludeProperty">是否排除资产图片</param>
/// <returns></returns>
[Route("BaseInfo/GetServerpartList")]
[AcceptVerbs("GET")]
[ResponseType(typeof(Models.JsonMsg<Models.JsonList<ESCM.ServerpartModel>>))]
public IHttpActionResult GetServerpartList(string Province_Code, string SPRegionType_ID = "", string Serverpart_Name = "",
string longitude = "", string latitude = "", int? Serverpart_ID = null, string SearchKeyName = "", string SearchKeyValue = "",
string BusinessTrade = "", string BusinessBrand = "", string MerchantName = "", string ShopName = "", string ProjectName = "",
string ServerpartType = "", string BusinessType = "", string WarningType = "", bool ShowWeather = false, bool ShowService = false,
bool? HasScanOrder = null, bool? HasDriverHome = null, bool excludeProperty = true, int? PageIndex = null, int? PageSize = null)
{
try
{
List<ESCM.CommonModel> SearchResultList = new List<ESCM.CommonModel>();
//获取服务区列表
List<ESCM.ServerpartModel> ServerpartList = ESCG.ServerpartHelper.GetServerpartList(transaction,
Province_Code, SPRegionType_ID, Serverpart_Name, longitude, latitude, Serverpart_ID, BusinessTrade,
BusinessBrand, MerchantName, ShopName, ProjectName, WarningType, ServerpartType, BusinessType, "",
SearchKeyName, SearchKeyValue, ShowWeather, ShowService, HasScanOrder, HasDriverHome,
ref SearchResultList, PageIndex, PageSize, excludeProperty);
Models.JsonList<ESCM.ServerpartModel, List<ESCM.CommonModel>> jsonList = Models.JsonList<
ESCM.ServerpartModel, List<ESCM.CommonModel>>.Success(
ServerpartList, SearchResultList, ServerpartList.Count, 1, ServerpartList.Count);
return Ok(Models.JsonMsg<Models.JsonList<ESCM.ServerpartModel,
List<ESCM.CommonModel>>>.Success(jsonList, 100, "查询成功"));
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
string Parameter = "入参信息:省份编码【" + Province_Code + "】,片区内码【" + SPRegionType_ID + "】," +
"服务区名称【" + Serverpart_Name + "】,经度【" + longitude + "】,纬度【" + latitude + "】," +
"当前服务区内码【" + Serverpart_ID + "】,模糊查询字段【" + SearchKeyName + "】,内容【" + SearchKeyValue + "】," +
"经营业态【" + BusinessTrade + "】,经营品牌【" + BusinessBrand + "】,门店名称【" + ShopName + "】," +
"经营商户【" + MerchantName + "】,项目名称【" + ProjectName + "】,预警类型【" + WarningType + "】," +
"服务区类型【" + ServerpartType + "】,经营模式【" + BusinessType + "】,显示天气【" + ShowWeather + "】";
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_GetServerpartList");
return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message));
}
}
#endregion
#region ->
/// <summary>
/// 获取服务区基本信息
/// </summary>
/// <param name="ServerpartId">服务区内码</param>
/// <param name="longitude">经度</param>
/// <param name="latitude">纬度</param>
/// <param name="excludeProperty">是否排除资产图片</param>
/// <returns></returns>
[Route("BaseInfo/GetServerpartInfo")]
[AcceptVerbs("GET")]
[ResponseType(typeof(Models.JsonMsg<ESCM.ServerpartModel>))]
public IHttpActionResult GetServerpartInfo(int ServerpartId, string longitude = "",
string latitude = "", bool excludeProperty = true)
{
string Parameter = "入参信息:服务区内码【" + ServerpartId + "】," +
"经度【" + longitude + "】,纬度【" + latitude + "】";
try
{
//获取自定义统计归口表列表
ESCM.ServerpartModel serverpartModel = ESCG.ServerpartHelper.GetServerpartInfo(
transaction, ServerpartId, longitude, latitude, excludeProperty);
if (serverpartModel == null)
{
return Ok(ESCG.Common.ReturnJson(101, "查询失败,无数据返回!"));
}
return Ok(Models.JsonMsg<ESCM.ServerpartModel>.Success(serverpartModel, 100, "查询成功"));
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_GetServerpartInfo");
return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message));
}
}
#endregion
#region ->
/// <summary>
/// 绑定区域服务区基本信息树
/// </summary>
/// <param name="ProvinceCode">省份编码 340000</param>
/// <param name="SPRegionTypeId">区域内码</param>
/// <param name="ServerpartIds">服务区内码集合</param>
/// <returns></returns>
[Route("BaseInfo/GetServerInfoTree")]
[AcceptVerbs("GET")]
[ResponseType(typeof(Models.JsonMsg<Models.JsonList<ESCM.NestingModel<ESCM.SERVERPARTINFOModel>>>))]
public IHttpActionResult GetServerInfoTree(int? ProvinceCode, string SPRegionTypeId = "", string ServerpartIds = "")
{
ProvinceCode = GetIntHeader("ProvinceCode", ProvinceCode);
string ServerpartCodes = GetStringHeader("ServerpartCodes", "");
string Parameter = "入参信息:省份编码【" + ProvinceCode + "】,区域内码【" + SPRegionTypeId + "】," +
"服务区内码集合【" + ServerpartIds + "】,服务区编码集合【" + ServerpartCodes + "】";
try
{
if (ProvinceCode == null)
{
return Ok(ESCG.Common.ReturnJson(200, "查询失败,请传入正确的省份编码!"));
}
//服务区基础信息
var serverpartList = ESCG.ServerpartHelper.GetServerInfoTree(transaction, ProvinceCode,
SPRegionTypeId, ServerpartIds, ServerpartCodes);
//转化json形式
var jsonList = Models.JsonList<ESCM.NestingModel<ESCM.SERVERPARTINFOModel>>.Success(serverpartList);
return Ok(Models.JsonMsg<Models.JsonList<ESCM.NestingModel<ESCM.SERVERPARTINFOModel>>>.Success(jsonList, 100, "查询成功"));
}
catch (Exception ex)
{
//事务回滚
transaction.Rollback();
LogUtil.WriteLog(null, "查询失败!失败原因:" + ex.Message + "\r\n" + Parameter,
DateTime.Now.ToString("yyyyMMdd") + "_GetServerpartTree");
return Ok(ESCG.Common.ReturnJson(999, "查询失败" + ex.Message));
}
}
#endregion
}
}