Platform upgrade: login auth fix, OCR/OSS upload, system menus and dicts, weather dashboard, weighing and invoice modules

This commit is contained in:
2026-08-14 01:12:33 +08:00
parent c377421a3e
commit 8099ebae0a
75 changed files with 5611 additions and 473 deletions
@@ -31,6 +31,7 @@ public class FarmersController(AppDbContext db) : ControllerBase
query = query.Where(f => f.Village == village);
if (!string.IsNullOrWhiteSpace(keyword))
query = query.Where(f => f.Name.Contains(keyword)
|| f.PinyinInitials.Contains(keyword.ToUpperInvariant())
|| f.Phone.Contains(keyword)
|| f.IdCard.Contains(keyword)
|| f.Village.Contains(keyword)
@@ -52,9 +53,12 @@ public class FarmersController(AppDbContext db) : ControllerBase
{
var query = db.Farmers.Where(f => f.Status == FarmerStatus.Active).AsQueryable();
if (!string.IsNullOrWhiteSpace(keyword))
query = query.Where(f => f.Name.Contains(keyword) || f.Phone.Contains(keyword) || f.IdCard.Contains(keyword));
query = query.Where(f => f.Name.Contains(keyword)
|| f.PinyinInitials.Contains(keyword.ToUpperInvariant())
|| f.Phone.Contains(keyword)
|| f.IdCard.Contains(keyword));
var items = await query.OrderByDescending(f => f.Id).Take(limit)
.Select(f => new { f.Id, f.Name, f.Phone, f.Province, f.County, f.Township, f.Village, f.GroupName, f.IdCard }).ToListAsync();
.Select(f => new { f.Id, f.Name, f.Phone, f.Province, f.County, f.Township, f.Village, f.GroupName, f.IdCard, f.PinyinInitials }).ToListAsync();
return Ok(items);
}
@@ -88,7 +92,8 @@ public class FarmersController(AppDbContext db) : ControllerBase
var farmer = new Farmer
{
Name = req.Name, IdCard = req.IdCard, Gender = req.Gender, FarmerType = req.FarmerType,
Name = req.Name, PinyinInitials = req.PinyinInitials ?? string.Empty,
IdCard = req.IdCard, Gender = req.Gender, FarmerType = req.FarmerType,
Phone = req.Phone,
Province = req.Province, County = req.County, Township = req.Township,
Village = req.Village, GroupName = req.GroupName,
@@ -112,7 +117,8 @@ public class FarmersController(AppDbContext db) : ControllerBase
if (req.IdCard != farmer.IdCard && await db.Farmers.AnyAsync(f => f.IdCard == req.IdCard))
return BadRequest(new { message = "该身份证号已存在" });
farmer.Name = req.Name; farmer.IdCard = req.IdCard; farmer.Gender = req.Gender;
farmer.Name = req.Name; farmer.PinyinInitials = req.PinyinInitials ?? string.Empty;
farmer.IdCard = req.IdCard; farmer.Gender = req.Gender;
farmer.FarmerType = req.FarmerType;
farmer.Phone = req.Phone;
farmer.Province = req.Province; farmer.County = req.County;