예제 #1
0
def share_userlist(request,template_name="share_user.html",remcommend_limit=5,limit=18):
    '''
    分享用户列表
    '''
    args={}
    try:
        userProfile=UserProfile.objects.get(user=request.user)
        #推荐用户
        userProfileList=UserProfile.objects.select_related('user').filter(avatar_name_status='3').exclude(gender=userProfile.gender).exclude(user_id__in=STAFF_MEMBERS)[:remcommend_limit]
        userlist=[{'userId':user.user_id,'username':user.user.username,'avatar':user.avatar_name} for user in userProfileList]
        userIdList=[str(user['userId']) for user in userlist]
        count=len(userProfileList)
        sql='''
        SELECT %s from third_party_login u1 left join user_profile u4 on u1.user_id =u4.user_id 
left join auth_user u2 on u1.user_id=u2.id
 where u1.provider='3' and exists (select my_id from weixin_score_rank u3 where u1.user_id=u3.my_id) 
and u4.gender !='%s'  and u1.user_id not in (1%s)
order by  u2.last_login desc %s
        '''
        #分享人数
        count+=connection_to_db(sql%('count(*)',userProfile.gender,','+','.join(userIdList),''))[0][0]
        scoreRankList=connection_to_db(sql%('u1.user_id,u2.username,u4.avatar_name',userProfile.gender,','+','.join(userIdList),'limit %s'%(limit)),type=True)
        userlist+=[{'userId':user['user_id'],'username':user['username'],'avatar':user['avatar_name']} for user in scoreRankList]
        args['userlist']=userlist
        args['count']=count
    except Exception as e:
        logger.exception('完善我对别人打分信息:%s'%(e.message))
        args={'result':'error','error_message':(e.message)}
        template_name='error.html'
    return render(request,template_name,args)
예제 #2
0
def get_no_read_message_dynamic_list_count(receiverId):
    sql = '''
    SELECT count(*) from(
SELECT u2.id,u2.sender_id,u3.username as sender_name,u4.avatar_name,u4.avatar_name_status,u1.receiver_id,u2.content,u2.sendTime,u2.type,u1.isRead,
null as friendDynamic_id,null as friendDynamic_content  ,null as data
from message_log u1 LEFT JOIN message u2 on u1.message_id=u2.id 
LEFT JOIN auth_user u3 on u3.id=u2.sender_id LEFT JOIN user_profile u4 on u4.user_id=u2.sender_id
where  isDeletereceiver = False  and u1.isRead=False  AND receiver_id =%s
UNION
SELECT u3.id,u3.sender_id,u1.username as sender_name,u4.avatar_name,u4.avatar_name_status,%s as receiver_id,u3.content,u3.sendTime,u3.type,0 as isRead,
null as friendDynamic_id,null as friendDynamic_content ,null as data
from message u3 LEFT JOIN auth_user u1 on u1.id=u3.sender_id LEFT JOIN user_profile u4 on u4.user_id=u3.sender_id
where u3.type=0 and u3.id not in (SELECT u4.message_id from message_log u4 where u4.receiver_id=%s) and now()<=u3.expireTime
UNION
SELECT u1.id,u1.reviewer_id as sender_id ,u3.username as sender_name,u4.avatar_name,u4.avatar_name_status,
u1.receiver_id,u1.content,u1.commentTime as sendTime ,5 as type,u1.isRead,
u1.friendDynamic_id,u2.content as friendDynamic_content ,u2.data
from friend_dynamic_comment u1  LEFT JOIN friend_dynamic u2 on u2.id=u1.friendDynamic_id
LEFT JOIN auth_user u3 on u3.id=u1.reviewer_id LEFT JOIN user_profile u4 on u4.user_id=u1.reviewer_id
WHERE u1.receiver_id=%s and u1.isRead=0
UNION
SELECT u1.id,u1.user_id as sender_id ,u3.username as sender_name,u4.avatar_name,u4.avatar_name_status,
u2.publishUser_id as receiver_id,null as content,u1.time as sendTime ,3 as type,u1.isRead,
u1.friendDynamic_id,u2.content as friendDynamic_content ,u2.data
from friend_dynamic_argee u1  LEFT JOIN friend_dynamic u2 on u2.id=u1.friendDynamic_id
LEFT JOIN auth_user u3 on u3.id=u1.user_id LEFT JOIN user_profile u4 on u4.user_id=u1.user_id
WHERE u2.publishUser_id=%s and u1.isRead=0
)s 
    '''
    result = connection_to_db(
        sql,
        param=[receiverId, receiverId, receiverId, receiverId, receiverId])
    return result[0][0]
예제 #3
0
    def get_no_read_messagelog(self,
                               userId,
                               first=None,
                               end=None,
                               userList=None):
        userListSql = ''
        if userList is not None:
            userListSql = ('WHERE sender_id in (' +
                           ('%s,' * len(userList))[:-1] +
                           ')') % tuple(userList)
        sql = '''
     select * from(
SELECT u2.id,u2.sender_id,u3.username as sender_name,u4.avatar_name,u4.avatar_name_status,u1.receiver_id,u2.content,u2.sendTime,u2.type,u1.isRead,
null as friendDynamic_id,null as friendDynamic_content  ,null as data
from message_log u1 LEFT JOIN message u2 on u1.message_id=u2.id 
LEFT JOIN auth_user u3 on u3.id=u2.sender_id LEFT JOIN user_profile u4 on u4.user_id=u2.sender_id
where  isDeletereceiver = False  and u1.isRead=False  AND receiver_id =%s and type=1
UNION
SELECT u3.id,u3.sender_id,u1.username as sender_name,u4.avatar_name,u4.avatar_name_status,%s as receiver_id,u3.content,u3.sendTime,u3.type,0 as isRead,
null as friendDynamic_id,null as friendDynamic_content ,null as data
from message u3 LEFT JOIN auth_user u1 on u1.id=u3.sender_id LEFT JOIN user_profile u4 on u4.user_id=u3.sender_id
where u3.type=0 and u3.id not in (SELECT u4.message_id from message_log u4 where u4.receiver_id=%s) and now()<=u3.expireTime
)s ''' + userListSql + '''
ORDER BY sendTime desc
        '''
        if first is not None:
            sql = sql + '  limit %s , %s' % (first, end)
        return connection_to_db(sql, param=[userId, userId, userId], type=True)
예제 #4
0
 def statistic_price(self,**kwargs):
     sqlTime=''
     if kwargs.get("startTime",'')!='':
         sqlTime=' where gmt_payment >= %s and gmt_payment <= '%(kwargs.get("startTime",''),kwargs.get("endTime",''))
     sql="""
        select sum(u.total_fee) from alipay_dpn u where u.trade_status='TRADE_SUCCESS'
        """+sqlTime
     return connection_to_db(sql,param=[],type=True)
예제 #5
0
    def get_no_read_agree_count(self, userId):
        sql = '''
       SELECT count(*)
from friend_dynamic_argee u1  LEFT JOIN friend_dynamic u2 on u2.id=u1.friendDynamic_id
LEFT JOIN auth_user u3 on u3.id=u1.user_id LEFT JOIN user_profile u4 on u4.user_id=u1.user_id
WHERE u2.publishUser_id=%s  and u1.isRead=0
'''
        return connection_to_db(sql, param=[userId])[0][0]
예제 #6
0
def tset_match(request):
    sql = '''
    SELECT DISTINCT name from facebook_user_info where user_id='M2345620' and `name` LIKE BINARY %s
'''
    from util.connection_db import connection_to_db
    match_result = connection_to_db(sql, ('%北大%'))
    #    callback = request.GET.get('callback')
    #    match_result=["2", [0, 1, 4, 5, 6], {"username": "******", "city": "Hangzhou, China", "game_count": 12, "uid": "100007203789389", "facebookPhotoList": "[{\"pk\": \"1401716753411771\", \"model\": \"third_party_login_app.facebookphoto\", \"fields\": {\"bigPhoto\": \"https://scontent-a.xx.fbcdn.net/hphotos-ash3/t1.0-9/1622000_1401716753411771_999418056_n.jpg\", \"smailPhoto\": \"https://fbcdn-photos-e-a.akamaihd.net/hphotos-ak-ash3/t1/1622000_1401716753411771_999418056_s.jpg\", \"user\": \"100007203789389\", \"description\": \"\"}}, {\"pk\": \"1402746386642141\", \"model\": \"third_party_login_app.facebookphoto\", \"fields\": {\"bigPhoto\": \"https://scontent-a.xx.fbcdn.net/hphotos-prn1/t1.0-9/s720x720/1497566_1402746386642141_544486113_n.jpg\", \"smailPhoto\": \"https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-prn1/t1/1497566_1402746386642141_544486113_s.jpg\", \"user\": \"100007203789389\", \"description\": \"penguin\"}}, {\"pk\": \"1412908328959280\", \"model\": \"third_party_login_app.facebookphoto\", \"fields\": {\"bigPhoto\": \"https://scontent-a.xx.fbcdn.net/hphotos-ash3/t1/1904078_1412908328959280_1054220465_n.jpg\", \"smailPhoto\": \"https://fbcdn-photos-a-a.akamaihd.net/hphotos-ak-ash3/t1/1904078_1412908328959280_1054220465_s.jpg\", \"user\": \"100007203789389\", \"description\": \"\"}}, {\"pk\": \"1412908335625946\", \"model\": \"third_party_login_app.facebookphoto\", \"fields\": {\"bigPhoto\": \"https://scontent-b.xx.fbcdn.net/hphotos-prn2/t1/1656267_1412908335625946_1404365753_n.jpg\", \"smailPhoto\": \"https://fbcdn-photos-b-a.akamaihd.net/hphotos-ak-prn2/t1/1656267_1412908335625946_1404365753_s.jpg\", \"user\": \"100007203789389\", \"description\": \"\"}}, {\"pk\": \"1412908342292612\", \"model\": \"third_party_login_app.facebookphoto\", \"fields\": {\"bigPhoto\": \"https://scontent-b.xx.fbcdn.net/hphotos-prn2/t1.0-9/1798191_1412908342292612_583950951_n.jpg\", \"smailPhoto\": \"https://fbcdn-photos-h-a.akamaihd.net/hphotos-ak-prn2/t1.0-0/1798191_1412908342292612_583950951_s.jpg\", \"user\": \"100007203789389\", \"description\": \"\"}}, {\"pk\": \"1412908362292610\", \"model\": \"third_party_login_app.facebookphoto\", \"fields\": {\"bigPhoto\": \"https://scontent-a.xx.fbcdn.net/hphotos-prn2/t1.0-9/1796596_1412908362292610_1486033668_n.jpg\", \"smailPhoto\": \"https://fbcdn-photos-c-a.akamaihd.net/hphotos-ak-prn2/t1/1796596_1412908362292610_1486033668_s.jpg\", \"user\": \"100007203789389\", \"description\": \"\"}}]", "smallAvatar": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash3/t1/c0.0.50.50/p50x50/1622000_1401716753411771_999418056_t.jpg", "age": 24, "avatar": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash3/t1/c0.0.80.80/p80x80/1622000_1401716753411771_999418056_a.jpg"}]
    json = simplejson.dumps(match_result)
    return HttpResponse(json)
예제 #7
0
    def get_no_read_follow_message_count(self, userId):
        sql = '''
        SELECT count(*)
from message_log u1 LEFT JOIN message u2 on u1.message_id=u2.id 
LEFT JOIN auth_user u3 on u3.id=u2.sender_id LEFT JOIN user_profile u4 on u4.user_id=u2.sender_id
where  isDeletereceiver = False  AND receiver_id =%s and type=2 and isRead=0
        '''
        return connection_to_db(sql, param=[
            userId,
        ])[0][0]
예제 #8
0
    def get_comment_list(self, userId):
        sql = '''
        SELECT u1.id,u1.reviewer_id as sender_id ,u3.username as sender_name,u4.avatar_name,u4.avatar_name_status,
u1.receiver_id,u1.content,u1.commentTime as sendTime ,5 as type,u1.isRead,
u1.friendDynamic_id,u2.content as friendDynamic_content ,u2.data
from friend_dynamic_comment u1  LEFT JOIN friend_dynamic u2 on u2.id=u1.friendDynamic_id
LEFT JOIN auth_user u3 on u3.id=u1.reviewer_id LEFT JOIN user_profile u4 on u4.user_id=u1.reviewer_id
WHERE u1.receiver_id=%s 
ORDER BY sendTime desc
        '''
        return connection_to_db(sql, param=[userId], type=True)
예제 #9
0
    def get_agree_List(self, userId):
        sql = '''
       SELECT u1.id,u1.user_id as sender_id ,u3.username as sender_name,u4.avatar_name,u4.avatar_name_status,
u2.publishUser_id as receiver_id,null as content,u1.time as sendTime ,3 as type,u1.isRead,
u1.friendDynamic_id,u2.content as friendDynamic_content ,u2.data
from friend_dynamic_argee u1  LEFT JOIN friend_dynamic u2 on u2.id=u1.friendDynamic_id
LEFT JOIN auth_user u3 on u3.id=u1.user_id LEFT JOIN user_profile u4 on u4.user_id=u1.user_id
WHERE u2.publishUser_id=%s 
ORDER BY time desc
'''
        return connection_to_db(sql, param=[userId], type=True)
예제 #10
0
    def get_no_read_private_msessge_count(self, userId):
        sql = '''
        SELECT count(*) from (
SELECT  u3.id
from message u3 
where u3.type=0 and u3.id not in (SELECT u4.message_id from message_log u4 where u4.receiver_id=%s) and now()<=u3.expireTime
UNION
SELECT u2.id from message_log u1 LEFT JOIN message u2 on u1.message_id=u2.id
where  isDeletereceiver = False  and isRead=0 AND receiver_id = %s and type=1
) s
        '''
        return connection_to_db(sql, param=[userId, userId])[0][0]
예제 #11
0
    def get_follow_message_list(self, userId, isRead, first=None, end=None):
        sql = '''
       SELECT u2.id,u2.sender_id,u3.username as sender_name,u4.avatar_name,u4.avatar_name_status,u1.receiver_id,u2.content,u2.sendTime,u2.type,u1.isRead,
null as friendDynamic_id,null as friendDynamic_content  ,null as data
from message_log u1 LEFT JOIN message u2 on u1.message_id=u2.id 
LEFT JOIN auth_user u3 on u3.id=u2.sender_id LEFT JOIN user_profile u4 on u4.user_id=u2.sender_id
where  isDeletereceiver = False   AND receiver_id =%s and u1.isRead=%s  and type=2
ORDER BY sendTime desc
        '''
        if first is not None:
            sql = sql + '  limit %s , %s' % (first, end)
        return connection_to_db(sql, param=[userId, isRead], type=True)
예제 #12
0
    def get_message_list_121(self, userId, otherId, first=None, end=None):
        sql = '''
   
SELECT u1.*,u2.*,u3.username as receiverName,u4.username as senderName from message_log u1 LEFT JOIN message u2 on u1.message_id=u2.id
INNER JOIN auth_user u3 on u1.receiver_id=u3.id INNER JOIN auth_user u4 on u2.sender_id=u4.id
where  isDeletereceiver = False  AND receiver_id in (%s,%s) and sender_id in (%s,%s)
ORDER BY sendTime DESC
 '''
        if first is not None:
            sql = sql + 'limit %s , %s' % (first, end)
        return connection_to_db(sql,
                                param=[userId, otherId, userId, otherId],
                                type=True)
예제 #13
0
    def get_message_list_with_first_row(self, senderId, receiverId):
        sql = ''
        if senderId == ADMIN_ID or receiverId == ADMIN_ID:
            sql = '''
            SELECT * from (
SELECT * from (
SELECT null as id1,3 as receiver_id,null as message_id,null as isDeleteSender,
null as isDeletereceiver ,null as isRead, u3.* ,null as receiverName,u4.username as senderName 
from message u3 INNER JOIN  auth_user u4 on u4.id=u3.sender_id
where u3.type=0 and u3.id not in (SELECT u4.message_id from message_log u4) and now()<=u3.expireTime 
UNION
SELECT u1.*,u2.*,u3.username as receiverName,u4.username as senderName from message_log u1 LEFT JOIN message u2 on u1.message_id=u2.id
INNER JOIN auth_user u3 on u1.receiver_id=u3.id INNER JOIN auth_user u4 on u2.sender_id=u4.id
where  (isDeletereceiver = False  AND receiver_id in(%s,%s) and sender_id in(%s,%s))
) s
ORDER BY sendTime desc
LIMIT 1,100
)s1

            '''
            return connection_to_db(
                sql,
                param=[senderId, receiverId, senderId, receiverId],
                type=True)
        else:
            sql = '''
            SELECT * from (
            SELECT u1.id as id1,receiver_id, message_id,isDeleteSender,null as isDeletereceiver , isRead,u2.*,u3.username as receiverName,u4.username as senderName 
from message_log u1 LEFT JOIN message u2 on u1.message_id=u2.id
INNER JOIN auth_user u3 on u1.receiver_id=u3.id INNER JOIN auth_user u4 on u2.sender_id=u4.id
where  (isDeletereceiver = False  AND receiver_id in(%s,%s) and sender_id in(%s,%s))
ORDER BY sendTime desc
limit 1,100
)s
            '''
            return connection_to_db(
                sql,
                param=[senderId, receiverId, senderId, receiverId],
                type=True)
예제 #14
0
    def get_agree_List_by_ids(self, idList, dynamicId):
        sql = '''
       SELECT u1.id,u1.user_id as sender_id ,u3.username as sender_name,u4.avatar_name,u4.avatar_name_status,
u2.publishUser_id as receiver_id,null as content,u1.time as sendTime ,3 as type,u1.isRead,
u1.friendDynamic_id,u2.content as friendDynamic_content ,u2.data
from friend_dynamic_argee u1  LEFT JOIN friend_dynamic u2 on u2.id=u1.friendDynamic_id
LEFT JOIN auth_user u3 on u3.id=u1.user_id LEFT JOIN user_profile u4 on u4.user_id=u1.user_id
WHERE u2.publishUser_id in (''' + (
            '%s,' * len(idList))[:-1] + ''') and u1.user_id in (''' + (
                '%s,' * len(idList))[:-1] + ''')  and u1.friendDynamic_id=%s
ORDER BY sendTime desc
'''
        paramList = idList
        paramList.extend(idList)
        paramList.append(dynamicId)
        return connection_to_db(sql, param=paramList, type=True)
예제 #15
0
    def clean_message_by_ids(self, userId, Ids):
        sql = '''
        SELECT id
from message u3 
where u3.type=0 and u3.id not in (SELECT u4.message_id from message_log u4 where u4.receiver_id=%s ) and now()<=u3.expireTime  '''
        sql = sql + 'and id in (' + ('%s,' * len(Ids))[:-1] + ')'
        paramList = [userId]
        paramList.extend(Ids)
        ressult = connection_to_db(sql, paramList)
        if len(ressult) > 0:
            messageLogList = []
            for i in ressult:
                messageLog = MessageLog(receiver_id=userId,
                                        message_id=i[0],
                                        isRead=True)
                messageLogList.append(messageLog)
            MessageLog.objects.bulk_create(messageLogList)
        MessageLog.objects.filter(receiver_id=userId,
                                  message_id__in=Ids).update(isRead=True)
예제 #16
0
    def get_message_list(self, userId, first=None, end=None):
        sql = '''
         SELECT * from (  
   SELECT * from (
SELECT null as id1,%s as receiver_id,null as message_id,null as isDeleteSender,
null as isDeletereceiver ,null as isRead, u3.* ,null as receiverName,u4.username as senderName 
from message u3 INNER JOIN  auth_user u4 on u4.id=u3.sender_id
where u3.type=0 and u3.id not in (SELECT u4.message_id from message_log u4) and now()<=u3.expireTime
UNION
SELECT u1.*,u2.*,u3.username as receiverName,u4.username as senderName from message_log u1 LEFT JOIN message u2 on u1.message_id=u2.id
INNER JOIN auth_user u3 on u1.receiver_id=u3.id INNER JOIN auth_user u4 on u2.sender_id=u4.id
where  (isDeletereceiver = False  AND receiver_id = %s and sender_id!=%s)
) s
ORDER BY type,sendTime desc
)s1
GROUP BY sender_id  '''
        if first is not None:
            sql = sql + 'limit %s , %s' % (first, end)
        return connection_to_db(sql, param=[userId, userId, userId], type=True)
예제 #17
0
    def messagelog_list_by_userid(self,
                                  senderId,
                                  receiver_id,
                                  first=None,
                                  end=None):
        sql = '''
        SELECT * from (
SELECT u2.id,u2.sender_id,u3.username as sender_name,u4.avatar_name,u4.avatar_name_status,u1.receiver_id,u2.content,u2.sendTime,u2.type,u1.isRead
from message_log u1 LEFT JOIN message u2 on u1.message_id=u2.id 
LEFT JOIN auth_user u3 on u3.id=u2.sender_id LEFT JOIN user_profile u4 on u4.user_id=u2.sender_id
where  receiver_id in(%s,%s) and sender_id in(%s,%s) and type=1
) s
ORDER BY sendTime desc
        '''
        if first is not None:
            sql = sql + '  limit %s , %s' % (first, end)
        return connection_to_db(
            sql,
            param=[senderId, receiver_id, senderId, receiver_id],
            type=True)
예제 #18
0
    def has_permission_to_del_commment(self, userId, commentId):
        sql = '''
       SELECT IFNULL(1,0) as 'a' from friend_dynamic_comment u1 LEFT JOIN friend_dynamic u2 on u1.friendDynamic_id=u2.id
where u1.id=%s and ( u1.reviewer_id=%s or u2.publishUser_id=%s )
       '''
        return connection_to_db(sql, param=[commentId, userId, userId])[0][0]