/// <summary> ///生成在线订单号 /// </summary> /// <param name="paytepe"></param> /// <returns></returns> public string GetOnlineOrder(PayTypeEnum paytepe) { string result = string.Empty; switch (paytepe) { case PayTypeEnum.Alipay: result = string.Format("Al{0}{1}{2}", Utils.GetUnixTime(), Utils.GenPsw(16, 16), Utils.GetRandom(1000, 9999)); break; case PayTypeEnum.WeChart: result = string.Format("WX{0}{1}{2}", Utils.GetUnixTime(), Utils.GenPsw(16, 16), Utils.GetRandom(1000, 9999)); break; } return(result); }
/// <summary> /// 生成订单编码 /// 规则: 来源(2位)-支付方式(2位)-时间戳(秒级)-属于用户当日订单数量+1(3位) /// </summary> /// <param name="sourceType">订单来源</param> /// <param name="payType">支付方式</param> /// <param name="time">属于用户当日订单数量</param> /// <returns></returns> public string GetOrderMaxCode(OrderSourceType sourceType, PayTypeEnum payType, DateTime?time = null) { var precode = RandomHelper.GetRandom(1, 9) + Convert.ToInt32(sourceType).ToString() + Convert.ToInt32(payType); var date = time ?? DateTime.Now; var codeStateWith = precode + date.ToString("yyyyMMdd"); //截取数据格式:年-月-日 20191021 var code = codeStateWith; var list = this.EntityRepo.GetAll().Where(e => e.OrderCode.StartsWith(codeStateWith)).ToList(); var model = list.Select(e => new { Number = e.OrderCode.Substring(code.Length).CastTo(0) }) .OrderByDescending(e => e.Number) .FirstOrDefault();//返回订单的最后一位 if (model != null) { code += (model.Number + 1).ToString().PadLeft(2, '0'); } else { code += "01"; } return(code); }