| | |
| | | using CoreCms.Net.Model.Entities.baifenbingfa.Promote; |
| | | using static SKIT.FlurlHttpClient.Wechat.Api.Models.ScanProductAddV2Request.Types.Product.Types; |
| | | using NPOI.SS.Formula.Functions; |
| | | using CoreCms.Net.Model.FromBody; |
| | | using Essensoft.Paylink.Alipay.Domain; |
| | | |
| | | |
| | | namespace CoreCms.Net.Services |
| | |
| | | private readonly IUnitOfWork _unitOfWork; |
| | | private readonly ICoreCmsPlanOrderItemRepository _itemDal; |
| | | private readonly ICoreCmsUserServices _coreCmsUserServices; |
| | | private readonly ICoreCmsUserServices _userServices; |
| | | |
| | | public CoreCmsPlanOrderServices(IUnitOfWork unitOfWork, ICoreCmsPlanOrderRepository dal |
| | | , ICoreCmsPlanOrderItemRepository itemDal |
| | | , ICoreCmsUserServices coreCmsUserServices) |
| | | , ICoreCmsUserServices coreCmsUserServices |
| | | , ICoreCmsUserServices userServices) |
| | | { |
| | | this._dal = dal; |
| | | base.BaseDal = dal; |
| | | _unitOfWork = unitOfWork; |
| | | _itemDal = itemDal; |
| | | _coreCmsUserServices = coreCmsUserServices; |
| | | } |
| | | _userServices =userServices; |
| | | } |
| | | |
| | | #region 实现重写增删改查操作========================================================== |
| | | |
| | |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public async Task<AdminUiCallBack> DeleteByIdAsync(object id) |
| | | public async Task<AdminUiCallBack> DeleteByIdAsync(object id,string userName) |
| | | { |
| | | return await _dal.DeleteByIdAsync(id); |
| | | var jm = new AdminUiCallBack() ; |
| | | try |
| | | { |
| | | //开始事务处理 |
| | | _unitOfWork.BeginTran(); |
| | | var order = await _dal.QueryByIdAsync(id); |
| | | |
| | | if (order.status == 2) //&& string.IsNullOrEmpty(houtai) |
| | | { |
| | | _unitOfWork.RollbackTran(); |
| | | jm.code = 1; |
| | | jm.msg = "订单已经锁单不能重复锁单"; |
| | | return jm; |
| | | } |
| | | |
| | | order.upDataBy = userName; |
| | | order.upDataTime = DateTime.Now; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //order.keYongAmount = order.oldOrderAmount - order.orderAmount; |
| | | |
| | | |
| | | |
| | | order.status = 2; |
| | | |
| | | //if (order.keYongAmount > 0) |
| | | //{ |
| | | // //修改用户余额 |
| | | |
| | | // var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, order.keYongAmount, "用户计划订单" + order.orderId + "款项结余"); |
| | | //} |
| | | |
| | | |
| | | |
| | | //} |
| | | |
| | | |
| | | //校验后再创建订单 |
| | | var jmss = await _dal.UpdateAsync(order); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | _unitOfWork.CommitTran(); |
| | | |
| | | jm.code = 0; |
| | | jm.data = order; |
| | | jm.msg = "锁单成功"; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | _unitOfWork.RollbackTran(); |
| | | jm.code = 1; |
| | | jm.msg = e.ToString(); |
| | | } |
| | | return jm; |
| | | //return await _dal.DeleteByIdAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids) |
| | | public async Task<AdminUiCallBack> DeleteByIdsAsync(string[] ids, string userName) |
| | | { |
| | | return await _dal.DeleteByIdsAsync(ids); |
| | | var jm = new AdminUiCallBack(); |
| | | try |
| | | { |
| | | //开始事务处理 |
| | | _unitOfWork.BeginTran(); |
| | | var orders = await _dal.QueryListByClauseAsync(p => ids.Contains(p.orderId), p => p.orderId, OrderByType.Asc, true); |
| | | |
| | | foreach (var order in orders) |
| | | { |
| | | if (order.status != 2) //&& string.IsNullOrEmpty(houtai) |
| | | { |
| | | order.upDataBy = userName; |
| | | order.upDataTime = DateTime.Now; |
| | | order.status = 2; |
| | | //校验后再创建订单 |
| | | var jmss = await _dal.UpdateAsync(order); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //order.keYongAmount = order.oldOrderAmount - order.orderAmount; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //if (order.keYongAmount > 0) |
| | | //{ |
| | | // //修改用户余额 |
| | | |
| | | // var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, order.keYongAmount, "用户计划订单" + order.orderId + "款项结余"); |
| | | //} |
| | | |
| | | |
| | | |
| | | //} |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | _unitOfWork.CommitTran(); |
| | | |
| | | jm.code = 0; |
| | | jm.data = orders; |
| | | jm.msg = "锁单成功"; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | _unitOfWork.RollbackTran(); |
| | | jm.code = 1; |
| | | jm.msg = e.ToString(); |
| | | } |
| | | return jm; |
| | | //return await _dal.DeleteByIdsAsync(ids); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// <param name="blUseNoLock">是否使用WITH(NOLOCK)</param> |
| | | /// <returns></returns> |
| | | public async Task<IPageList<CoreCmsPlanOrder>> QueryPageAsync(Expression<Func<CoreCmsPlanOrder, bool>> predicate, |
| | | Expression<Func<CoreCmsPlanOrder, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1, |
| | | Expression<Func<CoreCmsPlanOrder, object>> orderByExpression, OrderByType orderByType, OtherData otherData , int pageIndex = 1, |
| | | int pageSize = 20, bool blUseNoLock = false) |
| | | { |
| | | return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock); |
| | | return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, otherData, pageIndex, pageSize, blUseNoLock); |
| | | } |
| | | #endregion |
| | | |
| | |
| | | /// 获取计划订单列表微信小程序 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<WebApiCallBack> GetOrderList(int status = -1, int userId = 0, int page = 1, int limit = 5) |
| | | public async Task<WebApiCallBack> GetOrderList(int status = -1, int userId = 0, int page = 1, int limit = 5, int money = 0) |
| | | { |
| | | var jm = new WebApiCallBack { status = true }; |
| | | |
| | |
| | | } |
| | | if (userId > 0) |
| | | { |
| | | //var user = await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.id == userId).FirstAsync(); |
| | | |
| | | where = where.And(p => p.userId == userId); |
| | | } |
| | | if (money > 0) |
| | | { |
| | | where = where.And(p => p.keYongAmount > p.huaFeiAmount); |
| | | } |
| | | var list = await _dal.QueryPageAsync(where, p => p.createTime, OrderByType.Desc, page, limit); |
| | | |
| | |
| | | { |
| | | //获取相关状态描述说明转换 |
| | | order.statusText = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.PlanOrderTiJiao>(order.status); |
| | | |
| | | order.keYongAmount = order.keYongAmount - order.huaFeiAmount; |
| | | } |
| | | } |
| | | jm.data = new |
| | |
| | | /// <param name="status">计划订单状态</param> |
| | | /// <param name="itemIds">明细id</param> |
| | | /// <param name="itemNums">明细数量</param> |
| | | /// <param name="houtai">是否后台编辑</param> |
| | | /// <returns></returns> |
| | | public async Task<WebApiCallBack> ToUpdate(string orderId, int userId, string userName, int status, string itemIds, string itemNums) |
| | | public async Task<WebApiCallBack> ToUpdate(string orderId, int userId, string userName, int status, string itemIds, string itemNums, string houtai = "") |
| | | { |
| | | var jm = new WebApiCallBack() { methodDescription = "修改计划订单" }; |
| | | try |
| | |
| | | //开始事务处理 |
| | | _unitOfWork.BeginTran(); |
| | | var order = await _dal.QueryByIdAsync(orderId); |
| | | |
| | | |
| | | var oldorderAmount = order.orderAmount; |
| | | if (order.status == 2 && string.IsNullOrEmpty(houtai)) |
| | | { |
| | | _unitOfWork.RollbackTran(); |
| | | jm.status = false; |
| | | jm.otherData = "订单已经锁单不能修改"; |
| | | return jm; |
| | | } |
| | | |
| | | order.upDataBy = userName; |
| | | order.upDataTime = DateTime.Now; |
| | |
| | | } |
| | | |
| | | order.orderAmount = orderAmount; |
| | | order.keYongAmount = order.oldOrderAmount - order.orderAmount; |
| | | order.keYongAmount = order.oldOrderAmount - order.orderAmount ; |
| | | |
| | | if (order.keYongAmount < 0) |
| | | if (order.keYongAmount < order.huaFeiAmount) |
| | | { |
| | | _unitOfWork.RollbackTran(); |
| | | jm.status = false; |
| | | jm.otherData = "可用余额不能为负"; |
| | | jm.otherData = "可用余额不足"; |
| | | return jm; |
| | | } |
| | | |
| | | if (status == 2) |
| | | { |
| | | order.status = 2; |
| | | //var keYongAmount = oldorderAmount - orderAmount; |
| | | //if (order.status == 1) |
| | | //{ |
| | | // keYongAmount = order.oldOrderAmount - order.orderAmount; |
| | | //} |
| | | |
| | | //if (status == 2) |
| | | //{ |
| | | // order.status = 2; |
| | | |
| | | if (order.keYongAmount > 0) |
| | | { |
| | | //修改用户余额 |
| | | // if (keYongAmount != 0) |
| | | // { |
| | | // //修改用户余额 |
| | | |
| | | var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, order.keYongAmount, "用户计划订单款项结余"); |
| | | } |
| | | // var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, keYongAmount, "用户计划订单"+ order.orderId + "款项结余"); |
| | | // } |
| | | |
| | | |
| | | } |
| | | |
| | | //} |
| | | |
| | | |
| | | //校验后再创建订单 |
| | |
| | | order.status = 1; |
| | | order.shipMobile = jiHuaOrders[0].shipMobile; |
| | | order.shipAddress = jiHuaOrders[0].shipAddress; |
| | | order.shipName = jiHuaOrders[0].shipName; ; |
| | | order.shipName = jiHuaOrders[0].shipName; |
| | | order.shouhuoAddress = jiHuaOrders[0].shouhuoAddress; |
| | | if (string.IsNullOrEmpty(order.shipMobile)) |
| | | { |
| | | //找不到用户就注册用户 |
| | | jm.code = 1; |
| | | jm.msg = order.shipMobile + "联系电话不能为空"; |
| | | return jm; |
| | | } |
| | | var user = await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.mobile == order.shipMobile && x.isDelete == false && x.status == 1).FirstAsync(); |
| | | if (user != null) |
| | | { |
| | | order.userId = user.id; |
| | | user.isplanorder = "是"; |
| | | var users = await _unitOfWork.GetDbClient().Updateable(user).ExecuteCommandAsync(); |
| | | } |
| | | else |
| | | { |
| | | jm.code = 1; |
| | | jm.msg = order.shipMobile + "没有找到用户"; |
| | | return jm; |
| | | |
| | | var data = new FMWxAccountCreate |
| | | { |
| | | mobile = order.shipMobile, |
| | | invitecode = 0, |
| | | sessionAuthId = "" |
| | | }; |
| | | |
| | | var jms = await _userServices.SmsLogin(data); |
| | | user = await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.mobile == order.shipMobile && x.isDelete == false && x.status == 1).FirstAsync(); |
| | | if (user != null) |
| | | { |
| | | order.userId = user.id; |
| | | user.isplanorder = "是"; |
| | | var users = await _unitOfWork.GetDbClient().Updateable(user).ExecuteCommandAsync(); |
| | | } |
| | | else |
| | | { |
| | | |
| | | //找不到用户就注册用户 |
| | | jm.code = 1; |
| | | jm.msg = order.shipMobile + "联系电话不正确"; |
| | | return jm; |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | order.createBy = userName; |
| | |
| | | order.upDataBy = userName; |
| | | order.upDataTime = DateTime.Now; |
| | | order.isdelete = false; |
| | | |
| | | |
| | | |
| | | var shi = await _unitOfWork.GetDbClient().Queryable<CoreCmsArea>().Where(x => x.name == jiHuaOrders[0].shi).FirstAsync(); |
| | | if(shi == null) |
| | | { |
| | | jm.code = 1; |
| | | jm.msg = order.shipMobile + "没有找到市"; |
| | | return jm; |
| | | } |
| | | |
| | | var quxian = await _unitOfWork.GetDbClient().Queryable<CoreCmsArea>().Where(x => x.name == jiHuaOrders[0].quxian && x.parentId == shi.id).FirstAsync(); |
| | | if (shi == null) |
| | | { |
| | | jm.code = 1; |
| | | jm.msg = order.shipMobile + "没有找到区县"; |
| | | return jm; |
| | | } |
| | | order.shengId = 510000; |
| | | order.shi = jiHuaOrders[0].shi; |
| | | order.shiId = shi.id; |
| | | order.quxianId = quxian.id; |
| | | order.quxian = jiHuaOrders[0].quxian; |
| | | order.pianqu = jiHuaOrders[0].pianqu; |
| | | |
| | | |
| | | decimal orderAmount = 0; |
| | |
| | | item.upDataBy = userName; |
| | | item.upDataTime = DateTime.Now; |
| | | item.isdelete = false; |
| | | item.isOld = true; |
| | | var jms = await _itemDal.InsertAsync(item); |
| | | orderAmount += item.amount; |
| | | |
| | | |
| | | item.isOld = false; |
| | | jms = await _itemDal.InsertAsync(item); |
| | | if (jms.code == 1) |
| | | { |
| | | |
| | | return jms; |
| | | } |
| | | } |
| | | |
| | | order.orderAmount = orderAmount; |
| | | order.oldOrderAmount = orderAmount; |
| | | order.keYongAmount = 0; |
| | | order.huaFeiAmount = 0; |
| | | |
| | | //校验后再创建订单 |
| | | var jmss = await _dal.InsertAsync(order); |
| | | |
| | | var sss = await _unitOfWork.GetDbClient().Insertable<CoreCmsPlanOrder>(order).ExecuteCommandAsync(); |
| | | |
| | | //var jmss = await _dal.InsertAsync(order); |
| | | |
| | | //if (jmss.code == 1) |
| | | //{ |
| | | |
| | | // return jmss; |
| | | //} |
| | | |
| | | |
| | | |
| | |
| | | catch (Exception e) |
| | | { |
| | | _unitOfWork.RollbackTran(); |
| | | jm.code = 0; |
| | | jm.code = 1; |
| | | jm.otherData = e.ToString(); |
| | | } |
| | | return jm; |