using System;
using System.Collections.Generic;
using System.Data;
using System.Web.Http;
using System.Web.Http.Description;
using ESCom = EShang.Common;
using HZQR.Common;
namespace YFBusinessApi.Controllers
{
///
/// 商品数据相关接口
///
public class CommodityController : BaseController
{
#region 方法 -> 获取商家商品信息
///
/// 获取商家商品信息
///
/// 商家会员内码
/// 服务区编码集合
/// 自定义类别内码
/// 商品名称
/// 上架状态
///
[Route("Commodity/GetShopGoodsInfo")]
[AcceptVerbs("GET", "POST")]
[ResponseType(typeof(Models.JsonMsg>))]
public IHttpActionResult GetShopGoodsInfo(int memberShipId, string ServerpartShopCodes = "",
string UserDefinedType_Id = "", string Commodity_Name = "", string Upper_State = "")
{
try
{
if (memberShipId == 0 && string.IsNullOrEmpty(ServerpartShopCodes))
{
return Ok(Models.JsonMsg.Fail(200, "缺失参数Membership_Id或者ServerpartShopCodes"));
}
DataTable dtShopGoods = new DataTable();
List shopgoodsinfo = new List();
if (string.IsNullOrWhiteSpace(ServerpartShopCodes))
{
//若没有传入门店权限,则根据商户会员内码获取商户门店权限
string provinceCodes = "";
ESCom.BusinessMan.GetUserServerPartShop(memberShipId, transaction, ref provinceCodes, ref ServerpartShopCodes);
}
if (!string.IsNullOrWhiteSpace(ServerpartShopCodes))
{
//根据商户门店权限获取商品信息
dtShopGoods = ESCom.Commodity.GetShopGoodsInfoByID(transaction, ServerpartShopCodes,
"", UserDefinedType_Id, Commodity_Name, Upper_State);
foreach (DataRow dr in dtShopGoods.Select("", "UPPER_STATE desc,USERDEFINEDTYPE_INDEX,COMMODITY_NAME"))
{
Models.ShopGoodsInfo _shopgoodsinfo = new Models.ShopGoodsInfo();
_shopgoodsinfo.Commodity_BarCode = dr["Commodity_BarCode"].TryParseToString();//商品条码
_shopgoodsinfo.Commodity_Id = dr["Commodity_Id"].ToString();//商品内码
_shopgoodsinfo.UserDefinedType_ID = dr["UserDefinedType_ID"].TryParseToInt();//自定义商品内码
_shopgoodsinfo.UserDefinedType_Name = dr["UserDefinedType_Name"].TryParseToString();//商品类别名称
_shopgoodsinfo.UserDefinedType_Index = dr["UserDefinedType_Index"].TryParseToInt();//商品类别索引
_shopgoodsinfo.Commodity_Name = dr["Commodity_Name"].TryParseToString();//商品名称
_shopgoodsinfo.Commodity_Unit = dr["Commodity_Unit"].TryParseToString();//商品单位
_shopgoodsinfo.Commodity_Rule = dr["Commodity_Rule"].TryParseToString();//商品规格
_shopgoodsinfo.Commodity_RetailPrice = dr["Commodity_RetailPrice"].TryParseToDecimal();//零售价格
_shopgoodsinfo.Commodity_PurChasePrice = dr["Commodity_PurChasePrice"].TryParseToDecimal();//进货价格
_shopgoodsinfo.Commodity_MemberPrice = dr["Commodity_MemberPrice"].TryParseToDecimal();//会员价格
_shopgoodsinfo.Commodity_State = dr["Commodity_State"].TryParseToInt();//商品状态
_shopgoodsinfo.Commodity_Stock = dr["Commodity_Stock"].TryParseToInt();//限售数量
_shopgoodsinfo.Commodity_SaleStock = dr["Commodity_SaleStock"].TryParseToInt();//已售件数
_shopgoodsinfo.Commodity_SurplusStock = dr["Commodity_SurplusStock"].TryParseToInt();//剩余件数
_shopgoodsinfo.Islimited = dr["ISLIMITED"].TryParseToInt();//商品是否按量限售
_shopgoodsinfo.Upper_Date = dr["Upper_Date"].TryParseToString();//上架时间
_shopgoodsinfo.Off_Date = dr["Off_Date"].TryParseToString();//下架时间
_shopgoodsinfo.Upper_State = dr["Upper_State"].TryParseToInt();//上架状态
_shopgoodsinfo.Image_Paths = dr["Image_Paths"].TryParseToString();//图片路径集合
_shopgoodsinfo.ShopShortName = dr["ShopShortName"].TryParseToString();//门店内码集合
_shopgoodsinfo.Serverpartshop_Ids = dr["Serverpartshop_Ids"].TryParseToString();//门店内码集合
_shopgoodsinfo.Image_Content = dr["Image_Content"].TryParseToString();//图片内容
_shopgoodsinfo.Table_Id = dr["Table_Id"].TryParseToInt();//表内码
_shopgoodsinfo.Image_Path = dr["Image_Path"].TryParseToString();//图片路径
shopgoodsinfo.Add(_shopgoodsinfo);
}
}
return Ok(Models.JsonMsg>.Success(shopgoodsinfo, 100, "查询成功!"));
}
catch (Exception ex)
{
transaction.Rollback();
SuperMap.RealEstate.Utility.ErrorLogHelper.Write(ex, "接口【GetShopGoodsInfo】", "Commodity/GetShopGoodsInfo");
string msg = "验证失败" + ex.Message;
return Ok(Models.JsonMsg.Fail(999, msg));
}
}
#endregion
#region 方法 -> 获取商品信息详情
///
/// 获取商品信息详情
///
/// 商品内码
///
[Route("Commodity/GetShopGoodsInfoDetail")]
[AcceptVerbs("GET", "POST")]
[ResponseType(typeof(Models.JsonMsg))]
public IHttpActionResult GetShopGoodsInfoDetail(string Commodity_ID)
{
try
{
if (string.IsNullOrWhiteSpace(Commodity_ID))
{
return Ok(Models.JsonMsg.Fail(200, "缺失参数Commodity_ID"));
}
DataTable dtShopGoods = dtShopGoods = ESCom.Commodity.GetShopGoodsInfoByID(transaction, "", Commodity_ID);
Models.ShopGoodsInfo _shopgoodsinfo = new Models.ShopGoodsInfo();
if (dtShopGoods.Rows.Count > 0)
{
DataRow dr = dtShopGoods.Rows[0];
_shopgoodsinfo.Commodity_BarCode = dr["Commodity_BarCode"].ToString();//商品条码
_shopgoodsinfo.Commodity_Id = dr["Commodity_Id"].ToString();//商品内码
_shopgoodsinfo.UserDefinedType_ID = dr["UserDefinedType_ID"].TryParseToInt();//自定义商品内码
_shopgoodsinfo.UserDefinedType_Name = dr["UserDefinedType_Name"].ToString();//商品类别名称
_shopgoodsinfo.UserDefinedType_Index = dr["UserDefinedType_Index"].TryParseToInt();//商品类别索引
_shopgoodsinfo.Commodity_Name = dr["Commodity_Name"].ToString();//商品名称
_shopgoodsinfo.Commodity_Unit = dr["Commodity_Unit"].ToString();//商品单位
_shopgoodsinfo.Commodity_Rule = dr["Commodity_Rule"].ToString();//商品规格
_shopgoodsinfo.Commodity_RetailPrice = dr["Commodity_RetailPrice"].TryParseToDecimal();//零售价格
_shopgoodsinfo.Commodity_PurChasePrice = dr["Commodity_PurChasePrice"].TryParseToDecimal();//进货价格
_shopgoodsinfo.Commodity_MemberPrice = dr["Commodity_MemberPrice"].TryParseToDecimal();//会员价格
_shopgoodsinfo.Commodity_State = dr["Commodity_State"].TryParseToInt();//商品状态
_shopgoodsinfo.Commodity_Stock = dr["Commodity_Stock"].TryParseToInt();//商品库存
_shopgoodsinfo.Upper_Date = dr["Upper_Date"].ToString();//上架时间
_shopgoodsinfo.Off_Date = dr["Off_Date"].ToString();//下架时间
_shopgoodsinfo.Upper_State = dr["Upper_State"].TryParseToInt();//上架状态
_shopgoodsinfo.Image_Paths = dr["Image_Paths"].ToString();//图片路径集合
_shopgoodsinfo.Serverpartshop_Ids = dr["Serverpartshop_Ids"].ToString();//门店内码
_shopgoodsinfo.Image_Content = dr["Image_Content"].ToString();//图片内容
_shopgoodsinfo.Table_Id = dr["Table_Id"].TryParseToInt();//表内码
_shopgoodsinfo.Image_Path = dr["Image_Path"].ToString();//图片路径
_shopgoodsinfo.Commodity_Stock = dr["Commodity_Stock"].TryParseToInt();//限售数量
_shopgoodsinfo.Commodity_SaleStock = dr["Commodity_SaleStock"].TryParseToInt();//已售件数
_shopgoodsinfo.Commodity_SurplusStock = dr["Commodity_SurplusStock"].TryParseToInt();//剩余件数
_shopgoodsinfo.Islimited = dr["ISLIMITED"].TryParseToInt();//商品是否按量限售
}
return Ok(Models.JsonMsg.Success(_shopgoodsinfo, 100, "查询成功!"));
}
catch (Exception ex)
{
transaction.Rollback();
SuperMap.RealEstate.Utility.ErrorLogHelper.Write(ex,
"接口【GetShopGoodsInfoDetail】", "Commodity/GetShopGoodsInfoDetail");
string msg = "验证失败" + ex.Message;
return Ok(Models.JsonMsg.Fail(999, msg));
}
}
#endregion
#region 方法 -> 获取商家商品类型
///
/// 获取商家商品类型
///
/// 商家会员内码
/// 服务区门店编码集合
/// 商品内码
///
[Route("Commodity/GetUserDefinedTypeInfo")]
[AcceptVerbs("GET", "POST")]
[ResponseType(typeof(Models.JsonMsg>))]
public IHttpActionResult GetUserDefinedTypeInfo(int memberShipId, string ServerpartShopCodes = "", string Commodity_ID = "")
{
try
{
if (memberShipId == 0)
{
return Ok(Models.JsonMsg.Fail(200, "缺失参数Membership_Id"));
}
List userdefinedtypeinfo = new List();
//判断门店是否为空
if (string.IsNullOrWhiteSpace(ServerpartShopCodes))
{
//若没有传入门店权限,则根据商户会员内码获取商户门店权限
string provinceCodes = "";
ESCom.BusinessMan.GetUserServerPartShop(memberShipId, transaction, ref provinceCodes, ref ServerpartShopCodes);
}
if (!string.IsNullOrWhiteSpace(ServerpartShopCodes))
{
DataTable dtShopGoods = new DataTable();
//根据商户门店权限获取商品信息
dtShopGoods = ESCom.Commodity.GetUserDefinedTypeInfoByID(transaction, ServerpartShopCodes, Commodity_ID);
foreach (DataRow dr in dtShopGoods.Select("", "USERDEFINEDTYPE_INDEX,USERDEFINEDTYPE_NAME"))
{
Models.UserDefinedTypeInfo _userdefinedtypeinfo = new Models.UserDefinedTypeInfo();
_userdefinedtypeinfo.USERDEFINEDTYPE_ID = dr["USERDEFINEDTYPE_ID"].TryParseToInt();
_userdefinedtypeinfo.USERDEFINEDTYPE_INDEX = dr["USERDEFINEDTYPE_INDEX"].TryParseToInt();
_userdefinedtypeinfo.USERDEFINEDTYPE_DESC = dr["USERDEFINEDTYPE_DESC"].ToString();
_userdefinedtypeinfo.USERDEFINEDTYPE_ICO = dr["USERDEFINEDTYPE_ICO"].ToString();
_userdefinedtypeinfo.USERDEFINEDTYPE_NAME = dr["USERDEFINEDTYPE_NAME"].ToString();
_userdefinedtypeinfo.SCANCODE_ORDER = dr["SCANCODE_ORDER"].TryParseToInt();
_userdefinedtypeinfo.USERDEFINEDTYPE_PID = dr["USERDEFINEDTYPE_PID"].TryParseToInt();
userdefinedtypeinfo.Add(_userdefinedtypeinfo);
}
}
return Ok(Models.JsonMsg>.Success(userdefinedtypeinfo, 100, "查询成功!"));
}
catch (Exception ex)
{
transaction.Rollback();
SuperMap.RealEstate.Utility.ErrorLogHelper.Write(ex,
"接口【GetUserDefinedTypeInfo】", "Commodity/GetUserDefinedTypeInfo");
string msg = "验证失败" + ex.Message;
return Ok(Models.JsonMsg.Fail(999, msg));
}
}
#endregion
#region 方法 -> 更新商品信息
///
/// 更新商品信息
///
///
[Route("Commodity/UpdateShopGoodsInfo")]
[AcceptVerbs("GET", "POST")]
public IHttpActionResult UpdateShopGoodsInfo()
{
string commodity_id = Pub.Request("commodity_id").TryParseToString();//商品内码集合
string upper_state = Pub.Request("upper_state").TryParseToString();//上架状态
string usedefinedtype_id = Pub.Request("usedefinedtype_id").TryParseToString();//商品类型
string commodity_name = Pub.Request("commodity_name").TryParseToString();//商品名称
string commodity_retailprice = Pub.Request("commodity_retailprice").TryParseToString();//零售价格
string commodity_purchaseprice = Pub.Request("commodity_purchaseprice").TryParseToString();//进货价格
string commodity_memberprice = Pub.Request("commodity_memberprice").TryParseToString();//会员价格
string islimited = Pub.Request("islimited").TryParseToString();//商品是否限量销售
string commodity_stock = Pub.Request("commodity_stock").TryParseToString();//每日限量
string upper_date = Pub.Request("upper_date").TryParseToString();//上架时间
string off_date = Pub.Request("off_date").TryParseToString();//下架时间
string operate_staff = Pub.Request("operate_staff").TryParseToString();//操作人员
string img_Arr = Pub.Request("img_Arr").TryParseToString();//图片64位码
try
{
if (string.IsNullOrEmpty(commodity_id) || string.IsNullOrEmpty(upper_state))
{
return Ok(Helper.Common.ReturnJson(200, "缺失参数commodity_id或upper_state!"));
}
if (ESCom.Commodity.UpdateShopGoodsInfoByMobile(transaction, commodity_id, usedefinedtype_id, commodity_name,
commodity_retailprice, commodity_purchaseprice, commodity_memberprice, commodity_stock,
upper_date, off_date, upper_state, operate_staff, img_Arr, islimited))
{
return Ok(Helper.Common.ReturnJson(100, "更新成功!"));
}
else
{
return Ok(Helper.Common.ReturnJson(200, "更新失败!"));
}
}
catch (Exception ex)
{
transaction.Rollback();
SuperMap.RealEstate.Utility.ErrorLogHelper.Write(ex, "接口【UpdateShopGoodsInfo】", "Commodity/UpdateShopGoodsInfo");
string msg = "更新失败" + ex.Message;
return Ok(Helper.Common.ReturnJson(999, msg));
}
}
#endregion
}
}