2025-03-27 15:05:14 +08:00

285 lines
15 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.BasicArchives.Storage.Business;
namespace GSYWApi.Helper
{
/// <summary>
/// 促销信息表相关方法
/// </summary>
public class PROMOTIONHelper
{
#region
/// <summary>
/// 获取促销信息表列表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="PromotionType">促销类型</param>
/// <param name="PromotionStatus">促销状态
/// 1有效2审核中0无效
/// </param>
/// <param name="Serverpart_IDS">服务区内码集合</param>
/// <param name="TotalCount">数据总数量</param>
/// <param name="PageIndex">查询页码数</param>
/// <param name="PageSize">每显示行数</param>
/// <param name="SortStr">排序字段</param>
/// <returns></returns>
public static List<Model.PROMOTIONModel> GetPROMOTIONList(Transaction transaction, int? PromotionType,
int? PromotionStatus, string Serverpart_IDS, ref int TotalCount, int PageIndex = 1, int PageSize = 10, string SortStr = "")
{
List<Model.PROMOTIONModel> PROMOTIONList = new List<Model.PROMOTIONModel>();
string WhereSQL = "", RowFilterSQL = "";
//查询促销类型
if (PromotionType != null)
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "SALESPROMOTE_TYPE = " + PromotionType;
}
//查询促销状态
if (PromotionStatus != null)
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "SALESPROMOTE_STATE = " + PromotionStatus;
}
//查询服务区内码
if (!string.IsNullOrWhiteSpace(Serverpart_IDS))
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "SERVERPART_IDS = '" + Serverpart_IDS + "'";
}
DataTable dtPROMOTION = new Business.PROMOTION(transaction).FillDataTable(WhereSQL);
if (RowFilterSQL != "")
{
dtPROMOTION.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtPROMOTION.DefaultView.Sort = SortStr;
dtPROMOTION = dtPROMOTION.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtPROMOTION.Rows.Count;
//根据传入的页码和每页显示条数返回结果
dtPROMOTION = CommonHelper.GetDataTableWithPageSize(dtPROMOTION, PageSize, PageIndex);
foreach (DataRow drPROMOTION in dtPROMOTION.Rows)
{
Model.PROMOTIONModel promotionModel = new Model.PROMOTIONModel();
promotionModel.PROMOTION_ID = drPROMOTION["PROMOTION_ID"].TryParseToInt(); //内码
promotionModel.MEMBERSHIP_IDS = drPROMOTION["MEMBERSHIP_IDS"].ToString(); //会员内码
promotionModel.MEMBERSHIP_TYPE = drPROMOTION["MEMBERSHIP_TYPE"].TryParseToInt(); //会员类型
promotionModel.MEMBERSHIP_LEVEL = drPROMOTION["MEMBERSHIP_LEVEL"].TryParseToInt(); //会员等级
promotionModel.SERVERPART_IDS = drPROMOTION["SERVERPART_IDS"].ToString(); //服务区
promotionModel.SERVERPARTSHOP_IDS = drPROMOTION["SERVERPARTSHOP_IDS"].ToString(); //门店内码集合
if (!string.IsNullOrWhiteSpace(promotionModel.SERVERPARTSHOP_IDS))
{
//解析门店名称
string _SHOP_NAMES = "";
foreach (Business.SERVERPARTSHOP _SERVERPARTSHOP in new Business.SERVERPARTSHOP(transaction).FillCollection(
"WHERE SERVERPARTSHOP_ID IN (" + promotionModel.SERVERPARTSHOP_IDS + ")"))
{
_SHOP_NAMES += (_SHOP_NAMES == "" ? "" : ",") + _SERVERPARTSHOP.SHOPNAME;
}
promotionModel.SHOP_NAMES = _SHOP_NAMES;
}
promotionModel.COMMODITYTYPE_IDS = drPROMOTION["COMMODITYTYPE_IDS"].ToString(); //商品类型
promotionModel.COMMODITY_IDS = drPROMOTION["COMMODITY_IDS"].ToString(); //商品名称
promotionModel.CONDITION_SKU = drPROMOTION["CONDITION_SKU"].ToString(); //条件商品编码
promotionModel.SALESPROMOTE_STARTDATE = drPROMOTION["SALESPROMOTE_STARTDATE"].TryParseToDateTime(); //促销开始时间
promotionModel.SALESPROMOTE_ENDDATE = drPROMOTION["SALESPROMOTE_ENDDATE"].TryParseToDateTime(); //促销结束时间
promotionModel.SALESPROMOTE_TYPE = drPROMOTION["SALESPROMOTE_TYPE"].TryParseToInt(); //促销类型
promotionModel.SALESPROMOTE_NAME = drPROMOTION["SALESPROMOTE_NAME"].ToString(); //促销名称
promotionModel.THRESHOLD_AMOUNT = drPROMOTION["THRESHOLD_AMOUNT"].TryParseToDouble(); //促销起点金额
promotionModel.DISCOUNT_RATE = drPROMOTION["DISCOUNT_RATE"].TryParseToDouble(); //折扣金额
promotionModel.SALESPROMOTE_VIP = drPROMOTION["SALESPROMOTE_VIP"].TryParseToShort(); //会员促销
promotionModel.SALESPROMOTE_STATE = drPROMOTION["SALESPROMOTE_STATE"].TryParseToShort(); //促销状态
promotionModel.TICKET_PREFIX = drPROMOTION["TICKET_PREFIX"].ToString(); //小票前缀
promotionModel.STAFF_ID = drPROMOTION["STAFF_ID"].TryParseToInt(); //操作员内码
promotionModel.STAFF_NAME = drPROMOTION["STAFF_NAME"].ToString(); //操作人员
promotionModel.OPERATE_DATE = drPROMOTION["OPERATE_DATE"].TryParseToDateTime(); //操作时间
promotionModel.SALESPROMOTE_DESC = drPROMOTION["SALESPROMOTE_DESC"].ToString(); //备注
PROMOTIONList.Add(promotionModel);
}
return PROMOTIONList;
}
#endregion
#region
/// <summary>
/// 获取促销信息表明细
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="PROMOTIONId">促销信息表内码</param>
/// <returns></returns>
public static Model.PROMOTIONModel GetPROMOTIONDetail(Transaction transaction, int PROMOTIONId)
{
Model.PROMOTIONModel promotionModel = new Model.PROMOTIONModel();
Business.PROMOTION _PROMOTION = new Business.PROMOTION(transaction);
_PROMOTION.PROMOTION_ID = PROMOTIONId;
if (_PROMOTION.Select())
{
promotionModel.PROMOTION_ID = _PROMOTION.PROMOTION_ID; //内码
promotionModel.MEMBERSHIP_IDS = _PROMOTION.MEMBERSHIP_IDS; //会员内码
promotionModel.MEMBERSHIP_TYPE = _PROMOTION.MEMBERSHIP_TYPE; //会员类型
promotionModel.MEMBERSHIP_LEVEL = _PROMOTION.MEMBERSHIP_LEVEL; //会员等级
promotionModel.SERVERPART_IDS = _PROMOTION.SERVERPART_IDS; //服务区
promotionModel.SERVERPARTSHOP_IDS = _PROMOTION.SERVERPARTSHOP_IDS; //门店内码集合
if (!string.IsNullOrWhiteSpace(promotionModel.SERVERPARTSHOP_IDS))
{
//解析门店名称
string _SHOP_NAMES = "";
foreach (Business.SERVERPARTSHOP _SERVERPARTSHOP in new Business.SERVERPARTSHOP(transaction).FillCollection(
"WHERE SERVERPARTSHOP_ID IN (" + promotionModel.SERVERPARTSHOP_IDS + ")"))
{
_SHOP_NAMES += (_SHOP_NAMES == "" ? "" : ",") + _SERVERPARTSHOP.SHOPNAME;
}
promotionModel.SHOP_NAMES = _SHOP_NAMES;
}
promotionModel.COMMODITYTYPE_IDS = _PROMOTION.COMMODITYTYPE_IDS; //商品类型
promotionModel.COMMODITY_IDS = _PROMOTION.COMMODITY_IDS; //商品名称
promotionModel.CONDITION_SKU = _PROMOTION.CONDITION_SKU; //条件商品编码
promotionModel.SALESPROMOTE_STARTDATE = _PROMOTION.SALESPROMOTE_STARTDATE; //促销开始时间
promotionModel.SALESPROMOTE_ENDDATE = _PROMOTION.SALESPROMOTE_ENDDATE; //促销结束时间
promotionModel.SALESPROMOTE_TYPE = _PROMOTION.SALESPROMOTE_TYPE; //促销类型
promotionModel.SALESPROMOTE_NAME = _PROMOTION.SALESPROMOTE_NAME; //促销名称
promotionModel.THRESHOLD_AMOUNT = _PROMOTION.THRESHOLD_AMOUNT; //促销起点金额
promotionModel.DISCOUNT_RATE = _PROMOTION.DISCOUNT_RATE; //折扣金额
promotionModel.SALESPROMOTE_VIP = _PROMOTION.SALESPROMOTE_VIP; //会员促销
promotionModel.SALESPROMOTE_STATE = _PROMOTION.SALESPROMOTE_STATE; //促销状态
promotionModel.TICKET_PREFIX = _PROMOTION.TICKET_PREFIX; //小票前缀
promotionModel.STAFF_ID = _PROMOTION.STAFF_ID; //操作员内码
promotionModel.STAFF_NAME = _PROMOTION.STAFF_NAME; //操作人员
promotionModel.OPERATE_DATE = _PROMOTION.OPERATE_DATE; //操作时间
promotionModel.SALESPROMOTE_DESC = _PROMOTION.SALESPROMOTE_DESC; //备注
}
return promotionModel;
}
#endregion
#region
/// <summary>
/// 同步促销信息表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="promotionModel">促销信息表对象</param>
/// <returns></returns>
public static bool SynchroPROMOTION(Transaction transaction, Model.PROMOTIONModel promotionModel)
{
bool SynchroFlag = true;
Business.PROMOTION _PROMOTION = new Business.PROMOTION(transaction);
if (promotionModel.PROMOTION_ID != null)
{
_PROMOTION.PROMOTION_ID = promotionModel.PROMOTION_ID;
if (_PROMOTION.Select())
{
SynchroModelToObject(_PROMOTION, promotionModel);
_PROMOTION.Update();
}
else
{
SynchroFlag = false;
}
}
else
{
SynchroModelToObject(_PROMOTION, promotionModel);
_PROMOTION.Insert();
}
return SynchroFlag;
}
#region
/// <summary>
/// 赋值促销信息表数据对象
/// </summary>
/// <param name="_PROMOTION"></param>
/// <param name="promotionModel"></param>
public static void SynchroModelToObject(Business.PROMOTION _PROMOTION, Model.PROMOTIONModel promotionModel)
{
_PROMOTION.MEMBERSHIP_IDS = promotionModel.MEMBERSHIP_IDS; //会员内码
_PROMOTION.MEMBERSHIP_TYPE = promotionModel.MEMBERSHIP_TYPE; //会员类型
_PROMOTION.MEMBERSHIP_LEVEL = promotionModel.MEMBERSHIP_LEVEL; //会员等级
_PROMOTION.SERVERPART_IDS = promotionModel.SERVERPART_IDS; //服务区
_PROMOTION.SERVERPARTSHOP_IDS = promotionModel.SERVERPARTSHOP_IDS; //门店名称
_PROMOTION.COMMODITYTYPE_IDS = promotionModel.COMMODITYTYPE_IDS; //商品类型
_PROMOTION.COMMODITY_IDS = promotionModel.COMMODITY_IDS; //商品名称
_PROMOTION.CONDITION_SKU = promotionModel.CONDITION_SKU; //条件商品编码
_PROMOTION.SALESPROMOTE_STARTDATE = promotionModel.SALESPROMOTE_STARTDATE; //促销开始时间
_PROMOTION.SALESPROMOTE_ENDDATE = promotionModel.SALESPROMOTE_ENDDATE; //促销结束时间
_PROMOTION.SALESPROMOTE_TYPE = promotionModel.SALESPROMOTE_TYPE; //促销类型
_PROMOTION.SALESPROMOTE_NAME = promotionModel.SALESPROMOTE_NAME; //促销名称
_PROMOTION.THRESHOLD_AMOUNT = promotionModel.THRESHOLD_AMOUNT; //促销起点金额
_PROMOTION.DISCOUNT_RATE = promotionModel.DISCOUNT_RATE; //折扣金额
_PROMOTION.SALESPROMOTE_VIP = promotionModel.SALESPROMOTE_VIP; //会员促销
_PROMOTION.SALESPROMOTE_STATE = promotionModel.SALESPROMOTE_STATE; //促销状态
_PROMOTION.TICKET_PREFIX = promotionModel.TICKET_PREFIX; //小票前缀
_PROMOTION.STAFF_ID = promotionModel.STAFF_ID; //操作员内码
_PROMOTION.STAFF_NAME = promotionModel.STAFF_NAME; //操作人员
_PROMOTION.OPERATE_DATE = promotionModel.OPERATE_DATE; //操作时间
_PROMOTION.SALESPROMOTE_DESC = promotionModel.SALESPROMOTE_DESC; //备注
}
#endregion
#endregion
#region
/// <summary>
/// 更新促销信息状态
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="PromotionId">促销信息表内码</param>
/// <param name="PromotionStatus">促销状态</param>
/// <returns></returns>
public static bool UpdatePromotionstatus(Transaction transaction, int? PromotionId, int PromotionStatus)
{
bool UpdateFlag = false;
if (PromotionId != null)
{
Business.PROMOTION _PROMOTION = new Business.PROMOTION(transaction);
_PROMOTION.PROMOTION_ID = PromotionId;
if (_PROMOTION.Select())
{
_PROMOTION.SALESPROMOTE_STATE = (short)PromotionStatus;
UpdateFlag = _PROMOTION.Update();
}
}
return UpdateFlag;
}
#endregion
#region
/// <summary>
/// 删除促销信息表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="PROMOTIONId">促销信息表内码</param>
/// <returns></returns>
public static bool DeletePROMOTION(Transaction transaction, int? PROMOTIONId)
{
bool DeleteFlag = false;
if (PROMOTIONId != null)
{
Business.PROMOTION _PROMOTION = new Business.PROMOTION(transaction);
_PROMOTION.PROMOTION_ID = PROMOTIONId;
if (_PROMOTION.Select())
{
_PROMOTION.Delete();
DeleteFlag = true;
}
}
return DeleteFlag;
}
#endregion
}
}