添加 共赴宁波之春 报名网页
This commit is contained in:
209
20220330_Vote/Vote.Services/ApiController/NbZhiChunService.cs
Normal file
209
20220330_Vote/Vote.Services/ApiController/NbZhiChunService.cs
Normal file
@@ -0,0 +1,209 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Ewide.Core;
|
||||
using Ewide.Core.Util;
|
||||
using Furion;
|
||||
using Furion.ClayObject.Extensions;
|
||||
using Furion.DatabaseAccessor;
|
||||
using Furion.DataEncryption;
|
||||
using Furion.DynamicApiController;
|
||||
using Furion.FriendlyException;
|
||||
using Furion.RemoteRequest.Extensions;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Vote.Services.Dto;
|
||||
using Vote.Services.Entities;
|
||||
|
||||
namespace Vote.Services.ApiController
|
||||
{
|
||||
/// <summary>
|
||||
/// 共赴宁波之春
|
||||
/// </summary>
|
||||
[ApiDescriptionSettings("ningbozhichun", Order = 0)]
|
||||
[Route("/gb/yjb/api/ningbozhichun")]
|
||||
public class NbZhiChunService : IDynamicApiController
|
||||
{
|
||||
private readonly IRepository<Entities.nbzc_person> repPerson;
|
||||
private readonly IRepository<Entities.nbzc_sms_code> repSmsCode;
|
||||
private readonly IMemoryCache _memoryCache;
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="_repNingbo"></param>
|
||||
public NbZhiChunService(IRepository<Entities.nbzc_person> _repNingbo, IRepository<Entities.nbzc_sms_code> _repSmsCode, IMemoryCache memoryCache)
|
||||
{
|
||||
repPerson = _repNingbo;
|
||||
this.repSmsCode = _repSmsCode;
|
||||
_memoryCache = memoryCache;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 提交
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
|
||||
[Route("sendcode")]
|
||||
public async Task<dynamic> SendCode(NbzcSendCodeInput args)
|
||||
{
|
||||
//var data = await repSmsCode.DetachedEntities.Where(p => p.phone == args.phone && !p.IsDeleted && p.expire_time > DateTime.Now)
|
||||
// .FirstOrDefaultAsync();
|
||||
//_ = (data != null) ? throw Oops.Oh("已存在此号码的有效发送记录,不可重复发送") : 1;
|
||||
var lastSend = await repSmsCode.DetachedEntities.Where(p => p.phone == args.phone && !p.IsDeleted).OrderByDescending(a => a.CreatedTime).FirstOrDefaultAsync();
|
||||
_ = lastSend != null && DateTime.Now <= lastSend.CreatedTime.Value.AddMinutes(1) ? throw Oops.Oh("发送过于频繁,请1分钟后再试") : 1;
|
||||
|
||||
//_ = (await repPerson.DetachedEntities.Where(a => !a.IsDeleted && (a.phone == args.phone || a.cardno == args.cardno)).CountAsync() > 0) ? throw Oops.Oh("您已提交,无需再次获取验证码") : 1;
|
||||
string _timeCacheKey = "sms_token_" + args.phone;
|
||||
var code = new Random().Next(1001, 9999);
|
||||
if (App.GetConfig<int>("NingboZhiChun:OpenSms") == 1)
|
||||
{
|
||||
var cacheTokenValue = _memoryCache.Get<string>(_timeCacheKey);
|
||||
if (string.IsNullOrEmpty(cacheTokenValue))
|
||||
{
|
||||
var rslt = await App.GetConfig<string>("NingboZhiChun:SmsTokenUrl").SetBody(new { username = App.GetConfig<string>("NingboZhiChun:SmsAccount"), password = App.GetConfig<string>("NingboZhiChun:SmsPwd") }, "application/json").SetHttpMethod(HttpMethod.Post).SendAsStringAsync();
|
||||
cacheTokenValue = Newtonsoft.Json.Linq.JObject.Parse(rslt)["data"]["token"].ToString();
|
||||
var cacheEntryOptions = new MemoryCacheEntryOptions()
|
||||
.SetSlidingExpiration(TimeSpan.FromMinutes(100));
|
||||
_memoryCache.Set(_timeCacheKey, cacheTokenValue, cacheEntryOptions);
|
||||
}
|
||||
var sendrslt = await App.GetConfig<string>("NingboZhiChun:SmsSendUrl")
|
||||
.SetHttpMethod(HttpMethod.Post)
|
||||
.SetHeaders(new Dictionary<string, object> { { "Authorization", "Bearer " + cacheTokenValue } })
|
||||
.SetBody(new { phone_number = args.phone, sms_content = $"您的验证码是:{code},10分钟内有效。" })
|
||||
.SendAsStringAsync();
|
||||
if (!Newtonsoft.Json.Linq.JObject.Parse(sendrslt)["issuccess"].Value<bool>())
|
||||
throw Oops.Oh("验证码短信发送失败.");
|
||||
}
|
||||
await new Entities.nbzc_sms_code
|
||||
{
|
||||
code = code.ToString(),
|
||||
CreatedTime = DateTime.Now,
|
||||
expire_time = DateTime.Now.AddMinutes(10),
|
||||
IsDeleted = false,
|
||||
phone = args.phone
|
||||
}.InsertOrUpdate();
|
||||
return true;
|
||||
}
|
||||
/// <summary>
|
||||
/// 提交
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
|
||||
public async Task<dynamic> SubmitSubmit(NbzcSubmitInput args)
|
||||
{
|
||||
var lastSend = await repSmsCode.DetachedEntities.Where(p => p.phone == args.phone && !p.IsDeleted).OrderByDescending(a => a.CreatedTime).FirstOrDefaultAsync();
|
||||
_ = (lastSend == null || lastSend.code != args.code || lastSend.expire_time < DateTime.Now) ? throw Oops.Oh("验证码错误或已失效") : 1;
|
||||
//var list = args.projects.Adapt<List<Entities.VoteRecords>>();
|
||||
//删除这个专家上次提交的结果
|
||||
//或者提示不能再次提交
|
||||
_ = (await repPerson.DetachedEntities.Where(a => !a.IsDeleted && (a.phone == args.phone || a.cardno == args.cardno)).CountAsync() > 0) ? throw Oops.Oh("您已提交,无需再次提交") : 1;
|
||||
var now = DateTime.Now;
|
||||
var model = new Entities.nbzc_person
|
||||
{
|
||||
address = args.address,
|
||||
phone = args.phone,
|
||||
cardno = args.cardno,
|
||||
CreatedTime = DateTime.Now,
|
||||
date = args.date,
|
||||
hangye = args.hangye,
|
||||
IsDeleted = false,
|
||||
line = args.line,
|
||||
name = args.name,
|
||||
weixin_number = args.weixin_number
|
||||
};
|
||||
model = await model.InsertOrUpdate();
|
||||
lastSend.IsDeleted = true;
|
||||
await repSmsCode.UpdateIncludeAsync(lastSend, new string[] { nameof(lastSend.IsDeleted) });
|
||||
var token = JWTEncryption.Encrypt(new Dictionary<string, object>() // 加密
|
||||
{
|
||||
{ "UserId", model.Id },
|
||||
{ "Account",model.phone }
|
||||
});
|
||||
return new { success = true, token };
|
||||
}
|
||||
/// <summary>
|
||||
/// 提交
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
|
||||
[Route("getmyinfo")]
|
||||
public async Task<dynamic> GetMyInfo(NbzcGetMyInfoInput args)
|
||||
{
|
||||
var newToken = args.token;
|
||||
nbzc_person entity = null;
|
||||
if (!string.IsNullOrEmpty(args.token))
|
||||
{
|
||||
var tokenData = JWTEncryption.ReadJwtToken(args.token);
|
||||
_ = (tokenData == null) ? throw Oops.Oh("您还没有提交过或者手机号码填写错误") : 1;
|
||||
var userId = tokenData.Claims.Where(a => a.Type == "UserId").FirstOrDefault().Value;
|
||||
entity = await repPerson.DetachedEntities.Where(a => a.Id == userId).FirstOrDefaultAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
_ = (string.IsNullOrEmpty(args.code)) ? throw Oops.Oh("验证码错误或已失效") : 1;
|
||||
var lastSend = await repSmsCode.DetachedEntities.Where(p => p.phone == args.phone && !p.IsDeleted).OrderByDescending(a => a.CreatedTime).FirstOrDefaultAsync();
|
||||
_ = (lastSend == null || lastSend.code != args.code || lastSend.expire_time < DateTime.Now) ? throw Oops.Oh("验证码错误或已失效") : 1;
|
||||
entity = await repPerson.DetachedEntities.Where(a => a.phone == args.phone && !a.IsDeleted).FirstOrDefaultAsync();
|
||||
newToken = JWTEncryption.Encrypt(new Dictionary<string, object>()
|
||||
{
|
||||
{ "UserId", entity.Id },
|
||||
{ "Account",entity.phone }
|
||||
});
|
||||
}
|
||||
return new { success = true, entity, token = newToken };
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取时间线路人数
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
|
||||
[Route("getnumber")]
|
||||
public async Task<dynamic> GetNumber(NbzcGetNumberInput args)
|
||||
{
|
||||
var n = await repPerson.DetachedEntities.Where(a => !a.IsDeleted && a.date == args.date).CountAsync();
|
||||
return new { success = true, n = App.GetConfig<int>("NingboZhiChun:TotalCount") - n };
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取清单
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Route("GetPersonList")]
|
||||
public async Task<dynamic> GetPersonList(NbzcGetListInput args)
|
||||
{
|
||||
var list = await repPerson.DetachedEntities.Where(a => !a.IsDeleted).OrderByDescending(a => a.CreatedTime).ToListAsync();
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 导出Excel
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Route("export_excel")]
|
||||
public async Task<dynamic> ExportExcel(NbzcGetListInput args)
|
||||
{
|
||||
var list = await repPerson.DetachedEntities.Where(a => !a.IsDeleted).OrderByDescending(a => a.CreatedTime).ToListAsync();
|
||||
var filepath = Tools.ExcelHelper.WriteExcelNingBoZhiChun(list);
|
||||
return new FileStreamResult(new FileStream(filepath, FileMode.Open), "application/octet-stream") { FileDownloadName = filepath };
|
||||
}
|
||||
}
|
||||
}
|
||||
133
20220330_Vote/Vote.Services/Dto/NbzcInput.cs
Normal file
133
20220330_Vote/Vote.Services/Dto/NbzcInput.cs
Normal file
@@ -0,0 +1,133 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Vote.Services.Dto
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class NbzcInput
|
||||
{
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class NbzcGetMyInfoInput
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
//[Required]
|
||||
public string token { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string phone { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
//[Required]
|
||||
public string code { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class NbzcGetListInput
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
//[Required]
|
||||
public string phone { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class NbzcSendCodeInput
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string phone { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string cardno { get; set; }
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class NbzcGetNumberInput
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string date { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
//[Required]
|
||||
public string line { get; set; }
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class NbzcSubmitInput
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string code { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string address { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string cardno { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string date { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string hangye { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string line { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string weixin_number { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string name { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
68
20220330_Vote/Vote.Services/Entities/nbzc_person.cs
Normal file
68
20220330_Vote/Vote.Services/Entities/nbzc_person.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Ewide.Core;
|
||||
|
||||
namespace Vote.Services.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 共赴宁波之春-登记人员表
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class nbzc_person : DEntityBase
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 姓名
|
||||
/// </summary>
|
||||
[DisplayName("姓名")]
|
||||
public string name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 手机号码
|
||||
/// </summary>
|
||||
[DisplayName("手机号码")]
|
||||
public string phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微信号码
|
||||
/// </summary>
|
||||
[DisplayName("微信号码")]
|
||||
public string weixin_number { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 身份证号码
|
||||
/// </summary>
|
||||
[DisplayName("身份证号码")]
|
||||
public string cardno { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 行业
|
||||
/// </summary>
|
||||
[DisplayName("行业")]
|
||||
public string hangye { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所在地,地址
|
||||
/// </summary>
|
||||
[DisplayName("所在地,地址")]
|
||||
public string address { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日期,不固定格式
|
||||
/// </summary>
|
||||
[DisplayName("日期,不固定格式")]
|
||||
public string date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// x线路
|
||||
/// </summary>
|
||||
[DisplayName("x线路")]
|
||||
public string line { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
37
20220330_Vote/Vote.Services/Entities/nbzc_sms_code.cs
Normal file
37
20220330_Vote/Vote.Services/Entities/nbzc_sms_code.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Ewide.Core;
|
||||
|
||||
namespace Vote.Services.Entities
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class nbzc_sms_code : DEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 手机号码
|
||||
/// </summary>
|
||||
[DisplayName("手机号码")]
|
||||
public string phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 验证码
|
||||
/// </summary>
|
||||
[DisplayName("验证码")]
|
||||
public string code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 过期时间
|
||||
/// </summary>
|
||||
[DisplayName("过期时间")]
|
||||
public DateTime expire_time { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,7 @@ using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using Vote.Services.Dto;
|
||||
using Vote.Services.Entities;
|
||||
|
||||
namespace Vote.Services.Tools
|
||||
{
|
||||
@@ -208,5 +209,63 @@ namespace Vote.Services.Tools
|
||||
throw Oops.Oh("文件被占用,请检查文件模板");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string WriteExcelNingBoZhiChun(List<nbzc_person> data)
|
||||
{
|
||||
try
|
||||
{
|
||||
string template_name = "共赴宁波之春模板.xlsx";
|
||||
string excelFilePath = $"{App.WebHostEnvironment.WebRootPath}\\ExcelTemplate\\{template_name}";
|
||||
string outputPath = string.Empty;
|
||||
if (!string.IsNullOrEmpty(excelFilePath))
|
||||
{
|
||||
using (FileStream excelFileStream = System.IO.File.OpenRead(excelFilePath))
|
||||
{
|
||||
bool isCompatible = ExcelHelper.GetIsCompatible(excelFilePath);
|
||||
IWorkbook workbook = ExcelHelper.CreateWorkbook(isCompatible, excelFileStream);
|
||||
ISheet sheet = null;
|
||||
sheet = workbook.GetSheetAt(0);
|
||||
//从第几行开始 , 比如 行号是4 , 就写3
|
||||
var startRowIndex = 1;
|
||||
for (int i = 0; i < data.Count; i++)
|
||||
{
|
||||
var c_rowindex = startRowIndex + i;
|
||||
var row = sheet.CreateRow(c_rowindex);
|
||||
int cell_start_index = 0;
|
||||
row.CreateCell(cell_start_index).SetCellValue(data[i].CreatedTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||
row.CreateCell(cell_start_index + 1).SetCellValue(data[i].name);
|
||||
row.CreateCell(cell_start_index + 2).SetCellValue(data[i].phone);
|
||||
row.CreateCell(cell_start_index + 3).SetCellValue(data[i].weixin_number);
|
||||
row.CreateCell(cell_start_index + 4).SetCellValue(data[i].cardno);
|
||||
row.CreateCell(cell_start_index + 5).SetCellValue(data[i].hangye);
|
||||
row.CreateCell(cell_start_index + 6).SetCellValue(data[i].date);
|
||||
row.CreateCell(cell_start_index + 7).SetCellValue(data[i].line);
|
||||
row.CreateCell(cell_start_index + 8).SetCellValue(data[i].address);
|
||||
}
|
||||
var file = new FileInfo(excelFilePath);
|
||||
var savePath = file.DirectoryName + "\\OutPut\\";
|
||||
if (!Directory.Exists(savePath))
|
||||
Directory.CreateDirectory(savePath);
|
||||
outputPath = savePath + DateTime.Now.ToString("yyyyMMddHHmmsss") + "-" + template_name;
|
||||
using (var filess = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read))
|
||||
{
|
||||
workbook.Write(filess);
|
||||
}
|
||||
}
|
||||
}
|
||||
return outputPath;
|
||||
}
|
||||
catch (System.IO.IOException ioex)
|
||||
{
|
||||
throw Oops.Oh("文件被占用,请检查文件模板");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Aspose.Words" Version="23.1.0" />
|
||||
<PackageReference Include="Furion" Version="4.5.0" />
|
||||
<PackageReference Include="Furion" Version="4.8.7.6" />
|
||||
<PackageReference Include="HtmlAgilityPack" Version="1.11.46" />
|
||||
<PackageReference Include="OnceMi.AspNetCore.OSS" Version="1.1.9" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -45,6 +45,53 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Vote.Services.ApiController.NbZhiChunService">
|
||||
<summary>
|
||||
共赴宁波之春
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.NbZhiChunService.#ctor(Furion.DatabaseAccessor.IRepository{Vote.Services.Entities.nbzc_person},Furion.DatabaseAccessor.IRepository{Vote.Services.Entities.nbzc_sms_code},Microsoft.Extensions.Caching.Memory.IMemoryCache)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="_repNingbo"></param>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.NbZhiChunService.SendCode(Vote.Services.Dto.NbzcSendCodeInput)">
|
||||
<summary>
|
||||
提交
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.NbZhiChunService.SubmitSubmit(Vote.Services.Dto.NbzcSubmitInput)">
|
||||
<summary>
|
||||
提交
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.NbZhiChunService.GetMyInfo(Vote.Services.Dto.NbzcGetMyInfoInput)">
|
||||
<summary>
|
||||
提交
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.NbZhiChunService.GetNumber(Vote.Services.Dto.NbzcGetNumberInput)">
|
||||
<summary>
|
||||
获取时间线路人数
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.NbZhiChunService.GetPersonList(Vote.Services.Dto.NbzcGetListInput)">
|
||||
<summary>
|
||||
获取清单
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.NbZhiChunService.ExportExcel(Vote.Services.Dto.NbzcGetListInput)">
|
||||
<summary>
|
||||
导出Excel
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Vote.Services.ApiController.ProjectsService">
|
||||
<summary>
|
||||
项目
|
||||
@@ -97,6 +144,121 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Dto.NbzcInput">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Dto.NbzcGetMyInfoInput">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcGetMyInfoInput.token">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcGetMyInfoInput.phone">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcGetMyInfoInput.code">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Dto.NbzcGetListInput">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcGetListInput.phone">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Dto.NbzcSendCodeInput">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSendCodeInput.phone">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSendCodeInput.cardno">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Dto.NbzcGetNumberInput">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcGetNumberInput.date">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcGetNumberInput.line">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Dto.NbzcSubmitInput">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSubmitInput.code">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSubmitInput.phone">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSubmitInput.address">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSubmitInput.cardno">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSubmitInput.date">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSubmitInput.hangye">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSubmitInput.line">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSubmitInput.weixin_number">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.NbzcSubmitInput.name">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Dto.GetObjectInput">
|
||||
<summary>
|
||||
|
||||
@@ -262,6 +424,71 @@
|
||||
登录码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Entities.nbzc_person">
|
||||
<summary>
|
||||
共赴宁波之春-登记人员表
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_person.name">
|
||||
<summary>
|
||||
姓名
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_person.phone">
|
||||
<summary>
|
||||
手机号码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_person.weixin_number">
|
||||
<summary>
|
||||
微信号码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_person.cardno">
|
||||
<summary>
|
||||
身份证号码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_person.hangye">
|
||||
<summary>
|
||||
行业
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_person.address">
|
||||
<summary>
|
||||
所在地,地址
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_person.date">
|
||||
<summary>
|
||||
日期,不固定格式
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_person.line">
|
||||
<summary>
|
||||
x线路
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Entities.nbzc_sms_code">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_sms_code.phone">
|
||||
<summary>
|
||||
手机号码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_sms_code.code">
|
||||
<summary>
|
||||
验证码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.nbzc_sms_code.expire_time">
|
||||
<summary>
|
||||
过期时间
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Entities.Projects">
|
||||
<summary>
|
||||
项目表
|
||||
@@ -394,6 +621,12 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.Tools.ExcelHelper.WriteExcelNingBoZhiChun(System.Collections.Generic.List{Vote.Services.Entities.nbzc_person})">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.Tools.HtmlHelper.GetHtmlSource2(System.String)">
|
||||
<summary>方法一:比较推荐
|
||||
用HttpWebRequest取得网页源码
|
||||
|
||||
Reference in New Issue
Block a user