2024-09-12 18:19:31 +08:00
|
|
|
|
import { get, clear } from "@/utils/storeInfo";
|
2024-07-22 16:07:41 +08:00
|
|
|
|
import requireAPI from "@/utils/requireAPI";
|
2024-07-06 11:05:19 +08:00
|
|
|
|
import { Toast } from "antd-mobile";
|
2024-07-16 20:20:12 +08:00
|
|
|
|
import { JSEncrypt } from "jsencrypt";
|
2024-07-24 15:32:23 +08:00
|
|
|
|
import baseRequest from "@/utils/baseRequest";
|
2024-09-12 18:19:31 +08:00
|
|
|
|
//退出登录
|
2024-07-12 22:52:48 +08:00
|
|
|
|
export const handleLogout = async () => {
|
|
|
|
|
const account = get("account");
|
|
|
|
|
try {
|
2024-07-22 16:07:41 +08:00
|
|
|
|
const data = await requireAPI("POST", `/api/login/logout`, {
|
2024-07-12 22:52:48 +08:00
|
|
|
|
body: {
|
2024-07-16 20:20:12 +08:00
|
|
|
|
mid: account.mid,
|
2024-07-12 22:52:48 +08:00
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
if (data.ret === -1) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
icon: "fail",
|
|
|
|
|
content: data.msg,
|
|
|
|
|
position: "top",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-09-12 18:19:31 +08:00
|
|
|
|
clear();
|
2024-07-12 22:52:48 +08:00
|
|
|
|
} catch (error) {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
// console.error(error);
|
2024-07-12 22:52:48 +08:00
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
//关注和取关功能
|
2024-07-06 11:05:19 +08:00
|
|
|
|
export const handleFollow = async (isFollowed, followedID, callback) => {
|
|
|
|
|
const account = get("account");
|
|
|
|
|
let body = {
|
|
|
|
|
[!isFollowed ? "account_relations" : "sentences"]: [
|
|
|
|
|
{ sub_mid: account.mid, obj_mid: followedID, predicate: 0 },
|
|
|
|
|
{ sub_mid: followedID, obj_mid: account.mid, predicate: 1 },
|
|
|
|
|
],
|
|
|
|
|
};
|
|
|
|
|
try {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
const data = await requireAPI(
|
|
|
|
|
"POST",
|
|
|
|
|
`/api/account_relation/${!isFollowed ? "create" : "delete"}`,
|
|
|
|
|
{
|
|
|
|
|
body,
|
|
|
|
|
}
|
|
|
|
|
);
|
2024-07-06 11:05:19 +08:00
|
|
|
|
if (data.ret === -1) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
icon: "fail",
|
|
|
|
|
content: data.msg,
|
|
|
|
|
position: "top",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
} else {
|
2024-07-15 16:54:04 +08:00
|
|
|
|
callback && callback(!isFollowed);
|
2024-07-06 11:05:19 +08:00
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
// console.error(error);
|
2024-07-06 11:05:19 +08:00
|
|
|
|
}
|
|
|
|
|
};
|
2024-10-23 16:06:06 +08:00
|
|
|
|
//拉黑功能
|
|
|
|
|
export async function handleBlock(blocker, blocked) {
|
|
|
|
|
try {
|
|
|
|
|
const data = await requireAPI("POST", `/api/account_relation/create`, {
|
|
|
|
|
body: {
|
|
|
|
|
account_relations: [
|
|
|
|
|
{ sub_mid: blocker, obj_mid: blocked, predicate: 2 },
|
|
|
|
|
{ sub_mid: blocked, obj_mid: blocker, predicate: 3 },
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
if (data.ret === -1) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
icon: "fail",
|
|
|
|
|
content: data.msg,
|
|
|
|
|
position: "top",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Toast.show({
|
|
|
|
|
icon: "success",
|
|
|
|
|
content: "拉黑成功,将不再向您推荐Ta",
|
|
|
|
|
position: "top",
|
|
|
|
|
});
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error(error);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
export async function handleUnBlock(unblocker, unblocked) {
|
|
|
|
|
try {
|
|
|
|
|
const data = await requireAPI("POST", `/api/account_relation/delete`, {
|
|
|
|
|
body: {
|
|
|
|
|
sentences: [
|
|
|
|
|
{ sub_mid: unblocker, obj_mid: unblocked, predicate: 2 },
|
|
|
|
|
{ sub_mid: unblocked, obj_mid: unblocker, predicate: 3 },
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
if (data.ret === -1) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
icon: "fail",
|
|
|
|
|
content: data.msg,
|
|
|
|
|
position: "top",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error(error);
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-07-06 11:05:19 +08:00
|
|
|
|
//点赞和取消点赞功能
|
2024-07-16 20:20:12 +08:00
|
|
|
|
export const thumbsUp = async (id, times, callback, isZone) => {
|
2024-07-08 20:07:36 +08:00
|
|
|
|
try {
|
2024-07-16 20:20:12 +08:00
|
|
|
|
const body = isZone
|
|
|
|
|
? {
|
|
|
|
|
zone_moment_id: id,
|
|
|
|
|
times: times == 1 ? -1 : 1,
|
|
|
|
|
}
|
|
|
|
|
: {
|
|
|
|
|
moment_id: id,
|
|
|
|
|
times: times == 1 ? -1 : 1,
|
|
|
|
|
};
|
2024-08-05 18:59:30 +08:00
|
|
|
|
// console.log("body", body);
|
2024-07-08 20:07:36 +08:00
|
|
|
|
|
2024-09-09 15:34:31 +08:00
|
|
|
|
const data = await requireAPI(
|
|
|
|
|
"POST",
|
|
|
|
|
`/api/${isZone ? "zone_moment" : "moment"}/thumbs_up`,
|
|
|
|
|
{
|
|
|
|
|
body,
|
|
|
|
|
}
|
|
|
|
|
);
|
2024-07-08 20:07:36 +08:00
|
|
|
|
if (data.ret === -1) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
icon: "fail",
|
|
|
|
|
content: data.msg,
|
|
|
|
|
position: "top",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
} else {
|
|
|
|
|
callback(times == 1 ? -1 : 1);
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
// console.error(error);
|
2024-07-08 20:07:36 +08:00
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
//点赞和取消点赞功能
|
|
|
|
|
export const zoneThumbsUp = async (id, times = 1, callback) => {
|
2024-08-05 18:59:30 +08:00
|
|
|
|
// console.log("times", times);
|
2024-07-06 11:05:19 +08:00
|
|
|
|
try {
|
|
|
|
|
const body = {
|
|
|
|
|
moment_id: id,
|
2024-07-08 20:07:36 +08:00
|
|
|
|
times: times == 1 ? -1 : 1,
|
2024-07-06 11:05:19 +08:00
|
|
|
|
};
|
2024-07-22 16:07:41 +08:00
|
|
|
|
const data = await requireAPI("POST", `/api/zone/thumbs_up`, {
|
2024-07-06 11:05:19 +08:00
|
|
|
|
body,
|
|
|
|
|
});
|
|
|
|
|
if (data.ret === -1) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
icon: "fail",
|
|
|
|
|
content: data.msg,
|
|
|
|
|
position: "top",
|
|
|
|
|
});
|
|
|
|
|
return;
|
2024-07-08 20:07:36 +08:00
|
|
|
|
} else {
|
|
|
|
|
callback(times == 1 ? -1 : 1);
|
2024-07-06 11:05:19 +08:00
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
// console.error(error);
|
2024-07-06 11:05:19 +08:00
|
|
|
|
}
|
|
|
|
|
};
|
2024-07-10 16:50:53 +08:00
|
|
|
|
// 查看关系
|
2024-07-06 11:05:19 +08:00
|
|
|
|
export async function checkRelation(subMid, objMid, predicate) {
|
|
|
|
|
try {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
const data = await requireAPI(
|
|
|
|
|
"POST",
|
|
|
|
|
`/api/account_relation/list_by_sentence`,
|
|
|
|
|
{
|
2024-07-08 20:07:36 +08:00
|
|
|
|
body: {
|
|
|
|
|
sub_mid: subMid,
|
|
|
|
|
obj_mid: objMid,
|
|
|
|
|
predicate: predicate,
|
|
|
|
|
},
|
2024-09-09 15:34:31 +08:00
|
|
|
|
}
|
|
|
|
|
);
|
2024-07-06 11:05:19 +08:00
|
|
|
|
if (data.ret === -1) {
|
|
|
|
|
Toast.show({
|
2024-07-08 20:07:36 +08:00
|
|
|
|
icon: "fail",
|
|
|
|
|
content: data.msg,
|
|
|
|
|
position: "top",
|
2024-07-06 11:05:19 +08:00
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
return data.data.is_account_relation_existed;
|
|
|
|
|
} catch (error) {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
// console.error(error);
|
2024-07-06 11:05:19 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-07-10 16:50:53 +08:00
|
|
|
|
// 获取用户信息
|
2024-07-10 00:48:37 +08:00
|
|
|
|
export async function getUserInfo() {
|
|
|
|
|
try {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
const data = await requireAPI(
|
|
|
|
|
"POST",
|
|
|
|
|
`/api/account/list_by_mid`,
|
|
|
|
|
null,
|
|
|
|
|
true
|
|
|
|
|
);
|
2024-07-10 00:48:37 +08:00
|
|
|
|
if (data.ret === -1) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
icon: "fail",
|
|
|
|
|
content: data.msg,
|
|
|
|
|
position: "top",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
return data.data.account;
|
|
|
|
|
} catch (error) {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
// console.error(error);
|
2024-07-10 00:48:37 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-07-10 16:50:53 +08:00
|
|
|
|
|
|
|
|
|
// 创建订单
|
|
|
|
|
export const createOrder = async (type = "alipay_h5") => {
|
|
|
|
|
if (!selectedPrice.id && !customCoin.selected) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
content: "请选择充值档位",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (customCoin.selected && customCoin.num < 10) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
content: "最低充值1元哦~",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-24 15:32:23 +08:00
|
|
|
|
const base = baseRequest();
|
2024-07-10 16:50:53 +08:00
|
|
|
|
const body = {
|
|
|
|
|
...base,
|
|
|
|
|
product_id: customCoin.selected ? "h5_custom_coin" : selectedPrice.id,
|
|
|
|
|
custom_coins: customCoin.selected ? customCoin.num : 0,
|
|
|
|
|
pay_type: type,
|
|
|
|
|
redirect_url: type === "yeepay_wxpay_h5" ? window.location.href : "",
|
|
|
|
|
from: "app",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//如果是微信jsapi支付直接跳转到中间页
|
|
|
|
|
if (type === "wxpay_jsapi") {
|
|
|
|
|
router.push(`/pay/${encodeURIComponent(JSON.stringify(body))}`);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setIsLoading(true);
|
|
|
|
|
|
|
|
|
|
const signature = generateSignature(body);
|
|
|
|
|
try {
|
|
|
|
|
const response = await fetch(
|
|
|
|
|
`/api/vas/create_order?signature=${signature}`,
|
|
|
|
|
{
|
|
|
|
|
method: "POST",
|
|
|
|
|
headers: {
|
|
|
|
|
"Content-Type": "application/json",
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify(body),
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
const data = await response.json();
|
|
|
|
|
if (data.ret === -1) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
content: data.msg,
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
switch (type) {
|
|
|
|
|
case "yeepay_alipay_h5":
|
|
|
|
|
router.push(`${data.data.yeepay_alipay_h5_param_str}`);
|
|
|
|
|
break;
|
|
|
|
|
case "yeepay_wxpay_h5":
|
|
|
|
|
router.push(`${data.data.yeepay_wxpay_h5_param_str}`);
|
|
|
|
|
break;
|
|
|
|
|
case "alipay_h5":
|
|
|
|
|
router.push(`${data.data.alipay_h5_param_str}`);
|
|
|
|
|
break;
|
|
|
|
|
case "wxpay_h5":
|
|
|
|
|
router.push(
|
|
|
|
|
`https://shop.tiefen.fun/pay/wxpay_h5/${encodeURIComponent(
|
|
|
|
|
data.data.wxpay_h5_param_str
|
|
|
|
|
)}`
|
|
|
|
|
);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
router.push(`${data.data.alipay_h5_param_str}`);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
// console.error(error);
|
2024-07-10 16:50:53 +08:00
|
|
|
|
} finally {
|
|
|
|
|
setIsLoading(false);
|
|
|
|
|
}
|
2024-07-16 20:20:12 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//点击获取验证码
|
2024-09-11 14:22:02 +08:00
|
|
|
|
export const handleVerification = async (
|
|
|
|
|
mobilePhone = "",
|
|
|
|
|
regionCode,
|
|
|
|
|
callback
|
|
|
|
|
) => {
|
2024-07-16 20:20:12 +08:00
|
|
|
|
//手机号校验
|
|
|
|
|
if (!mobilePhone.toString().match(/^1[3456789]\d{9}$/)) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
icon: "fail",
|
|
|
|
|
content: "手机号码格式错误",
|
|
|
|
|
position: "top",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//对手机号进行RSA加密
|
|
|
|
|
const encrypt = new JSEncrypt();
|
2024-09-11 14:22:02 +08:00
|
|
|
|
encrypt.setPublicKey(process.env.NEXT_PUBLIC_RSA_KEY);
|
2024-07-16 20:20:12 +08:00
|
|
|
|
const mobile_phone = encrypt.encrypt(mobilePhone);
|
|
|
|
|
//发送短信验证码
|
|
|
|
|
try {
|
2024-09-11 14:22:02 +08:00
|
|
|
|
const data = await requireAPI("POST", `/api/veri_code/send`, {
|
2024-07-16 20:20:12 +08:00
|
|
|
|
body: {
|
|
|
|
|
mobile_phone: mobile_phone,
|
|
|
|
|
region_code: regionCode,
|
|
|
|
|
},
|
|
|
|
|
});
|
2024-09-11 14:22:02 +08:00
|
|
|
|
if (data.ret === -1) {
|
|
|
|
|
Toast.show({
|
|
|
|
|
icon: "fail",
|
|
|
|
|
content: data.msg,
|
|
|
|
|
position: "top",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
callback && callback();
|
2024-07-16 20:20:12 +08:00
|
|
|
|
} catch (error) {
|
2024-09-09 15:34:31 +08:00
|
|
|
|
// console.error(error);
|
2024-07-16 20:20:12 +08:00
|
|
|
|
}
|
|
|
|
|
};
|