public async Task <APIResultDto> SaveShopProducts(BatchSaveShopProductDto input)
        {
            using (CurrentUnitOfWork.SetTenantId(input.TenantId))
            {
                var currentProducts = await _shopproductRepository.GetAll().Where(s => s.ShopId == input.ShopId).ToListAsync();

                //删除
                var deleteIds = currentProducts.Where(c => !input.ProductIds.Contains(c.ProductId)).Select(c => c.Id).ToArray();
                await _shopproductRepository.DeleteAsync(s => deleteIds.Contains(s.Id));

                //新增
                var cpIds  = currentProducts.Select(c => c.ProductId).ToArray();
                var addIds = input.ProductIds.Where(p => !cpIds.Contains(p)).ToArray();
                foreach (var pid in addIds)
                {
                    await _shopproductRepository.InsertAsync(new ShopProduct()
                    {
                        ProductId = pid, ShopId = input.ShopId
                    });
                }

                await CurrentUnitOfWork.SaveChangesAsync();

                APIResultDto result = new APIResultDto();
                result.Code = 0;
                result.Msg  = "提交数据成功";
                result.Data = await GetShopProductsByShopId(input.ShopId, input.TenantId);

                return(result);
            }
        }
Beispiel #2
0
        public IActionResult GetCurrentUserOpenId()
        {
            APIResultDto result = new APIResultDto();

            //UserOpenId = "oPM5Uv81jfyJqWbVxWAH-RUqsCAs";
            //UserOpenId = "oPM5Uv89yy7Iv8k9gLHjjsMTT5Gw";//零售户
            //UserOpenId = "oB4nYjnoHhuWrPVi2pYLuPjnCaU0"; //杨帆专用
            //UserOpenId = "oPM5Uv89yy7Iv8k9gLHjjsMTT5Gw";
            //UserOpenId = "oB4nYjnoHhuWrPVi2pYLuPjnCaU1"; //杨帆专用
            //UserOpenId = "oWusewPRxWuP4wMz3UmHR0y7CJME"; //回家测试用
            //UserOpenId = "oB4nYjnoHhuWrPVi2pYLuPjnCaU0";
            //UserOpenId = "oWusewPRxWuP4wMz3UmHR0y7CJME";
            //UserOpenId = "o4l6swGJKxy4aEpUy3Hqm2DEeo_s";
            //UserOpenId = "o4l6swJ2RNer4X1OfB6yCvZorszs";
            //UserOpenId = "oWusewCseG_DDxU965N3UV2Dd8SM";
            if (string.IsNullOrEmpty(UserOpenId))
            {
                result.Code = 901;
                result.Msg  = "用户没有登录";
            }
            else
            {
                result.Code = 0;
                result.Msg  = "获取成功";
                result.Data = new { openId = UserOpenId, tenantId = GetTenantId() };
            }
            return(Json(result));
        }
Beispiel #3
0
        public IActionResult GetCurrentUserOpenId()
        {
            APIResultDto result = new APIResultDto();

            //UserOpenId = "oPM5Uv81jfyJqWbVxWAH-RUqsCAs";
            //UserOpenId = "oPM5Uv89yy7Iv8k9gLHjjsMTT5Gw";//零售户
            //UserOpenId = "oB4nYjnoHhuWrPVi2pYLuPjnCaU0"; //杨帆 20
            //UserOpenId = "oWusewEMAQ_9km_ME19diwMrEop4"; // 199
            //UserOpenId = "oB4nYjnoHhuWrPVi2pYLuPjnCaU1"; //杨帆专用
            //UserOpenId = "oWusewPRxWuP4wMz3UmHR0y7CJME"; //回家测试用
            //UserOpenId = "o4l6swGJKxy4aEpUy3Hqm2DEeo_s";
            //UserOpenId = "o4l6swJ2RNer4X1OfB6yCvZorszs";
            //UserOpenId = "oWusewCseG_DDxU965N3UV2Dd8SM";
            //UserOpenId = "o4l6swFHo1Ch-6yRGysgPhf6XIA8"; //202积分最多的人
            //UserOpenId = "o4l6swKvnim2fhmLzY_Lbm2wC2gQ";//没有购买记录
            if (string.IsNullOrEmpty(UserOpenId))
            {
                result.Code = 901;
                result.Msg  = "用户没有登录";
            }
            else
            {
                result.Code = 0;
                result.Msg  = "获取成功";
                result.Data = new { openId = UserOpenId, tenantId = GetTenantId() };
            }
            return(Json(result));
        }
Beispiel #4
0
        //[Audited]
        public async Task <JsonResult> DocFilesPostsAsync(IFormFile[] file)
        {
            var date  = Request;
            var files = Request.Form.Files;
            //long size = files.Sum(f => f.Length);
            string webRootPath     = _hostingEnvironment.WebRootPath;
            string contentRootPath = _hostingEnvironment.ContentRootPath;
            var    filePath        = string.Empty;
            var    returnUrl       = string.Empty;
            var    fileName        = string.Empty;
            long   fileSize        = 0;
            string fileExt         = string.Empty;

            foreach (var formFile in files)
            {
                if (formFile.Length > 0)
                {
                    fileName = formFile.FileName.Substring(0, formFile.FileName.IndexOf('.'));
                    fileExt  = Path.GetExtension(formFile.FileName); //文件扩展名,不含“.”
                    fileSize = formFile.Length;                      //获得文件大小,以字节为单位
                    var    uid         = Guid.NewGuid().ToString();
                    string newFileName = uid + fileExt;              //随机生成新的文件名
                    var    fileDire    = webRootPath + "/docfiles/";
                    if (!Directory.Exists(fileDire))
                    {
                        Directory.CreateDirectory(fileDire);
                    }
                    filePath = fileDire + newFileName;
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        await formFile.CopyToAsync(stream);
                    }

                    returnUrl = "/docfiles/" + newFileName;
                }
            }
            var apiResult = new APIResultDto();

            apiResult.Code = 0;
            apiResult.Msg  = "上传文件成功";
            apiResult.Data = new { name = fileName, size = fileSize, ext = fileExt, url = returnUrl };
            return(Json(apiResult));
        }
Beispiel #5
0
        public IActionResult GetCurrentUserOpenId()
        {
            APIResultDto result = new APIResultDto();

            //UserOpenId = "666666";
            //UserOpenId = "oL5qB1m9WA2oNqtszJOJWrcpErzk";
            if (string.IsNullOrEmpty(UserOpenId))
            {
                result.Code = 901;
                result.Msg  = "用户没有登录";
            }
            else
            {
                result.Code = 0;
                result.Msg  = "获取成功";
                result.Data = new { openId = UserOpenId, unionid = UserUnionid };
            }
            return(Json(result));
        }
Beispiel #6
0
 public Task <APIResultDto> ExportPostInfoExcel(GetActivityFormsSentInput input)
 {
     try
     {
         var exportData = GetPostInfoToExcelList(input);
         var result     = new APIResultDto();
         result.Code = 0;
         result.Data = SavePostInfoExcel("邮寄信息.xlsx", exportData);
         return(Task.FromResult(result));
     }
     catch (Exception ex)
     {
         Logger.ErrorFormat("ExportPostInfoExcel errormsg:{0} Exception:{1}", ex.Message, ex);
         return(Task.FromResult(new APIResultDto()
         {
             Code = 901, Msg = "网络忙... 请待会重试!"
         }));
     }
 }
Beispiel #7
0
        public async Task <APIResultDto> ExportProductsExcel(GetProductsInput input)
        {
            try
            {
                var exportData = await GeProductsNoPage(input);

                var result = new APIResultDto();
                result.Code = 0;
                result.Data = SaveProductsExcel("商品信息.xlsx", exportData);
                return(result);
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("ExportProductsExcel errormsg{0} Exception{1}", ex.Message, ex);
                return(new APIResultDto()
                {
                    Code = 901, Msg = "网络忙...请待会儿再试!"
                });
            }
        }
Beispiel #8
0
        public async Task <APIResultDto> ExportAdviseExcel(GetAdvisesInput input)
        {
            try
            {
                var exportData = await GetAdviseListAsync(input);

                var result = new APIResultDto();
                result.Code = 0;
                result.Data = SaveAdviseExcel("意见反馈.xlsx", exportData);
                return(result);
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("ExportPostInfoExcel errormsg:{0} Exception:{1}", ex.Message, ex);
                return(new APIResultDto()
                {
                    Code = 901, Msg = "网络忙... 请待会重试!"
                });
            }
        }
        public async Task <APIResultDto> ExportShopExcel(GetPurchaseRecordsInput input)
        {
            try
            {
                var exportData = await GetShopDataNoPage(input);

                var result = new APIResultDto();
                result.Code = 0;
                result.Data = SaveShopDataExcel("店铺数据统计.xlsx", exportData);
                return(result);
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("ExportShopExcel errormsg{0} Exception{1}", ex.Message, ex);
                return(new APIResultDto()
                {
                    Code = 901, Msg = "网络忙...请待会儿再试!"
                });
            }
        }
Beispiel #10
0
        public async Task <APIResultDto> ExportShopReportDataByOrganizationExcel(GetShopReportDataInput input)
        {
            try
            {
                var exportData = await GetShopReportDataByOrganizationExcel(input);

                var result = new APIResultDto();
                result.Code = 0;
                result.Data = SaveShopReportDataByOrganizationExcelExcel($"{input.Organization}报表统计.xlsx", exportData);
                return(result);
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("ExportShopExcel errormsg{0} Exception{1}", ex.Message, ex);
                return(new APIResultDto()
                {
                    Code = 901, Msg = "网络忙...请待会儿再试!"
                });
            }
        }
        public IActionResult GetCurrentUserOpenId()
        {
            APIResultDto result = new APIResultDto();

            //UserOpenId = "4f72bb43-704d-4d47-b3c1-4631c90427a2";
            //UserOpenId = "oB4nYjnoHhuWrPVi2pYLuPjnCaU0"; //杨帆专用

            if (string.IsNullOrEmpty(UserOpenId))
            {
                result.Code = 901;
                result.Msg  = "用户没有登录";
            }
            else
            {
                result.Code = 0;
                result.Msg  = "获取成功";
                result.Data = new { openId = UserOpenId, tenantId = GetTenantId() };
            }
            return(Json(result));
        }
        public async Task <APIResultDto> ExportSheduleDetailExcel(GetScheduleDetailsInput input)
        {
            try
            {
                var exportData = await GetNoPageScheduleDetailsByOtherTable(input);

                var result = new APIResultDto();
                result.Code = 0;
                result.Data = CreateSheduleDetailExcel("任务明细.xlsx", exportData);
                return(result);
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("ExportEmployeesExcel errormsg{0} Exception{1}", ex.Message, ex);
                return(new APIResultDto()
                {
                    Code = 901, Msg = "网络忙...请待会儿再试!"
                });
            }
        }
Beispiel #13
0
        public async Task <APIResultDto> ExportArticlesExcel(GetArticlesInput input)
        {
            try
            {
                var exportData = await GeArticleNoPage(input);

                var result = new APIResultDto();
                result.Code = 0;
                result.Data = SaveArticleExcel((input.Type == ArticleTypeEnum.经验分享 ? "经验分享.xlsx" : "营销活动.xlsx"), exportData);
                return(result);
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("ExportArticlesExcel errormsg{0} Exception{1}", ex.Message, ex);
                return(new APIResultDto()
                {
                    Code = 901, Msg = "网络忙...请待会儿再试!"
                });
            }
        }
        public async Task <APIResultDto> ExchangeIntegralAsync(ExchangeIntegralDto input)
        {
            using (CurrentUnitOfWork.SetTenantId(input.TenantId))
            {
                //获取积分配置
                var config = await GetIntegralConfig(input.TenantId);

                int?   xintegral = 0; //消费者获得积分
                int?   rintegral = 0; //零售客户获得积分
                string refIds    = string.Empty;
                foreach (var item in input.ShopProductList)
                {
                    //购买记录
                    var purchaseRecord = input.MapTo <PurchaseRecord>();
                    purchaseRecord.Integral      = (int)(item.Price * item.Num * config[DeployCodeEnum.商品购买]);
                    purchaseRecord.Quantity      = item.Num;
                    purchaseRecord.ProductId     = item.Id;
                    purchaseRecord.Specification = item.Specification;
                    purchaseRecord.Remark        = string.Format("数量{0}*指导零售价{1}*兑换比例{2}=积分{3}", item.Num, item.Price, config[DeployCodeEnum.商品购买], purchaseRecord.Integral);
                    await _purchaserecordRepository.InsertAsync(purchaseRecord);

                    await CurrentUnitOfWork.SaveChangesAsync();

                    refIds    += purchaseRecord.Id.ToString() + ",";
                    xintegral += purchaseRecord.Integral;
                    rintegral += ((int)(item.Price * item.Num * config[DeployCodeEnum.店铺扫码兑换]));
                }
                if (refIds.Length > 0)
                {
                    refIds = refIds.Substring(0, refIds.Length - 1);
                }
                //更新消费者总积分 和 积分明细
                if (xintegral > 0)
                {
                    var user = await _weChatUserRepository.GetAll().Where(u => u.OpenId == input.OpenId).FirstOrDefaultAsync();

                    var intDetail = new IntegralDetail();
                    intDetail.InitialIntegral = user.IntegralTotal;
                    intDetail.Integral        = xintegral;
                    intDetail.FinalIntegral   = user.IntegralTotal + xintegral;
                    intDetail.OpenId          = user.OpenId;
                    intDetail.RefId           = refIds;
                    intDetail.TenantId        = input.TenantId;
                    intDetail.Type            = IntegralTypeEnum.购买商品兑换;
                    intDetail.Desc            = "店铺购买商品兑换";
                    await _integralDetailRepository.InsertAsync(intDetail);

                    //await CurrentUnitOfWork.SaveChangesAsync();
                    user.IntegralTotal = intDetail.FinalIntegral.Value;
                    await _weChatUserRepository.UpdateAsync(user);

                    //发送微信模板通知-消费者
                    await PurchaseSendWXMesssageToCust(user.OpenId, input.host, user.MemberBarCode, intDetail.FinalIntegral, intDetail.Integral);
                }

                //更新店铺管理员总积分 和 积分明细
                if (rintegral > 0)
                {
                    //获取零售客户 店铺管理员
                    var shopKeeper = await _weChatUserRepository.GetAll().Where(w => w.UserId == input.RetailerId &&
                                                                                w.UserType == UserTypeEnum.零售客户 && w.IsShopkeeper == true).FirstOrDefaultAsync();

                    if (shopKeeper != null)
                    {
                        var intDetail = new IntegralDetail();
                        intDetail.InitialIntegral = shopKeeper.IntegralTotal;
                        intDetail.Integral        = rintegral;
                        intDetail.FinalIntegral   = shopKeeper.IntegralTotal + rintegral;
                        intDetail.OpenId          = shopKeeper.OpenId;
                        intDetail.RefId           = refIds;
                        intDetail.TenantId        = input.TenantId;
                        intDetail.Type            = IntegralTypeEnum.扫码积分赠送;
                        intDetail.Desc            = "店铺消费者购买商品赠送";
                        await _integralDetailRepository.InsertAsync(intDetail);

                        shopKeeper.IntegralTotal = intDetail.FinalIntegral.Value;
                        await _weChatUserRepository.UpdateAsync(shopKeeper);

                        //发送微信模板通知-店铺管理员
                        await PurchaseSendWXMesssageToShopKeeper(shopKeeper.OpenId, input.host, shopKeeper.MemberBarCode, intDetail.FinalIntegral, intDetail.Integral);
                    }
                }


                //更新店铺销量
                var shop = await _shopRepository.GetAsync(input.ShopId.Value);

                shop.ReadTotal++;                                      //人气增加
                await AddSingleTotalAsync(input.OpenId, input.ShopId); // 店铺人气查重改写

                shop.SaleTotal++;                                      //销量增加
                await _shopRepository.UpdateAsync(shop);

                //发送积分微信通知

                APIResultDto result = new APIResultDto();
                result.Code = 0;
                result.Msg  = "积分兑换成功";
                result.Data = new { RetailerIntegral = rintegral, UserIntegral = xintegral };
                return(result);
            }
        }