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

108 lines
5.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
namespace WebService.SDK.MemberService
{
public class MallService
{
/// <summary>
/// 获取在线订单主表数据
/// </summary>
/// <param name="oracleHelper">数据库连接对象</param>
/// <param name="provinceCode">省份编码</param>
/// <param name="serverPartShopID">门店内码</param>
/// <param name="salebillType">订单类型</param>
/// <param name="saleBillState">订单状态</param>
/// <param name="orderDate">最小订单时间</param>
/// <returns></returns>
public static string GetOnlineOrder(OracleHelper oracleHelper, int provinceCode,
int serverPartShopID, int salebillType, string saleBillState, DateTime? orderDate)
{
if (orderDate == null || orderDate.Value == DateTime.MinValue)
{
orderDate = DateTime.Today.AddDays(-1);
}
DataTable _SaleBillTable = oracleHelper.ExcuteSqlGetDataSet(
$@"SELECT SALEBILL_ID,SALEBILL_CODE,MEMBERSHIP_ID,SALEBILL_TYPE,
TABLE_NUMBER,TAKE_TYPE,PROVINCE_CODE,SERVERPART_ID,SERVERPART_CODE,
SERVERPART_NAME,SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME,ORDER_PERSON,
ORDER_PERSONTEL,ORDER_DATE,RESERVATION_DATE,RECORD_COUNT,TOTAL_COUNT,
ORDER_AMOUNT,SALEBILL_STATE,SALEBILL_DESC,COUPON_AMOUNT,WECHAT_UNIONID,
WECHAT_OPENID,COUPON_SEND_ID,COUPON_ID,PAY_AMOUNT,MAKE_DATE,
CHANNEL_TYPE,PACK_TYPE,PACK_AMOUNT
FROM HIGHWAY_EXCHANGE.T_SALEBILL
WHERE PROVINCE_CODE = {provinceCode} AND SERVERPARTSHOP_ID = {serverPartShopID} AND
SALEBILL_STATE IN ({saleBillState}) AND SALEBILL_TYPE = {salebillType} AND
ORDER_DATE >= TO_DATE('{orderDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')
ORDER BY SALEBILL_ID ").Tables[0];
return JSonHelper.DataTableToJson(_SaleBillTable, "SALEBILLINFO");
}
/// <summary>
/// 获取在线订单详情
/// </summary>
/// <param name="oracleHelper">数据库连接对象</param>
/// <param name="saleBillID">订单内码</param>
/// <returns></returns>
public static string GetOnlineOrderDetail(OracleHelper oracleHelper, int saleBillID)
{
DataTable _SaleDetailTable = oracleHelper.ExcuteSqlGetDataSet(
$@"SELECT SALEDETAIL_ID,SALEBILL_ID,PROVINCE_CODE,COMMODITY_ID,
COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE,
COMMODITY_UNIT,COMMODITY_RULE,ORDER_COUNT,AVERAGE_PRICE,
DISCOUNT_AMOUNT,ORDER_AMOUNT,SALEDETAIL_DESC
FROM HIGHWAY_EXCHANGE.T_SALEDETAIL
WHERE SALEBILL_ID = {saleBillID}").Tables[0];
return JSonHelper.DataTableToJson(_SaleDetailTable, "SALEDETAILINFO");
}
/// <summary>
/// 更新在线订单状态
/// </summary>
/// <param name="oracleHelper">数据库连接对象</param>
/// <param name="saleBillID">订单内码</param>
/// <param name="orderState">更新的订单状态</param>
/// <param name="machineCode">接收的收银机号</param>
/// <param name="printTime">操作时间</param>
/// <returns></returns>
public static string UpdateOnlineOrderState(OracleHelper oracleHelper, int saleBillID,
int orderState, string machineCode, DateTime? printTime)
{
if (printTime == null || printTime.Value == DateTime.MinValue)
{
printTime = DateTime.Now;
}
try
{
DataTable _SaleBillTable = oracleHelper.ExcuteSqlGetDataSet(
$@"SELECT SALEBILL_ID,SALEBILL_STATE
FROM HIGHWAY_EXCHANGE.T_SALEBILL
WHERE SALEBILL_ID = {saleBillID}
ORDER BY SALEBILL_ID DESC").Tables[0];
if (_SaleBillTable.Rows.Count > 0)
{
if (int.Parse(_SaleBillTable.Rows[0]["SALEBILL_STATE"].ToString()) < orderState)
oracleHelper.ExcuteSql(
$@"UPDATE HIGHWAY_EXCHANGE.T_SALEBILL
SET {(orderState == 2000 ? $@"MACHINECODE = '{machineCode}',
MAKE_DATE = TO_DATE('{printTime.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')," : "")}
SALEBILL_STATE = {orderState},TRANSFER_STATE = 0
WHERE SALEBILL_ID = {saleBillID}");
return "{\"error\": 1 ,\"msg\": \"更新成功!\",\"rows\":[]}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"更新失败,订单不存在!\",\"rows\":[]}";
}
}
catch (Exception ex)
{
return "{\"error\": -2 ,\"msg\": \"更新失败:" + ex.Message + "\",\"rows\":[]}";
}
}
}
}