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);
|
}
|
|
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);
|
}
|
}
|
}
|