using DTO;
|
using IServices;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.Extensions.Logging;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Threading.Tasks;
|
using System.Transactions;
|
using zhengcaioa.IService;
|
using zhengcaioa.Models;
|
|
namespace zhengcaioa.Controllers.admin
|
{
|
|
public class CustomerWithdrawalController : Controller
|
{
|
|
private readonly IHrDeptService _hrDeptService;
|
private readonly ILogger<CustomerWithdrawalController> _logger;
|
private readonly IAskService _askService;
|
private readonly IWfRunProcessService _wfRunProcessService;
|
private readonly IWfHistoryService _wfHistoryService;
|
private readonly IWfNeeddeelService _wfNeeddeelService;
|
private readonly IAdmGoodsManageService _admGoodsManageService;
|
private readonly ILiaotianService _liaotianService;
|
private readonly IUserService _userService;
|
private readonly IAdmBreakPrecedentService _aAdmBreakPrecedentService;
|
private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService;
|
private readonly IIntentionCustomerService _intentionCustomerService;
|
|
public CustomerWithdrawalController(ILogger<CustomerWithdrawalController> logger, IAskService askService, IHrDeptService hrDeptService, IWfRunProcessService wfRunProcessService
|
, IWfHistoryService wfHistoryService, IWfNeeddeelService wfNeeddeelService
|
, IAdmGoodsManageService admGoodsManageService
|
, ILiaotianService liaotianService
|
, IUserService userService
|
, IAdmBreakPrecedentService aAdmBreakPrecedentService
|
, ICooperatecustomCustomerService cooperatecustomCustomerService
|
, IIntentionCustomerService intentionCustomerService)
|
{
|
_logger = logger;
|
_hrDeptService = hrDeptService;
|
_askService = askService;
|
_wfRunProcessService = wfRunProcessService;
|
_wfHistoryService = wfHistoryService;
|
_wfNeeddeelService = wfNeeddeelService;
|
_admGoodsManageService = admGoodsManageService;
|
_liaotianService = liaotianService;
|
_userService = userService;
|
_aAdmBreakPrecedentService = aAdmBreakPrecedentService;
|
_cooperatecustomCustomerService = cooperatecustomCustomerService;
|
_intentionCustomerService = intentionCustomerService;
|
}
|
|
|
|
|
|
/// <summary>
|
/// 会员提现申请
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult AskCustomerWithdrawal([FromBody] AdmCustomerWithdrawalDTO data)
|
{
|
ReturnMsg<AdmCustomerWithdrawalDTO> returnMsg = new ReturnMsg<AdmCustomerWithdrawalDTO>();
|
returnMsg.code = 2;
|
try
|
{
|
//验证数据完整性
|
if (string.IsNullOrWhiteSpace(data.OrderNo))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有订单号!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (string.IsNullOrWhiteSpace(data.HuiyuanId))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有会员id!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (string.IsNullOrWhiteSpace(data.HuiyuanName))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有会员名称!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (string.IsNullOrWhiteSpace(data.HuiyuanPhone))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有会员电话!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (data.Shenqingtime == DateTime.MinValue)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有申请日期!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (!data.Jine.HasValue)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有提现金额!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (string.IsNullOrWhiteSpace(data.BankAcount))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有银行账户!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (string.IsNullOrWhiteSpace(data.BankName))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有银行名称!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (string.IsNullOrWhiteSpace(data.Username))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有收款人姓名!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
ResultEntity resultEntity = new ResultEntity();
|
using (TransactionScope scope = new TransactionScope())
|
{
|
|
//验证是否重复发起
|
if(_askService.GetCustomerWithdrawalList(data.OrderNo).Count > 0)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "该订单已经发起流程!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
|
|
//流程步骤
|
data.Step = "提交";
|
data.Tongguojujue = "";
|
data.Content = "";
|
data.Tittle = "会员提现申请(" + data.HuiyuanName + ")";
|
|
data.CreaterName = data.HuiyuanName;
|
data.ShenpiStatus = "D";
|
data.RecStatus = "A";
|
data.Creater = "e4c93811-b9b1-4998-89f5-c416ebab0c07";
|
data.Createtime = DateTime.Now;
|
data.Modifier = data.Creater;
|
data.Modifytime = data.Createtime;
|
|
resultEntity = _askService.SaveCustomerWithdrawal(data);
|
if (!resultEntity.Result)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = resultEntity.Message;
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
|
|
|
//发起流程相关
|
|
resultEntity = _wfRunProcessService.WfCustomerWithdrawal(data.Id, data.Step, data.Tongguojujue, "e4c93811-b9b1-4998-89f5-c416ebab0c07", data.Content, data.Tittle, "v1");
|
if (!resultEntity.Result)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = resultEntity.Message;
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
scope.Complete();
|
returnMsg.code = 1;
|
returnMsg.returnObj = null;
|
returnMsg.count = 0;
|
}
|
}
|
catch (Exception ex)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有获取到token";
|
returnMsg.count = 0;
|
|
}
|
return new JsonResult(returnMsg);
|
}
|
|
|
|
|
|
/// <summary>
|
/// 会员提现申请,审批结果
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
public IActionResult GetCustomerWithdrawal(string OrderNo)
|
{
|
ReturnMsg<AdmCustomerWithdrawalDTO> returnMsg = new ReturnMsg<AdmCustomerWithdrawalDTO>();
|
returnMsg.code = 2;
|
try
|
{
|
//验证数据完整性
|
if (string.IsNullOrWhiteSpace(OrderNo))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有订单号!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
|
ResultEntity resultEntity = new ResultEntity();
|
|
var customerWithdrawalDTO = _askService.GetCustomerWithdrawalList(OrderNo).FirstOrDefault();
|
|
|
//验证是否重复发起
|
if (customerWithdrawalDTO == null)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有查找到审批流程!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
|
|
var sysCodeDtls = _liaotianService.GetSYScode("wf_run_process", "shenpi_status");
|
var sysCodeDtl = sysCodeDtls.Where(x => x.CodeSn == customerWithdrawalDTO.ShenpiStatus).FirstOrDefault();
|
if (sysCodeDtl != null)
|
{
|
customerWithdrawalDTO.ShenpiStatusName = sysCodeDtl.Comments;
|
}
|
var wfRunProcessDTO = _wfRunProcessService.GetList(customerWithdrawalDTO.Id, "20").FirstOrDefault();
|
|
if (wfRunProcessDTO == null)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有查找到审批流程!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
var lishiyijian = _wfHistoryService.GetListshenpi(wfRunProcessDTO.Id).LastOrDefault() ;
|
if (lishiyijian == null)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有查找到审批流程!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
customerWithdrawalDTO.Content = lishiyijian.Content;
|
customerWithdrawalDTO.Step = wfRunProcessDTO.Step;
|
|
returnMsg.code = 1;
|
returnMsg.returnObj = customerWithdrawalDTO;
|
returnMsg.count = 1;
|
|
}
|
catch (Exception ex)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有获取到token";
|
returnMsg.count = 0;
|
|
}
|
return new JsonResult(returnMsg);
|
}
|
|
|
|
/// <summary>
|
/// 会员提现申请
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult AskCustomerRefund([FromBody] AdmCustomerWithdrawalDTO data)
|
{
|
ReturnMsg<AdmCustomerWithdrawalDTO> returnMsg = new ReturnMsg<AdmCustomerWithdrawalDTO>();
|
returnMsg.code = 2;
|
try
|
{
|
//验证数据完整性
|
if (string.IsNullOrWhiteSpace(data.OrderNo))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有订单号!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (string.IsNullOrWhiteSpace(data.HuiyuanId))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有会员id!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (string.IsNullOrWhiteSpace(data.HuiyuanName))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有会员名称!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (string.IsNullOrWhiteSpace(data.HuiyuanPhone))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有会员电话!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (data.Shenqingtime == DateTime.MinValue)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有申请日期!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
if (!data.Jine.HasValue)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有提现金额!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
|
ResultEntity resultEntity = new ResultEntity();
|
using (TransactionScope scope = new TransactionScope())
|
{
|
|
//验证是否重复发起
|
if (_askService.GetCustomerWithdrawalList(data.OrderNo).Count > 0)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "该订单已经发起流程!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
|
|
//流程步骤
|
data.Step = "提交";
|
data.Tongguojujue = "";
|
data.Content = "";
|
data.Tittle = "会员退款申请(" + data.HuiyuanName + ")";
|
|
data.CreaterName = data.HuiyuanName;
|
data.ShenpiStatus = "D";
|
data.RecStatus = "A";
|
data.Creater = "e4c93811-b9b1-4998-89f5-c416ebab0c07";
|
data.Createtime = DateTime.Now;
|
data.Modifier = data.Creater;
|
data.Modifytime = data.Createtime;
|
|
resultEntity = _askService.SaveCustomerWithdrawal(data);
|
if (!resultEntity.Result)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = resultEntity.Message;
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
|
|
|
//发起流程相关
|
|
resultEntity = _wfRunProcessService.WfCustomerRefund(data.Id, data.Step, data.Tongguojujue, "e4c93811-b9b1-4998-89f5-c416ebab0c07", data.Content, data.Tittle, "v1");
|
if (!resultEntity.Result)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = resultEntity.Message;
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
scope.Complete();
|
returnMsg.code = 1;
|
returnMsg.returnObj = null;
|
returnMsg.count = 0;
|
}
|
}
|
catch (Exception ex)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有获取到token";
|
returnMsg.count = 0;
|
|
}
|
return new JsonResult(returnMsg);
|
}
|
|
|
|
|
|
/// <summary>
|
/// 会员提现申请,审批结果
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
public IActionResult GetCustomerRefund(string OrderNo)
|
{
|
ReturnMsg<AdmCustomerWithdrawalDTO> returnMsg = new ReturnMsg<AdmCustomerWithdrawalDTO>();
|
returnMsg.code = 2;
|
try
|
{
|
//验证数据完整性
|
if (string.IsNullOrWhiteSpace(OrderNo))
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有订单号!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
|
ResultEntity resultEntity = new ResultEntity();
|
|
var customerWithdrawalDTO = _askService.GetCustomerWithdrawalList(OrderNo).FirstOrDefault();
|
|
|
//验证是否重复发起
|
if (customerWithdrawalDTO == null)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有查找到审批流程!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
|
|
var sysCodeDtls = _liaotianService.GetSYScode("wf_run_process", "shenpi_status");
|
var sysCodeDtl = sysCodeDtls.Where(x => x.CodeSn == customerWithdrawalDTO.ShenpiStatus).FirstOrDefault();
|
if (sysCodeDtl != null)
|
{
|
customerWithdrawalDTO.ShenpiStatusName = sysCodeDtl.Comments;
|
}
|
var wfRunProcessDTO = _wfRunProcessService.GetList(customerWithdrawalDTO.Id, "23").FirstOrDefault();
|
|
if (wfRunProcessDTO == null)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有查找到审批流程!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
|
var lishiyijian = _wfHistoryService.GetListshenpi(wfRunProcessDTO.Id).LastOrDefault();
|
if (lishiyijian == null)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有查找到审批流程!";
|
returnMsg.count = 0;
|
return new JsonResult(returnMsg);
|
}
|
customerWithdrawalDTO.Content = lishiyijian.Content;
|
customerWithdrawalDTO.Step = wfRunProcessDTO.Step;
|
|
returnMsg.code = 1;
|
returnMsg.returnObj = customerWithdrawalDTO;
|
returnMsg.count = 1;
|
|
}
|
catch (Exception ex)
|
{
|
returnMsg.code = 2;
|
returnMsg.error = "没有获取到token";
|
returnMsg.count = 0;
|
|
}
|
return new JsonResult(returnMsg);
|
}
|
}
|
}
|