/// <summary> /// 骑士绑定银行卡功能 add by caoheyang 20150511 /// TODO 目前只支付网银 /// </summary> /// <param name="cardBindCpm">参数实体</param> /// <returns></returns> public ResultModel <object> CardBindC(CardBindCPM cardBindCpm) { using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { FinanceCardBindC checkbool = CheckCardBindC(cardBindCpm); //验证数据合法性 if (checkbool != FinanceCardBindC.Success) { return(ResultModel <object> .Conclude(checkbool)); } int result = _clienterFinanceAccountDao.Insert(new ClienterFinanceAccount() { ClienterId = cardBindCpm.ClienterId, //骑士ID TrueName = cardBindCpm.TrueName, //户名 AccountNo = DES.Encrypt(cardBindCpm.AccountNo), //卡号(DES加密) IsEnable = true, // 是否有效(true:有效 0:无效) 新增时true AccountType = cardBindCpm.AccountType == 0 ? (int)ClienterFinanceAccountType.WangYin : cardBindCpm.AccountType, //账号类型 BelongType = cardBindCpm.BelongType, //账号类别 0 个人账户 1 公司账户 OpenBank = cardBindCpm.OpenBank, //开户行 OpenSubBank = cardBindCpm.OpenSubBank, //开户支行 CreateBy = cardBindCpm.CreateBy, //创建人 当前登录人 UpdateBy = cardBindCpm.CreateBy //新增时最后修改人与新增人一致 当前登录人 }); tran.Complete(); return(ResultModel <object> .Conclude(FinanceCardBindC.Success)); } }
/// <summary> /// 新增美团订单 add by caoheyang 20150421 /// </summary> /// <param name="paramodel">paraModel</param> public void AddOrder(CreatePM_OpenApi paramodel) { string orderNo = Helper.generateOrderCode(paramodel.businessId); RedisCache redis = new RedisCache(); try { using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { OrderDao orderDao = new OrderDao(); paramodel.OrderNo = orderNo; //将当前订单插入到缓存中,设置过期时间30天 redis.Set(string.Format(RedissCacheKey.OtherOrderInfo, paramodel.orderfrom.ToString(), paramodel.order_id.ToString()), orderNo, DateTime.Now.AddDays(30)); //先加入缓存,相当于加锁 int orderId = orderDao.CreateToSql(paramodel); //插入订单返回订单id orderDao.CreateToSqlAddOrderOther(paramodel.businessId, orderId); //操作插入OrderOther表 orderDao.CreateToSqlAddOrderDetail(paramodel, orderNo); //操作插入OrderDetail表 orderDao.CreateToSqlAddOrderChild(paramodel, orderId); //插入订单子表 tran.Complete(); } } catch (Exception ex) { redis.Delete(string.Format(RedissCacheKey.OtherOrderInfo, //同步失败,清除缓存内的订单信息信息 paramodel.store_info.group.ToString(), paramodel.order_id.ToString())); throw ex; } }
/// <summary> /// 商户修改绑定银行卡功能 add by caoheyang 20150511 /// </summary> /// <param name="cardModifyBpm">参数实体</param> /// <returns></returns> public ResultModel <object> CardModifyB(CardModifyBPM cardModifyBpm) { FinanceCardModifyB boolRes = CheckCardModifyB(cardModifyBpm); if (boolRes != FinanceCardModifyB.Success) { return(ResultModel <object> .Conclude(boolRes)); } using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { _businessFinanceAccountDao.Update(new BusinessFinanceAccount() { Id = cardModifyBpm.Id, BusinessId = cardModifyBpm.BusinessId, //商户ID TrueName = cardModifyBpm.TrueName, //户名 AccountNo = DES.Encrypt(cardModifyBpm.AccountNo), //卡号(DES加密) BelongType = cardModifyBpm.BelongType, //账号类别 0 个人账户 1 公司账户 OpenBank = cardModifyBpm.OpenBank, //开户行 OpenSubBank = cardModifyBpm.OpenSubBank, //开户支行 UpdateBy = cardModifyBpm.UpdateBy //修改人 当前登录人 }); tran.Complete(); return(ResultModel <object> .Conclude(SystemState.Success)); } }
/// <summary> /// 骑士修改绑定银行卡功能 add by caoheyang 20150511 TODO 统一加密算法 /// </summary> /// <param name="cardModifyCpm">参数实体</param> /// <returns></returns> public ResultModel <object> CardModifyC(CardModifyCPM cardModifyCpm) { FinanceCardModifyC checkbool = CheckCardModifyC(cardModifyCpm); //验证数据合法性 if (checkbool != FinanceCardModifyC.Success) { return(ResultModel <object> .Conclude(checkbool)); } using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { _clienterFinanceAccountDao.Update(new ClienterFinanceAccount() { Id = cardModifyCpm.Id, ClienterId = cardModifyCpm.ClienterId, //骑士ID TrueName = cardModifyCpm.TrueName, //户名 AccountNo = DES.Encrypt(cardModifyCpm.AccountNo), //卡号(DES加密) BelongType = cardModifyCpm.BelongType, //账号类别 0 个人账户 1 公司账户 OpenBank = cardModifyCpm.OpenBank, //开户行 OpenSubBank = cardModifyCpm.OpenSubBank, //开户支行 UpdateBy = cardModifyCpm.UpdateBy //修改人 当前登录人 }); tran.Complete(); return(ResultModel <object> .Conclude(SystemState.Success)); } }
/// <summary> /// 商家充值成功方法 /// 窦海超 /// 2015年5月29日 16:00:07 /// </summary> /// <param name="model"></param> private dynamic BusinessRechargeSusess(Ets.Model.DataModel.Business.BusinessRechargeModel model) { #region 充值、流水、商家金额实体组装 BusinessBalanceRecord businessBalanceRecord = new BusinessBalanceRecord() { Amount = model.PayAmount, BusinessId = model.BusinessId, Operator = model.PayBy, RecordType = BusinessBalanceRecordRecordType.Recharge.GetHashCode(), RelationNo = model.OrderNo, Remark = "商家客户端充值", Status = 1, WithwardId = 0 }; UpdateForWithdrawPM forWithdrawPM = new UpdateForWithdrawPM() { Id = model.BusinessId, Money = model.PayAmount }; #endregion using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { new BusinessRechargeDao().Insert(model); //写入充值 new BusinessDao().UpdateForWithdrawC(forWithdrawPM); //更新商家金额、可提现金额 new BusinessBalanceRecordDao().Insert(businessBalanceRecord); //写商家流水 tran.Complete(); } #region jpush推送 Task.Factory.StartNew(() => { JPushModel jpushModel = new JPushModel() { Alert = string.Concat("已成功充值", model.PayAmount, "元"), City = string.Empty, RegistrationId = model.BusinessId.ToString(),//发送商家ID TagId = 1, Title = "充值成功提醒" }; Ets.Service.Provider.MyPush.Push.PushMessage(jpushModel); }); #endregion string success = string.Concat("成功完成商家充值订单号:", model.OrderNo); LogHelper.LogWriter(success); return("success"); }
private static bool threadSafe = true;//线程安全 #region IJob 成员 public void Execute(Quartz.IJobExecutionContext context) { if (!threadSafe) { return; } threadSafe = false; try { LogHelper.LogWriter("执行啦:" + DateTime.Now); double hour = ParseHelper.ToDouble(Config.ConfigKey("DataTime"), -1); if (hour == -1) { return; } ClienterDao clienterDao = new ClienterDao(); BusinessDao businessDao = new BusinessDao(); OrderDao orderDao = new OrderDao(); IList <NonJoinWithdrawModel> list = orderDao.GetNonJoinWithdraw(hour);//获取没给可提现金额加钱的订单 foreach (var item in list) { using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { try { LogHelper.LogWriter(string.Concat("执行订单ID:", item.id, ",ClienterId:", item.clienterId)); clienterDao.UpdateAllowWithdrawPrice(item.clienterPrice, item.clienterId); //businessDao.UpdateAllowWithdrawPrice(item.businessPrice, item.businessId); orderDao.UpdateJoinWithdraw(item.id); tran.Complete(); } catch (Exception ex) { LogHelper.LogWriter(ex); } } } } catch (Exception ex) { LogHelper.LogWriter(ex); } finally { threadSafe = true; } }
/// <summary> /// 设置全局变量表数据 /// </summary> /// <param name="opName"></param> /// <param name="value"></param> /// <param name="Remark"></param> /// <returns></returns> public bool UpdateSubsidies(string opName, string value, string Remark, string keyName, int GroupId, int StrategyId) { bool result = false; using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { if (_dao.AddSubsidiesLog(keyName, opName, Remark, GroupId, StrategyId)) { result = _dao.UpdateSubsidies(value, keyName, GroupId); } var redis = new ETS.NoSql.RedisCache.RedisCache(); const string cacheKey = RedissCacheKey.Ets_Dao_GlobalConfig_GlobalConfigGet; redis.Delete(cacheKey); tran.Complete(); } return(result); }
/// <summary> /// 设置全局变量表数据佣金方式CommissionFormulaMode /// </summary> /// <param name="opName"></param> /// <param name="value"></param> /// <param name="Remark"></param> /// <returns></returns> public bool UpdateCommissionFormulaMode(string opName, string value, string Remark, int GroupId, int StrategyId) { bool result = false; using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { if (_dao.AddSubsidiesLog("CommissionFormulaMode", opName, Remark, GroupId, StrategyId)) { result = _dao.UpdateCommissionFormulaMode(value, GroupId); } var redis = new ETS.NoSql.RedisCache.RedisCache(); const string cacheKey = RedissCacheKey.Ets_Dao_GlobalConfig_GlobalConfigGet; redis.Delete(cacheKey); var model = new GlobalConfigDao().GlobalConfigMethod(GroupId); redis.Set(cacheKey, model); tran.Complete(); } return(result); }
public virtual List <int> Register(Model.UserModel user) { //如果有查询就放到外层 //... using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { //实现调用DAO层方法 //... ChangeWorkStatusPM pmModel = new ChangeWorkStatusPM(); pmModel.Id = 1; pmModel.WorkStatus = 1; dao.ChangeWorkStatusToSql(pmModel); tran.Complete(); } //new UserDao().RegisterToSql(new Model.UserModel()); return(new List <int>() { 1, 2 }); }
/// <summary> /// 骑士提现申请单确认打款 /// danny-20150513 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool ClienterWithdrawPayOk(ClienterWithdrawLog model) { bool reg = false; using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { if (clienterFinanceDao.ClienterWithdrawPayOk(model)) { if (clienterFinanceDao.ModifyClienterBalanceRecordStatus(model.WithwardId.ToString())) { if (clienterFinanceDao.ModifyClienterTotalAmount(model.WithwardId.ToString())) { reg = true; tran.Complete(); } } } } return(reg); }
/// <summary> /// 调整订单佣金 /// 窦海超 /// 2015年4月3日 09:41:19 /// </summary> public void AutoAdjustOrderCommission(IList <OrderAutoAdjustModel> list, decimal AdjustAmount, int executeMinute) { try { foreach (OrderAutoAdjustModel item in list) { //ETS.Util.Log.WriteTextToFile("调整订单佣金AutoAdjustOrderCommission", ETS.Config.ConfigKey("LogPath"),true); using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { orderDao.UpdateOrderCommissionById(AdjustAmount, item.Id); //更新账户 orderDao.InsertOrderSubsidiesLog(AdjustAmount, item.Id, executeMinute); //写入日志 tran.Complete(); } } } catch (Exception ex) { //ETS.Util.LogHelper.LogWriter(ex); ETS.Util.LogHelper.LogWriter(ex, "当前时间:" + DateTime.Now.ToString() + "调整订单佣金引发异常"); } }
/// <summary> /// 提现 /// 窦海超 /// 2015年3月23日 12:54:43 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool AddWtihdrawRecords(Model.ParameterModel.WtihdrawRecords.WithdrawRecordsModel model) { using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { WtihdrawRecordsDao withDao = new WtihdrawRecordsDao(); ClienterDao clienterDao = new ClienterDao(); bool checkBalance = clienterDao.UpdateClienterAccountBalance(model); if (!checkBalance)//如果余额不正确,返回错误 { return(false); } var cliterModel = clienterDao.GetUserInfoByUserId(model.UserId); //获取当前用户余额 decimal balance = ParseHelper.ToDecimal(cliterModel.AccountBalance, 0); model.Balance = balance; //最新余额 bool checkAddwith = withDao.AddWtihdrawRecords(model); //新增提现记录 //流水改到 ClienterBalanceRecord cbrm = new ClienterBalanceRecord() { ClienterId = model.UserId, Amount = Convert.ToDecimal(model.Amount), Status = ClienterBalanceRecordStatus.Success.GetHashCode(), Balance = balance - Convert.ToDecimal(model.Amount), //最新余额 - 提现金额 RecordType = ClienterBalanceRecordRecordType.WithdrawApply.GetHashCode(), Operator = cliterModel.TrueName, RelationNo = "", //提现的时候没有关联单号吧 Remark = "骑士提现" }; long iResult = clienterBalanceRecordDao.Insert(cbrm); // bool checkAddrecords = withDao.AddRecords(model);//新增提现流水记录 if (!checkAddwith || iResult <= 0) { return(false); } tran.Complete(); } return(true); }
/// <summary> /// 商户提现申请单打款失败 /// danny-20150511 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool BusinessWithdrawPayFailed(BusinessWithdrawLogModel model) { bool reg = false; using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { if (businessFinanceDao.BusinessWithdrawReturn(model)) { if (businessFinanceDao.BusinessWithdrawPayFailed(model)) { if (businessFinanceDao.ModifyBusinessBalanceRecordStatus(model.WithwardId.ToString())) { if (businessFinanceDao.ModifyBusinessAmountInfo(model.WithwardId.ToString())) { reg = true; tran.Complete(); } } } } } return(reg); }
/// <summary> /// 商户提现功能 add by caoheyang 20150511 /// </summary> /// <param name="withdrawBpm">参数实体</param> /// <returns></returns> public ResultModel <object> WithdrawB(WithdrawBPM withdrawBpm) { using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { BusinessModel business = new BusinessModel(); var businessFinanceAccount = new BusinessFinanceAccount(); //商户金融账号信息 FinanceWithdrawB checkbool = CheckWithdrawB(withdrawBpm, ref business, ref businessFinanceAccount); if (checkbool != FinanceWithdrawB.Success) //验证失败 此次提款操作无效 直接返回相关错误信息 { return(ResultModel <object> .Conclude(checkbool)); } else { _businessDao.UpdateForWithdrawC(new UpdateForWithdrawPM() { Id = withdrawBpm.BusinessId, Money = -withdrawBpm.WithdrawPrice }); //更新商户表的余额,可提现余额 string withwardNo = Helper.generateOrderCode(withdrawBpm.BusinessId); #region 商户提现 long withwardId = _businessWithdrawFormDao.Insert(new BusinessWithdrawForm() { WithwardNo = withwardNo, //单号 规则待定 BusinessId = withdrawBpm.BusinessId, //商户Id BalancePrice = business.BalancePrice, //提现前商户余额 AllowWithdrawPrice = business.AllowWithdrawPrice, //提现前商户可提现金额 Status = (int)BusinessWithdrawFormStatus.WaitAllow, //待审核 Amount = withdrawBpm.WithdrawPrice, //提现金额 Balance = business.BalancePrice - withdrawBpm.WithdrawPrice, //提现后余额 TrueName = businessFinanceAccount.TrueName, //商户收款户名 AccountNo = businessFinanceAccount.AccountNo, //卡号(DES加密) AccountType = businessFinanceAccount.AccountType, //账号类型: BelongType = businessFinanceAccount.BelongType, //账号类别 0 个人账户 1 公司账户 OpenBank = businessFinanceAccount.OpenBank, //开户行 OpenSubBank = businessFinanceAccount.OpenSubBank //开户支行 }); #endregion #region 商户余额流水操作 更新骑士表的余额,可提现余额 _businessBalanceRecordDao.Insert(new BusinessBalanceRecord() { BusinessId = withdrawBpm.BusinessId, //商户Id Amount = -withdrawBpm.WithdrawPrice, //流水金额 Status = (int)BusinessBalanceRecordStatus.Tradeing, //流水状态(1、交易成功 2、交易中) RecordType = (int)BusinessBalanceRecordRecordType.WithdrawApply, Operator = business.Name, WithwardId = withwardId, RelationNo = withwardNo, Remark = "商户提现" }); #endregion #region 商户提现记录 _businessWithdrawLogDao.Insert(new BusinessWithdrawLog() { WithwardId = withwardId, Status = (int)BusinessWithdrawFormStatus.WaitAllow,//待审核 Remark = "商户发起提现操作", Operator = business.Name, }); //更新商户表的余额,可提现余额 #endregion tran.Complete(); } return(ResultModel <object> .Conclude(FinanceWithdrawB.Success));; } }
/// <summary> /// 添加商家分组 /// danny-20150506 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool ModifySubsidyFormulaMode(GlobalConfigModel globalConfigModel) { using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { if (globalConfigModel.GroupId == 0) //新增 { BusinessGroupModel businessGroupModel = new BusinessGroupModel() { Name = globalConfigModel.GroupName, StrategyId = globalConfigModel.StrategyId, CreateBy = globalConfigModel.OptName }; globalConfigModel.GroupId = businessGroupDao.AddBusinessGroup(businessGroupModel); if (globalConfigModel.GroupId > 0) { var r = businessGroupDao.CopyGlobalConfigMode(globalConfigModel.GroupId, globalConfigModel.OptName); } } else //修改 { BusinessGroupModel businessGroupModel = new BusinessGroupModel() { Id = globalConfigModel.GroupId, Name = globalConfigModel.GroupName, StrategyId = globalConfigModel.StrategyId, UpdateBy = globalConfigModel.OptName }; businessGroupDao.UpdateBusinessGroup(businessGroupModel); } #region 动态时间补贴 Ets.Model.Common.GlobalConfig globalConfig = new Ets.Model.Common.GlobalConfig() { KeyName = "IsStarTimeSubsidies", Value = globalConfigModel.IsStarTimeSubsidies, GroupId = globalConfigModel.GroupId, StrategyId = globalConfigModel.StrategyId, OptName = globalConfigModel.OptName }; businessGroupDao.UpdateGlobalConfig(globalConfig); #endregion #region 跨店时间奖励 globalConfig.KeyName = "IsStartOverStoreSubsidies"; globalConfig.Value = globalConfigModel.IsStartOverStoreSubsidies; businessGroupDao.UpdateGlobalConfig(globalConfig); #endregion #region 补贴策略 switch (globalConfigModel.StrategyId) //使用switch-case开关语句,根据按键次数执行相应分支 { case 0: //普通补贴 globalConfig.KeyName = "CommonCommissionRatio"; globalConfig.Value = globalConfigModel.CommonCommissionRatio; businessGroupDao.UpdateGlobalConfig(globalConfig); globalConfig.KeyName = "CommonSiteSubsidies"; globalConfig.Value = globalConfigModel.CommonSiteSubsidies; businessGroupDao.UpdateGlobalConfig(globalConfig); break; case 1: //时间段补贴 globalConfig.KeyName = "TimeSpanCommissionRatio"; globalConfig.Value = globalConfigModel.TimeSpanCommissionRatio; businessGroupDao.UpdateGlobalConfig(globalConfig); globalConfig.KeyName = "TimeSpanInPrice"; globalConfig.Value = globalConfigModel.TimeSpanInPrice; businessGroupDao.UpdateGlobalConfig(globalConfig); globalConfig.KeyName = "TimeSpanOutPrice"; globalConfig.Value = globalConfigModel.TimeSpanOutPrice; businessGroupDao.UpdateGlobalConfig(globalConfig); break; case 2: //保本补贴 globalConfig.KeyName = "CommissionRatio"; globalConfig.Value = globalConfigModel.CommissionRatio; businessGroupDao.UpdateGlobalConfig(globalConfig); globalConfig.KeyName = "SiteSubsidies"; globalConfig.Value = globalConfigModel.SiteSubsidies; businessGroupDao.UpdateGlobalConfig(globalConfig); break; case 3: //满金额补贴 globalConfig.KeyName = "PriceCommissionRatio"; globalConfig.Value = globalConfigModel.PriceCommissionRatio; businessGroupDao.UpdateGlobalConfig(globalConfig); globalConfig.KeyName = "PriceSiteSubsidies"; globalConfig.Value = globalConfigModel.PriceSiteSubsidies; businessGroupDao.UpdateGlobalConfig(globalConfig); break; } #endregion DeleteGlobalConfigRedisByGroupId(globalConfigModel.GroupId); tran.Complete(); } return(true); }
/// <summary> /// 修改公共配置信息 /// danny-20150518 /// </summary> /// <param name="globalConfigModel"></param> /// <returns></returns> public bool ModifyGlobalConfig(GlobalConfigModel globalConfigModel) { var globalConfig = new Ets.Model.Common.GlobalConfig() { OptName = globalConfigModel.OptName, GroupId = 0, StrategyId = -1 }; using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { bool reg; if (globalConfigModel.PushRadius != "0") { globalConfig.KeyName = "PushRadius"; globalConfig.Value = globalConfigModel.PushRadius; reg = businessGroupDao.UpdateGlobalConfig(globalConfig); if (!reg) { return(false); } } if (globalConfigModel.UploadTimeInterval != "0") { globalConfig.KeyName = "UploadTimeInterval"; globalConfig.Value = globalConfigModel.UploadTimeInterval; reg = businessGroupDao.UpdateGlobalConfig(globalConfig); if (!reg) { return(false); } } if (globalConfigModel.ExclusiveOrderTime != "0") { globalConfig.KeyName = "ExclusiveOrderTime"; globalConfig.Value = globalConfigModel.ExclusiveOrderTime; reg = businessGroupDao.UpdateGlobalConfig(globalConfig); if (!reg) { return(false); } } if (globalConfigModel.ClienterOrderPageSize != "0") { globalConfig.KeyName = "ClienterOrderPageSize"; globalConfig.Value = globalConfigModel.ClienterOrderPageSize; reg = businessGroupDao.UpdateGlobalConfig(globalConfig); if (!reg) { return(false); } } if (ParseHelper.ToInt(globalConfigModel.CompleteTimeSet) >= 0) { globalConfig.KeyName = "CompleteTimeSet"; globalConfig.Value = globalConfigModel.CompleteTimeSet; reg = businessGroupDao.UpdateGlobalConfig(globalConfig); if (!reg) { return(false); } } if (!string.IsNullOrEmpty(globalConfigModel.EmployerTaskTimeSet)) { globalConfig.KeyName = "EmployerTaskTimeSet"; globalConfig.Value = globalConfigModel.EmployerTaskTimeSet; reg = businessGroupDao.UpdateGlobalConfig(globalConfig); if (!reg) { return(false); } } tran.Complete(); DeleteGlobalConfigRedisByGroupId(globalConfigModel.GroupId); return(true); } }
/// <summary> /// 跨店补贴 /// 徐鹏程 /// 20150414 /// </summary> public bool CrossShop(List <GlobalConfigSubsidies> SubsidiesList) { IList <GrabOrderModel> list = subsidyDao.GetBusinessCount(); WtihdrawRecordsDao withdrawRecordsDao = new WtihdrawRecordsDao(); ClienterDao clienterDao = new ClienterDao(); int MaxSubsidiesShop = SubsidiesList.Max(t => ParseHelper.ToInt(t.Value1)); //最大数量 double MaxSubsidiesPrice = ParseHelper.ToDouble(SubsidiesList.Where(t => ParseHelper.ToInt(t.Value1) == MaxSubsidiesShop).ToList()[0].Value2); //最大金额 foreach (GrabOrderModel item in list) { //Ets.Model.DomainModel.Clienter.ClienterModel cliterModel = new ClienterDao().GetUserInfoByUserId(item.ClienterId);//获取当前用户余额 WithdrawRecordsModel withdraw = new WithdrawRecordsModel(); #region 写流水 withdraw.Platform = 1; withdraw.AdminId = 0; withdraw.UserId = item.ClienterId; int businessCount = item.BusinessCount; //var findSubsidie = SubsidiesList.OrderByDescending(t => ParseHelper.ToInt(t.Value1)).ToList().Where(t => ParseHelper.ToInt(t.Value1) >= businessCount).First(); //double businessPrice = findSubsidie == null ? 0 : ParseHelper.ToDouble(findSubsidie.Value2); //ParseHelper.ToDouble(SubsidiesList.Select(t => ParseHelper.ToInt(t.Value1) == businessCount)); double businessPrice = 0; if (businessCount > MaxSubsidiesShop) { businessPrice = MaxSubsidiesPrice; } else { var tmpPrice = SubsidiesList.Where(t => ParseHelper.ToInt(t.Value1) == businessCount).ToList(); if (tmpPrice == null || tmpPrice.Count <= 0) { continue; } businessPrice = ParseHelper.ToDouble(tmpPrice[0].Value2);//当前金额 } withdraw.Amount = ParseHelper.ToDecimal(businessPrice, 0); withdraw.Balance = ParseHelper.ToDecimal(item.AccountBalance, 0) + withdraw.Amount; withdraw.Remark = string.Format("跨店抢单奖励{0}元", withdraw.Amount); //记录跨店日志 CrossShopModel crossShopModel = new CrossShopModel() { Amount = withdraw.Amount, BusinessCount = businessCount, ClienterId = withdraw.UserId, Platform = 2, Remark = withdraw.Remark, InsertTime = DateTime.Now }; #endregion ClienterBalanceRecord cbrm = new ClienterBalanceRecord() { ClienterId = withdraw.UserId, Amount = withdraw.Amount, //奖励的金额 Status = ClienterBalanceRecordStatus.Success.GetHashCode(), Balance = withdraw.Balance + withdraw.Amount, //奖励后的金额 RecordType = ClienterBalanceRecordRecordType.SystemReward.GetHashCode(), Operator = "系统服务", RelationNo = "", Remark = "跨店骑士奖励" }; using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { //修改records表增加记录作废,改为 新表ClienterBalanceRecord // withdrawRecordsDao.AddRecords(withdraw); clienterBalanceRecordDao.Insert(cbrm); clienterDao.UpdateAccountBalanceAndWithdraw(withdraw);//更改用户金额 subsidyDao.InsertCrossShopLog(crossShopModel); tran.Complete(); } } return(true); }
/// <summary> /// 添加用户 /// danny-20150323 /// </summary> /// <param name="criteria"></param> /// <returns></returns> public DealResultInfo AddAccount(AccountCriteria criteria) { var dealResultInfo = new DealResultInfo { DealFlag = false }; var accountModel = new account { Id = criteria.Id, UserName = criteria.UserName, LoginName = criteria.LoginName, Password = string.IsNullOrWhiteSpace(criteria.Password)?"":MD5Helper.MD5(criteria.Password), GroupId = criteria.GroupId, Status = criteria.Status, AccountType = criteria.AccountType }; var isHave = authoritySetDao.CheckHasAccountName(accountModel); if (criteria.OptionType == "0")//添加用户 { if (isHave) { dealResultInfo.DealMsg = "用户名已存在!"; return(dealResultInfo); } } else//修改用户信息 { if (!isHave) { dealResultInfo.DealMsg = "此用户不存在!"; return(dealResultInfo); } } using (var tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { var accountCityRelation = new AccountCityRelation { AccountId = criteria.Id, CreateBy = criteria.OptUserName, UpdateBy = criteria.OptUserName, }; if (criteria.OptionType == "0")//添加用户 { accountCityRelation.AccountId = authoritySetDao.AddAccount(accountModel); if (accountCityRelation.AccountId == 0) { dealResultInfo.DealMsg = "插入用户信息失败!"; return(dealResultInfo); } } else//修改用户信息 { if (!authoritySetDao.ModifyAccount(accountModel)) { dealResultInfo.DealMsg = "修改用户信息失败!"; return(dealResultInfo); } } if (!string.IsNullOrWhiteSpace(criteria.CityCodeList)) { var cityCodeList = criteria.CityCodeList.Split(','); authoritySetDao.DeleteAccountCityRelation(accountCityRelation); foreach (var cityCode in cityCodeList) { accountCityRelation.CityId = ParseHelper.ToInt(cityCode); if (!authoritySetDao.AddAccountCityRelation(accountCityRelation)) { dealResultInfo.DealMsg = "插入用户和城市关联信息失败!"; return(dealResultInfo); } } } tran.Complete(); } dealResultInfo.DealMsg = "用户信息提交成功!"; dealResultInfo.DealFlag = true; return(dealResultInfo); }
/// <summary> /// 骑士提现功能 add by caoheyang 20150509 /// </summary> /// <param name="withdrawCpm">参数实体</param> /// <returns></returns> public ResultModel <object> WithdrawC(WithdrawCPM withdrawCpm) { using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { clienter clienter = new clienter(); var clienterFinanceAccount = new ClienterFinanceAccount(); //骑士金融账号信息 FinanceWithdrawC checkbool = CheckWithdrawC(withdrawCpm, ref clienter, ref clienterFinanceAccount); if (checkbool != FinanceWithdrawC.Success) //验证失败 此次提款操作无效 直接返回相关错误信息 { return(ResultModel <object> .Conclude(checkbool)); } else { _clienterDao.UpdateForWithdrawC(new UpdateForWithdrawPM { Id = withdrawCpm.ClienterId, Money = -withdrawCpm.WithdrawPrice }); //更新骑士表的余额,可提现余额 string withwardNo = Helper.generateOrderCode(withdrawCpm.ClienterId); #region 骑士提现 long withwardId = _clienterWithdrawFormDao.Insert(new ClienterWithdrawForm() { WithwardNo = withwardNo, //单号 规则待定 ClienterId = withdrawCpm.ClienterId, //骑士Id(Clienter表) BalancePrice = clienter.AccountBalance, //提现前骑士余额 AllowWithdrawPrice = clienter.AllowWithdrawPrice, //提现前骑士可提现金额 Status = (int)ClienterWithdrawFormStatus.WaitAllow, //待审核 Amount = withdrawCpm.WithdrawPrice, //提现金额 Balance = clienter.AccountBalance - withdrawCpm.WithdrawPrice, //提现后余额 TrueName = clienterFinanceAccount.TrueName, //骑士收款户名 AccountNo = clienterFinanceAccount.AccountNo, //卡号(DES加密) AccountType = clienterFinanceAccount.AccountType, //账号类型: BelongType = clienterFinanceAccount.BelongType, //账号类别 0 个人账户 1 公司账户 OpenBank = clienterFinanceAccount.OpenBank, //开户行 OpenSubBank = clienterFinanceAccount.OpenSubBank //开户支行 }); #endregion #region 骑士余额流水操作 更新骑士表的余额,可提现余额 _clienterBalanceRecordDao.Insert(new ClienterBalanceRecord() { ClienterId = withdrawCpm.ClienterId, //骑士Id(Clienter表) Amount = -withdrawCpm.WithdrawPrice, //流水金额 Status = (int)ClienterBalanceRecordStatus.Tradeing, //流水状态(1、交易成功 2、交易中) RecordType = (int)ClienterBalanceRecordRecordType.WithdrawApply, Operator = clienter.TrueName, WithwardId = withwardId, RelationNo = withwardNo, Remark = "骑士提现" }); #endregion #region 骑士提现记录 _clienterWithdrawLogDao.Insert(new ClienterWithdrawLog() { WithwardId = withwardId, Status = (int)ClienterWithdrawFormStatus.WaitAllow,//待审核 Remark = "骑士发起提现操作", Operator = clienter.TrueName }); //更新骑士表的余额,可提现余额 #endregion tran.Complete(); } return(ResultModel <object> .Conclude(FinanceWithdrawC.Success));; } }