using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; namespace WebService.SDK.MemberService { public class MallService { /// /// 获取在线订单主表数据 /// /// 数据库连接对象 /// 省份编码 /// 门店内码 /// 订单类型 /// 订单状态 /// 最小订单时间 /// 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"); } /// /// 获取在线订单详情 /// /// 数据库连接对象 /// 订单内码 /// 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"); } /// /// 更新在线订单状态 /// /// 数据库连接对象 /// 订单内码 /// 更新的订单状态 /// 接收的收银机号 /// 操作时间 /// 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\":[]}"; } } } }