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

479 lines
24 KiB
C#
Raw Permalink 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 SuperMap.RealEstate.ServiceModel;
using Business = SuperMap.RealEstate.Coop.Merchant.Business;
using HCC = HZQR.Common.Common;
using HZQR.Common;
namespace EShang.Common.GeneralMethod
{
/// <summary>
/// 商品管理相关方法
/// 2025/3/14 13:41:45自动生成
/// </summary>
public class COMMODITYHelper
{
#region
/// <summary>
/// 获取商品管理列表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="TotalCount">查询结果总数</param>
/// <param name="searchModel">查询条件对象</param>
public static List<Model.COMMODITYModel> GetCOMMODITYList(Transaction transaction,
ref int TotalCount, Model.SearchModel<Model.COMMODITYModel> searchModel)
{
List<Model.COMMODITYModel> COMMODITYList = new List<Model.COMMODITYModel>();
string WhereSQL = "", RowFilterSQL = "";
if (searchModel.SearchParameter != null)
{
WhereSQL = OperationDataHelper<Model.COMMODITYModel>.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
/// <summary>
/// 绑定model
/// </summary>
/// <param name="drCOMMODITY">datarow数据源</param>
/// <param name="commodityModel">model对象</param>
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(); //是否是分销商品10不是
}
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
/// <summary>
/// 获取商品管理明细
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="COMMODITYId">商品管理内码</param>
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
/// <summary>
/// 赋值商品管理数据对象
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="commodityModel">商品管理数据对象</param>
public static bool SynchroCOMMODITY(Transaction transaction, Model.COMMODITYModel commodityModel)
{
bool SynchroFlag = true;
string SQLString;
List<string> excludeField = new List<string>();
Dictionary<string, string> dateFieldList = new Dictionary<string, string>();
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<Model.COMMODITYModel>.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<Model.COMMODITYModel>.GetTableExcuteSQL(
commodityModel, 0, tableName, keyField, seqName, dateFieldList, excludeField);
}
_OWNERUNIT.ExecuteNonQuery(SQLString, null);
return SynchroFlag;
}
#endregion
#region
/// <summary>
/// 删除商品管理
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="COMMODITYId">商品管理内码</param>
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
}
}