初始提交

This commit is contained in:
wanyongkang
2020-10-07 20:25:03 +08:00
commit d318014316
3809 changed files with 263103 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
using Hncore.Infrastructure.Common;
using Hncore.Infrastructure.Extension;
using Hncore.Infrastructure.WebApi;
using Hncore.Pass.BaseInfo.Models;
using Hncore.Pass.BaseInfo.Request;
using Hncore.Pass.BaseInfo.Request.User;
using Hncore.Pass.BaseInfo.Service;
using Hncore.Pass.Vpn.Service;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using Hncore.Infrastructure.EntitiesExtension;
namespace Hncore.Pass.BaseInfo.Controllers
{
[ApiVersion("1.0")]
[Route("api/baseinfo/v{version:apiVersion}/chargeorder/[action]")]
public class ChargeOrderController : HncoreControllerBase
{
private UserService _userService;
private WxAppUserService m_WxAppUserService;
private IConfiguration _Configuration;
private UserScoreService m_UserScoreService;
private UserChargeOrderService m_ChargeOrderService;
public ChargeOrderController(UserService userService
, UserScoreService _UserScoreService
, UserChargeOrderService _ChargeOrderService
, IConfiguration configuration)
{
_userService = userService;
_Configuration = configuration;
m_ChargeOrderService = _ChargeOrderService;
m_UserScoreService = _UserScoreService;
}
public async Task<ApiResult> Page([FromQuery]QueryChargeOrdertRequest request)
{
Expression<Func<UserChargeOrderEntity, bool>> expr = m => m.OrderState == UOrderStatus.PayOk || m.OrderState == UOrderStatus.Complete;
if (request.KeyWord.Has())
{
expr = expr.And(m =>
m.UserName.Contains(request.KeyWord)
|| m.OrderNo.Contains(request.KeyWord)
|| m.TradeNo.Contains(request.KeyWord));
}
if (request.BTime.HasValue && request.ETime.HasValue)
{
expr = expr.And(m => m.CreateTime >= request.BTime && m.CreateTime <= request.ETime);
}
var ret = await m_ChargeOrderService.PageDesc(request.PageIndex, request.PageSize, expr, true, m => m.Id);
var data = ret.ToApiResult();
return data;
}
[HttpGet]
public async Task<IActionResult> ExportOrder([FromQuery]QueryChargeOrdertRequest request)
{
Expression<Func<UserChargeOrderEntity, bool>> expr = m => m.OrderState == UOrderStatus.PayOk || m.OrderState == UOrderStatus.Complete;
if (request.KeyWord.Has())
{
expr = expr.And(m =>
m.UserName.Contains(request.KeyWord)
|| m.OrderNo.Contains(request.KeyWord)
|| m.TradeNo.Contains(request.KeyWord));
}
if (request.BTime.HasValue && request.ETime.HasValue)
{
expr = expr.And(m => m.CreateTime >= request.BTime && m.CreateTime <= request.ETime);
}
var ret = await m_ChargeOrderService.PageDesc(1, 10000, expr, true, m => m.Id);
var data = new ExcelData<UserChargeOrderEntity>
{
SheetName = DateTime.Now.ToString("yyyy-MM-dd"),
Data = ret.List
};
var title = new List<ExcelTitle>(){
new ExcelTitle { Property = "CreateTime", Title = "创建日期",Format=(val)=>((DateTime) val).ToString("yyyy-MM-dd hh:mm:ss") },
new ExcelTitle { Property = "OrderNo", Title = "订单号" },
new ExcelTitle { Property = "TradeNo", Title = "交易号" },
new ExcelTitle { Property = "UserName", Title = "用户" },
new ExcelTitle { Property = "OrderAmount", Title = "充值金额" },
};
var fileBytes = ExcelHelper.ExportListToExcel(data, title);
var fileName = $"{DateTime.Now.ToString("yyyyMMdd")}充值明细.xlsx";
Response.Headers.Add("X-Suggested-Filename", fileName.UrlEncode());
return File(fileBytes, "application/octet-stream", fileName);
}
}
}

View File

@@ -0,0 +1,103 @@
using Hncore.Infrastructure.Common;
using Hncore.Infrastructure.WebApi;
using Hncore.Pass.BaseInfo.Models;
using Hncore.Pass.BaseInfo.Request;
using Hncore.Pass.BaseInfo.Request.Manager;
using Hncore.Pass.BaseInfo.Request.User;
using Hncore.Pass.BaseInfo.Service;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using System;
using System.Threading.Tasks;
using System.Web;
namespace Hncore.Pass.BaseInfo.Controllers
{
[ApiVersion("1.0")]
[Route("api/baseinfo/v{version:apiVersion}/Manager/[action]")]
public class ManagerController : HncoreControllerBase
{
private ManageService _manageService;
private IConfiguration _Configuration;
public ManagerController(ManageService manageService, IConfiguration configuration)
{
_manageService = manageService;
_Configuration = configuration;
}
/// <summary>
/// 登录
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost, AllowAnonymous]
public async Task<ApiResult> LogIn([FromBody] LoginRequest request)
{
return Success(await _manageService.Login(request));
}
/// <summary>
/// 登录
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost, AllowAnonymous]
public async Task<ApiResult> LogInTemp([FromBody] LoginRequest request)
{
return Success(await _manageService.LoginTemp(request));
}
/// <summary>
/// 登录
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost, AllowAnonymous]
public async Task<ApiResult> LoginAndroidTemp([FromBody] LoginRequest request)
{
return Success(await _manageService.LoginAndroidTemp(request));
}
/// <summary>
/// 图片验证码
/// </summary>
/// <returns></returns>
[AllowAnonymous]
public async Task<ApiResult> GetValidateCode()
{
var code = "1234";// vCode.MakeCode(4);
var key = "validate:" + DateTime.Now.ToString("yyyyMMddHHmmss") + "-" + Guid.NewGuid().ToString("N");
if (!EnvironmentVariableHelper.IsAspNetCoreProduction)
{
LogHelper.Debug("登录验证码", $"code:{code},key:{key}");
}
var expireSeconds = 600;
// await RedisHelper.SetAsync(key, code, expireSeconds);
var img = ValidateCodeHelper.GenerateCodeImg(code);
var data = new
{
key = key,
img = img,
expireSeconds = expireSeconds,
};
return Success(data);
}
/// <summary>
/// 刷新token
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<ApiResult> AgainGetToken(RequestBase<AgainTokenDTO> request)
{
request.TenantId = Request.GetManageUserInfo().TenantId;
request.OperaterId = Request.GetManageUserInfo().OperaterId;
return Success(await _manageService.AgainGetToken(request),"");
}
}
}

View File

@@ -0,0 +1,305 @@
using Hncore.Infrastructure.Common;
using Hncore.Infrastructure.EntitiesExtension;
using Hncore.Infrastructure.Extension;
using Hncore.Infrastructure.WebApi;
using Hncore.Pass.BaseInfo.Models;
using Hncore.Pass.BaseInfo.Request;
using Hncore.Pass.BaseInfo.Request.User;
using Hncore.Pass.BaseInfo.Service;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace Hncore.Pass.BaseInfo.Controllers
{
[ApiVersion("1.0")]
[Route("api/baseinfo/v{version:apiVersion}/user/[action]")]
public class UserController : HncoreControllerBase
{
private UserService _userService;
private WxAppUserService m_WxAppUserService;
private IConfiguration _Configuration;
private UserScoreService m_UserScoreService;
public UserController(UserService userService, UserScoreService _UserScoreService, WxAppUserService _WxAppUserService, IConfiguration configuration)
{
_userService = userService;
_Configuration = configuration;
m_WxAppUserService = _WxAppUserService;
m_UserScoreService = _UserScoreService;
}
/// <summary>
/// 登录
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost, AllowAnonymous]
public async Task<ApiResult> WxLogin([FromBody] WxLoginRequest request)
{
return Success(await _userService.LoginAndBindWx(request));
}
/// <summary>
/// 登录
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost, AllowAnonymous]
public async Task<ApiResult> WebLogin([FromBody] LoginRequest request)
{
return Success(await _userService.Login(request));
}
/// <summary>
/// 添加
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public async Task<ApiResult> Post([FromBody]PostUserRequest request)
{
var entity = request.MapTo<User>();
entity.CreateType = UserCreateType.ManagerAdd;
return await _userService.Regist(entity);
}
/// <summary>
/// 修改
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public async Task<ApiResult> Put([FromBody]PostUserRequest request)
{
if (request.Password.NotHas())
{
return Error("密码不能为空");
}
var userEntity = await _userService.GetById(request.Id);
userEntity.Phone = request.Phone;
userEntity.QQ = request.QQ;
userEntity.Wx = request.Wx;
userEntity.TaoBao = request.TaoBao;
userEntity.Email = request.Email;
userEntity.Password =UserService.HashPassword(request.Password);
var ret= await _userService.Update(userEntity);
if (ret)
{
return Success("设置成功");
}
else
{
return Error("设置失败");
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost]
public async Task<ApiResult> Delete([FromQuery]int id)
{
var flag = await _userService.DeleteById(id);
if (flag)
return Success();
else
return Error("删除失败");
}
/// <summary>
/// 查询
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet]
public async Task<ApiResult> Page([FromQuery]PageRequestBase request)
{
var ret = await _userService.PageDesc(request.PageIndex, request.PageSize,
m=> request.KeyWord.NotHas()
||m.LoginCode.Contains(request.KeyWord)
|| m.Phone.Contains(request.KeyWord)
|| m.Name.Contains(request.KeyWord),true,m=>m.Id);
ret.List.ForEach(m => m.Password = "");
var data = ret.ToApiResult();
return data;
}
[HttpGet]
public async Task<ApiResult> Search([FromQuery]QueryUserRequest request)
{
Expression<Func<User, bool>> exp = (m) => 1 == 1;
if (request.All.HasValue && request.All == 0)
{
exp = exp.And(m => m.ManagerId == 0);
}
if (request.KeyWord.Has())
{
exp = exp.And(m => m.Phone.Contains(request.KeyWord));
}
var ret = await _userService.PageDesc(request.PageIndex, request.PageSize, exp, true, m => m.Id);
ret.List.ForEach(m => m.Password = "");
var data = ret.ToApiResult();
return data;
}
[HttpGet]
public async Task<ApiResult> SearchInfo([FromQuery]PageRequestBase request)
{
if (request.KeyWord.Has())
{
var ret = await _userService.PageDesc(request.PageIndex, 50,
m => m.LoginCode== request.KeyWord
|| m.Phone== request.KeyWord, true, m => m.Id);
ret.List.ForEach(m => m.Password = "");
var data = ret.ToApiResult();
return data;
}
return Error("请输入关键字");
}
public async Task<ApiResult> UpdateAmount([FromBody] UpdateAmountRequest request)
{
request.OperateUserName = this.Request.GetManageUserInfo().LoginName;
return await _userService.UpdateAmount(request);
}
public async Task<ApiResult> UpdateTestCount([FromBody] UpdateTestCountRequest request)
{
var userEntity = await _userService.GetById(request.UserId);
userEntity.TestCountLimit = request.Limit;
await _userService.Update(userEntity);
return Success();
}
//public async Task<ApiResult> ChargeByTaoBao([FromBody] UpdateAmountRequest request)
//{
// return await _userService.UpdateAmount(request);
//}
[HttpGet]
public async Task<ApiResult> AmountDetail([FromQuery] int userId)
{
var model = await m_UserScoreService.Details(userId);
return Success(model);
}
[HttpGet]
public async Task<ApiResult> AmountDetails([FromQuery] QueryAmountRequest request)
{
var model = await m_UserScoreService.Details(request);
return model.ToApiResult();
}
[HttpGet]
public async Task<IActionResult> ExportAmount([FromQuery]QueryAmountRequest request)
{
var model = await m_UserScoreService.DetailsAll(request);
var data = new ExcelData<UserScore>
{
SheetName = DateTime.Now.ToString("yyyy-MM-dd"),
Data = model
};
var title = new List<ExcelTitle>(){
new ExcelTitle { Property = "CreateTime", Title = "创建日期",Format=(val)=>((DateTime) val).ToString("yyyy-MM-dd hh:mm:ss") },
new ExcelTitle { Property = "UserName", Title = "用户" },
new ExcelTitle { Property = "OperateUserName", Title = "操作人员" },
new ExcelTitle { Property = "ScoreTypeName", Title = "资金项目" },
new ExcelTitle { Property = "ScoreValue", Title = "金额" }
};
var fileBytes = ExcelHelper.ExportListToExcel(data, title);
var fileName = $"{DateTime.Now.ToString("yyyyMMdd")}资金明细.xlsx";
Response.Headers.Add("X-Suggested-Filename", fileName.UrlEncode());
return File(fileBytes, "application/octet-stream", fileName);
}
[HttpGet]
public async Task<IActionResult> Export()
{
var ret = await _userService.GetAll(true);
var data = new ExcelData<User>
{
SheetName = DateTime.Now.ToString("yyyy-MM-dd"),
Data = ret
};
var title = new List<ExcelTitle>(){
new ExcelTitle { Property = "LoginCode", Title = "手机号" },
new ExcelTitle { Property = "CreateTime", Title = "注册时间",Format=(val)=>((DateTime) val).ToString("yyyy-MM-dd hh:mm:ss") },
new ExcelTitle { Property = "CreateType", Title = "注册方式", Format=(val)=>((UserCreateType)val).GetEnumDisplayName() },
new ExcelTitle { Property = "RestAmount", Title = "余额"},
new ExcelTitle { Property = "TestCountLimit", Title = "测试限额",Format=(val)=>((int)val)==0?3:(int)val },
new ExcelTitle { Property = "UseTestCount", Title = "领用数",Format=(val)=>((int)val)==0?3:(int)val },
new ExcelTitle { Property = "Wx", Title = "微信"},
new ExcelTitle { Property = "QQ", Title = "QQ"},
new ExcelTitle { Property = "Email", Title = "Email"},
new ExcelTitle { Property = "TaoBao", Title = "淘宝"},
new ExcelTitle { Property = "WangWang", Title = "旺旺"},
};
var fileBytes = ExcelHelper.ExportListToExcel(data, title);
var fileName = $"{DateTime.Now.ToString("yyyyMMdd")}用户明细.xlsx";
Response.Headers.Add("X-Suggested-Filename", fileName.UrlEncode());
return File(fileBytes, "application/octet-stream", fileName);
}
[HttpPost]
public async Task<ApiResult> SetManager([FromBody] SetManagerRequest request)
{
if (request.ManagerId == 0 || request.ManagerName.NotHas())
{
return Error("请选择客户经理");
}
if (request.UserIds == null || request.UserIds.Count() == 0)
{
return Error("请选择用户");
}
var users = await _userService.Query(m => request.UserIds.Contains(m.Id)).ToListAsync();
if (users != null)
{
users.ForEach(m =>
{
m.ManagerId = request.ManagerId;
m.ManagerName = request.ManagerName;
});
await _userService.Update(users);
}
return Success();
}
[HttpPost]
public async Task<ApiResult> UpdateProfile([FromBody] UpdateProfileRequest request)
{
var userInfo = await _userService.GetById(request.UserId);
userInfo.Profile = request.Profile;
await _userService.Update(userInfo);
return Success();
}
}
}