Пример #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Dictionary <String, String> reqParams = new Dictionary <String, String>();

            /**
             * 此处注意,因为通联收银宝以后可能增加字段,所以,这里一定要动态遍历获取所有的请求参数
             *
             * */
            for (int i = 0; i < Request.Form.Count; i++)
            {
                reqParams.Add(Request.Form.Keys[i], Request.Form[i].ToString());
            }
            if (!reqParams.ContainsKey("sign"))//如果不包含sign,则不进行处理
            {
                Response.Write("error");
                return;
            }
            if (reqParams.ContainsKey("trxid"))
            {
                string  json = (new JavaScriptSerializer()).Serialize(reqParams);
                JObject jo   = (JObject)JsonConvert.DeserializeObject(json);
                string  sql  = "select p.trxid,p.activityID,o.productID,p.unionID,p.companyID,o.activityID acID,o.psMode,o.startTime,o.mechineID,o.memberID,o.orderNO,o.companyID,o.totalNum,o.source  from asm_pay_info p left join asm_orderlist o on p.trxid=o.trxid"
                               + " where p.trxid = '" + jo["trxid"] + "' and o.trxid = '" + jo["trxid"] + "' and statu = 0";
                DataTable dtInfo = DbHelperSQL.Query(sql).Tables[0];
                if (dtInfo.Rows.Count > 0)
                {
                    string    sql111          = "select top 1 * from asm_duihuan  where newOrderNo='" + dtInfo.Rows[0]["orderNO"].ToString() + "'    order by dhTime desc ";
                    DataTable asm_duihuanInfo = DbHelperSQL.Query(sql111).Tables[0];
                    if (asm_duihuanInfo.Rows.Count > 0 && (!string.IsNullOrEmpty(asm_duihuanInfo.Rows[0]["oldOrderNo"].ToString())))
                    {
                        Util.Debuglog("sql111=" + sql111, "dhProduct.txt");
                        List <string> list = new List <string>();
                        string        sql2 = "update asm_orderlist set orderZT=4 where orderNO='" + asm_duihuanInfo.Rows[0]["oldOrderNo"].ToString() + "'";
                        string        sql3 = "update asm_orderlistDetail set zt=7 where  zt=5 and orderNO='" + asm_duihuanInfo.Rows[0]["oldOrderNo"].ToString() + "'";
                        list.Add(sql2);
                        list.Add(sql3);
                        Util.Debuglog("list=" + sql2 + sql3, "dhProduct.txt");
                        int a = DbHelperSQL.ExecuteSqlTran(list);
                    }
                    string trxdate   = Request.Form["trxdate"];
                    string paytime   = Request.Form["paytime"];
                    string acct      = Request.Form["acct"];
                    string chnltrxid = Request.Form["chnltrxid"];
                    double trxamtY   = double.Parse(Request.Form["trxamt"]) / 100;
                    //更新asm_pay_info asm_orderlist支付状态
                    string update1 = "update asm_pay_info set statu=1,paytime='" + paytime + "',productID='" + dtInfo.Rows[0]["productID"].ToString() + "',mechineID='" + dtInfo.Rows[0]["mechineID"].ToString() + "' where trxid='" + jo["trxid"].ToString() + "'";
                    DbHelperSQL.ExecuteSql(update1);
                    string update2 = "update asm_orderlist set fkzt=1  where trxid='" + jo["trxid"].ToString() + "'";
                    DbHelperSQL.ExecuteSql(update2);
                    //需要更新会员的消费信息
                    string update = "update asm_member set sumConsume=sumConsume+" + trxamtY + ",LastTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',mechineID='" + dtInfo.Rows[0]["mechineID"].ToString() + "' where minOpenID='" + acct + "'";
                    DbHelperSQL.ExecuteSql(update);

                    string sqlActivity = "select * from asm_activity where status=1 and id=" + dtInfo.Rows[0]["activityID"].ToString();
                    //DataTable dactivity = DbHelperSQL.Query(sqlActivity).Tables[0];



                    string[] selDate = OperUtil.getSelDate(dtInfo.Rows[0]["totalNum"].ToString(), dtInfo.Rows[0]["psMode"].ToString(), dtInfo.Rows[0]["startTime"].ToString()).Split(',');
                    if (selDate.Length > 0)
                    {
                        DataTable dtNew;
                        for (int j = 0; j < dtInfo.Rows.Count; j++)
                        {
                            string sql14 = "select * from asm_orderlistDetail where id=0";
                            dtNew = DbHelperSQL.Query(sql14).Tables[0];

                            for (int i = 0; i < selDate.Length; i++)
                            {
                                int code = new Random(Guid.NewGuid().GetHashCode()).Next(100000, 999999);
                                //zt   1-已完成;2-已失效;3-已转售;4-待取货;5-待配送
                                DataRow dr = dtNew.NewRow();
                                dr["mechineID"]  = dtInfo.Rows[j]["mechineID"].ToString(); //通过索引赋值
                                dr["productID"]  = dtInfo.Rows[j]["productID"].ToString();
                                dr["createTime"] = delTime(selDate[i]);                    //
                                //dr["code"] = code;//
                                dr["memberID"] = dtInfo.Rows[j]["memberID"].ToString();    //通过索引赋值
                                if (delTime(selDate[i]) == DateTime.Now.ToString("yyyy-MM-dd"))
                                {
                                    dr["zt"]   = "4";
                                    dr["code"] = code;//
                                }
                                else
                                {
                                    dr["zt"] = "5";
                                }

                                dr["ldNO"]      = "";                                   //
                                dr["orderNO"]   = dtInfo.Rows[j]["orderNO"].ToString(); //
                                dr["statu"]     = "0";                                  //通过索引赋值
                                dr["sellPrice"] = 0.0;
                                dr["sellTime"]  = "";
                                dr["bz"]        = "";
                                dr["companyID"] = dtInfo.Rows[j]["companyID"].ToString();
                                dtNew.Rows.Add(dr);
                            }
                            DbHelperSQL.BatchInsertBySqlBulkCopy(dtNew, "[dbo].[asm_orderlistDetail]");
                            string    sql1 = "select * from asm_orderlistDetail where orderNO in ('" + dtInfo.Rows[j]["orderNO"].ToString() + "') ORDER BY createTime DESC ";
                            DataTable d1   = DbHelperSQL.Query(sql1).Tables[0];
                            if (d1.Rows.Count > 0)
                            {
                                string update12 = "UPDATE asm_orderlist set endTime='" + d1.Rows[0]["createTime"].ToString() + "' WHERE orderNO in ('" + dtInfo.Rows[j]["orderNO"].ToString() + "')";
                                DbHelperSQL.ExecuteSql(update12);
                            }
                            if (dtInfo.Rows[j]["startTime"].ToString() == DateTime.Now.ToString("yyyy-MM-dd"))
                            {
                                string updagte = "UPDATE asm_orderlist set orderzt=1 where orderno='" + dtInfo.Rows[j]["orderNO"].ToString() + "'";
                                DbHelperSQL.ExecuteSql(updagte);
                            }
                        }
                    }


                    if (dtInfo.Rows[0]["source"].ToString() != "1")
                    {
                        Util.growUpMemberBYDG(acct, int.Parse(dtInfo.Rows[0]["totalNum"].ToString()) * dtInfo.Rows.Count, dtInfo.Rows[0]["companyID"].ToString());
                    }

                    //发送模板消息
                    string    sqlM = "select * from asm_member where minOpenID='" + acct + "'";
                    DataTable dM   = DbHelperSQL.Query(sqlM).Tables[0];
                    //插入参加的活动记录
                    string activityID = dtInfo.Rows[0]["activityID"].ToString();
                    //兑换的产品不在继续参加活动source!=1
                    if (!string.IsNullOrEmpty(activityID) && dtInfo.Rows[0]["source"].ToString() != "1")
                    {
                        string    sqlAc = "select * from asm_activity where statu=1 and id='" + activityID + "'";
                        DataTable dac   = DbHelperSQL.Query(sqlAc).Tables[0];
                        if (dac.Rows.Count > 0)
                        {
                            string status = "1";
                            if (dac.Rows[0]["type"].ToString() == "3")
                            {
                                status = "0";
                            }
                            else
                            {
                                try
                                {
                                    //发通知
                                    if (!string.IsNullOrEmpty(dM.Rows[0]["openID"].ToString()))
                                    {
                                        string   companyID = dM.Rows[0]["companyID"].ToString();
                                        string   openID    = dM.Rows[0]["openID"].ToString();
                                        wxHelper wx        = new wxHelper(companyID);
                                        string   data      = TemplateMessage.getPrize(openID, "hPFDCcfuANnDAGaIaAjsAnDKfgFXK-Y0SYGK12iIsAM", "活动奖励通知", dac.Rows[0]["payName"].ToString(), dac.Rows[0]["tag"].ToString(), "请尽快到小程序查看奖励");
                                        TemplateMessage.SendTemplateMsg(wx.IsExistAccess_Token(dM.Rows[0]["companyID"].ToString()), data);
                                    }
                                }
                                catch { }
                            }
                            string zsType        = dac.Rows[0]["type"].ToString();
                            string sqlActivityIn = "insert into asm_partActivity(memberID,partTime,type,activityContent,companyID,zsType,status,activityName,totalMoney) values('" + dtInfo.Rows[0]["memberID"].ToString() + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',1,'" + dac.Rows[0]["activitytag"].ToString() + "','" + dac.Rows[0]["companyID"].ToString() + "'," + zsType + "," + status + ",'" + dac.Rows[0]["activityname"].ToString() + "'," + trxamtY + ")";
                            DbHelperSQL.ExecuteSql(sqlActivityIn);
                        }
                    }

                    if (dM.Rows.Count > 0)
                    {
                        if (!string.IsNullOrEmpty(dM.Rows[0]["openID"].ToString()))
                        {
                            string    openID    = dM.Rows[0]["openID"].ToString();
                            string    companyID = dM.Rows[0]["companyID"].ToString();
                            string    sqlp      = "select o.*,p.proName from asm_orderlist o left join asm_product p on o.productID=p.productID where trxid='" + jo["trxid"].ToString() + "'";
                            DataTable dp        = DbHelperSQL.Query(sqlp).Tables[0];
                            wxHelper  wx        = new wxHelper(companyID);
                            string    data      = TemplateMessage.comsume(openID, OperUtil.getMessageID(companyID, "OPENTM401313503"), "亲,你的购买的商品信息如下",
                                                                          "" + dp.Rows[0]["proName"].ToString() + "", dp.Rows[0]["totalMoney"].ToString(), dp.Rows[0]["orderNO"].ToString(), dp.Rows[0]["mechineName"].ToString(), "“生鲜时逐”订奶订单已生成,鲜活即将配送到家");
                            TemplateMessage.SendTemplateMsg(wx.IsExistAccess_Token(OperUtil.getCooki("companyID")), data);
                        }
                    }
                }
            }
        }