Browse Source

Merge pull request #195 from John-Hong/John/release-2.12.0/KIP-9806

feat(KIP-9806): Temp parking | 提交开票申请、开票抬头、开票邮箱 增加unionid 入参字段
Tron 2 năm trước cách đây
mục cha
commit
760ba52364

+ 6 - 0
src/api/parking/index.js

@@ -169,3 +169,9 @@ export function paperCoupon(couponCode, vehicleNo) {
 }
 
 
+// 跟新用户历史订单数据
+// curl --location --request PUT 'https://qa-kip-service-internal.kerryplus.com/temporary-parking-service/update-union-id?openId=ozdsB49w5Rz5IWzy-si52UVXr4M0&unionId=union-id-2&vipCode=null'
+
+export function updateUnionId({openId, unionId, vipCode = null}) {
+  return window.requestms.put(`update-union-id?openId=${openId}&unionId=${unionId}&vipCode=${vipCode}`, {}, { loading: false });
+}

+ 3 - 0
src/api/request.js

@@ -97,6 +97,9 @@ function XUser(config) {
     // vipCode: 'KERRY100213853', // 终端用户ID, 微信端传openId, 支付宝小程序传阿里userId, APP传KIP的userId
     // lbsId: '8aaa82ea804d07cd0180516ff03b0008',
     lbsId: store.state?.lbsId || '',
+    // https://kerryprops.atlassian.net/browse/KIP-10831
+    sourceId: store.state?.sourceId || '', // 微信:unionId; 支付宝:userId
+    isLogin: store.state?.member?.vipcode ? true : false
   };
   // params = {"userId": "8aaa809d835ba76d018378bc57180006","sourceType": "WECHAT","phoneNumber": "18521563898","projectId": "paroject1","buildingId": "QHKC-P1","brandId":"8a84853b7c91ac5b017c962dab55030e","cid": "oIUfO5XAVleJ88z13i1_08DCKIhQ","vipCode":"KERRY100200040","lbsId":"8aaa81cb7c836c6b017c83e46b110001"}
   if (/orders-and-prepay|calculate-discount|unlicensed-car-check-in|unlicensed-car-checkout|paper-coupon/g.test(config.url)) {

+ 7 - 1
src/pages/parkingFee/mixins/parkingReceipt/parkingReceipt.js

@@ -83,6 +83,7 @@ export default {
       userInfo: (state) => state.userInfo,
       member: (state) => state.member,
       mobile: (state) => state.mobile,
+      source: (state) => state.source,
     }),
   },
   created() {
@@ -121,7 +122,12 @@ export default {
       this.invoice(invoiceindex);
     } else {
       wxToLoginCallback('parkingReceipt', () => {
-        this.$router.back();
+        // 如果用户未做登录的话
+        if(['JINGAN', 'PUDONG'].indexOf(this.source) > -1) {
+          this.invoice(invoiceindex);
+        } else {
+          this.$router.back();
+        }
       });
     }
   },

+ 114 - 82
src/store/index.js

@@ -1,21 +1,22 @@
 import Vue from 'vue';
 import Vuex from 'vuex';
-import { Encrypt,Decrypt } from '@/utils/crypto';
+import { Encrypt, Decrypt } from '@/utils/crypto';
 import { crmQueryMemberInfo } from '@/utils/api-crm-member';
 import uni from '@/utils/uniHooks';
-import { kipAllCities,kipGetUserDetail,getVIPIntegral } from '@/utils/api-kip';
+import { kipAllCities, kipGetUserDetail, getVIPIntegral } from '@/utils/api-kip';
 import cachedViews from './cachedViews';
 import order from './order/index';
 import invoice from './invoice';
 import { lbsDictionary } from '@/common/js/BaseDictionary';
+import { updateUnionId } from '@/api/parking/index'
 import { getGroupIdAndMallIdByLsbId } from '@/utils';
 // import { parkingLots } from '@/utils/api-crm-ms';
 
 Vue.use(Vuex);
 
-function getValue( state,key ) {
+function getValue(state, key) {
   let value = state[key];
-  if ( !value ) {
+  if (!value) {
     value = uni.getStorageSync(key);
   }
   // console.log(1414141414141414, { key, value });
@@ -56,121 +57,126 @@ const store = new Vuex.Store({
     // 无牌车
     unlicensedInfo: '',
     // 防止用户在无牌车流程中卡死
-    endlessLoop: ''
+    endlessLoop: '',
+    sourceId: '' // 微信:unionId; 支付宝:userId
   },
   mutations: {
-    SET_GROUP_ID( state,payload ) {
-      uni.setStorageSync('groupId',payload);
+    SET_GROUP_ID(state, payload) {
+      uni.setStorageSync('groupId', payload);
       state.groupId = payload;
     },
-    SET_KIP_USER_ID( state,payload ) {
-      uni.setStorageSync('kipUserId',payload);
+    SET_KIP_USER_ID(state, payload) {
+      uni.setStorageSync('kipUserId', payload);
       state.kipUserId = payload;
     },
-    SET_MALL_ID( state,payload ) {
-      uni.setStorageSync('mallId',payload);
+    SET_MALL_ID(state, payload) {
+      uni.setStorageSync('mallId', payload);
       state.mallId = payload;
     },
-    SET_OPENID( state,payload ) {
-      uni.setStorageSync('openid',payload);
+    SET_OPENID(state, payload) {
+      uni.setStorageSync('openid', payload);
       state.openid = payload;
     },
-    SET_WX_ACCESS_TOKEN( state,payload ) {
-      uni.setStorageSync('wxAccessToken',payload);
+    SET_WX_ACCESS_TOKEN(state, payload) {
+      uni.setStorageSync('wxAccessToken', payload);
       state.access_token = payload;
     },
-    SET_WX_REFRESH_TOKEN( state,payload ) {
-      uni.setStorageSync('wxRefreshToken',payload);
+    SET_WX_REFRESH_TOKEN(state, payload) {
+      uni.setStorageSync('wxRefreshToken', payload);
       state.refresh_token = payload;
     },
-    SET_MEMBER( state,payload ) {
-      uni.setStorageSync('member',payload);
+    SET_MEMBER(state, payload) {
+      uni.setStorageSync('member', payload);
       state.member = payload;
     },
-    SET_USER_INFO( state,payload ) {
-      uni.setStorageSync('userInfo',payload);
+    SET_USER_INFO(state, payload) {
+      uni.setStorageSync('userInfo', payload);
       state.userInfo = payload;
     },
-    SET_MOBILE( state,payload ) {
-      uni.setStorageSync('mobile',payload);
+    SET_MOBILE(state, payload) {
+      uni.setStorageSync('mobile', payload);
       state.mobile = payload;
     },
-    SET_PARAMS_SCENE( state,payload ) {
-      uni.setStorageSync('paramsScene',payload);
+    SET_PARAMS_SCENE(state, payload) {
+      uni.setStorageSync('paramsScene', payload);
       state.paramsScene = payload;
     },
-    SET_PARK_FEE( state,payload ) {
+    SET_PARK_FEE(state, payload) {
       state.parkFee = payload;
     },
-    SET_MARKET_LIST( state,payload ) {
+    SET_MARKET_LIST(state, payload) {
       state.marketList = payload;
     },
-    SET_PROJECT_ID( state,payload ) {
-      uni.setStorageSync('projectId',payload);
+    SET_PROJECT_ID(state, payload) {
+      uni.setStorageSync('projectId', payload);
       state.projectId = payload;
     },
-    SET_IS_LOGIN( state,payload ) {
+    SET_IS_LOGIN(state, payload) {
       state.isLogin = payload;
       // uni.setStorageSync('passLogin', payload);
     },
-    SET_ACCESS_TOKEN( state,payload ) {
+    SET_ACCESS_TOKEN(state, payload) {
       state.accessToken = payload;
       // uni.setStorageSync('accessToken', payload);
-      uni.setStorageSync('kipAccessToken',payload);
+      uni.setStorageSync('kipAccessToken', payload);
     },
-    setTempParkingOrder( state,payload ) {
+    setTempParkingOrder(state, payload) {
       state.tempParkingOrder = payload;
     },
-    setTempParkingMoney( state,payload ) {
+    setTempParkingMoney(state, payload) {
       state.tempParkingMoney = payload;
     },
     // setbonusCopy
-    SET_BONUS_COPY( state,payload ) {
+    SET_BONUS_COPY(state, payload) {
       state.bonusCopy = payload;
     },
-    SET_CUST_TYPE_ID( state,payload ) {
-      uni.setStorageSync('custTypeId',payload);
+    SET_CUST_TYPE_ID(state, payload) {
+      uni.setStorageSync('custTypeId', payload);
       state.custTypeId = payload;
     },
-    SET_SOURCE( state,payload ) {
-      uni.setStorageSync('source',payload);
+    SET_SOURCE(state, payload) {
+      uni.setStorageSync('source', payload);
       state.source = payload;
     },
-    SET_APPID( state,payload ) {
-      uni.setStorageSync('appId',payload);
+    SET_APPID(state, payload) {
+      uni.setStorageSync('appId', payload);
       state.appId = payload;
     },
-    SET_BRAND_INFO( state,payload ) {
-      uni.setStorageSync('brandInfo',payload);
+    SET_BRAND_INFO(state, payload) {
+      uni.setStorageSync('brandInfo', payload);
       state.brandInfo = payload;
     },
-    SET_CUR_MARKET( state,payload ) {
-      uni.setStorageSync('curMarket',payload);
+    SET_CUR_MARKET(state, payload) {
+      uni.setStorageSync('curMarket', payload);
       state.curMarket = payload;
     },
-    SET_IS_INIT( state,payload ) {
+    SET_IS_INIT(state, payload) {
       // TODO: 与小程序通信时打开
       state.isInit = payload;
     },
-    SET_LBS_ID( state,payload ) {
-      uni.setStorageSync('lbsId',payload);
-      uni.setStorageSync('mallId',payload);
+    SET_LBS_ID(state, payload) {
+      uni.setStorageSync('lbsId', payload);
+      uni.setStorageSync('mallId', payload);
       state.lbsId = payload;
     },
-    SET_BRAND_ID( state,payload ) {
+    SET_BRAND_ID(state, payload) {
       state.brandId = payload;
     },
     // 无牌车
-    SET_UNLICENSED_INFO( state,payload ) {
+    SET_UNLICENSED_INFO(state, payload) {
       console.log(163, payload);
       state.unlicensedInfo = payload;
     },
-    SET_ENDLESS_LOOP( state,payload ) {
+    SET_ENDLESS_LOOP(state, payload) {
       state.endlessLoop = payload;
     },
+    SET_SOURCE_ID(state, payload) {
+      uni.setStorageSync('sourceId', payload);
+      state.sourceId = payload;
+    },
   },
   actions: {
-    async baseInit( {commit,dispatch},{options,callback} ) {
+    async baseInit({ commit, dispatch }, { options, callback }) {
       try {
         // console.log(
         //   'Encrypt',
@@ -179,7 +185,7 @@ const store = new Vuex.Store({
         //     '8aaa81947c6e1ca0017c7201e82d0001#8aaa80cc7d4fc7b3017d55c4d6120000#8aaa80b47c784020017c78b00d060022#ozdsB4yx3I7ez2Ba3DgEmeSR-CFY#13601829387'
         //   )
         // );
-        console.log(128,options);
+        console.log(128, options);
         // if (!pageId) return;
         let {
           groupId = '',
@@ -201,8 +207,9 @@ const store = new Vuex.Store({
           // CRM
           // brandInfo = {},
           // curMarket = {}
+          unionId = ''
         } = options;
-        console.log({lbsId});
+        console.log({ lbsId });
 
         /* {
          buildingId: mallId,
@@ -212,8 +219,8 @@ const store = new Vuex.Store({
          * */
         // const resp = await parkingLots();
         // console.log(171171, resp);
-        commit('SET_SOURCE',source);
-        commit('SET_APPID',appId);
+        commit('SET_SOURCE', source);
+        commit('SET_APPID', appId);
 
         // let { groupId, mallId } =
         if (!/CRM|PUDONG|JINGAN/.test(source)) {
@@ -221,25 +228,28 @@ const store = new Vuex.Store({
           groupId = groupIdAndMallId.groupId;
           mallId = groupIdAndMallId.mallId;
           // console.log('lbsId', groupIdAndMallId)
-          commit('SET_LBS_ID',mallId);
+          commit('SET_LBS_ID', mallId);
         } else {
-          commit('SET_LBS_ID',lbsId);
+          commit('SET_LBS_ID', lbsId);
+        }
+        if (unionId) {
+          commit('SET_SOURCE_ID', unionId);
         }
-        
-        commit('SET_CUST_TYPE_ID',custTypeId);
+
+        commit('SET_CUST_TYPE_ID', custTypeId);
         // 如果为 false,则表示当前用户是从小程序端未登录进入的
-        if ( !isLogin ) {
+        if (!isLogin) {
           // 如果用户未登录,清理原来的数据, 小程序入口不需要处理
         }
         const href = window.location.href;
-        commit('SET_GROUP_ID',groupId);
-        commit('SET_MALL_ID',mallId);
-        commit('SET_BRAND_ID',brandId);
+        commit('SET_GROUP_ID', groupId);
+        commit('SET_MALL_ID', mallId);
+        commit('SET_BRAND_ID', brandId);
         // console.log('用户扫码进入的', unlicensedInfo, unlicensedInfo?.type);
         // 如果是无牌车
-        if ( unlicensedInfo?.type ) {
+        if (unlicensedInfo?.type) {
           // console.log('用户扫码进入的', unlicensedInfo);
-          commit('SET_UNLICENSED_INFO',unlicensedInfo)
+          commit('SET_UNLICENSED_INFO', unlicensedInfo)
           // commit('SET_ENDLESS_LOOP', true)
         }
         /*if (/dev-|8080|qa-/.test(href)) {
@@ -251,44 +261,66 @@ const store = new Vuex.Store({
          mallId = '8a888aed7d0295e5017d029ff1f40000';
          commit('SET_MALL_ID', '8a888aed7d0295e5017d029ff1f40000');
          }*/
-        commit('SET_OPENID',openid || uni.getStorageSync('openid'));
-        if ( isLogin ) {
-          commit('SET_ACCESS_TOKEN',accessToken);
-          commit('SET_KIP_USER_ID',kipUserId);
-          commit('SET_MOBILE',mobile);
+        commit('SET_OPENID', openid || uni.getStorageSync('openid'));
+        if (isLogin) {
+          commit('SET_ACCESS_TOKEN', accessToken);
+          commit('SET_KIP_USER_ID', kipUserId);
+          commit('SET_MOBILE', mobile);
           dispatch('getUserDetail');
           const memberRes = await getVIPIntegral()
+          console.log(271, memberRes);
+          dispatch('updateUnionIdActive', {
+            unionId: unionId,
+            openId: openid || uni.getStorageSync('openid'),
+            vipCode: memberRes.vipcode
+          })
           // const memberRes = await crmQueryMemberInfo({
           //   groupId,
           //   kipUserId,
           //   mallId,
           // });
           // 请求 projectId
-          window.toWXSendMsg({
+          /* window.toWXSendMsg({
             type: 'getProjectId',
             options: {},
-          });
-          const marketListRes = await kipAllCities();
+          }); */
+          // const marketListRes = await kipAllCities();
           if ( memberRes) {
-            dispatch('getUserDetail');
+            // dispatch('getUserDetail');
             commit('SET_MEMBER',memberRes);
           }
           // console.log(929292, marketListRes);
+        } else {
+          dispatch('updateUnionIdActive', {
+            unionId: unionId,
+            openId: openid || uni.getStorageSync('openid')
+          })
         }
         callback && callback();
-      } catch ( e ) {
+      } catch (e) {
         console.log(e);
         callback && callback();
       }
     },
-    async getUserDetail( {commit} ) {
+    async getUserDetail({ commit }) {
       const res = await kipGetUserDetail();
-      commit('SET_USER_INFO',res.data);
+      console.log(296, res);
+      commit('SET_USER_INFO', res.data);
       // console.log('user_info', res);
     },
-    clearUnlicensed( {state,commit} ) {
-      commit('SET_UNLICENSED_INFO','');
-      commit('SET_ENDLESS_LOOP','');
+    // updateUnionId
+    async updateUnionIdActive({ commit }, { openId, unionId, vipCode = null }) {
+      try {
+        await updateUnionId({
+          openId, unionId, vipCode
+        })
+      } catch (err) {
+        console.log(318, err);
+      }
+    },
+    clearUnlicensed({ state, commit }) {
+      commit('SET_UNLICENSED_INFO', '');
+      commit('SET_ENDLESS_LOOP', '');
     }
   },
   modules: {