提交 e80bab3a 作者: ZhangLingKun

功能:代码规范

上级 a58b7568
#本地
# REACT_APP_BASE_URL='http://192.168.3.100:32015/'
# REACT_APP_BASE_URL='http://10.246.106.74:32015/'
#线上
REACT_APP_BASE_URL = 'https://testapi.sharefly.mmcuav.cn/'
#REACT_APP_BASE_URL = 'https://csfapi.mmcuav.cn/'
NODE_ENV = 'development'
VERSION='2.2.4.230217.Release'
#测试
REACT_APP_BASE_URL = 'https://testapi.sharefly.mmcuav.cn/'
#正式
#REACT_APP_BASE_URL = 'https://csfapi.mmcuav.cn/'
NODE_ENV = 'production'
VERSION='2.2.4.230217.Release'
......@@ -23,7 +23,11 @@
"react-dom": "^18.1.0",
"react-router-dom": "^6.10.0",
"sort-by": "^1.2.0",
"xlsx": "^0.18.5"
"xlsx": "^0.18.5",
"axios": "^1.4.0",
"js-base64": "^3.7.3",
"js-cookie": "^3.0.1",
"lodash": "^4.17.21"
},
"devDependencies": {
"@types/react": "^18.0.9",
......
import { PointManageAPI } from './modules/pointManageAPI';
export {
PointManageAPI,
};
// 分页通用接口
export interface PaginationProps {
pageSize?: number;
pageNo?: number;
}
// 通用返回接口(分页)
export interface ResponseListType<D> {
code: string;
message: string;
result: {
pageNo: number;
pageSize: number;
totalCount: number;
totalPage: number;
list: Array<D>;
};
}
// 通用返回接口(分页了,但又没有分页)
export interface ResponseItemType<D> {
code: string;
message: string;
result: {
pageNo: number;
pageSize: number;
totalCount: number;
totalPage: number;
list: D;
};
}
// 通用返回接口
export interface ResponseType<D> {
code: string;
message: string;
result: D;
}
// 通用接口封装(分页) 不推荐
export interface InterListType<D, T> {
req: D & PaginationProps;
res: Promise<ResponseListType<T>>;
}
// 通用接口封装(不分页) 不推荐
export interface InterType<D, T> {
req: D;
res: Promise<ResponseType<T>>;
}
// 通用接口封装函数(分页) 建议用这个
export interface InterListFunction<D extends object, T> {
(req: D & PaginationProps): Promise<ResponseListType<T>>;
}
// 通用接口封装函数(不分页) 建议用这个
export interface InterFunction<D extends object, T> {
(req?: D): Promise<ResponseType<T>>;
}
// 通用接口封装函数(分页了,但又没有分页) 建议用这个
export interface InterItemFunction<D extends object, T> {
(req: D & PaginationProps): Promise<ResponseItemType<T>>;
}
import {
InterFunction,
InterItemFunction,
InterListFunction,
} from "../interface";
// 演示规范
export type PointListType = InterListFunction<
// 入参
{
id?: number;
uid?: string;
wxName?: string;
phone?: string;
email?: string;
},
// 出参
{
id?: number;
tenantId?: number;
tenantName?: string;
userName?: string;
userAccount?: string;
appSecretKey?: string;
createdDate?: string;
status?: string;
roleId?: number;
roleName?: string;
validityDate?: string;
customer?: string;
role?: string;
organization?: string;
userUseDetail?: string;
versionsTermNum?: string;
versionsTermUnit?: string;
uid?: string;
nameAuthentication?: string;
enterpriseCertification?: string;
wxName?: string;
phone?: string;
email?: string;
}
>;
// 积分列表分页
export type UserScorePageListType = InterItemFunction<
{ entName?: string; phoneNum?: string; uid?: string },
{
convertScore?: number;
releaseScore?: number;
userBasicInfo: Array<{
entName?: string;
mallUserId?: number;
phoneNum?: string;
uid?: string;
score?: number;
nickName?: string;
userName?: string;
}>;
withdrawScore?: number;
withdrawingScore?: number;
}
>;
// 个人积分明细列表
export type UserScoreDetailsListType = InterItemFunction<
{
mallUserId?: number;
},
{
convertScore?: number;
mallUserId?: number;
nickName?: string;
scoreTotal?: number;
uid?: string;
useScore?: number;
userName?: string;
userScoreList: Array<{
id?: number;
convertRatio?: string;
gainFormUid?: string;
getTime?: string;
giveAwayToUid?: string;
orderNo?: string;
scoreNum?: number;
status?: number;
type?: string;
useTime?: string;
withdrawId?: number;
orderId?: string;
approvalTime?: string;
}>;
}
>;
// 个人积分明细--查看单条数据
export type GetUserScoreDetailsType = InterFunction<
{
id: number;
},
{
convertRatio?: string;
gainFormUid?: string;
getTime?: string;
giveAwayToUid?: string;
orderNo?: string;
scoreNum?: number;
status?: number;
type?: string;
useTime?: string;
approvalTime?: string;
}
>;
// 流通方式列表
export type ListCirculateInfoType = InterFunction<
{},
{ id: number; type: string }[]
>;
// 积分发放
export type OrderScoreReleaseType = InterFunction<
{
circulateId: number;
mallUserId: number;
orderNo: string;
score: number;
orderId: string;
},
{}
>;
// 兑换规则--条件查询列表
export type ListConvertRuleType = InterListFunction<
{ status?: number },
{
convertRatio: string;
entryIntoForceTime: string;
id: number;
ruleName: string;
status: string;
}
>;
// 新增兑换规则
export type AddConvertRuleType = InterFunction<
{
coupon: number;
entryIntoForceTime?: string;
ruleName: string;
score: number;
},
{}
>;
// 积分提现审批
export type CheckUserScoreType = InterFunction<
{
withdrawDetailsId?: number;
flag?: boolean;
},
{}
>;
// 积分提现审批--查看单条数据
export type GetScoreListType = InterListFunction<
{ type?: number; status?: number },
{
mallUserId: number;
uid: string;
phoneNum: string;
entName: string;
id: number;
releaseScore: number;
releaseTime: string;
convertRuleId: number;
convertScore: number;
convertTime: string;
oldStatus: number;
pcAccountId: number;
pcCheckTime: number;
status: number;
withdrawScore: number;
withdrawTime: string;
score: number;
coupon: number;
userName: string;
nickName: string;
accountBank: string;
accountName: string;
bankCardNumber: string;
bankCardsId: number;
branch: string;
}
>;
// 根据订单编号查询订单
export type GetOrderInfoByOrderNoType = InterFunction<
{ orderNo: string },
{
orderNo: string;
id: number;
}
>;
// 积分管理-分成规则-列表查询
export type BonusRuleListQueryType = InterListFunction<
{ ruleName?: string },
{
bonusSet: Array<{
id?: number;
propObjCode?: number;
proportionMode?: number;
proportionParam?: number;
}>;
defaultRule?: number;
id?: number;
proportionObject?: string;
ruleName: string;
}
>;
// 积分管理-分成规则-分成对象列表
export type ListProportionObjectType = InterFunction<
{},
{
code: number;
id: number;
name: string;
}[]
>;
// 积分管理-分成规则-分成对象新增/编辑
export type AddAndEditBonusRuleType = InterFunction<
{
bonusSetList: Array<{
id?: number;
propObjCode?: number;
proportionMode?: number;
proportionParam?: number;
}>;
defaultRule?: boolean;
id?: number;
ruleName?: string;
},
any
>;
// 积分管理-分成规则-分成对象删除
export type RemoveBonusRuleType = InterFunction<
{
id?: number;
},
{}
>;
// 积分管理-订单分成-获取科比特员工标签的相关用户
export type ListKBTMallUserType = InterFunction<
{
keyword: string;
},
{
id: number;
uid: string;
userName: string;
phoneNum: string;
openId: null;
unionId: null;
nickName: string;
headerImg: null;
lon: null;
lat: null;
ports: null;
remark: null;
source: null;
channelAuthStatus: null;
channelClass: number;
channelName: string;
tagName: null;
createTime: null;
updateTime: null;
realAuthStatus: number;
entAuthStatus: number;
entName: string;
entVerifyStatus: null;
realAuthTime: null;
entAuthTime: null;
entVerifyTime: null;
upReferralId: null;
upReferralUidAndName: null;
lowerReferralCount: null;
operateId: null;
operateName: null;
saleId: null;
saleName: null;
mallOperator: null;
mallOperatorName: null;
mallOperatorUID: null;
mallSaleManager: null;
mallSaleManagerUID: null;
mallSaleManagerName: null;
superiorChannelName: null;
accountBank: null;
accountName: null;
bankCardNumber: null;
branch: null;
}[]
>;
// 积分管理-订单分成-订单分成列表
export type OrderBonusListPageType = InterListFunction<
{
divide?: number;
entName?: string;
keyword?: string;
orderNo?: string;
},
{
orderId: string;
orderNo: string;
orderName: string;
realityAmount: number;
divide: number;
mallUserId: number;
uid: string;
userName: string;
nickName: null;
entName: string;
}
>;
// 积分管理-订单分成-订单分成列表
export type OrderBonusListRuleType = InterFunction<
{},
{
id: number;
ruleName: string;
defaultRule: number;
proportionObject: null;
bonusSet: null;
}[]
>;
// 积分管理-订单分成-订单分成详情
export type OrderBonusListByOrderIdType = InterFunction<
{ orderId: number },
{
defaultList: Array<{
checkStatus: number;
deleted: null;
createTime: null;
updateTime: null;
channelClass: number;
channelName: string;
id: number;
mallUserId: number;
orderId: number;
orderNO: string;
proportionMode: number;
proportionObjName: string;
proportionRate: number;
proportionRuleId: number;
ruleType: number;
scoreAmount: number;
uid: string;
userName: string;
index?: number;
}>;
extendList: Array<{
checkStatus: number;
deleted: null;
createTime: null;
updateTime: null;
channelClass: number;
channelName: string;
id: number;
mallUserId: number;
orderId: number;
orderNO: string;
proportionMode: number;
proportionObjName: string;
proportionRate: number;
proportionRuleId: number;
ruleType: number;
scoreAmount: number;
uid: string;
userName: string;
index?: number;
}>;
bonusRuleDTO: {
id: number;
ruleName: string;
defaultRule: number;
proportionObject: null;
bonusSet: Array<{
id: number;
propObjCode: number;
proportionMode: number;
proportionParam: null;
}>;
};
}
>;
// 积分管理-订单分成-根据规则id、订单id 计算分成对象积分
export type OrderBonusBuildMallType = InterFunction<
{ orderId: number; proportionRuleId: number },
{
checkStatus: number;
deleted: null;
createTime: null;
updateTime: null;
channelClass: number;
channelName: string;
id: number;
mallUserId: number;
orderId: number;
orderNO: string;
proportionMode: number;
proportionObjName: string;
proportionRate: number;
proportionRuleId: number;
ruleType: number;
scoreAmount: number;
uid: string;
userName: string;
index?: number;
}[]
>;
// 积分管理-订单分成-无人机城账号管理-分页
export type ListMallUserPageType = InterListFunction<
{
endTime?: string;
entAuthStatus?: number;
entVerifyStatus?: number;
keyword?: string;
phoneNum?: string;
realAuthStatus?: number;
source?: number;
startTime?: string;
userName?: string;
},
{
accountBank: string;
accountName: string;
bankCardNumber: string;
branch: string;
channelAuthStatus: number;
channelClass: number;
createTime: string;
entAuthStatus: number;
entAuthTime: string;
entName: string;
entVerifyStatus: number;
entVerifyTime: string;
headerImg: string;
id: number;
lat: number;
lon: number;
lowerReferralCount: number;
mallOperator: number;
mallOperatorName: string;
mallOperatorUID: string;
mallSaleManager: number;
mallSaleManagerName: string;
mallSaleManagerUID: string;
nickName: string;
openId: string;
operateId: number;
operateName: string;
phoneNum: string;
ports: string;
realAuthStatus: number;
realAuthTime: string;
remark: string;
saleId: number;
saleName: string;
source: number;
superiorChannelName: string;
tagName: string;
uid: string;
unionId: string;
upReferralId: number;
upReferralUidAndName: string;
updateTime: string;
userName: string;
}
>;
// 积分管理-订单分成-计算拓展规则分成对象
export type CalculateOrderBonusVOType = InterFunction<
{
channelClass?: number;
channelName?: string;
id?: number;
mallUserId?: number;
orderId?: number;
orderNO?: string;
proportionMode?: number;
proportionObjName?: string;
proportionRate?: number;
proportionRuleId?: number;
ruleType?: number;
scoreAmount?: number;
uid?: string;
userName?: string;
},
{
channelClass: number;
channelName: string;
id: null;
mallUserId: number;
orderId: string;
orderNO: string;
proportionMode: number;
proportionObjName: string;
proportionRate: number;
proportionRuleId: null;
ruleType: null;
scoreAmount: number;
uid: null;
userName: null;
}
>;
// 积分管理-订单分成-修改分成对象
export type UpdateMallOrderBonusType = InterFunction<
{
channelClass: number;
channelName: string;
id: number;
mallUserId: number;
orderId: number;
orderNO: string;
proportionMode: number;
proportionObjName: string;
proportionRate: number;
proportionRuleId: number;
ruleType: number;
scoreAmount: number;
uid: string;
userName: string;
index?: number;
}[],
{}
>;
// 积分管理-订单分成-修改分成对象
export type MallUserBySearchKeyType = InterListFunction<
{
searchKey?: string;
},
{
accountBank: string;
accountName: string;
bankCardNumber: string;
branch: string;
channelAuthStatus: number;
channelClass: number;
createTime: string;
entAuthStatus: number;
entAuthTime: string;
entName: string;
entVerifyStatus: number;
entVerifyTime: string;
headerImg: string;
id: number;
lat: number;
lon: number;
lowerReferralCount: number;
mallOperator: number;
mallOperatorName: string;
mallOperatorUID: string;
mallSaleManager: number;
mallSaleManagerName: string;
mallSaleManagerUID: string;
nickName: string;
openId: string;
operateId: number;
operateName: string;
phoneNum: string;
ports: string;
realAuthStatus: number;
realAuthTime: string;
remark: string;
saleId: number;
saleName: string;
source: number;
superiorChannelName: string;
tagName: string;
uid: string;
unionId: string;
upReferralId: number;
upReferralUidAndName: string;
updateTime: string;
userName: string;
}
>;
// 积分管理-订单分成-发放积分
export type DistributeMallOrderBonusType = InterFunction<
{ orderId: number },
{
bonusRuleDTO: {
bonusSet: Array<{
id: number;
propObjCode: number;
proportionMode: number;
proportionParam: number;
}>;
defaultRule: number;
id: number;
proportionObject: string;
ruleName: string;
};
defaultList: Array<{
channelClass: number;
channelName: string;
checkStatus: number;
createTime: string;
deleted: number;
id: number;
mallUserId: number;
orderId: number;
orderNO: string;
proportionMode: number;
proportionObjName: string;
proportionRate: number;
proportionRuleId: number;
ruleType: number;
scoreAmount: number;
uid: string;
updateTime: string;
userName: string;
}>;
extendList: Array<{
channelClass: number;
channelName: string;
checkStatus: number;
createTime: string;
deleted: number;
id: number;
mallUserId: number;
orderId: number;
orderNO: string;
proportionMode: number;
proportionObjName: string;
proportionRate: number;
proportionRuleId: number;
ruleType: number;
scoreAmount: number;
uid: string;
updateTime: string;
userName: string;
}>;
}
>;
import axios from "@/api/request";
import {
AddAndEditBonusRuleType,
AddConvertRuleType,
BonusRuleListQueryType,
CalculateOrderBonusVOType,
CheckUserScoreType,
DistributeMallOrderBonusType,
GetOrderInfoByOrderNoType,
GetScoreListType,
GetUserScoreDetailsType,
ListCirculateInfoType,
ListConvertRuleType,
ListKBTMallUserType,
ListMallUserPageType,
ListProportionObjectType,
MallUserBySearchKeyType,
OrderBonusBuildMallType,
OrderBonusListByOrderIdType,
OrderBonusListPageType,
OrderBonusListRuleType,
OrderScoreReleaseType,
PointListType,
RemoveBonusRuleType,
UpdateMallOrderBonusType,
UserScoreDetailsListType,
UserScorePageListType,
} from "@/api/interface/pointManageType";
export class PointManageAPI {
// 演示规范
static PointList: PointListType = (params) =>
axios.post("malluser/muser/listMallUserPage", params);
// 积分列表-分页
static UserScorePageList: UserScorePageListType = (params) =>
axios.post("/uavscore/score/userScorePageList", params);
// 个人积分明细列表
static UserScoreDetailsList: UserScoreDetailsListType = (params) =>
axios.post("/uavscore/score/userScoreDetailsList", params);
// 个人积分明细--查看单条数据
static GetUserScoreDetails: GetUserScoreDetailsType = (params) =>
axios.get("/uavscore/score/getUserScoreDetails", { params });
// 流通方式列表
static ListCirculateInfo: ListCirculateInfoType = (params) =>
axios.get("/uavscore/score/listCirculateInfo", { params });
// 积分发放
static OrderScoreRelease: OrderScoreReleaseType = (params) =>
axios.post("/uavscore/score/orderScoreRelease", params);
// 兑换规则--条件查询列表
static ListConvertRule: ListConvertRuleType = (params) =>
axios.get("/uavscore/score/listConvertRule", { params });
// 积分发放
static AddConvertRule: AddConvertRuleType = (params) =>
axios.post("/uavscore/score/addConvertRule", params);
// 积分提现审批
static CheckUserScore: CheckUserScoreType = (params) =>
axios.get("/uavscore/score/checkUserScore", { params });
// 获取指定明细列表
static GetScoreList: GetScoreListType = (params) =>
axios.get("/uavscore/score/getScoreList", { params });
// 根据订单编号查询订单
static GetOrderInfoByOrderNo: GetOrderInfoByOrderNoType = (params) =>
axios.get("/mallorder/pmorderVerOne/getOrderInfoByOrderNo", { params });
// 积分管理-分成规则-列表查询
static BonusRuleListQuery: BonusRuleListQueryType = (params) =>
axios.get("/uavscore/bonus/bonusRuleListQuery", { params });
// 积分管理-分成规则-分成对象列表
static ListProportionObject: ListProportionObjectType = (params) =>
axios.get("/uavscore/bonus/listProportionObject", { params });
// 积分管理-分成规则-分成对象新增/编辑
static AddAndEditBonusRule: AddAndEditBonusRuleType = (params) =>
axios.post("/uavscore/bonus/addAndEditBonusRule", params);
// 积分管理-分成规则-分成对象删除
static RemoveBonusRule: RemoveBonusRuleType = (params) =>
axios.get("/uavscore/bonus/removeBonusRule", { params });
// 积分管理-订单分成-获取科比特员工标签的相关用户
static ListKBTMallUser: ListKBTMallUserType = (params) =>
axios.get("/malluser/muser/listKBTMallUser", { params });
// 积分管理-订单分成-订单分成列表
static OrderBonusListPage: OrderBonusListPageType = (params) =>
axios.post("/mallorder/orderBonus/listPage", params);
// 积分管理-订单分成-规则-下拉列表
static OrderBonusListRule: OrderBonusListRuleType = (params) =>
axios.get("/uavscore/bonus/listRule", { params });
// 积分管理-订单分成-订单分成详情
static OrderBonusListByOrderId: OrderBonusListByOrderIdType = (params) =>
axios.get("/mallorder/orderBonus/listByOrderId", { params });
// 积分管理-订单分成-根据规则id、订单id 计算分成对象积分
static OrderBonusBuildMall: OrderBonusBuildMallType = (params) =>
axios.get("/mallorder/orderBonus/buildMallOrderBonus", { params });
// 积分管理-订单分成-无人机城账号管理-分页
static ListMallUserPage: ListMallUserPageType = (params) =>
axios.post("/malluser/muser/listMallUserPage", params);
// 积分管理-订单分成-计算拓展规则分成对象
static CalculateOrderBonusVO: CalculateOrderBonusVOType = (params) =>
axios.post("/mallorder/orderBonus/calculateOrderBonusVO", params);
// 积分管理-订单分成-修改分成对象
static UpdateMallOrderBonus: UpdateMallOrderBonusType = (params) =>
axios.post("/mallorder/orderBonus/updateMallOrderBonus", params);
// 积分管理-订单分成-分页条件查找用户列表
static MallUserBySearchKey: MallUserBySearchKeyType = (params) =>
axios.get("/malluser/muser/mallUserBySearchKey", { params });
// 积分管理-订单分成-发放积分
static DistributeMallOrderBonus: DistributeMallOrderBonusType = (params) =>
axios.get("/mallorder/orderBonus/distributeMallOrderBonus", { params });
}
import axios, { AxiosResponse } from 'axios';
import { message } from 'antd';
import Cookies from 'js-cookie';
import { Base64 } from 'js-base64';
const { REACT_APP_BASE_URL } = process.env;
export const uploadImgURL = `${REACT_APP_BASE_URL}ossservlet/upload/imgOss`;
export const uploadVideoURL = `${REACT_APP_BASE_URL}ossservlet/upload/videoOss`;
export const uploadFileURL = `${REACT_APP_BASE_URL}ossservlet/upload/oss`;
const service = axios.create({
baseURL: REACT_APP_BASE_URL,
timeout: 6000,
});
service.interceptors.request.use(
(config: any) => {
const token = Cookies.get('SXTB-TOKEN');
if (token) {
config.headers.token = token;
}
return config;
},
(error) => {
return Promise.reject(error);
},
);
service.interceptors.response.use(
(response: AxiosResponse) => {
const { data, status } = response;
// 当接口返回正常时执行
if (status === 200) {
// 如果不报错就直接返回数据
if (data.code === '200') {
return Promise.resolve(data);
}
// 重新登录?
if (['605', '603', '602', '4004', '607'].includes(data.code)) {
message.error(data.message).then();
Cookies.remove('SXTB-TOKEN');
setTimeout(() => {
window.location.reload();
}, 1000);
// 阻止后续代码执行
return Promise.reject(data);
}
// 文件/base64导出判断
if (data instanceof Blob || Base64.isValid(data)) {
return Promise.resolve(data);
}
// 如果还有其他报错那么就弹出报错信息(不需要对每个接口的报错做单独判断)
message.error(data.message || '啊呀,出错了').then();
return Promise.reject(data);
}
// 网络错误或链接超时
message.error(data.message).then();
return Promise.reject(data);
},
(error) => {
if (error.response) {
message.error(`${error.response.status},${error.response.statusText}`, 1).then();
}
return Promise.reject(error);
},
);
export const generateCancelToken = () => {
let cancel = null;
const cancelToken = new axios.CancelToken((c) => {
cancel = c;
});
return {
cancel,
cancelToken,
};
};
export default service;
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论