zhengyiming
12 小时以前 2e800655947439e8d71f05fddb3ad49770eec9fd
Merge branch 'dev-1.4.1'
4个文件已添加
16个文件已修改
770 ■■■■■ 已修改文件
apps/taro/config/staging.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/components/NavigationBar/TransparentNavigationBar.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/hooks/lifepay.ts 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/pages/home/components/NormalAnnouncement.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/pages/home/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/utils/common/message.tsx 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/hooks/index.ts 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/hooks/rate.ts 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep2.vue 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/core/src/lifeRechargeConstants.ts 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/core/src/lifeRechargeServices.ts 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/api/LifePayAnnouncement.ts 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/api/LifePayRate.ts 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/api/WxPayNotify.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/api/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/api/typings.d.ts 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
types/api.d.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/config/staging.js
@@ -4,7 +4,7 @@
  env: {
    // BASE_URL: '"https://testrlywx.boleyuma.com"',
    BASE_URL: '"https://api.81812333.com"',
    BASE_URL_H5: '"https://testrlywx.boleyuma.com"',
    BASE_URL_H5: '"https://testlifepay.81812333.com"',
    BASE_URL_JX: '"https://api.jx818.com"',
    APP_ENV: '"staging"',
apps/taro/src/components/NavigationBar/TransparentNavigationBar.vue
@@ -36,7 +36,6 @@
const props = defineProps(commonNavigationBarProps);
const router = Taro.useRouter();
console.log('router: ', router);
const isLastPage = computed(() => {
  const pages = Taro.getCurrentPages();
apps/taro/src/hooks/lifepay.ts
@@ -1,6 +1,12 @@
import { useQuery } from '@tanstack/vue-query';
import { useLifeRechargeContext, CreateEditPayChannelsInput } from '@life-payment/core-vue';
import {
  useLifeRechargeContext,
  CreateEditPayChannelsInput,
  GetShowingLifePayAnnouncementInput,
} from '@life-payment/core-vue';
import { MaybeRef } from 'vue';
import { Message } from '@/utils';
import Taro from '@tarojs/taro';
export function useOnlineService() {
  const { blLifeRecharge } = useLifeRechargeContext();
@@ -60,3 +66,63 @@
    getChannlesNameByNum,
  };
}
type UseShowingLifePayAnnouncementOptions = {
  params?: MaybeRef<API.GetShowingLifePayAnnouncementInput>;
  onSuccess?: (data: API.CreateEditLifePayAnnouncementOutput) => any;
  staleTime?: MaybeRef<number>;
};
export function useShowingLifePayAnnouncement(options: UseShowingLifePayAnnouncementOptions = {}) {
  const { onSuccess, params = {}, staleTime } = options;
  const { blLifeRecharge } = useLifeRechargeContext();
  const {
    data: announcement,
    isLoading,
    refetch,
  } = useQuery({
    queryKey: ['blLifeRecharge/getShowingLifePayAnnouncement', params],
    queryFn: async () => {
      return await blLifeRecharge.services.getShowingLifePayAnnouncement(unref(params), {
        showLoading: false,
        skipErrorHandler: true,
      });
    },
    onSuccess: (data) => {
      onSuccess?.(data);
    },
    staleTime: staleTime,
  });
  return {
    announcement,
    isLoading,
    refetch,
  };
}
const dialogShowingLifePayAnnouncementCache = {};
export function useDialogShowingLifePayAnnouncement() {
  const { blLifeRecharge } = useLifeRechargeContext();
  const router = Taro.useRouter();
  useShowingLifePayAnnouncement({
    params: {
      announcementType: blLifeRecharge.constants.AnnouncementTypeEnum.Dialog,
    },
    onSuccess(data) {
      if (!dialogShowingLifePayAnnouncementCache[router.path]) {
        dialogShowingLifePayAnnouncementCache[router.path] = true;
        Message.confirm({
          title: '公告',
          message: data.announcementContent ?? '',
          showCancelBtn: false,
        });
      }
    },
    staleTime: Infinity,
  });
}
apps/taro/src/pages/home/components/NormalAnnouncement.vue
New file
@@ -0,0 +1,31 @@
<template>
  <nut-noticebar :left-icon="false" :text="text" v-if="!!text" />
</template>
<script setup lang="ts">
import { BlLifeRecharge } from '@life-payment/core-vue';
import { useShowingLifePayAnnouncement } from '@/hooks';
defineOptions({
  name: 'NormalAnnouncement',
});
// type Props = {};
// const props = withDefaults(defineProps<Props>(), {});
const text = ref('');
useShowingLifePayAnnouncement({
  params: {
    announcementType: BlLifeRecharge.constants.AnnouncementTypeEnum.Normal,
  },
  onSuccess(data) {
    text.value = data.announcementContent;
  },
});
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/taro/src/pages/home/index.vue
@@ -7,6 +7,7 @@
    <template #bg>
      <img :src="OssAssets.common.HomePageBg" class="home-page-bg" />
    </template>
    <NormalAnnouncement />
    <ContentView>
      <div class="home-page-banner-wrapper">
        <div class="home-page-banner-left">
@@ -38,7 +39,7 @@
</template>
<script setup lang="ts">
import { useAccessLogin } from '@/hooks';
import { useAccessLogin, useDialogShowingLifePayAnnouncement } from '@/hooks';
import { useUserStore } from '@/stores/modules/user';
import Taro from '@tarojs/taro';
import { OrderInputType } from '@life-payment/constants';
@@ -48,11 +49,14 @@
import IconBanner from '@/assets/home/icon-banner.png';
import IconBannerLogo from '@/assets/home/icon-banner-logo.png';
import IconBannerItem from '@/assets/home/icon-banner-item.png';
import NormalAnnouncement from './components/NormalAnnouncement.vue';
const userStore = useUserStore();
const router = Taro.useRouter();
useDialogShowingLifePayAnnouncement();
const goPhoneBillRecharge = useAccessLogin(() => {
  RouteHelper.navigateTo({
    url: `${RouterPath.phoneBillRecharge}`,
apps/taro/src/utils/common/message.tsx
@@ -24,11 +24,17 @@
  title?: string;
  message?: string | VNode;
  confirmText?: string;
  showCancelBtn?: boolean;
};
export class Message {
  static confirm(options: ConfirmOptions = {}) {
    const { title = '提示', message = '确定要删除该数据吗?', confirmText = '确认' } = options;
    const {
      title = '提示',
      message = '确定要删除该数据吗?',
      confirmText = '确认',
      showCancelBtn = true,
    } = options;
    return new Promise((resolve, reject) => {
      Portal.add((key) => {
        return (
@@ -54,6 +60,7 @@
                    onClose();
                  }}
                  confirmText={confirmText}
                  showCancelBtn={showCancelBtn}
                ></Model>
              ),
            }}
packages/components/src/hooks/index.ts
@@ -18,17 +18,19 @@
import { useInfiniteLoading } from './infiniteLoading';
import { OrderInputType } from '../constants';
import { convertOrderFrontStatus } from '../utils';
import { useLifePayRateChannelAllList } from './rate';
export function useGetRate() {
  const { blLifeRecharge } = useLifeRechargeContext();
  const { data: lifePayRateList, isLoading } = useQuery({
    queryKey: ['blLifeRecharge/getRate'],
    queryFn: async () => {
      return await blLifeRecharge.services.getRate({ showLoading: false });
    },
    placeholderData: () => [] as LifePayRateListOutput[],
  });
  // const { data: lifePayRateList, isLoading } = useQuery({
  //   queryKey: ['blLifeRecharge/getRate'],
  //   queryFn: async () => {
  //     return await blLifeRecharge.services.getRate({ showLoading: false });
  //   },
  //   placeholderData: () => [] as LifePayRateListOutput[],
  // });
  const { allRateChannelList } = useLifePayRateChannelAllList();
  const hasChannel = computed(() => !!blLifeRecharge.accountModel.channlesNum);
@@ -50,10 +52,15 @@
    if (hasChannel.value && channelRate.value.channlesRate) {
      return channelRate.value.channlesRate;
    }
    // return (
    //   lifePayRateList.value.find(
    //     (x) => x.rateType === blLifeRecharge.constants.LifePayRateTypeEnum.默认话费折扣
    //   )?.rate ?? 0
    // );
    return (
      lifePayRateList.value.find(
        (x) => x.rateType === blLifeRecharge.constants.LifePayRateTypeEnum.默认话费折扣
      )?.rate ?? 0
      allRateChannelList.value
        .filter((x) => x.lifePayOrderType == blLifeRecharge.constants.LifePayOrderTypeEnum.话费订单)
        .toSorted((a, b) => a.platformRate - b.platformRate)?.[0]?.platformRate ?? 0
    );
  });
@@ -61,10 +68,15 @@
    if (hasChannel.value && channelRate.value.channlesRate) {
      return channelRate.value.channlesRate;
    }
    // return (
    //   lifePayRateList.value.find(
    //     (x) => x.rateType === blLifeRecharge.constants.LifePayRateTypeEnum.默认电费折扣
    //   )?.rate ?? 0
    // );
    return (
      lifePayRateList.value.find(
        (x) => x.rateType === blLifeRecharge.constants.LifePayRateTypeEnum.默认电费折扣
      )?.rate ?? 0
      allRateChannelList.value
        .filter((x) => x.lifePayOrderType == blLifeRecharge.constants.LifePayOrderTypeEnum.电费订单)
        .toSorted((a, b) => a.platformRate - b.platformRate)?.[0]?.platformRate ?? 0
    );
  });
@@ -72,18 +84,24 @@
    if (hasChannel.value && channelRate.value.channlesRate) {
      return channelRate.value.channlesRate;
    }
    // return (
    //   lifePayRateList.value.find(
    //     (x) => x.rateType === blLifeRecharge.constants.LifePayRateTypeEnum.默认燃气折扣
    //   )?.rate ?? 0
    // );
    return (
      lifePayRateList.value.find(
        (x) => x.rateType === blLifeRecharge.constants.LifePayRateTypeEnum.默认燃气折扣
      )?.rate ?? 0
      allRateChannelList.value
        .filter((x) => x.lifePayOrderType == blLifeRecharge.constants.LifePayOrderTypeEnum.燃气订单)
        .toSorted((a, b) => a.platformRate - b.platformRate)?.[0]?.platformRate ?? 0
    );
  });
  return {
    lifePayRateList,
    // lifePayRateList,
    lifePayPhoneRate,
    lifePayElectricRate,
    lifePayGasRate,
    allRateChannelList,
  };
}
@@ -265,23 +283,25 @@
  onSetUserAccount: (currentUserAccount: UserAccountListOutput) => any;
  getDefaultUserAccount?: (
    userAccountList: UserAccountListOutput[]
  ) => UserAccountListOutput | undefined;
  ) => Promise<UserAccountListOutput | undefined>;
};
export function useSetUserAccountBySelect({
  lifePayOrderType,
  onSetUserAccount,
  getDefaultUserAccount = (data) => data[0],
  getDefaultUserAccount = (data) => Promise.resolve(data[0]),
}: UseSetUserAccountBySelectOptions) {
  const { userAccountAllList } = useUserAccountAllList({
    lifePayOrderType: lifePayOrderType,
    onSuccess(data) {
    async onSuccess(data) {
      try {
      if (data.length > 0) {
        const currentUserAccount = getDefaultUserAccount(data);
          const currentUserAccount = await getDefaultUserAccount(data);
        if (currentUserAccount) {
          onSetUserAccount?.(currentUserAccount);
        }
      }
      } catch (error) {}
    },
  });
packages/components/src/hooks/rate.ts
New file
@@ -0,0 +1,101 @@
import {
  useLifeRechargeContext,
  QueryRateChannelInput,
  CreateEditRateChannelOutput,
} from '@life-payment/core-vue';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import { MaybeRef, unref, computed, Ref } from 'vue';
type UseLifePayRateChannelAllListOptions = {
  params?: MaybeRef<QueryRateChannelInput>;
};
export function useLifePayRateChannelAllList(options: UseLifePayRateChannelAllListOptions = {}) {
  const { params = {} } = options;
  const { blLifeRecharge } = useLifeRechargeContext();
  const queryClient = useQueryClient();
  const _params = computed(() => ({
    status: blLifeRecharge.constants.LifePayRateChannelStatus.Enabled,
    ...unref(params),
  }));
  const { data: allRateChannelList } = useQuery({
    queryKey: ['blLifeRecharge/getLifePayRateChannelAllList', _params],
    queryFn: async () => {
      return await blLifeRecharge.services.getLifePayRateChannelAllList(_params.value, {
        showLoading: false,
      });
    },
    placeholderData: () => [] as CreateEditRateChannelOutput[],
  });
  function ensureLifePayRateChannelAllList() {
    return queryClient.ensureQueryData({
      queryKey: ['blLifeRecharge/getLifePayRateChannelAllList', _params],
    });
  }
  function getRateChannelByCode(code: string) {
    return allRateChannelList.value.find((item) => item.code === code);
  }
  return {
    allRateChannelList,
    ensureLifePayRateChannelAllList,
    getRateChannelByCode,
  };
}
type UseCheckCanRechargeOptions = {
  msg: Ref<string>;
  show: Ref<boolean>;
};
export function useCheckCanRecharge(options: UseCheckCanRechargeOptions) {
  const { msg, show } = options;
  const { blLifeRecharge } = useLifeRechargeContext();
  const { getRateChannelByCode, ensureLifePayRateChannelAllList } = useLifePayRateChannelAllList({
    params: {
      status: null,
    },
  });
  /**
   *
   * @param rateChannelCode
   * @description rateChannelCode值话费为IspCode、电费为electricType、燃气费为gasOrgType
   * @returns
   */
  function isCanRecharge(rateChannelCode: string) {
    const rateChannel = getRateChannelByCode(rateChannelCode);
    return rateChannel?.status === blLifeRecharge.constants.LifePayRateChannelStatus.Enabled;
  }
  /**
   *
   * @param rateChannelCode
   * @description rateChannelCode值话费为IspCode、电费为electricType、燃气费为gasOrgType
   * @returns
   */
  function checkCanRecharge(rateChannelCode: string) {
    const rateChannel = getRateChannelByCode(rateChannelCode);
    if (!isCanRecharge(rateChannelCode)) {
      //通道正在升级,给您带来不便尽情谅解
      msg.value = rateChannel?.remark ?? '';
      show.value = true;
      return false;
    }
    return true;
  }
  return {
    isCanRecharge,
    checkCanRecharge,
    ensureLifePayRateChannelAllList,
  };
}
packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue
@@ -13,7 +13,7 @@
          direction="horizontal"
          class="par-account-list"
          v-if="userAccountAllList.length > 0"
          @change="handleUserAccountChange"
          @change="_handleUserAccountChange"
        >
          <NutRadio
            :label="item.id"
@@ -145,6 +145,7 @@
import { RechargeProps } from '../PhoneBillRecharge/types';
import Chunk from '../../components/Layout/Chunk.vue';
import IconSelect from '../../assets/recharge/icon-select.png';
import { useCheckCanRecharge } from '../../hooks/rate';
defineOptions({
  name: 'GasBillRechargeStep3',
@@ -199,7 +200,28 @@
      form.parValue = 0;
    }
  },
  async getDefaultUserAccount(userAccountList) {
    await ensureLifePayRateChannelAllList();
    const defaultUserAccount = userAccountList.find((x) => {
      const currentUserAccountExtraProperties = JSON.parse(
        x.extraProperties
      ) as GasUserAccountExtraProperties;
      return isCanRecharge(currentUserAccountExtraProperties.gasOrgType);
});
    return defaultUserAccount;
  },
});
function _handleUserAccountChange(userAccountId: string) {
  const currentUserAccount = userAccountAllList.value.find((x) => x.id === userAccountId);
  const currentUserAccountExtraProperties = JSON.parse(
    currentUserAccount.extraProperties
  ) as GasUserAccountExtraProperties;
  if (!checkCanRecharge(currentUserAccountExtraProperties.gasOrgType)) {
    // return;
  }
  handleUserAccountChange(userAccountId);
}
function handleAddUserAccount() {
  goTo('step1');
@@ -257,8 +279,16 @@
const currentOrderNo = ref('');
const { isCanRecharge, checkCanRecharge, ensureLifePayRateChannelAllList } = useCheckCanRecharge({
  msg: toRef(state, 'msg'),
  show: toRef(state, 'show'),
});
async function goPay() {
  try {
    if (!checkCanRecharge(form.gasOrgType)) {
      return;
    }
    let params: LifeGasDataCreateLifePayOrderInput = {
      userId: blLifeRecharge.accountModel.userId,
      channelId: blLifeRecharge.accountModel.channlesNum,
packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue
@@ -8,12 +8,9 @@
  >
    <NutFormItem label="选择运营商:" class="bole-form-item" prop="ispCode" required>
      <NutRadioGroup v-model="form.ispCode" direction="horizontal" @change="handleIspCodeChange">
        <BlRadio
          :label="key"
          v-for="(val, key) in BlLifeRecharge.constants.IspCodeTextForSelect"
          :key="key"
          >{{ val }}</BlRadio
        >
        <BlRadio :label="item.code" v-for="item in allRateChannelList" :key="item.id">{{
          item.rateChannelName
        }}</BlRadio>
      </NutRadioGroup>
    </NutFormItem>
    <NutFormItem label="充值手机号" class="bole-form-item" prop="phone" required>
@@ -56,6 +53,7 @@
import BlRadio from '../../components/Radio/Radio.vue';
import { FormValidator } from '../../utils';
import { BlLifeRecharge, LifeRechargeConstants } from '@life-payment/core-vue';
import { useLifePayRateChannelAllList } from '../../hooks/rate';
defineOptions({
  name: 'PhoneBillRechargeBaseForm',
@@ -78,6 +76,12 @@
const dialogVisible = ref(false);
const { allRateChannelList } = useLifePayRateChannelAllList({
  params: {
    lifePayOrderType: LifeRechargeConstants.LifePayOrderTypeEnum.话费订单,
  },
});
function handleIspCodeChange(ispCode: LifeRechargeConstants.IspCode) {
  console.log('ispCode: ', ispCode);
  if (ispCode === LifeRechargeConstants.IspCode.dianxin) {
packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep2.vue
@@ -132,6 +132,7 @@
import { RechargeProps } from './types';
import Chunk from '../../components/Layout/Chunk.vue';
import IconSelect from '../../assets/recharge/icon-select.png';
import { useCheckCanRecharge } from '../../hooks/rate';
defineOptions({
  name: 'PhoneBillRechargeStep2',
@@ -166,7 +167,8 @@
    form.remark = currentUserAccount.remark;
    changeIspCode(form.ispCode as any);
  },
  getDefaultUserAccount(userAccountList) {
  async getDefaultUserAccount(userAccountList) {
    await ensureLifePayRateChannelAllList();
    const defaultUserAccount = userAccountList.find((x) => {
      const currentUserAccountExtraProperties = JSON.parse(
        x.extraProperties
@@ -262,21 +264,10 @@
const currentOrderNo = ref('');
function isCanRecharge(ispCode: string) {
  // return ispCode !== blLifeRecharge.constants.IspCode.yidong;
  return true;
}
function checkCanRecharge(ispCode: string) {
  if (!isCanRecharge(ispCode)) {
    //通道正在升级,给您带来不便尽情谅解
    state.msg =
      '尊敬的用户,为提供更安全、稳定的充值服务,移动充值通道正在进行升级维护,维护期间暂无法发起充值';
    state.show = true;
    return false;
  }
  return true;
}
const { isCanRecharge, checkCanRecharge, ensureLifePayRateChannelAllList } = useCheckCanRecharge({
  msg: toRef(state, 'msg'),
  show: toRef(state, 'show'),
});
async function goPay() {
  try {
packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue
@@ -13,7 +13,7 @@
          direction="horizontal"
          class="par-account-list"
          v-if="userAccountAllList.length > 0"
          @change="handleUserAccountChange"
          @change="_handleUserAccountChange"
        >
          <NutRadio
            :label="item.id"
@@ -143,6 +143,7 @@
import { RechargeProps } from '../PhoneBillRecharge/types';
import Chunk from '../../components/Layout/Chunk.vue';
import IconSelect from '../../assets/recharge/icon-select.png';
import { useCheckCanRecharge } from '../../hooks/rate';
defineOptions({
  name: 'ElectricBillRechargeStep2',
@@ -201,7 +202,28 @@
      form.parValue = 0;
    }
  },
  async getDefaultUserAccount(userAccountList) {
    await ensureLifePayRateChannelAllList();
    const defaultUserAccount = userAccountList.find((x) => {
      const currentUserAccountExtraProperties = JSON.parse(
        x.extraProperties
      ) as ElectricUserAccountExtraProperties;
      return isCanRecharge(currentUserAccountExtraProperties.electricType);
});
    return defaultUserAccount;
  },
});
function _handleUserAccountChange(userAccountId: string) {
  const currentUserAccount = userAccountAllList.value.find((x) => x.id === userAccountId);
  const currentUserAccountExtraProperties = JSON.parse(
    currentUserAccount.extraProperties
  ) as ElectricUserAccountExtraProperties;
  if (!checkCanRecharge(currentUserAccountExtraProperties.electricType)) {
    // return;
  }
  handleUserAccountChange(userAccountId);
}
function handleAddUserAccount() {
  goTo('step1');
@@ -261,8 +283,16 @@
const currentOrderNo = ref('');
const { isCanRecharge, checkCanRecharge, ensureLifePayRateChannelAllList } = useCheckCanRecharge({
  msg: toRef(state, 'msg'),
  show: toRef(state, 'show'),
});
async function goPay() {
  try {
    if (!checkCanRecharge(form.electricType)) {
      return;
    }
    let params: LifeElectricDataCreateLifePayOrderInput = {
      userId: blLifeRecharge.accountModel.userId,
      channelId: blLifeRecharge.accountModel.channlesNum,
packages/core/src/lifeRechargeConstants.ts
@@ -231,4 +231,27 @@
    [LifePayChannelAgentType.BrandAgent]: '品牌代理',
    [LifePayChannelAgentType.AreaAgent]: '区域代理',
  };
  export enum AnnouncementTypeEnum {
    /**普通公告 */
    Normal = 10,
    /**弹窗公告 */
    Dialog = 20,
  }
  export enum AnnouncementStatusEnum {
    /**展示中 */
    Showing = 10,
    /**待展示 */
    Wait = 20,
    /**已停止 */
    Stop = 30,
  }
  export enum LifePayRateChannelStatus {
    /**启用 */
    Disabled = -10,
    /**禁用 */
    Enabled = 10,
  }
}
packages/core/src/lifeRechargeServices.ts
@@ -464,6 +464,39 @@
      ...(options || {}),
    });
  }
  /** 获取当前展示中的公告 POST /api/LifePayAnnouncement/GetShowingLifePayAnnouncement */
  async getShowingLifePayAnnouncement(
    body: GetShowingLifePayAnnouncementInput,
    options?: RequestConfig
  ) {
    return this.request<CreateEditLifePayAnnouncementOutput>(
      '/api/LifePayAnnouncement/GetShowingLifePayAnnouncement',
      {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
        },
        data: body,
        ...(options || {}),
      }
    );
  }
  /** 获取折扣通道配置列表 POST /api/LifePayRate/GetLifePayRateChannelAllList */
  async getLifePayRateChannelAllList(body: QueryRateChannelInput, options?: RequestConfig) {
    return this.request<CreateEditRateChannelOutput[]>(
      '/api/LifePayRate/GetLifePayRateChannelAllList',
      {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
        },
        data: body,
        ...(options || {}),
      }
    );
  }
}
export interface PhoneMesssageCodeLoginInput {
@@ -1069,3 +1102,42 @@
  /** IdNumber */
  idNumber?: string;
}
export interface GetShowingLifePayAnnouncementInput {
  announcementType?: LifeRechargeConstants.AnnouncementTypeEnum;
}
export interface CreateEditLifePayAnnouncementOutput {
  id?: string;
  announcementType: LifeRechargeConstants.AnnouncementTypeEnum;
  /** 生效日期 */
  startTime: string;
  /** 截止日期 */
  endTime: string;
  /** 公告内容 */
  announcementContent: string;
  creationTime?: string;
  status?: LifeRechargeConstants.AnnouncementStatusEnum;
}
export interface QueryRateChannelInput {
  status?: LifeRechargeConstants.LifePayRateChannelStatus;
  lifePayOrderType?: LifeRechargeConstants.LifePayOrderTypeEnum;
}
export interface CreateEditRateChannelOutput {
  id?: string;
  lifePayOrderType: LifeRechargeConstants.LifePayOrderTypeEnum;
  /** 通道 */
  rateChannelName: string;
  /** ID */
  code: string;
  /** 供应商折扣 */
  supplierRate: number;
  /** 平台折扣 */
  platformRate: number;
  status: LifeRechargeConstants.LifePayRateChannelStatus;
  /** 通知内容 */
  remark: string;
  creationTime?: string;
}
packages/services/api/LifePayAnnouncement.ts
New file
@@ -0,0 +1,69 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 新增编辑公告 POST /api/LifePayAnnouncement/CreateOrEditLifePayAnnouncement */
export async function createOrEditLifePayAnnouncement(
  body: API.CreateEditLifePayAnnouncementInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/LifePayAnnouncement/CreateOrEditLifePayAnnouncement', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 删除公告 GET /api/LifePayAnnouncement/DeleteLifePayAnnouncement */
export async function deleteLifePayAnnouncement(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIdeleteLifePayAnnouncementParams,
  options?: API.RequestConfig
) {
  return request<number>('/api/LifePayAnnouncement/DeleteLifePayAnnouncement', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** 获取公告分页 POST /api/LifePayAnnouncement/GetLifePayAnnouncementPage */
export async function getLifePayAnnouncementPage(
  body: API.GetLifePayAnnouncementPageInput,
  options?: API.RequestConfig
) {
  return request<API.CreateEditLifePayAnnouncementOutputPageOutput>(
    '/api/LifePayAnnouncement/GetLifePayAnnouncementPage',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 获取当前展示中的公告 POST /api/LifePayAnnouncement/GetShowingLifePayAnnouncement */
export async function getShowingLifePayAnnouncement(
  body: API.GetShowingLifePayAnnouncementInput,
  options?: API.RequestConfig
) {
  return request<API.CreateEditLifePayAnnouncementOutput>(
    '/api/LifePayAnnouncement/GetShowingLifePayAnnouncement',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
packages/services/api/LifePayRate.ts
New file
@@ -0,0 +1,81 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 新增编辑折扣通道配置 POST /api/LifePayRate/CreateOrEditLifePayRateChannel */
export async function createOrEditLifePayRateChannel(
  body: API.CreateEditRateChannelInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/LifePayRate/CreateOrEditLifePayRateChannel', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 删除折扣通道 POST /api/LifePayRate/DeleteRateChannel */
export async function deleteRateChannel(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIdeleteRateChannelParams,
  options?: API.RequestConfig
) {
  return request<number>('/api/LifePayRate/DeleteRateChannel', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** 获取折扣通道配置列表 POST /api/LifePayRate/GetLifePayRateChannelAllList */
export async function getLifePayRateChannelAllList(
  body: API.QueryRateChannelInput,
  options?: API.RequestConfig
) {
  return request<API.CreateEditRateChannelOutput[]>(
    '/api/LifePayRate/GetLifePayRateChannelAllList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 获取折扣通道配置分页 POST /api/LifePayRate/GetLifePayRateChannelPage */
export async function getLifePayRateChannelPage(body: API.PageInput, options?: API.RequestConfig) {
  return request<API.CreateEditRateChannelOutputPageOutput>(
    '/api/LifePayRate/GetLifePayRateChannelPage',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 设置折扣通道状态 GET /api/LifePayRate/SetRateChannelStatus */
export async function setRateChannelStatus(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIsetRateChannelStatusParams,
  options?: API.RequestConfig
) {
  return request<number>('/api/LifePayRate/SetRateChannelStatus', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
packages/services/api/WxPayNotify.ts
@@ -17,6 +17,21 @@
  });
}
/** 此处后端没有提供注释 POST /api/WxPayNotify/WxPayDomesticRefundsNotifyImp */
export async function wxPayDomesticRefundsNotifyImp(
  body: API.WxPayDomesticRefundsNotice,
  options?: API.RequestConfig
) {
  return request<any>('/api/WxPayNotify/WxPayDomesticRefundsNotifyImp', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 微信支付回调通知 POST /api/WxPayNotify/WxRechargeNotify */
export async function wxRechargeNotify(
  body: API.WxRechargeNotifyInput,
packages/services/api/index.ts
@@ -14,6 +14,8 @@
import * as IdentityUser from './IdentityUser';
import * as IdentityUserLookup from './IdentityUserLookup';
import * as LifePay from './LifePay';
import * as LifePayAnnouncement from './LifePayAnnouncement';
import * as LifePayRate from './LifePayRate';
import * as Log from './Log';
import * as OperateHistory from './OperateHistory';
import * as Permissions from './Permissions';
@@ -38,6 +40,8 @@
  IdentityUser,
  IdentityUserLookup,
  LifePay,
  LifePayAnnouncement,
  LifePayRate,
  Log,
  OperateHistory,
  Permissions,
packages/services/api/typings.d.ts
@@ -139,6 +139,10 @@
    column?: ModuleColumnDto[];
  }
  type AnnouncementStatusEnum = 10 | 20 | 30;
  type AnnouncementTypeEnum = 10 | 20;
  interface APIaddOrEditModuleStatusParams {
    id?: string;
    isMenu?: number;
@@ -169,6 +173,10 @@
    id?: string;
  }
  interface APIdeleteLifePayAnnouncementParams {
    id?: string;
  }
  interface APIdeleteModuleButtonParams {
    id?: string;
  }
@@ -178,6 +186,10 @@
  }
  interface APIdeleteModuleParams {
    id?: string;
  }
  interface APIdeleteRateChannelParams {
    id?: string;
  }
@@ -390,6 +402,11 @@
  interface APIsetLifePayChannelsStatusParams {
    id?: string;
    status?: LifePayChannelsStatsEnum;
  }
  interface APIsetRateChannelStatusParams {
    id?: string;
    status?: LifePayRateChannelStatus;
  }
  interface APIstatisticsByDateParams {
@@ -717,6 +734,36 @@
    customerResources?: string;
  }
  interface CreateEditLifePayAnnouncementInput {
    id?: string;
    announcementType: AnnouncementTypeEnum;
    /** 生效日期 */
    startTime: string;
    /** 截止日期 */
    endTime: string;
    /** 公告内容 */
    announcementContent: string;
  }
  interface CreateEditLifePayAnnouncementOutput {
    id?: string;
    announcementType: AnnouncementTypeEnum;
    /** 生效日期 */
    startTime: string;
    /** 截止日期 */
    endTime: string;
    /** 公告内容 */
    announcementContent: string;
    creationTime?: string;
    status?: AnnouncementStatusEnum;
  }
  interface CreateEditLifePayAnnouncementOutputPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: CreateEditLifePayAnnouncementOutput[];
  }
  interface CreateEditPayChannelsInput {
    id?: string;
    channlesName?: string;
@@ -741,6 +788,45 @@
    pageModel?: Pagination;
    objectData?: any;
    data?: CreateEditPayChannelsInput[];
  }
  interface CreateEditRateChannelInput {
    id?: string;
    lifePayOrderType: LifePayOrderTypeEnum;
    /** 通道 */
    rateChannelName: string;
    /** ID */
    code: string;
    /** 供应商折扣 */
    supplierRate: number;
    /** 平台折扣 */
    platformRate: number;
    status: LifePayRateChannelStatus;
    /** 通知内容 */
    remark: string;
  }
  interface CreateEditRateChannelOutput {
    id?: string;
    lifePayOrderType: LifePayOrderTypeEnum;
    /** 通道 */
    rateChannelName: string;
    /** ID */
    code: string;
    /** 供应商折扣 */
    supplierRate: number;
    /** 平台折扣 */
    platformRate: number;
    status: LifePayRateChannelStatus;
    /** 通知内容 */
    remark: string;
    creationTime?: string;
  }
  interface CreateEditRateChannelOutputPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: CreateEditRateChannelOutput[];
  }
  interface CreateLifePayOrderOutput {
@@ -1052,6 +1138,15 @@
    groups?: FeatureGroupDto[];
  }
  interface GetLifePayAnnouncementPageInput {
    pageModel?: Pagination;
    creationTimeBegin?: string;
    creationTimeEnd?: string;
    startTime?: string;
    endTime?: string;
    status?: AnnouncementStatusEnum;
  }
  interface GetOperateHistoryInput {
    pageModel?: Pagination;
    relationId?: string;
@@ -1093,6 +1188,10 @@
    pageModel?: Pagination;
    /** 查询条件:角色名称 */
    queryCondition?: string;
  }
  interface GetShowingLifePayAnnouncementInput {
    announcementType?: AnnouncementTypeEnum;
  }
  interface IanaTimeZone {
@@ -1631,6 +1730,8 @@
    rate?: number;
    id?: string;
  }
  type LifePayRateChannelStatus = 10 | -10;
  interface LifePayRateInput {
    rateType?: LifePayRateTypeEnum;
@@ -2202,6 +2303,11 @@
    phoneChargeOrder?: PhoneChargeOrderOutput;
  }
  interface QueryRateChannelInput {
    status?: LifePayRateChannelStatus;
    lifePayOrderType?: LifePayOrderTypeEnum;
  }
  interface QueryUserAccountAllListInput {
    pageModel?: Pagination;
    checkChannelId?: string;
@@ -2245,6 +2351,13 @@
    receiveList?: ReceiptsDetail[];
    /** 30天收入 */
    incomeList?: ReceiptsDetail[];
  }
  interface RefundAmount {
    total: number;
    refund: number;
    payerTotal: string;
    payerRefund: string;
  }
  interface RefundLifePayOrderInput {
@@ -2781,6 +2894,15 @@
    unionId?: string;
  }
  interface WxPayDomesticRefundsNotice {
    mchid?: string;
    outTradeNo?: string;
    transactionId?: string;
    outRefundNo?: string;
    refundStatus?: string;
    amount?: RefundAmount;
  }
  interface WxPayDomesticRefundsQueryReponse {
    code?: string;
    message?: string;
types/api.d.ts
@@ -2,6 +2,7 @@
  interface RequestConfig extends GlobalType.RequestConfig {
    showNavigationBarLoading?: boolean;
    showLoading?: boolean;
    skipErrorHandler?: boolean;
    mock?: boolean;
    customErrorHandler?: (error: any) => boolean;
  }