using DG.EntityFramework; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using MySqlConnector; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using Zxd.Crm.Domain.Dto; using Zxd.Crm.Domain.Dto.Extuser; using Zxd.Crm.Domain.Impl; using Zxd.Entity.SSO; using Zxd.EntityFramework; namespace Zxd.Crm.Domain { public class ExtuserDomain : IExtuserDomain { private readonly IServiceProvider _serviceProvider; public ExtuserDomain(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; } public async Task BindExtUser(ExtUserCreateDto model) { try { var sql = @"INSERT INTO ww_extuser_resid(resid,userid,deptcode) values(@resid,@userid,@deptcode) on duplicate key update putnum = putnum+1; "; if (model.type == "unbind") { sql = "delete from ww_extuser_resid where resid=@resid and userid=@userid"; } using (var scope = _serviceProvider.CreateAsyncScope()) { var userCenterRepository = scope.ServiceProvider.GetRequiredService>(); var param = new List() { new MySqlParameter() { ParameterName="resid", MySqlDbType = MySqlDbType.VarChar, Value=model.resid }, new MySqlParameter() { ParameterName="userid", MySqlDbType = MySqlDbType.VarChar, Value=model.userid }, new MySqlParameter() { ParameterName="deptcode", MySqlDbType = MySqlDbType.VarChar, Value=model.deptcode } }; Log.Information($"sql: {sql}, param: {model.ToJson()}"); await userCenterRepository.ExecuteSqlCommandNonQueryAsync(CommandType.Text, sql, param.ToArray()); } } catch (Exception ex) { Log.Error($"绑定客户企微关系失败{ex.Message}【{model.ToJson()}】"); return false; } return true; } } }