Example #1
0
    def post(self, argument):
        if argument == '1':
            data_json = json.loads(self.get_argument('data'))
            code = data_json.get('code')
            if self.session['email_random'] == code:

                # 新增到User表
                user_data = {
                    "UserName": self.session['nickname'],
                    "UserEmail": self.session['bind_email'],
                    "UserLastVisitIP": self.request.remote_ip
                }
                user_obj = Users(**user_data)
                session.add(user_obj)
                session.commit()
                # 添加到映射表
                data = {
                    "OpenID": self.session['openid'],
                    "UserID": str(user_obj.UserID)
                }
                session.add(LoginMap(**data))
                self.session.set('index_user', user_obj)
                session.commit()
                session.close()
                print "user_data", user_data
                # self.session['index_user'] = user_data
                self.write_json("验证成功", code=1)
            else:
                self.write_json("验证失败", code=0)
Example #2
0
 def delete(self, argument):
     try:
         session.query(Users).filter(Users.UserID == argument).delete()
         self.write_json("success", code=1)
         session.commit()
     except Exception, e:
         self.write_json("failed", code=0)
Example #3
0
 def get(self):
     user_info = self.session['index_user'].to_json()
     data = json.loads(self.get_argument('data'))
     trade_no = sec_pass(str(int(time.time())))  # 交易号
     # 加入订单
     save_data = {"TRADE_NO": trade_no, "UserID": user_info.get('UserID'),
                  "OrderTotalPrice": data.get('totalprice'),
                  "OrderPayType": 1,
                  "OrderStatus": False,
                  "OrderSendAddress": data.get('address')}
     try:
         product_list = []
         for i, x in enumerate(data.get('all_data')):
             # 删除购物车信息
             session.query(ShopCart).filter(ShopCart.ShopCartID == x['shopcartid']).delete()
             # 修改商品信息
             session.query(Product).filter(Product.ProductID == x['productid']).update(
                 {"ProductBuyNum": Product.ProductBuyNum + int(x['num'])})
             product_list.append(str(x['productid']))
         save_data['ProductID'] = ','.join(product_list)
         session.add(Order(**save_data))
         session.commit()
     except Exception, e:
         print(e)
         session.rollback()
Example #4
0
    def patch(self, argument):
        updata_json = json.loads(self.get_argument('data'))
        print updata_json
        try:
            if updata_json['IsNew'] == '1':
                updata_json['IsNew'] = True
            else:
                updata_json['IsNew'] = False

            if updata_json['IsHot'] == '1':
                updata_json['IsHot'] = True
            else:
                updata_json['IsHot'] = False

            updata_json['ProductType'] = int(updata_json['ProductType'])
            updata_json['ProductMarketPrice'] = int(
                updata_json['ProductMarketPrice'])
            updata_json['ProductFavorablePrice'] = int(
                updata_json['ProductFavorablePrice'])
            updata_json['ProductVipPrice'] = int(
                updata_json['ProductVipPrice'])
            updata_json['ProductPoint'] = int(updata_json['ProductPoint'])
            updata_json['ProductCount'] = int(updata_json['ProductCount'])

            session.query(Product).filter(
                Product.ProductID == argument).update(updata_json)
            session.commit()
            self.write_json("success", code=1)
        except Exception, e:
            print e
            self.write_json("failed", code=0)
Example #5
0
 def post(self, argument):
     msg = None
     code = None
     # 收藏商品
     try:
         user_info = self.session['index_user'].to_json()
         ret = session.query(Collection).filter(
             Collection.UserID == user_info.get('UserID'),
             Collection.ProductID == argument).first()
         if ret:
             code = 0
             msg = u"该商品已经收藏了"
         else:
             code = 1
             msg = u"收藏成功"
             data = {
                 "UserID": user_info.get('UserID'),
                 "ProductID": argument
             }
             session.add(Collection(**data))
             session.commit()
     except Exception, e:
         print e
         code = 3
         msg = u"用户未登录"
Example #6
0
    def post(self):
        # 注册
        try:
            # 获取前端传来的参数
            data = json.loads(self.get_argument('data'))

            luosimao_rep = data.get('luosimao_rep')
            check_json = {
                'api_key': settings.LUOSIMAO_API_KEY,
                'response': luosimao_rep
            }
            check_response = requests.post(settings.LUOSIMAO_CHECK_ADDRESS,
                                           data=check_json)
            if json.loads(check_response.content).get('res') != 'success':
                code = 3
                msg = u"人机验证失败"
                self.write_json(msg, code=code)
                return
            data.pop('luosimao_rep')
            data['UserAge'] = int(data['UserAge'])
            data['UserPwd'] = sec_pass(data['UserPwd'])
            data['UserLastVisitIP'] = self.request.remote_ip
            active_hash_code = sec_pass(str(int(time.time())))
            data['UserHashCode'] = active_hash_code
            session.add(Users(**data))
            session.commit()
            active_url = '<a href='+'http://'+settings.WEB_DOMAIN_NAME+\
                         '/active_email/?address='+data['UserEmail']+\
                         '&hash_code='+active_hash_code+'>http://'+settings.WEB_DOMAIN_NAME+\
                         '/active_email/?address='+data['UserEmail']+\
                         '&hash_code='+active_hash_code+'</a>'
            content = '''
<html>
<body>
<p>亲爱的用户:</p>
<pre>
  您收到这封邮件,是由于在 春色撩人网站 进行了新用户注册,或用户修改 Email 使用 了这个邮箱地址。
 如果您并没有访问过 春色撩人网站,或没有进行上述操作,请忽 略这封邮件。您不需要退订或进行其他进一步的操作。
</pre>
<pre>
 ===============激活链接===================

''' + active_url + '''

(如果上面不是链接形式,请将该地址手工粘贴到浏览器地址栏再访问)

</pre>
</body>
</html>
'''
            obj = redis_queue_send_email.REDIS_QUEUE()
            obj.send_email_via_queue(settings.SMTP_USER, data['UserEmail'],
                                     settings.WEB_NAME + "注册", content)

            self.write_json("success", code=1)
        except Exception, e:
            # 事务
            session.rollback()
            self.write_json("failed", code=0)
Example #7
0
 def post(self):
     data = json.loads(self.get_argument('data'))
     user_id = self.session['index_user'].to_json()['UserID']
     data["UserID"] = user_id
     obj = DeliveryAddress(**data)
     session.add(obj)
     session.commit()
     self.write_json(u"新增成功", code=1)
Example #8
0
 def post(self):
     user_info = self.session['index_user'].to_json()
     pid = self.get_argument('pid')
     session.query(Collection).filter(
         Collection.ProductID == pid,
         Collection.UserID == user_info['UserID']).delete()
     session.commit()
     self.write_json(u"移除成功", code=1)
Example #9
0
 def delete(self, cartid):
     try:
         session.query(ShopCart).filter(
             ShopCart.ShopCartID == cartid).delete()
         session.commit()
         self.write_json("success", code=1)
     except Exception, e:
         self.write_json("failed", code=0)
Example #10
0
 def post(self):
     arg_data = json.loads(self.get_argument('data'))
     user_info = self.session['index_user'].to_json()
     data = {"UserID": user_info['UserID'], "ProductID": arg_data['pid'],
             "Content": arg_data['user_comment_content'], "Status": False}
     obj = Comment(**data)
     session.add(obj)
     session.commit()
     self.write_json(u"新增成功、审核成功后即可显示!", code=1)
Example #11
0
 def patch(self, argument):
     updata_json = json.loads(self.get_argument('data'))
     try:
         session.query(Users).filter(
             Users.UserID == argument).update(updata_json)
         session.commit()
         self.write_json("success", code=1)
     except Exception, e:
         print e
         self.write_json("failed", code=0)
Example #12
0
 def post(self):
     # 新增商品类型
     try:
         # 获取前端传来的参数
         data = json.loads(self.get_argument('data'))
         session.add(ProductType(**data))
         session.commit()
         self.write_json("success", code=1)
     except:
         # 事务
         session.rollback()
         self.write_json("failed", code=0)
     finally:
         session.close()
Example #13
0
 def patch(self, argument):
     updata_json = json.loads(self.get_argument('data'))
     try:
         if updata_json['Status'] == '1':
             updata_json['Status'] = True
         else:
             updata_json['Status'] = False
         session.query(Comment).filter(
             Comment.CommentID == argument).update(updata_json)
         session.commit()
         self.write_json("success", code=1)
     except Exception, e:
         print e
         self.write_json("failed", code=0)
Example #14
0
 def get(self):
     try:
         email_address = self.get_argument('address')
         hash_code = self.get_argument('hash_code')
         ret = session.query(Users).filter_by(
             UserEmail=email_address).first()
         if ret and hash_code == ret.UserHashCode:
             # 激活账户
             session.query(Users).filter(
                 Users.UserEmail == email_address).update(
                     {"UserHashCode": ""})
             session.commit()
             self.redirect('/login/?active_status=1')
     except Exception, e:
         self.redirect('/login/?active_status=0')
Example #15
0
 def post(self):
     try:
         data = json.loads(self.get_argument('data'))
         if data.keys()[0] == "UserSex":
             data['UserSex'] = 1 if data['UserSex'] == u"男" else 0
         user_info = self.session['index_user'].to_json()
         session.query(Users).filter(
             Users.UserID == user_info['UserID']).update(data)
         user_info = session.query(Users).filter_by(
             UserID=user_info['UserID']).first()
         self.session['index_user'] = user_info
         self.write_json(u"修改成功", code=1)
         session.commit()
     except Exception, e:
         print e
         self.write_json(u"修改失败", code=0)
Example #16
0
    def get(self):
        # 支付成功,改变订单状态
        user_info = self.session['index_user'].to_json()
        out_trade_no = self.get_argument('out_trade_no', None)
        if out_trade_no:
            select_order_status = session.query(Order).filter_by(
                TRADE_NO=out_trade_no).first()
            if not select_order_status.OrderStatus:
                session.query(Order).filter(
                    Order.TRADE_NO == out_trade_no).update(
                        {"OrderStatus": True})
                session.commit()
                # 发送邮件
                content = '''
<html>
<body>
<p>亲爱的用户:</p>
<pre>
您已经成功购买商品。我们已经收到您的订单 <a>''' + out_trade_no + '''</a> 的购买请求,商品正在发货中,请等待!
如果您并没有访问过 有缘婚恋网,或没有进行上述操作,请忽 略这封邮件。您不需要退订或进行其他进一步的操作。
</pre>
<pre>

</pre>
</body>
</html>
'''
                obj = redis_queue_send_email.REDIS_QUEUE()
                obj.send_email_via_queue(settings.SMTP_USER,
                                         user_info.get('UserEmail'),
                                         settings.WEB_NAME + "订单信息", content)
        order_list = session.query(Order).filter_by(
            UserID=user_info.get('UserID')).all()
        all_data = []
        for i, x in enumerate(order_list):
            ProductID = x.to_json().get('ProductID')
            product_info_list = []
            for id in ProductID.split(','):
                print "==========", id
                ProductInfo = session.query(Product).filter_by(
                    ProductID=id).first().to_json()
                product_info_list.append(ProductInfo)
            all_data.append({
                "order": x.to_json(),
                "product_info": product_info_list
            })
        self.render('order_list.html', order_list=all_data)
Example #17
0
 def post(self):
     # 新增用户
     try:
         # 获取前端传来的参数
         data = json.loads(self.get_argument('data'))
         # 保存访问IP
         data['UserLastVisitIP'] = self.request.remote_ip
         # 密码加密
         data['UserPwd'] = sec_pass(data['UserPwd'])
         session.add(Users(**data))
         session.commit()
         self.write_json("success", code=1)
     except:
         # 事务
         session.rollback()
         self.write_json("failed", code=0)
     finally:
         session.close()
Example #18
0
    def get(self):
        try:
            # 获取code
            code = self.get_argument('code')
            # 根据code获取access_token
            url1 = 'https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=' + settings.QQ_APP_ID + '&client_secret=' \
                   + settings.QQ_APPKey + '&code=' + code + '&redirect_uri=' + settings.QQ_CollBackUrl
            req1 = requests.get(url1)
            access_token = req1.content.split('&')[0].split('=')[1]
            # 根据access_token获取openid
            url2 = 'https://graph.qq.com/oauth2.0/me?access_token=' + access_token
            req2 = requests.get(url2)
            openid = json.loads(
                req2.content.split('(')[1].split(')')[0]).get('openid')

            # 根据openid获取用户信息
            url3 = 'https://graph.qq.com/user/get_user_info?access_token=' + access_token + '&oauth_consumer_key=' + settings.QQ_APP_ID + '&openid=' + openid
            req3 = requests.get(url3)
            qq_user_info = json.loads(req3.content)
            nickname = qq_user_info.get('nickname')

            # 查询有没有绑定帐号
            self.session['openid'] = openid
            self.session['nickname'] = nickname
            ret = session.query(LoginMap).filter_by(OpenID=openid).first()
            if not ret:
                self.redirect('/register/?status=1')  # 未绑定帐号
            else:
                # 登录
                userid = ret.UserID
                ret = session.query(Users).filter_by(UserID=userid).first()
                self.session['index_user'] = ret
                session.query(Users).filter(Users.UserID == ret.UserID).update(
                    {
                        "UserLastVisitTime": datetime.datetime.now(),
                        "UserLastVisitIP": self.request.remote_ip
                    })
                session.commit()
                self.redirect('/index')
        except Exception, e:
            print(e)
            self.redirect('/register/?status=2')  # 第三方登录出现错误
Example #19
0
    def post(self):
        data = json.loads(self.get_argument('data'))
        luosimao_rep = data.get('luosimao_rep')
        check_json = {
            'api_key': settings.LUOSIMAO_API_KEY,
            'response': luosimao_rep
        }
        check_response = requests.post(settings.LUOSIMAO_CHECK_ADDRESS,
                                       data=check_json)
        if json.loads(check_response.content).get('res') != 'success':
            code = 3
            msg = u"人机验证失败"
            self.write_json(msg, code=code)
            return

        # 验证帐号密码,帐号状态
        ret = session.query(Users).filter(
            Users.UserEmail == data.get('Email'),
            Users.UserPwd == sec_pass(data.get('Pass'))).first()
        if not ret:
            code = 2
            msg = u"帐号密码错误"
            self.write_json(msg, code=code)
            return
        if ret.UserHashCode:
            # 账户未激活
            code = 0
            msg = u"帐号未激活"
            self.write_json(msg, code=code)
            return
        else:
            code = 1
            msg = u"登录成功"
            session.query(Users).filter(Users.UserID == ret.UserID).update({
                "UserLastVisitTime":
                datetime.datetime.now(),
                "UserLastVisitIP":
                self.request.remote_ip
            })
            self.session['index_user'] = ret
            session.commit()
            self.write_json(msg, code=code)
Example #20
0
    def post(self, argument):
        msg = ''
        code = ''
        try:
            user_info = self.session['index_user'].to_json()
            buy_num = 1
            arg_data = self.get_argument('data')
            if arg_data and arg_data != "":
                argument_data = json.loads(self.get_argument('data'))
                buy_num = argument_data.get('buy_num')

            # 查询购物车中是否已经有该商品
            ret = session.query(ShopCart).filter(
                ShopCart.UserID == user_info.get('UserID'),
                ShopCart.ProductID == argument).first()
            if ret:
                session.query(ShopCart).filter(
                    ShopCart.UserID == user_info.get('UserID'),
                    ShopCart.ProductID == argument).update(
                        {"BuyNum": int(buy_num) + int(ret.BuyNum)})
            else:
                if buy_num:
                    data = {
                        "UserID": user_info.get('UserID'),
                        "ProductID": argument,
                        "BuyNum": buy_num
                    }
                else:
                    data = {
                        "UserID": user_info.get('UserID'),
                        "ProductID": argument
                    }
                session.add(ShopCart(**data))
            session.commit()
            code = 1
            msg = u"添加购物车成功"
        except Exception, e:
            print(e)
            code = 0
            msg = u"添加购物车出错"
Example #21
0
 def post(self):
     # 新增商品
     try:
         # 获取前端传来的参数
         data = json.loads(self.get_argument('data'))
         if data['IsHot'] == '1':
             data['IsHot'] = True
         else:
             data['IsHot'] = False
         if data['IsNew'] == '1':
             data['IsNew'] = True
         else:
             data['IsNew'] = False
         pro = Product(**data)
         session.add(pro)
         session.commit()
         self.write_json(pro.ProductID, code=1)
     except Exception, e:
         # 事务
         print e
         session.rollback()
         self.write_json("failed", code=0)
Example #22
0
    def get(self):
        code = self.get_argument('code')
        url = 'https://api.weibo.com/oauth2/access_token'
        url1 = 'https://api.weibo.com/2/users/show.json'
        canshu = {
            "client_id": "1816247821",
            "client_secret": "eda276ef28ae911ba030fea6bfbbc360",
            "grant_type": "authorization_code",
            "code": code,
            "redirect_uri": "http://test.com/check_weibo/"
        }
        re = requests.post(url, data=canshu)
        re_json = json.loads(re.content)
        re1 = requests.get(url1 + "?access_token=" +
                           re_json.get('access_token') + "&uid=" +
                           re_json.get('uid'))
        weibo_user_info = json.loads(re1.content)

        ret = session.query(LoginMap).filter_by(
            OpenID=weibo_user_info.get('id')).first()
        if not ret:
            self.session['openid'] = weibo_user_info.get('id')
            self.session['nickname'] = weibo_user_info.get('screen_name')
            self.redirect('/register/?status=1')  # 未绑定帐号
        else:
            # 登录
            userid = ret.UserID
            ret = session.query(Users).filter_by(UserID=userid).first()
            session.query(Users).filter(Users.UserID == ret.UserID).update({
                "UserLastVisitTime":
                datetime.datetime.now(),
                "UserLastVisitIP":
                self.request.remote_ip
            })
            self.session['index_user'] = ret
            session.commit()
            self.redirect('/index')
Example #23
0
    def post(self):
        pid = self.get_argument('pid')
        try:
            complete_file_path = None
            file_name = None
            return_save_file_path = os.path.join('images',
                                                 'upload')  # 要保存到数据库的地址
            save_file_path = os.path.join('static', return_save_file_path)
            if self.get_argument('image_type') == '1':
                # 小图地址字段
                image_type = 'ProductSmallPicture'
                # 上传到哪儿
                upload_type = 'SmallPictureUpType'
            else:
                # 大图地址字段
                image_type = 'ProductBigPictureProductBigPicture'
                # 上传到哪儿
                upload_type = 'BigPictureUpType'

            if self.get_argument('save_type') == '2' or self.get_argument(
                    'save_type') == '3':
                # 七牛云、又拍云
                save_file_path = os.path.join('static', return_save_file_path)

            # 将文件先保存到本地
            file_metas = self.request.files["file"]  # 获取上传文件信息
            for meta in file_metas:  # 循环文件信息
                file_name = meta['filename']  # 获取文件的名称
                # 拼接完整目录
                complete_file_path = os.path.join(save_file_path, file_name)
                with open(complete_file_path,
                          'wb') as up:  # os拼接文件保存路径,以字节码模式打开
                    up.write(meta['body'])  # 将文件写入到保存路径目录

            # 要保存到数据库的文件名
            return_save_file_path = file_name

            # 是否上传七牛云
            if self.get_argument('save_type') == '2':
                # 上传
                obj = up_qiniu.QINIU()
                # 返回七牛地址
                return_save_file_path = obj.upload(complete_file_path,
                                                   file_name)

            # 是否上传又拍云
            if self.get_argument('save_type') == '3':
                pass
                # 上传
                # 返回七牛地址
                # return_save_file_path

            # 入库
            session.query(Product).filter(Product.ProductID == pid).update({
                image_type:
                return_save_file_path,
                upload_type:
                int(self.get_argument('save_type'))
            })
            session.commit()
            session.close()
            self.write_json("success", code=1)
        except Exception, e:
            print e
            self.write_json("failed", code=0)
Example #24
0
 def patch(self, cartid):
     number = json.loads(self.get_argument('data')).get('number')
     session.query(ShopCart).filter(ShopCart.ShopCartID == cartid).update(
         {"BuyNum": number})
     session.commit()
     self.write_json(u"购物车更新成功", code=1)