Example #1
0
        public async Task <IActionResult> SaveAndUpdate(CustomerServiceOnlineDto input)
        {
            CustomerServiceOnlineDto result = null;

            input.LastModificationTime = DateTime.Now;
            input.KfAccount            = input.PreKfAccount + "@" + input.PublicNumberAccount;
            string fileUrl = string.Empty;

            if (Request.Form.Files.Count > 0)
            {
                var    profilePictureFile = Request.Form.Files.First();
                byte[] fileBytes;
                using (var stream = profilePictureFile.OpenReadStream())
                {
                    fileBytes = stream.GetAllBytes();
                }
                var fileInfo = new FileInfo(profilePictureFile.FileName);
                var extra    = fileInfo.Extension.Substring(fileInfo.Extension.IndexOf(".") + 1);
                fileUrl = await _fileServer.UploadFile(fileBytes, extra, "CustomerServiceOnline");

                input.LocalHeadingUrl = fileUrl;
                input.KfHeadingUrl    = fileUrl;
                var filename = fileUrl.Substring(fileUrl.LastIndexOf("/") + 1);
            }

            Logger.Info($"客服信息上传开始:客服账号:{input.KfAccount},客服昵称:{input.KfNick},密码:{input.KfPassWord},id={input.Id}");
            if (input.KfType == KFType.WX.ToString())
            {
                //上传客服信息
                if (input.Id == 0)
                {
                    await _wxMediaAppService.AddCustom(input.MpID, input.KfAccount, input.KfNick, input.KfPassWord, input.KfWx);
                }
                else
                {
                    await _wxMediaAppService.UpdateCustom(input.MpID, input.KfAccount, input.KfNick, input.KfPassWord);
                }

                if (Request.Form.Files.Count > 0)
                {
                    Logger.Info($"客服信息上传结束,开始上传客服头像,头像url:{fileUrl}");
                    //上传客服头像
                    await _wxMediaUpload.UploadKfHeading(input.MpID, fileUrl, input.KfAccount);
                }
            }
            else
            {
                input.KfType = KFType.YL.ToString();
            }

            if (input.Id == 0)
            {
                await _CustomerServiceOnlineAppService.Create(input);
            }
            else
            {
                await _CustomerServiceOnlineAppService.Update(input);
            }
            return(Json(""));
        }