예제 #1
0
        public JsonResult PushWechatInfo(int pushBatchId, string openId)
        {
            var result = PushService.PushWechatInfoByBatchId(pushBatchId, new PushTemplateLog()
            {
                Target = openId
            });

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public Tuple <bool, string> UpdateStatus(int pkid, Status status, string refusalReason, int pushBatchId, string user)
        {
            var result = false;
            var msg    = string.Empty;

            try
            {
                if (status == Status.Approved || status == Status.Unapprove)
                {
                    dbScopeManager.CreateTransaction(conn =>
                    {
                        var data = DALRebateConfig.SelectRebateConfigByPKID(conn, pkid);
                        if (status == Status.Approved)
                        {
                            var existedData = DALRebateConfig.SelectRebateApplyConfigByParam(conn, data);
                            if (String.Equals(data.Source, "Rebate25"))
                            {
                                existedData = existedData.Where(_ => String.Equals(_.Source, "Rebate25")).ToList();
                            }
                            else
                            {
                                existedData = existedData.Where(_ => String.Equals(_.Source, "爱卡") || String.Equals(_.Source, "汽车之家")).ToList();
                            }
                            if (existedData?.Where(x => String.Equals(x.OrderId, data.OrderId)).Count() > 0 ||
                                existedData?.Where(x => String.Equals(x.UserPhone, data.UserPhone)).Count() > 0)
                            {
                                msg = "每个客户只能参与一次(包含手机号、订单号、微信号)均视为同一客户";
                            }
                            else
                            {
                                if (!string.IsNullOrEmpty(data.OpenId))
                                {
                                    if (data.Status == Status.Applying)
                                    {
                                        if (String.Equals(data.Source, "爱卡") || String.Equals(data.Source, "汽车之家"))
                                        {
                                            result = DALRebateConfig.UpdateStatusForCompleteV2(conn, pkid) > 0;
                                        }
                                        else
                                        {
                                            var getResult = SendRedBag(new WxSendRedBagRequest()
                                            {
                                                OrderNo = data.OrderId.ToString(),
                                                OpenId  = data.OpenId,
                                                PayWay  = "WX_QIYEFUKUAN",
                                                Money   = 2500M, //返现25元 单位:分
                                                Channel = "途虎朋友圈点赞返现",
                                                Remark  = "途虎25元集赞已返到零钱;参加58元发帖返现请添加微信号:tuhu24咨询。"
                                            });
                                            if (getResult.Item1)
                                            {
                                                var pushResult = PushService.PushWechatInfoByBatchId(3383, new PushTemplateLog()
                                                {
                                                    Target = data.OpenId
                                                });
                                                InsertLog(pkid.ToString(), "PushWechatInfo", pushResult ? "消息推送成功" : "消息推送失败", $"BatchId:{3383}", string.Empty, string.Empty, user);
                                                result = DALRebateConfig.UpdateStatusForCompleteV2(conn, pkid) > 0;
                                            }

                                            msg = getResult.Item2 ?? "返现失败";
                                            InsertLog(pkid.ToString(), "SendRedBag", getResult.Item1 ? "返现成功" : msg, $"OpenId:{data.OpenId},Money:{decimal.Parse("25.00")}", string.Empty, string.Empty, user);
                                        }
                                    }
                                    else
                                    {
                                        msg = $"审核状态异常,BeforeValue:{data.Status.ToString()},AfterValue:{status.ToString()}";
                                    }
                                }
                                else
                                {
                                    result = DALRebateConfig.UpdateStatus(conn, pkid, Status.Approved) > 0;
                                }
                            }
                        }
                        else
                        {
                            result = DALRebateConfig.UpdateStatus(conn, pkid, Status.Unapprove, refusalReason) > 0;
                            if (!string.IsNullOrEmpty(data.OpenId) && result && pushBatchId > 0 && data.Status == Status.Applying)
                            {
                                var pushResult = PushService.PushWechatInfoByBatchId(pushBatchId, new PushTemplateLog()
                                {
                                    Target = data.OpenId
                                });
                                InsertLog(pkid.ToString(), "PushWechatInfo", pushResult ? "消息推送成功" : "消息推送失败", $"BatchId:{pushBatchId}", string.Empty, string.Empty, user);
                            }
                            else
                            {
                                msg = $"审核状态异常,BeforeValue:{data.Status.ToString()},AfterValue:{status.ToString()}";
                            }
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                msg = "服务异常";
                logger.Error(ex);
            }
            InsertLog(pkid.ToString(), "UpdateStatus", result ? "审核成功" : msg, $"PKID:{pkid.ToString()},Status:{status.ToString()}", string.Empty, string.Empty, user);
            return(Tuple.Create(result, msg));
        }