105 lines
4.7 KiB
C#
105 lines
4.7 KiB
C#
using DG.EntityFramework;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Data;
|
|
using MySqlConnector;
|
|
using DG.Tool;
|
|
using Serilog;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Zxd.Domain.Impl;
|
|
|
|
namespace Zxd.Domain
|
|
{
|
|
public class ResCustomerDomain : IResCustomerDomain
|
|
{
|
|
private readonly IBaseRepository<ZxdDbContext> _repository;
|
|
private readonly ISystemConfigDomain _systemConfigService;
|
|
|
|
public ResCustomerDomain(IBaseRepository<ZxdDbContext> repository,
|
|
ISystemConfigDomain systemConfigService)
|
|
{
|
|
_repository = repository;
|
|
_systemConfigService = systemConfigService;
|
|
}
|
|
|
|
public async Task<int> ResgisterCustomer(string CNumber, string ResId, string CustomerFrom, string customerDetailXml = null)
|
|
{
|
|
try
|
|
{
|
|
var mobile = await _repository.GetRepository<RES_MOBILE_MD5>().Query().FirstOrDefaultAsync(p => p.ResId == ResId);
|
|
if (mobile == null)
|
|
{
|
|
var md5 = ResUtil.UserMd5(CNumber);
|
|
await _repository.GetRepository<RES_MOBILE_MD5>().InsertAsync(new RES_MOBILE_MD5() { ResId = ResId, Md5 = md5 });
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Log.Error(ex.ToString());
|
|
}
|
|
|
|
return await ResgisterCustomerByProcedure(CNumber, ResId, CustomerFrom, customerDetailXml);
|
|
}
|
|
|
|
public async Task<int> ResgisterCustomerByProcedure(string CNumber, string ResId, string CustomerFrom, string customerDetailXml = null)
|
|
{
|
|
try
|
|
{
|
|
CNumber = CNumber.Replace("+86", "");
|
|
if (CNumber.StartsWith("01") && CNumber.Length == 12)
|
|
{
|
|
CNumber = CNumber.Substring(1);
|
|
}
|
|
string enkey = _systemConfigService.GetSystemConfig().CRMClientKey;
|
|
ClientKey clientid = _systemConfigService.GetClientKey(enkey);
|
|
var param = new List<MySqlParameter>
|
|
{
|
|
new MySqlParameter() { ParameterName = "p_CNumber", DbType = DbType.String, Value =SecurityHelper.EncyptData(CNumber,clientid.AccessKey)},
|
|
new MySqlParameter() { ParameterName = "p_ResId", DbType = DbType.String, Value = ResId },
|
|
new MySqlParameter() { ParameterName = "p_CustomerFrom", DbType = DbType.String, Value = CustomerFrom }
|
|
};
|
|
//param.Add(!string.IsNullOrEmpty(customerDetailXml) ? new MySqlParameter() { ParameterName = "p_customerDetailXml", DbType = DbType.String, Value = customerDetailXml } : new MySqlParameter() { ParameterName = "p_customerDetailXml", DbType = DbType.String, Value = DBNull.Value });
|
|
param.Add(!string.IsNullOrEmpty(CNumber) ? new MySqlParameter() { ParameterName = "p_ECNumber", DbType = DbType.String, Value = ResUtil.NumberFormat(CNumber) } : new MySqlParameter() { ParameterName = "p_ECNumber", DbType = DbType.String, Value = DBNull.Value });
|
|
return await _repository.ExecuteSqlCommandNonQueryAsync(CommandType.StoredProcedure, "res_ResgisterCustomer", param.ToArray());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Log.Error(string.Concat("【ResgisterCustomer】---CNumber=" + CNumber + "-----ResId=" + ResId + "-----CustomerFrom=" + CustomerFrom));
|
|
Log.Error(string.Concat("ResgisterCustomer", e.Message, e.StackTrace));
|
|
throw;
|
|
}
|
|
}
|
|
|
|
public async Task SetQuantity(int ch, int eid, int salegroupid)
|
|
{
|
|
var param = new List<MySqlParameter>
|
|
{
|
|
new MySqlParameter("@arg_ch", ch),
|
|
new MySqlParameter("@arg_eid", eid),
|
|
new MySqlParameter("@arg_salegroupid", salegroupid)
|
|
};
|
|
await _repository.ExecuteSqlCommandNonQueryAsync(CommandType.StoredProcedure, "assign_setquantity", param.ToArray());
|
|
}
|
|
|
|
public async Task<int> ContractUser(string resid, string userName)
|
|
{
|
|
try
|
|
{
|
|
var param = new List<MySqlParameter>
|
|
{
|
|
new MySqlParameter() { ParameterName = "v_Resid", DbType = DbType.String, Value = resid },
|
|
new MySqlParameter() { ParameterName = "v_UserName", DbType = DbType.String, Value = userName }
|
|
};
|
|
|
|
return await _repository.ExecuteSqlCommandNonQueryAsync(CommandType.StoredProcedure, "res_ContractSoftUser", param.ToArray());
|
|
}
|
|
catch
|
|
{
|
|
throw;
|
|
}
|
|
}
|
|
}
|
|
} |