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

282 lines
16 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.Data;
using System.Web.Http;
using System.Web.Http.Description;
using ESCom = EShang.Common;
using HZQR.Common;
namespace YFBusinessApi.Controllers
{
/// <summary>
/// 商品数据相关接口
/// </summary>
public class CommodityController : BaseController
{
#region ->
/// <summary>
/// 获取商家商品信息
/// </summary>
/// <param name="memberShipId">商家会员内码</param>
/// <param name="ServerpartShopCodes">服务区编码集合</param>
/// <param name="UserDefinedType_Id">自定义类别内码</param>
/// <param name="Commodity_Name">商品名称</param>
/// <param name="Upper_State">上架状态</param>
/// <returns></returns>
[Route("Commodity/GetShopGoodsInfo")]
[AcceptVerbs("GET", "POST")]
[ResponseType(typeof(Models.JsonMsg<List<Models.ShopGoodsInfo>>))]
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<Models.ShopGoodsInfo>.Fail(200, "缺失参数Membership_Id或者ServerpartShopCodes"));
}
DataTable dtShopGoods = new DataTable();
List<Models.ShopGoodsInfo> shopgoodsinfo = new List<Models.ShopGoodsInfo>();
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<List<Models.ShopGoodsInfo>>.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<Models.ShopGoodsInfo>.Fail(999, msg));
}
}
#endregion
#region ->
/// <summary>
/// 获取商品信息详情
/// </summary>
/// <param name="Commodity_ID">商品内码</param>
/// <returns></returns>
[Route("Commodity/GetShopGoodsInfoDetail")]
[AcceptVerbs("GET", "POST")]
[ResponseType(typeof(Models.JsonMsg<Models.ShopGoodsInfo>))]
public IHttpActionResult GetShopGoodsInfoDetail(string Commodity_ID)
{
try
{
if (string.IsNullOrWhiteSpace(Commodity_ID))
{
return Ok(Models.JsonMsg<Models.ShopGoodsInfo>.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<Models.ShopGoodsInfo>.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<Models.ShopGoodsInfo>.Fail(999, msg));
}
}
#endregion
#region ->
/// <summary>
/// 获取商家商品类型
/// </summary>
/// <param name="memberShipId">商家会员内码</param>
/// <param name="ServerpartShopCodes">服务区门店编码集合</param>
/// <param name="Commodity_ID">商品内码</param>
/// <returns></returns>
[Route("Commodity/GetUserDefinedTypeInfo")]
[AcceptVerbs("GET", "POST")]
[ResponseType(typeof(Models.JsonMsg<List<Models.UserDefinedTypeInfo>>))]
public IHttpActionResult GetUserDefinedTypeInfo(int memberShipId, string ServerpartShopCodes = "", string Commodity_ID = "")
{
try
{
if (memberShipId == 0)
{
return Ok(Models.JsonMsg<Models.UserDefinedTypeInfo>.Fail(200, "缺失参数Membership_Id"));
}
List<Models.UserDefinedTypeInfo> userdefinedtypeinfo = new List<Models.UserDefinedTypeInfo>();
//判断门店是否为空
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<List<Models.UserDefinedTypeInfo>>.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<Models.UserDefinedTypeInfo>.Fail(999, msg));
}
}
#endregion
#region ->
/// <summary>
/// 更新商品信息
/// </summary>
/// <returns></returns>
[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
}
}