using System;
using System.Collections.Generic;
using System.Data;
using SuperMap.RealEstate.ServiceModel;
using Business = SuperMap.RealEstate.Coop.Merchant.Business;
using HCC = HZQR.Common.Common;
using HZQR.Common;
namespace EShang.Common.GeneralMethod
{
///
/// 商品管理相关方法
/// 2025/3/14 13:41:45自动生成
///
public class COMMODITYHelper
{
#region 获取商品管理列表
///
/// 获取商品管理列表
///
/// 事务管理器
/// 查询结果总数
/// 查询条件对象
public static List GetCOMMODITYList(Transaction transaction,
ref int TotalCount, Model.SearchModel searchModel)
{
List COMMODITYList = new List();
string WhereSQL = "", RowFilterSQL = "";
if (searchModel.SearchParameter != null)
{
WhereSQL = OperationDataHelper.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "",
"COMMODITY_BARCODES", "OPERATE_DATE_Start", "OPERATE_DATE_End", "OPERATE_TIME_Start", "OPERATE_TIME_End", "UPPER_DATE_Start", "UPPER_DATE_End", "OFF_DATE_Start", "OFF_DATE_End");
if (WhereSQL != "")
{
WhereSQL = " WHERE " + WhereSQL;
}
//查询商品条码
if (searchModel.SearchParameter.COMMODITY_BARCODES.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "COMMODITY_BARCODE IN ('" +
searchModel.SearchParameter.COMMODITY_BARCODES.Replace(",", "','") + "')";
}
//查询修改时间
if (searchModel.SearchParameter.OPERATE_DATE_Start.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OPERATE_DATE >= TO_DATE('" +
searchModel.SearchParameter.OPERATE_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')";
}
if (searchModel.SearchParameter.OPERATE_DATE_End.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OPERATE_DATE < TO_DATE('" +
searchModel.SearchParameter.OPERATE_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1";
}
//查询操作时间
if (searchModel.SearchParameter.OPERATE_TIME_Start.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OPERATE_TIME >= TO_DATE('" +
searchModel.SearchParameter.OPERATE_TIME_Start.Split(' ')[0] + "','YYYY/MM/DD')";
}
if (searchModel.SearchParameter.OPERATE_TIME_End.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OPERATE_TIME < TO_DATE('" +
searchModel.SearchParameter.OPERATE_TIME_End.Split(' ')[0] + "','YYYY/MM/DD') + 1";
}
//查询上架时间
if (searchModel.SearchParameter.UPPER_DATE_Start.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "UPPER_DATE >= TO_DATE('" +
searchModel.SearchParameter.UPPER_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')";
}
if (searchModel.SearchParameter.UPPER_DATE_End.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "UPPER_DATE < TO_DATE('" +
searchModel.SearchParameter.UPPER_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1";
}
//查询下架时间
if (searchModel.SearchParameter.OFF_DATE_Start.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OFF_DATE >= TO_DATE('" +
searchModel.SearchParameter.OFF_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')";
}
if (searchModel.SearchParameter.OFF_DATE_End.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OFF_DATE < TO_DATE('" +
searchModel.SearchParameter.OFF_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1";
}
}
DataTable dtCOMMODITY = new Business.OWNERUNIT(transaction).ExecuteDataTable(
"SELECT * FROM COOP_MERCHANT.T_COMMODITY" + WhereSQL);
//增加组合查询条件
if (searchModel.keyWord != null && !string.IsNullOrWhiteSpace(searchModel.keyWord.Key))
{
foreach (string KeyName in searchModel.keyWord.Key.Split(','))
{
RowFilterSQL += (RowFilterSQL == "" ? "" : " or ") +
KeyName + " like '%" + searchModel.keyWord.Value + "%'";
}
}
if (RowFilterSQL != "")
{
dtCOMMODITY.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtCOMMODITY.DefaultView.Sort = searchModel.SortStr;
dtCOMMODITY = dtCOMMODITY.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtCOMMODITY.Rows.Count;
//根据传入的页码和每页显示条数返回结果
dtCOMMODITY = CommonHelper.GetDataTableWithPageSize(dtCOMMODITY, searchModel.PageSize, searchModel.PageIndex);
foreach (DataRow drCOMMODITY in dtCOMMODITY.Rows)
{
Model.COMMODITYModel commodityModel = new Model.COMMODITYModel();
//绑定商品管理数据对象
BindDataRowToModel(drCOMMODITY, commodityModel);
COMMODITYList.Add(commodityModel);
}
return COMMODITYList;
}
#region 绑定model
///
/// 绑定model
///
/// datarow数据源
/// model对象
public static void BindDataRowToModel(DataRow drCOMMODITY, Model.COMMODITYModel commodityModel)
{
if (drCOMMODITY["COMMODITY_ID"].ToString() != "")
{
commodityModel.COMMODITY_ID = drCOMMODITY["COMMODITY_ID"].TryParseToInt(); //商品内码
}
if (drCOMMODITY["PROINST_ID"].ToString() != "")
{
commodityModel.PROINST_ID = drCOMMODITY["PROINST_ID"].TryParseToInt(); //流程内码
}
if (drCOMMODITY["PROVINCE_CODE"].ToString() != "")
{
commodityModel.PROVINCE_CODE = drCOMMODITY["PROVINCE_CODE"].TryParseToInt(); //省份编码
}
if (drCOMMODITY["BRAND_ID"].ToString() != "")
{
commodityModel.BRAND_ID = drCOMMODITY["BRAND_ID"].TryParseToInt(); //品牌内码
}
commodityModel.BRAND_NAME = drCOMMODITY["BRAND_NAME"].ToString(); //品牌名称
if (drCOMMODITY["SERVERPART_ID"].ToString() != "")
{
commodityModel.SERVERPART_ID = drCOMMODITY["SERVERPART_ID"].TryParseToInt(); //服务区内码
}
if (drCOMMODITY["SERVERPARTSHOP_ID"].ToString() != "")
{
commodityModel.SERVERPARTSHOP_ID = drCOMMODITY["SERVERPARTSHOP_ID"].TryParseToInt(); //门店内码
}
if (drCOMMODITY["MERCHANTS_ID"].ToString() != "")
{
commodityModel.MERCHANTS_ID = drCOMMODITY["MERCHANTS_ID"].TryParseToInt(); //商户内码
}
commodityModel.MERCHANTS_NAME = drCOMMODITY["MERCHANTS_NAME"].ToString(); //商户名称
commodityModel.SERVERPARTCODE = drCOMMODITY["SERVERPARTCODE"].ToString(); //服务区编码
commodityModel.SHOPCODE = drCOMMODITY["SHOPCODE"].ToString(); //门店编码
commodityModel.SERVERPART_NAME = drCOMMODITY["SERVERPART_NAME"].ToString(); //服务区名称
commodityModel.SHOPNAME = drCOMMODITY["SHOPNAME"].ToString(); //门店名称
commodityModel.COMMODITY_TYPE = drCOMMODITY["COMMODITY_TYPE"].ToString(); //商品类型
commodityModel.COMMODITY_CODE = drCOMMODITY["COMMODITY_CODE"].ToString(); //商品编码
commodityModel.COMMODITY_NAME = drCOMMODITY["COMMODITY_NAME"].ToString(); //商品名称
commodityModel.COMMODITY_BARCODE = drCOMMODITY["COMMODITY_BARCODE"].ToString(); //商品条码
commodityModel.COMMODITY_UNIT = drCOMMODITY["COMMODITY_UNIT"].ToString(); //商品单位
commodityModel.COMMODITY_RULE = drCOMMODITY["COMMODITY_RULE"].ToString(); //商品规格
commodityModel.COMMODITY_EN = drCOMMODITY["COMMODITY_EN"].ToString(); //商品简称
commodityModel.COMMODITY_ORI = drCOMMODITY["COMMODITY_ORI"].ToString(); //商品产地
if (drCOMMODITY["COMMODITY_GRADE"].ToString() != "")
{
commodityModel.COMMODITY_GRADE = drCOMMODITY["COMMODITY_GRADE"].TryParseToInt(); //质量等级
}
if (drCOMMODITY["COMMODITY_RETAILPRICE"].ToString() != "")
{
commodityModel.COMMODITY_RETAILPRICE = drCOMMODITY["COMMODITY_RETAILPRICE"].TryParseToDouble(); //零售价格
}
if (drCOMMODITY["COMMODITY_PURCHASEPRICE"].ToString() != "")
{
commodityModel.COMMODITY_PURCHASEPRICE = drCOMMODITY["COMMODITY_PURCHASEPRICE"].TryParseToDouble(); //进货价格
}
if (drCOMMODITY["COMMODITY_MEMBERPRICE"].ToString() != "")
{
commodityModel.COMMODITY_MEMBERPRICE = drCOMMODITY["COMMODITY_MEMBERPRICE"].TryParseToDouble(); //会员价格
}
commodityModel.COMMODITY_TAG = drCOMMODITY["COMMODITY_TAG"].ToString(); //商品标签
if (drCOMMODITY["COMMODITY_STOCK"].ToString() != "")
{
commodityModel.COMMODITY_STOCK = drCOMMODITY["COMMODITY_STOCK"].TryParseToInt(); //商品库存
}
if (drCOMMODITY["COMMODITY_NATURE"].ToString() != "")
{
commodityModel.COMMODITY_NATURE = drCOMMODITY["COMMODITY_NATURE"].TryParseToShort(); //商品属性
}
commodityModel.BUSINESSTYPE = drCOMMODITY["BUSINESSTYPE"].ToString(); //商品业态
if (drCOMMODITY["ISBULK"].ToString() != "")
{
commodityModel.ISBULK = drCOMMODITY["ISBULK"].TryParseToInt(); //是否散称
}
if (drCOMMODITY["METERINGMETHOD"].ToString() != "")
{
commodityModel.METERINGMETHOD = drCOMMODITY["METERINGMETHOD"].TryParseToInt(); //称重方式
}
if (drCOMMODITY["GUARANTEE_DAY"].ToString() != "")
{
commodityModel.GUARANTEE_DAY = drCOMMODITY["GUARANTEE_DAY"].TryParseToInt(); //保质期限
}
if (drCOMMODITY["REMINDER_DAY"].ToString() != "")
{
commodityModel.REMINDER_DAY = drCOMMODITY["REMINDER_DAY"].TryParseToInt(); //提醒期限
}
commodityModel.COMMODITY_HOTKEY = drCOMMODITY["COMMODITY_HOTKEY"].ToString(); //快捷键
if (drCOMMODITY["USERDEFINEDTYPE_ID"].ToString() != "")
{
commodityModel.USERDEFINEDTYPE_ID = drCOMMODITY["USERDEFINEDTYPE_ID"].TryParseToInt(); //自定义内码
}
commodityModel.USERDEFINEDTYPE_NAME = drCOMMODITY["USERDEFINEDTYPE_NAME"].ToString(); //自定义名称
if (drCOMMODITY["UPPER_STATE"].ToString() != "")
{
commodityModel.UPPER_STATE = drCOMMODITY["UPPER_STATE"].TryParseToInt(); //上架状态
}
if (drCOMMODITY["COMMODITY_STATE"].ToString() != "")
{
commodityModel.COMMODITY_STATE = drCOMMODITY["COMMODITY_STATE"].TryParseToInt(); //商品状态
}
if (!string.IsNullOrWhiteSpace(drCOMMODITY["OPERATE_DATE"].ToString()))
{
//修改时间
commodityModel.OPERATE_DATE = drCOMMODITY["OPERATE_DATE"].ToString();
}
if (drCOMMODITY["SELLER_ID"].ToString() != "")
{
commodityModel.SELLER_ID = drCOMMODITY["SELLER_ID"].TryParseToInt(); //商户内码
}
if (drCOMMODITY["TRANSFER_STATE"].ToString() != "")
{
commodityModel.TRANSFER_STATE = drCOMMODITY["TRANSFER_STATE"].TryParseToInt(); //传输状态
}
commodityModel.OPERATE_PERSON = drCOMMODITY["OPERATE_PERSON"].ToString(); //操作人员
if (!string.IsNullOrWhiteSpace(drCOMMODITY["OPERATE_TIME"].ToString()))
{
//操作时间
commodityModel.OPERATE_TIME = drCOMMODITY["OPERATE_TIME"].ToString();
}
commodityModel.COMMODITY_DESC = drCOMMODITY["COMMODITY_DESC"].ToString(); //备注说明
if (drCOMMODITY["COMMODITY_INDEX"].ToString() != "")
{
commodityModel.COMMODITY_INDEX = drCOMMODITY["COMMODITY_INDEX"].TryParseToInt(); //商品索引
}
if (drCOMMODITY["COMMENT_COUNT"].ToString() != "")
{
commodityModel.COMMENT_COUNT = drCOMMODITY["COMMENT_COUNT"].TryParseToLong(); //评价次数
}
if (drCOMMODITY["COMMENT_SCORE"].ToString() != "")
{
commodityModel.COMMENT_SCORE = drCOMMODITY["COMMENT_SCORE"].TryParseToDouble(); //商品评分
}
if (drCOMMODITY["PAY_METHOD"].ToString() != "")
{
commodityModel.PAY_METHOD = drCOMMODITY["PAY_METHOD"].TryParseToInt(); //消费模式【1000:余额消费,2000:积分兑换】
}
if (drCOMMODITY["COMMODITY_POINT"].ToString() != "")
{
commodityModel.COMMODITY_POINT = drCOMMODITY["COMMODITY_POINT"].TryParseToDouble(); //商品积分
}
if (drCOMMODITY["ISDISTRIBUTION"].ToString() != "")
{
commodityModel.ISDISTRIBUTION = drCOMMODITY["ISDISTRIBUTION"].TryParseToInt(); //是否是分销商品(1:是;0:不是)
}
if (drCOMMODITY["OWNERUNIT_ID"].ToString() != "")
{
commodityModel.OWNERUNIT_ID = drCOMMODITY["OWNERUNIT_ID"].TryParseToInt(); //业主内码
}
commodityModel.OWNERUNIT_NAME = drCOMMODITY["OWNERUNIT_NAME"].ToString(); //业主单位
if (drCOMMODITY["WECHATAPPSIGN_ID"].ToString() != "")
{
commodityModel.WECHATAPPSIGN_ID = drCOMMODITY["WECHATAPPSIGN_ID"].TryParseToInt(); //小程序内码
}
commodityModel.WECHATAPPSIGN_NAME = drCOMMODITY["WECHATAPPSIGN_NAME"].ToString(); //小程序名字
commodityModel.WECHATAPP_APPID = drCOMMODITY["WECHATAPP_APPID"].ToString(); //小程序APPID
if (drCOMMODITY["DATAFORMAT"].ToString() != "")
{
commodityModel.DATAFORMAT = drCOMMODITY["DATAFORMAT"].TryParseToInt(); //数据形式(1:正式数据;0:测试数据)
}
if (!string.IsNullOrWhiteSpace(drCOMMODITY["UPPER_DATE"].ToString()))
{
//上架时间
commodityModel.UPPER_DATE = drCOMMODITY["UPPER_DATE"].ToString();
}
if (!string.IsNullOrWhiteSpace(drCOMMODITY["OFF_DATE"].ToString()))
{
//下架时间
commodityModel.OFF_DATE = drCOMMODITY["OFF_DATE"].ToString();
}
commodityModel.COMMODITY_INTRO = drCOMMODITY["COMMODITY_INTRO"].ToString(); //产品介绍
if (drCOMMODITY["SEND_MODE"].ToString() != "")
{
commodityModel.SEND_MODE = drCOMMODITY["SEND_MODE"].TryParseToInt(); //发货模式(1000:自提;2000:邮寄;3000:免发货)
}
commodityModel.DELIVER_AREA = drCOMMODITY["DELIVER_AREA"].ToString(); //配送区域
if (drCOMMODITY["LIMIT_TOTALCOUNT"].ToString() != "")
{
commodityModel.LIMIT_TOTALCOUNT = drCOMMODITY["LIMIT_TOTALCOUNT"].TryParseToDouble(); //限购总数
}
if (drCOMMODITY["LIMIT_DAILYCOUNT"].ToString() != "")
{
commodityModel.LIMIT_DAILYCOUNT = drCOMMODITY["LIMIT_DAILYCOUNT"].TryParseToDouble(); //每日限购
}
if (drCOMMODITY["AFTERSALE_NATRUE"].ToString() != "")
{
commodityModel.AFTERSALE_NATRUE = drCOMMODITY["AFTERSALE_NATRUE"].TryParseToInt(); //售后性质(1000:退货;2000:换货;3000:退换货)
}
if (drCOMMODITY["DUTY_PARAGRAPH"].ToString() != "")
{
commodityModel.DUTY_PARAGRAPH = drCOMMODITY["DUTY_PARAGRAPH"].TryParseToDouble(); //销售税率
}
commodityModel.TAX_CODE = drCOMMODITY["TAX_CODE"].ToString(); //销项税收分类编码
commodityModel.TAX_NAME = drCOMMODITY["TAX_NAME"].ToString(); //销项税收分类简称
commodityModel.TAX_EN = drCOMMODITY["TAX_EN"].ToString(); //销项货物和劳务名称
}
#endregion
#endregion
#region 获取商品管理明细
///
/// 获取商品管理明细
///
/// 事务管理器
/// 商品管理内码
public static Model.COMMODITYModel GetCOMMODITYDetail(Transaction transaction, int COMMODITYId)
{
Model.COMMODITYModel commodityModel = new Model.COMMODITYModel();
string WhereSQL = "WHERE COMMODITY_ID = " + COMMODITYId;
//查询明细数据
DataTable dtCOMMODITY = new Business.OWNERUNIT(transaction).ExecuteDataTable(
"SELECT * FROM COOP_MERCHANT.T_COMMODITY " + WhereSQL);
if (dtCOMMODITY.Rows.Count > 0)
{
//绑定商品管理数据对象
BindDataRowToModel(dtCOMMODITY.Rows[0], commodityModel);
}
return commodityModel;
}
#endregion
#region 同步商品管理
///
/// 赋值商品管理数据对象
///
/// 事务管理器
/// 商品管理数据对象
public static bool SynchroCOMMODITY(Transaction transaction, Model.COMMODITYModel commodityModel)
{
bool SynchroFlag = true;
string SQLString;
List excludeField = new List();
Dictionary dateFieldList = new Dictionary();
string tableName = "COOP_MERCHANT.T_COMMODITY", keyField = "COMMODITY_ID", seqName = "SEQ_COMMODITY";
Business.OWNERUNIT _OWNERUNIT = new Business.OWNERUNIT(transaction);
#region 添加SQL语句中需要排除在外的字段
excludeField.Add("COMMODITY_BARCODES");
excludeField.Add("OPERATE_DATE_Start");
excludeField.Add("OPERATE_DATE_End");
excludeField.Add("OPERATE_TIME_Start");
excludeField.Add("OPERATE_TIME_End");
excludeField.Add("UPPER_DATE_Start");
excludeField.Add("UPPER_DATE_End");
excludeField.Add("OFF_DATE_Start");
excludeField.Add("OFF_DATE_End");
#endregion
#region 添加SQL语句中日期相关字段的执行语句
//修改时间
if (!string.IsNullOrWhiteSpace(commodityModel.OPERATE_DATE))
{
dateFieldList.Add("OPERATE_DATE", "TO_DATE('" +
commodityModel.OPERATE_DATE + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
dateFieldList.Add("OPERATE_DATE", "NULL");
}
//操作时间
if (!string.IsNullOrWhiteSpace(commodityModel.OPERATE_TIME))
{
dateFieldList.Add("OPERATE_TIME", "TO_DATE('" +
commodityModel.OPERATE_TIME + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
dateFieldList.Add("OPERATE_TIME", "NULL");
}
//上架时间
if (!string.IsNullOrWhiteSpace(commodityModel.UPPER_DATE))
{
dateFieldList.Add("UPPER_DATE", "TO_DATE('" +
commodityModel.UPPER_DATE + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
dateFieldList.Add("UPPER_DATE", "NULL");
}
//下架时间
if (!string.IsNullOrWhiteSpace(commodityModel.OFF_DATE))
{
dateFieldList.Add("OFF_DATE", "TO_DATE('" +
commodityModel.OFF_DATE + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
dateFieldList.Add("OFF_DATE", "NULL");
}
#endregion
if (commodityModel.COMMODITY_ID != null)
{
string WhereSQL = " WHERE COMMODITY_ID = " + commodityModel.COMMODITY_ID;
DataTable dtCOMMODITY = _OWNERUNIT.ExecuteDataTable(
"SELECT * FROM COOP_MERCHANT.T_COMMODITY" + WhereSQL);
if (dtCOMMODITY.Rows.Count > 0)
{
SQLString = OperationDataHelper.GetTableExcuteSQL(
commodityModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL);
}
else
{
return false;
}
}
else
{
DataTable dtCOMMODITY = _OWNERUNIT.ExecuteDataTable(
"SELECT " + seqName + ".NEXTVAL FROM DUAL");
commodityModel.COMMODITY_ID = dtCOMMODITY.Rows[0][0].TryParseToInt();
SQLString = OperationDataHelper.GetTableExcuteSQL(
commodityModel, 0, tableName, keyField, seqName, dateFieldList, excludeField);
}
_OWNERUNIT.ExecuteNonQuery(SQLString, null);
return SynchroFlag;
}
#endregion
#region 删除商品管理
///
/// 删除商品管理
///
/// 事务管理器
/// 商品管理内码
public static bool DeleteCOMMODITY(Transaction transaction, int? COMMODITYId)
{
bool DeleteFlag = false;
if (COMMODITYId != null)
{
string SQLString = "UPDATE COOP_MERCHANT.T_COMMODITY SET COMMODITY_STATE = 0 WHERE COMMODITY_ID = " + COMMODITYId;
int ExcuteCount = new Business.OWNERUNIT(transaction).ExecuteNonQuery(SQLString, null);
if (ExcuteCount > 0)
{
DeleteFlag = true;
}
}
return DeleteFlag;
}
#endregion
}
}