|
@@ -9,31 +9,14 @@ export class AiChatService {
|
|
|
isLoggedIn = false;
|
|
|
company: string = 'Qje9D4bqol';
|
|
|
emojis: Array<any> = [];
|
|
|
-
|
|
|
+ get identity(): boolean {
|
|
|
+ let profile = JSON.parse(localStorage.getItem('profile') || '{}');
|
|
|
+ return profile?.identyType === 'anchor';
|
|
|
+ }
|
|
|
constructor(private http: HttpService) {
|
|
|
this.initEmoji();
|
|
|
}
|
|
|
- async getAccountLog(): Promise<any> {
|
|
|
- const uid = Parse.User.current()?.id;
|
|
|
- let query = new Parse.Query('Account');
|
|
|
- query.equalTo('user', uid);
|
|
|
- query.notEqualTo('isDeleted', true);
|
|
|
- query.select('objectId');
|
|
|
- let account = await query.first();
|
|
|
- if (!account?.id) {
|
|
|
- return;
|
|
|
- }
|
|
|
- let sql = `SELECT alog."assetCount",TO_CHAR(alog."createdAt", 'YYYY-MM-DD HH24:MI:SS') AS time,
|
|
|
- (CASE WHEN alog."targetAccount" = '${account.id}' THEN 'recharge' ELSE 'used' END) cate,
|
|
|
- "assetType","orderNumber","desc"
|
|
|
- FROM "AccountLog" AS alog
|
|
|
- WHERE (alog."targetAccount" = '${account.id}' OR alog."fromAccount" = '${account.id}')
|
|
|
- AND alog."isVerified" IS TRUE
|
|
|
- AND alog."isDeleted" IS NOT TRUE
|
|
|
- ORDER BY alog."createdAt" DESC`;
|
|
|
- let data: any = await this.http.customSQL(sql);
|
|
|
- return data?.data;
|
|
|
- }
|
|
|
+
|
|
|
initEmoji() {
|
|
|
let emojiChar =
|
|
|
'☺-😋-😌-😍-😏-😜-😝-😞-😔-😪-😁-😂-😃-😅-😆-👿-😒-😓-😔-😏-😖-😘-😚-😒-😡-😢-😣-😤-😢-😨-😳-😵-😷-😸-😻-😼-😽-😾-😿-🙊-🙋-🙏-✈-🚇-🚃-🚌-🍄-🍅-🍆-🍇-🍈-🍉-🍑-🍒-🍓-🐔-🐶-🐷-👦-👧-👱-👩-👰-👨-👲-👳-💃-💄-💅-💆-💇-🌹-💑-💓-💘-🚲';
|
|
@@ -126,6 +109,27 @@ export class AiChatService {
|
|
|
}
|
|
|
this.emojis = emojis;
|
|
|
}
|
|
|
+ async getAccountLog(): Promise<any> {
|
|
|
+ const uid = Parse.User.current()?.id;
|
|
|
+ let query = new Parse.Query('Account');
|
|
|
+ query.equalTo('user', uid);
|
|
|
+ query.notEqualTo('isDeleted', true);
|
|
|
+ query.select('objectId');
|
|
|
+ let account = await query.first();
|
|
|
+ if (!account?.id) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let sql = `SELECT alog."assetCount",TO_CHAR(alog."createdAt", 'YYYY-MM-DD HH24:MI:SS') AS time,
|
|
|
+ (CASE WHEN alog."targetAccount" = '${account.id}' THEN 'recharge' ELSE 'used' END) cate,
|
|
|
+ "assetType","orderNumber","desc"
|
|
|
+ FROM "AccountLog" AS alog
|
|
|
+ WHERE (alog."targetAccount" = '${account.id}' OR alog."fromAccount" = '${account.id}')
|
|
|
+ AND alog."isVerified" IS TRUE
|
|
|
+ AND alog."isDeleted" IS NOT TRUE
|
|
|
+ ORDER BY alog."createdAt" DESC`;
|
|
|
+ let data: any = await this.http.customSQL(sql);
|
|
|
+ return data?.data;
|
|
|
+ }
|
|
|
async getWallet(uid: string): Promise<any> {
|
|
|
const data = await this.http.httpRequst(
|
|
|
'https://server.fmode.cn/api/ailiao/wallet',
|
|
@@ -175,36 +179,64 @@ export class AiChatService {
|
|
|
const data: any = await this.http.customSQL(sql);
|
|
|
return data.data;
|
|
|
}
|
|
|
- getFriends(uid: string): Promise<any> {
|
|
|
- let sql = `SELECT u.avatar,u.nickname,u."objectId" AS uid,f."channel"
|
|
|
+ /* 获取好友列表 */
|
|
|
+ async getFriends(uid: string): Promise<any> {
|
|
|
+ let rejectsSql = `SELECT invited FROM "EventLog" WHERE "isDeleted" IS NOT TRUE AND "user" = '${uid}' AND "isAward" = TRUE `;
|
|
|
+ let data: any = await this.http.customSQL(rejectsSql);
|
|
|
+ let list = data.data;
|
|
|
+ let notInclude = list?.map((item: any) => {
|
|
|
+ return `'${item.invited}'`;
|
|
|
+ });
|
|
|
+ let sql = `SELECT u.avatar,u.nickname,u."objectId" AS uid,f."channel",
|
|
|
+ f.deadline
|
|
|
FROM
|
|
|
- (SELECT (CASE WHEN "friend" = '${uid}' THEN "user" ELSE "friend" END) fid,"channel"
|
|
|
+ (SELECT (CASE WHEN "friend" = '${uid}' THEN "user" ELSE "friend" END) fid,"channel",
|
|
|
+ "Friends".config->'l0gF95BPLB' AS deadline --被删除的聊天记录时间
|
|
|
FROM "Friends"
|
|
|
WHERE "isDeleted" IS NOT TRUE
|
|
|
AND "isPass" = TRUE
|
|
|
AND ("friend" = '${uid}'
|
|
|
OR "user" = '${uid}')
|
|
|
- GROUP BY fid,"channel") AS f
|
|
|
+ GROUP BY fid,"channel",deadline) AS f
|
|
|
LEFT JOIN "_User" AS u
|
|
|
ON u."objectId" = f.fid
|
|
|
+ ${notInclude.length > 0 ? `WHERE u."objectId" NOT IN (${notInclude})` : ''}
|
|
|
`;
|
|
|
return this.http.customSQL(sql);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ async getRetFriends(uid: string): Promise<Parse.Object | undefined> {
|
|
|
+ let query = new Parse.Query('EventLog');
|
|
|
+ query.equalTo('user', Parse.User.current()?.id);
|
|
|
+ query.equalTo('invited', uid);
|
|
|
+ query.notEqualTo('isDeleted', false);
|
|
|
+ query.equalTo('isAward', true);
|
|
|
+ query.select('objectId');
|
|
|
+ return await query.first();
|
|
|
+ }
|
|
|
/* 获取系统通知 */
|
|
|
- getSysNotice(uid: string): Promise<any> {
|
|
|
+ getSysNotice(uid: string, limit?: number, skip?: number): Promise<any> {
|
|
|
let sql = `SELECT
|
|
|
- (CASE WHEN "user" = 'l0gF95BPLB' THEN '请求添加'+u.name+'为好友'
|
|
|
- ELSE '收到'+u.name+'的好友申请' END) title,
|
|
|
+ "Friends"."objectId" fid,"friend","Friends"."user",
|
|
|
+ (CASE WHEN "user" = '${uid}' THEN '请求添加' || u.name ||'为好友'
|
|
|
+ ELSE '收到'||us.name||'的好友申请' END) title,
|
|
|
+ (CASE WHEN "user" = '${uid}' THEN us.avatar
|
|
|
+ ELSE u.avatar END) avatar,
|
|
|
+ (CASE WHEN "user" = '${uid}' THEN us."objectId"
|
|
|
+ ELSE u."objectId" END) tuid,
|
|
|
(CASE WHEN "isPass" = TRUE THEN '200'
|
|
|
- WHEN "isPass" = FALSE THEN '101'
|
|
|
- ELSE '100' END) status
|
|
|
+ WHEN "isPass" = FALSE THEN '101'
|
|
|
+ ELSE '100' END) status,
|
|
|
+ "Friends"."createdAt"
|
|
|
FROM "Friends"
|
|
|
- WHERE "company" = '${this.company}'
|
|
|
+ LEFT JOIN "_User" AS u
|
|
|
+ ON u."objectId" = "Friends"."user"
|
|
|
+ LEFT JOIN "_User" AS us
|
|
|
+ ON us."objectId" = "Friends"."friend"
|
|
|
+ WHERE "Friends"."company" = '${this.company}'
|
|
|
AND (friend = '${uid}' OR "user" = '${uid}')
|
|
|
- ORDER BY "createdAt" DESC`;
|
|
|
- console.log(sql);
|
|
|
+ ORDER BY "Friends"."createdAt" DESC
|
|
|
+ OFFSET ${skip || 0} LIMIT ${limit || 20}`;
|
|
|
return this.http.customSQL(sql);
|
|
|
}
|
|
|
|
|
@@ -274,7 +306,6 @@ export class AiChatService {
|
|
|
let res: any = await this.http.customSQL(sql);
|
|
|
return res.data[0]?.sum;
|
|
|
}
|
|
|
-
|
|
|
|
|
|
async get_duration(rid: string, uid: string) {
|
|
|
let url = 'https://server.fmode.cn/api/ailiao/remain_second';
|