public BsTableDataSource <ADCDQRCodeViewModel> POST(NoVerifyQRCodeList request)
 {
     return(NoVerifyZZTXManager.QRCodeList(request));
 }
Ejemplo n.º 2
0
        public BsTableDataSource <ADCDQRCodeViewModel> QRCodeList(NoVerifyQRCodeList request)
        {
            //if (string.IsNullOrEmpty(adcd)) throw new Exception("adcd无效");
            var _adcd = string.IsNullOrEmpty(request.adcd) ? adcd : request.adcd;
            var _year = request.year == null ? DateTime.Now.Year : request.year;

            using (var db = DbFactory.Open())
            {
                var builder = db.From <ADCDInfo>();
                builder.LeftJoin <ADCDInfo, ADCDQRCode>((x, y) => x.adcd == y.adcd);
                builder.Where(w => w.adcd.Contains(_adcd.Substring(0, 9)) && w.adcd != _adcd);
                if (!string.IsNullOrEmpty(request.adnm))
                {
                    builder.Where(w => w.adnm.Contains(request.adnm));
                }
                builder.Select(" ADCDQRCode.id,ADCDQRCode.qrpath,ADCDQRCode.qrname,ADCDInfo.adcd,ADCDInfo.adnm");

                var count = db.Count(builder);

                if (!string.IsNullOrEmpty(request.Sort) && !string.IsNullOrEmpty(request.Order) && request.Order == "asc")
                {
                    builder.OrderBy(o => request.Sort);
                }
                else if (!string.IsNullOrEmpty(request.Sort) && !string.IsNullOrEmpty(request.Order) && request.Order == "desc")
                {
                    builder.OrderByDescending(o => request.Sort);
                }
                else
                {
                    builder.OrderBy(o => o.adcd);
                }

                //var rows = request.PageSize == 0 ? 10 : request.PageSize;
                //var skip = request.PageIndex == 0 ? 0 : request.PageIndex * rows;

                //builder.Limit(skip, rows);
                var RList = db.Select <ADCDQRCodeViewModel>(builder);
                if (!string.IsNullOrEmpty(request.adcds))
                {
                    List <ADCDQRCodeViewModel> lstqrcode = new List <ADCDQRCodeViewModel>();
                    var A = request.adcds.Split(',');
                    for (var i = 0; i < A.Length; i++)
                    {
                        var f = RList.Single(w => w.adcd == A[i]);
                        if (f != null)
                        {
                            ADCDQRCode qrcode = new ADCDQRCode();
                            qrcode.adcd = f.adcd;
                            var filename = f.adnm + f.adcd.Substring(9, 3);
                            if (string.IsNullOrEmpty(f.qrpath))
                            {
                                //新增
                                string str = ConfigurationManager.AppSettings["QRCodeUrl"].ToString() + "?a=" + f.adcd + "";
                                qrcode.qrpath = QRCodeHelper.GetQRCode(str, RealName, filename);
                                qrcode.qrname = filename;
                                db.Insert(qrcode);
                            }
                            else
                            {
                                //删除
                                var filepath = System.Web.HttpContext.Current.Server.MapPath("~/" + f.qrpath);
                                File.Delete(filepath);
                                string str = ConfigurationManager.AppSettings["QRCodeUrl"].ToString() + "?a=" + f.adcd + "";
                                qrcode.qrpath = QRCodeHelper.GetQRCode(str, RealName, filename);
                                qrcode.qrname = filename;
                                db.Update <ADCDQRCode>(qrcode, w => w.adcd == f.adcd);
                            }
                            ADCDQRCodeViewModel qrv = new ADCDQRCodeViewModel()
                            {
                                adcd   = f.adcd,
                                adnm   = f.adnm,
                                qrname = f.qrname,
                                qrpath = qrcode.qrpath
                            };
                            lstqrcode.Add(qrv);
                        }
                    }
                    return(new BsTableDataSource <ADCDQRCodeViewModel>()
                    {
                        rows = lstqrcode, total = lstqrcode.Count()
                    });
                }
                return(new BsTableDataSource <ADCDQRCodeViewModel>()
                {
                    rows = RList, total = count
                });
            }
        }