| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- import request from '../utils/RequestUtils';
- import {
- addAsyncStorage,
- removeAsyncStorage,
- getAsyncStorage,
- } from '../utils/AsyncStorageUtils';
- import {
- toastShow,
- toastHide,
- toastInfo,
- toastSuccess,
- } from '../utils/SystemUtils';
- import Map from '../map/model';
- import i18n from '../i18n';
- const user = (now) => ({
- id: null,
- userInfo: {},
- initialRouteName: '',
- verifiedInfo: {},
- riderInfo: {},
- sign: false,
- noSign: false,
- getUser() {
- let userInfo = {
- id: 0,
- };
- return request
- .get('/user/my')
- .then((res) => {
- if (res.identity === 'RIDER') {
- userInfo = res;
- return request.get('/rider/my');
- } else {
- return Promise.reject('noRider');
- }
- })
- .then((res) => {
- now({
- riderInfo: res,
- });
- return Promise.resolve();
- })
- .catch((e) => {
- if (e === 'noRider') {
- return Promise.reject('noRider');
- } else if (userInfo.id) {
- return request.get('/verified/my');
- } else {
- now({
- id: userInfo.id,
- userInfo,
- });
- return Promise.reject(userInfo.id);
- }
- })
- .then((res) => {
- now({
- id: userInfo.id,
- userInfo,
- });
- if (res.id) {
- now({
- verifiedInfo: res,
- });
- }
- return Promise.reject(userInfo.id);
- });
- },
- setRider(info) {
- now({ riderInfo: info });
- },
- logout() {
- removeAsyncStorage('token').then(() => {
- // 清除用户信息
- now({ id: 0, userInfo: {}, riderInfo: {}, verifiedInfo: {} });
- toastSuccess(i18n.t('tui-chu-cheng-gong'));
- });
- },
- updateUser({ ...info }) {
- const { id, getUser } = now();
- toastShow();
- return request
- .post('/user/save', {
- data: {
- ...info,
- id,
- },
- })
- .then(() => {
- return getUser();
- })
- .then(() => {
- toastHide();
- toastSuccess(i18n.t('geng-xin-cheng-gong'));
- return Promise.resolve();
- })
- .catch((e) => {
- toastHide();
- toastInfo(e.error);
- });
- },
- getInit(back) {
- const { getUser } = now();
- return getUser()
- .catch((id) => {
- if (back) {
- back(id);
- }
- const { verifiedInfo, riderInfo } = now();
- console.log(id);
- console.log(verifiedInfo);
- console.log(riderInfo);
- if (id === 'noRider') {
- now({ initialRouteName: 'Login' });
- return Promise.reject();
- } else if (id && riderInfo.id) {
- if (riderInfo.status === 'PENDING') {
- now({ initialRouteName: 'AuditResult' });
- return Promise.reject();
- } else if (riderInfo.status === 'DENY') {
- return getAsyncStorage('seApply');
- } else {
- return getAsyncStorage('riderIsApply');
- }
- } else if (id && verifiedInfo.id) {
- now({ initialRouteName: 'Transportation' });
- return Promise.reject();
- } else if (id) {
- now({ initialRouteName: 'Certification' });
- return Promise.reject();
- } else {
- now({ initialRouteName: 'Login' });
- return Promise.reject();
- }
- })
- .then((res) => {
- const { riderInfo } = now();
- if (
- (res && riderInfo.status === 'PASS' && res === 'true') ||
- (!res && riderInfo.status === 'DENY')
- ) {
- now({ initialRouteName: 'AuditResult' });
- } else if (res) {
- now({ initialRouteName: res });
- } else {
- now({ initialRouteName: 'MainStack' });
- }
- })
- .catch(() => {});
- },
- getSignInfo() {
- const { id } = now();
- if (!id) {
- now({
- sign: false,
- });
- return Promise.resolve(false);
- }
- return request
- .get('/riderSign/all', {
- params: {
- query: {
- userId: id,
- },
- },
- })
- .then((res) => {
- if (res.content.length > 0) {
- const info = res.content.find((item) => {
- return !!item.takingOrders;
- });
- now({
- sign: info ? true : res.content[0].takingOrders,
- signInfo: info || res.content[0],
- noSign: false,
- });
- return Promise.resolve(info ? true : res.content[0].takingOrders);
- } else {
- now({
- sign: false,
- noSign: true,
- });
- return Promise.resolve(false);
- }
- });
- },
- riderOrder() {
- toastShow();
- const { sign, noSign, riderInfo } = now();
- const { getNowLocation } = now(Map);
- return getNowLocation()
- .then((res) => {
- const { location } = res;
- if (noSign) {
- return request.post('/riderSign/save', {
- data: {
- takingOrders: true,
- longitude: location.lng,
- latitude: location.lat,
- riderId: riderInfo.id,
- },
- });
- } else {
- return request.get('/riderSign/riderOrder', {
- params: {
- isStart: !sign,
- longitude: location.lng,
- latitude: location.lat,
- },
- });
- }
- })
- .then((res) => {
- now({
- sign: !sign,
- noSign: false,
- });
- toastSuccess((sign ? '休息' : '开工') + '成功');
- })
- .catch((e) => {
- toastInfo(e.error);
- });
- },
- });
- export default user;
|