SerialNumber.cs 1.58 KB
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsbrHcgClient.Common
{
    public class SerialNumber
    {
        /// <summary>
        /// 生成充值流水号格式:8位日期加6位顺序号,如20190807000001
        /// </summary>
        public string GetSerialNumber()
        {
            string strResult = DateTime.Now.ToString("yyyyMMdd") + "000001";

            string sqlstr = @"SELECT ID FROM sys_serialnumber";
            DataSet ds = MySQLHelper.GetDataSet(sqlstr, CommandType.Text);

            if (ds != null && ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Rows[0][0].ToString() !="0")
            {
                string serialNumber = ds.Tables[0].Rows[0][0].ToString();
                string headDate = serialNumber.Substring(0, 8);
                int lastNumber = int.Parse(serialNumber.Substring(8,6));
                //如果数据库最大值流水号中日期和生成日期在同一天,则顺序号加1
                if (headDate == DateTime.Now.ToString("yyyyMMdd"))
                {
                    lastNumber++;
                    strResult = headDate + lastNumber.ToString("000000");
                }
            }

            string sqlUpdate = @"update sys_serialnumber set ID ='" + strResult + "'";
            int i = MySQLHelper.ExecuteNonQuery(sqlUpdate, CommandType.Text);

            if (i > 0)
            {
                return strResult;
            }
            else
            {
                return "0";
            }
        }
    }
}