Commit 1c2146133993674725d6fb5ab6b37fbfa9c23603

Authored by boyang
1 parent cbb31ced

feat: 检查隐私余额

src/pages/Order/OrderList/OrderDrawer.tsx
... ... @@ -3,6 +3,7 @@ import {
3 3 postCanrdApiUserAddressList,
4 4 postCanrdApiUserDetail,
5 5 postCanrdApiUserNowMoneyCheck,
  6 + postCanrdPrivatePocketPrivateMoneyCheck,
6 7 postDistrictSelectByLevel,
7 8 postDistrictSelectByNameAndLevel,
8 9 postDistrictSelOrderProvince,
... ... @@ -648,6 +649,41 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
648 649 };
649 650  
650 651 /**
  652 + * 检查隐私钱包余额
  653 + * @param uid 用户ID
  654 + * @param phone 手机号
  655 + * @param subPrice 金额
  656 + */
  657 + const checkPrivateWalletMoney = async (
  658 + uid: any,
  659 + phone: any,
  660 + subPrice: any,
  661 + ) => {
  662 + let res = await postCanrdPrivatePocketPrivateMoneyCheck({
  663 + data: { uid: uid, phone: phone, subPrice: subPrice },
  664 + });
  665 + if (res && res.result === RESPONSE_CODE.SUCCESS && res.data) {
  666 + let data = res.data;
  667 + let isEnough = data.isEnough;
  668 + if (isEnough) {
  669 + return true;
  670 + }
  671 +
  672 + message.error(
  673 + '隐私钱包余额不足,当前预减的金额为:' +
  674 + data.subPrice +
  675 + ',当前隐私钱包余额为:' +
  676 + data.privateMoney,
  677 + );
  678 + return false;
  679 + }
  680 +
  681 + return false;
  682 + };
  683 +
  684 + // 已在prepaidUid字段的onChange处理器中直接实现账户选择逻辑
  685 +
  686 + /**
651 687 * 总金额改变触发事件
652 688 * 如果是预存单,需要检查余额
653 689 * @param value
... ... @@ -1751,7 +1787,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1751 1787 hidden={paymentMethod !== 'WITHHOLDING_ADVANCE_DEPOSIT'}
1752 1788 showSearch
1753 1789 label="预存账号"
1754   - onChange={(value: any, option: any) => {
  1790 + onChange={async (value: any, option: any) => {
1755 1791 console.log(value, '5656value');
1756 1792 console.log(option, '5656option');
1757 1793  
... ... @@ -1765,18 +1801,31 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1765 1801 const selectedData = option || {};
1766 1802 const realUid = selectedData.uid;
1767 1803 const institution = selectedData.institution;
  1804 + const phone = selectedData.phone;
1768 1805  
1769 1806 console.log('选中账户信息:', {
1770 1807 value: value,
1771 1808 realUid: realUid,
1772 1809 institution: institution,
  1810 + phone: phone,
1773 1811 });
1774 1812  
1775   - //检查用户额度
1776   - let valid = checkAccountMoney(
1777   - realUid, // 使用真实UID检查额度
1778   - form.getFieldValue('totalPayment'),
1779   - );
  1813 + // 检查是否是隐私钱包
  1814 + const isPrivacyWallet = institution === '隐私钱包';
  1815 + const totalPayment = form.getFieldValue('totalPayment');
  1816 + let valid;
  1817 +
  1818 + if (isPrivacyWallet) {
  1819 + // 使用隐私钱包检查方式
  1820 + valid = await checkPrivateWalletMoney(
  1821 + realUid,
  1822 + phone,
  1823 + totalPayment,
  1824 + );
  1825 + } else {
  1826 + // 使用普通账户检查方式
  1827 + valid = await checkAccountMoney(realUid, totalPayment);
  1828 + }
1780 1829  
1781 1830 if (!valid) {
1782 1831 form.setFieldValue('prepaidUid', undefined);
... ... @@ -1784,9 +1833,6 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1784 1833 return;
1785 1834 }
1786 1835  
1787   - // 如果机构是"隐私钱包",则设置privatePocket为true
1788   - const isPrivacyWallet = institution === '隐私钱包';
1789   -
1790 1836 // 设置真实UID和privatePocket标志
1791 1837 form.setFieldValue('realPrepaidUid', realUid);
1792 1838 // 存储为字符串'true'或'false',这样在表单中能正确保存
... ... @@ -1799,6 +1845,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1799 1845 prepaidUid: value,
1800 1846 realPrepaidUid: realUid,
1801 1847 privatePocket: isPrivacyWallet,
  1848 + accountType: isPrivacyWallet ? '隐私钱包' : '普通账户',
1802 1849 });
1803 1850 }}
1804 1851 placeholder="请选择预存账号"
... ...
src/services/definition.ts
... ... @@ -4823,6 +4823,24 @@ export interface UserNowMoneyCheckRequest {
4823 4823 uid?: number;
4824 4824 }
4825 4825  
  4826 +export interface UserPrivateMoneyCheckRequest {
  4827 + /**
  4828 + * @description
  4829 + * 手机号码
  4830 + */
  4831 + phone?: string;
  4832 + /**
  4833 + * @description
  4834 + * 金额
  4835 + */
  4836 + subPrice?: number;
  4837 + /**
  4838 + * @description
  4839 + * 用户ID
  4840 + */
  4841 + uid?: string;
  4842 +}
  4843 +
4826 4844 export interface UserPrivatePocketBalanceUpdateRequest {
4827 4845 /**
4828 4846 * @description
... ... @@ -5605,7 +5623,7 @@ export interface SalesRechargePrepaymentAuditRequest {
5605 5623 * @description
5606 5624 * 销售代表编码
5607 5625 */
5608   - salescode?: string;
  5626 + salesCode?: string;
5609 5627 }
5610 5628  
5611 5629 export interface SalesRechargePrepaymentCreateRequest {
... ...
src/services/request.ts
... ... @@ -167,6 +167,7 @@ import type {
167 167 UserDetailRequest,
168 168 UserListRequest,
169 169 UserNowMoneyCheckRequest,
  170 + UserPrivateMoneyCheckRequest,
170 171 UserPrivatePocketBalanceUpdateRequest,
171 172 UserPrivatePocketDeleteRequest,
172 173 UserPrivatePocketDetailRequest,
... ... @@ -3359,6 +3360,77 @@ export const postCanrdPrivatePocketList = /* #__PURE__ */ (() => {
3359 3360 return request;
3360 3361 })();
3361 3362  
  3363 +/** @description request parameter type for postCanrdPrivatePocketPrivateMoneyCheck */
  3364 +export interface PostCanrdPrivatePocketPrivateMoneyCheckOption {
  3365 + /**
  3366 + * @description
  3367 + * request
  3368 + */
  3369 + body: {
  3370 + /**
  3371 + @description
  3372 + request */
  3373 + request: UserPrivateMoneyCheckRequest;
  3374 + };
  3375 +}
  3376 +
  3377 +/** @description response type for postCanrdPrivatePocketPrivateMoneyCheck */
  3378 +export interface PostCanrdPrivatePocketPrivateMoneyCheckResponse {
  3379 + /**
  3380 + * @description
  3381 + * OK
  3382 + */
  3383 + 200: ServerResult;
  3384 + /**
  3385 + * @description
  3386 + * Created
  3387 + */
  3388 + 201: any;
  3389 + /**
  3390 + * @description
  3391 + * Unauthorized
  3392 + */
  3393 + 401: any;
  3394 + /**
  3395 + * @description
  3396 + * Forbidden
  3397 + */
  3398 + 403: any;
  3399 + /**
  3400 + * @description
  3401 + * Not Found
  3402 + */
  3403 + 404: any;
  3404 +}
  3405 +
  3406 +export type PostCanrdPrivatePocketPrivateMoneyCheckResponseSuccess =
  3407 + PostCanrdPrivatePocketPrivateMoneyCheckResponse[200];
  3408 +/**
  3409 + * @description
  3410 + * 检查用户隐私钱包余额是否足够
  3411 + * @tags user-private-pocket-controller
  3412 + * @produces *
  3413 + * @consumes application/json
  3414 + */
  3415 +export const postCanrdPrivatePocketPrivateMoneyCheck = /* #__PURE__ */ (() => {
  3416 + const method = 'post';
  3417 + const url = '/canrd/privatePocket/privateMoney/check';
  3418 + function request(
  3419 + option: PostCanrdPrivatePocketPrivateMoneyCheckOption,
  3420 + ): Promise<PostCanrdPrivatePocketPrivateMoneyCheckResponseSuccess> {
  3421 + return requester(request.url, {
  3422 + method: request.method,
  3423 + ...option,
  3424 + }) as unknown as Promise<PostCanrdPrivatePocketPrivateMoneyCheckResponseSuccess>;
  3425 + }
  3426 +
  3427 + /** http method */
  3428 + request.method = method;
  3429 + /** request url */
  3430 + request.url = url;
  3431 + return request;
  3432 +})();
  3433 +
3362 3434 /** @description request parameter type for postCanrdPrivatePocketSave */
3363 3435 export interface PostCanrdPrivatePocketSaveOption {
3364 3436 /**
... ...