Bladeren bron

Merge branch 'master' of http://git.izouma.com/xiongzhu/9th

xuqiang 4 jaren geleden
bovenliggende
commit
256c3955ad

+ 1 - 0
src/main/java/com/izouma/nineth/security/WebSecurityConfig.java

@@ -89,6 +89,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                 .antMatchers("/sysConfig/get/*").permitAll()
                 .antMatchers("/sysConfig/get/*").permitAll()
                 .antMatchers("/sysConfig/getDecimal/*").permitAll()
                 .antMatchers("/sysConfig/getDecimal/*").permitAll()
                 .antMatchers("/user/code2openId").permitAll()
                 .antMatchers("/user/code2openId").permitAll()
+                .antMatchers("/blindBoxItem/all").permitAll()
                 // all other requests need to be authenticated
                 // all other requests need to be authenticated
                 .anyRequest().authenticated().and()
                 .anyRequest().authenticated().and()
                 // make sure we use stateless session; session won't be used to
                 // make sure we use stateless session; session won't be used to

+ 1 - 1
src/main/java/com/izouma/nineth/web/OrderNotifyController.java

@@ -75,7 +75,7 @@ public class OrderNotifyController {
         return "error";
         return "error";
     }
     }
 
 
-    @PostMapping(value = "/payNotify", produces = "application/xml")
+    @PostMapping(value = "/order/weixin", produces = "application/xml")
     @ResponseBody
     @ResponseBody
     public String wxNotify(@RequestBody String xmlData) throws WxPayException {
     public String wxNotify(@RequestBody String xmlData) throws WxPayException {
         log.info("微信支付回调: {}", xmlData);
         log.info("微信支付回调: {}", xmlData);

+ 1 - 0
src/main/nine-space/package.json

@@ -10,6 +10,7 @@
   "dependencies": {
   "dependencies": {
     "@better-scroll/core": "^2.4.2",
     "@better-scroll/core": "^2.4.2",
     "@chenfengyuan/vue-qrcode": "^2.0.0-rc.1",
     "@chenfengyuan/vue-qrcode": "^2.0.0-rc.1",
+    "@vant/area-data": "^1.1.3",
     "axios": "^0.21.4",
     "axios": "^0.21.4",
     "better-scroll": "^2.4.2",
     "better-scroll": "^2.4.2",
     "clipboard": "^2.0.8",
     "clipboard": "^2.0.8",

+ 4 - 0
src/main/nine-space/src/main.js

@@ -36,4 +36,8 @@ if (query.code) {
     http.http.post('/user/code2openId', { code: query.code }).then(res => {
     http.http.post('/user/code2openId', { code: query.code }).then(res => {
         localStorage.setItem('openId', res);
         localStorage.setItem('openId', res);
     });
     });
+} else {
+    if (/micromessenger/i.test(navigator.userAgent) && !/localhost|(192\.168)/i.test(location.host)) {
+        document.location.replace('https://nft.9space.vip/wx/redirect?redirectUrl=' + location.href);
+    }
 }
 }

+ 35 - 15
src/main/nine-space/src/router/index.js

@@ -6,20 +6,22 @@ import http from '../plugins/http';
 
 
 console.log(http);
 console.log(http);
 function jsapiSign() {
 function jsapiSign() {
-    http.http
-        .get('/wx/jsapiSign', { url: location.origin + location.pathname })
-        .then(res => {
-            res.debug = false;
-            res.jsApiList = [
-                'chooseWXPay',
-                'updateAppMessageShareData',
-                'updateTimelineShareData',
-                'hideAllNonBaseMenuItem',
-                'scanQRCode'
-            ];
-            wx.config(res);
-        })
-        .catch(e => {});
+    if (/micromessenger/i.test(navigator.userAgent)) {
+        http.http
+            .get('/wx/jsapiSign', { url: location.origin + location.pathname })
+            .then(res => {
+                res.debug = false;
+                res.jsApiList = [
+                    'chooseWXPay',
+                    'updateAppMessageShareData',
+                    'updateTimelineShareData',
+                    'hideAllNonBaseMenuItem',
+                    'scanQRCode'
+                ];
+                wx.config(res);
+            })
+            .catch(e => {});
+    }
 }
 }
 jsapiSign();
 jsapiSign();
 const routes = [
 const routes = [
@@ -276,6 +278,22 @@ const routes = [
             title: '第九空间'
             title: '第九空间'
         }
         }
     },
     },
+    {
+        path: '/mineAddress',
+        name: 'mineAddress',
+        component: () => import('../views/user/Address.vue'),
+        meta: {
+            title: '第九空间'
+        }
+    },
+    {
+        path: '/mineAddressEdit',
+        name: 'mineAddressEdit',
+        component: () => import('../views/user/AddressEdit.vue'),
+        meta: {
+            title: '第九空间'
+        }
+    },
     {
     {
         path: '/mineWallet',
         path: '/mineWallet',
         name: 'mineWallet',
         name: 'mineWallet',
@@ -346,5 +364,7 @@ router.beforeEach((to, from, next) => {
         next();
         next();
     }
     }
 });
 });
-
+router.afterEach((to, from) => {
+    jsapiSign();
+});
 export default router;
 export default router;

+ 1 - 0
src/main/nine-space/src/styles/app.less

@@ -33,6 +33,7 @@
     --van-image-placeholder-background-color: @bg2;
     --van-image-placeholder-background-color: @bg2;
     --van-search-background-color: #181818;
     --van-search-background-color: #181818;
     --van-search-content-background-color: #0f0f0f;
     --van-search-content-background-color: #0f0f0f;
+    // --van-picker-background-color: @bg;
 }
 }
 
 
 [contenteditable='true'],
 [contenteditable='true'],

+ 13 - 5
src/main/nine-space/src/views/Submit.vue

@@ -62,6 +62,7 @@
 const path = require('path');
 const path = require('path');
 import { add } from 'mathjs';
 import { add } from 'mathjs';
 import product from '../mixins/product';
 import product from '../mixins/product';
+let inWeixin = /micromessenger/i.test(navigator.userAgent);
 export default {
 export default {
     name: 'Submit',
     name: 'Submit',
     mixins: [product],
     mixins: [product],
@@ -69,7 +70,7 @@ export default {
         return {
         return {
             info: {},
             info: {},
             message: '',
             message: '',
-            payType: 'ALIPAY',
+            payType: inWeixin ? 'WEIXIN' : 'ALIPAY',
             payInfos: [
             payInfos: [
                 {
                 {
                     icon: require('../assets/svgs/zhifubao.svg'),
                     icon: require('../assets/svgs/zhifubao.svg'),
@@ -89,7 +90,8 @@ export default {
             icons: [require('../assets/svgs/icon_gouxuan_huise.svg'), require('../assets/svgs/icon_gouxuan_pre.svg')],
             icons: [require('../assets/svgs/icon_gouxuan_huise.svg'), require('../assets/svgs/icon_gouxuan_pre.svg')],
             bottom: null,
             bottom: null,
             orderId: 0,
             orderId: 0,
-            gas: 1
+            gas: 1,
+            inWeixin
         };
         };
     },
     },
     computed: {
     computed: {
@@ -160,21 +162,27 @@ export default {
                         if (this.payType === 'ALIPAY') {
                         if (this.payType === 'ALIPAY') {
                             document.location.replace(path.resolve(this.$baseUrl, 'payOrder/alipay?id=' + res.id));
                             document.location.replace(path.resolve(this.$baseUrl, 'payOrder/alipay?id=' + res.id));
                         } else if (this.payType === 'WEIXIN') {
                         } else if (this.payType === 'WEIXIN') {
-                            if (/MicroMessenger/i.test(navigator.userAgent)) {
+                            if (this.inWeixin) {
                                 this.$toast.loading('加载中');
                                 this.$toast.loading('加载中');
                                 this.$http
                                 this.$http
                                     .post('/payOrder/weixin', { id: res.id, openId: localStorage.getItem('openId') })
                                     .post('/payOrder/weixin', { id: res.id, openId: localStorage.getItem('openId') })
                                     .then(res => {
                                     .then(res => {
+                                        console.log({
+                                            ...res,
+                                            package: res.package || res.packageValue
+                                        });
                                         wx.chooseWXPay({
                                         wx.chooseWXPay({
                                             ...res,
                                             ...res,
                                             package: res.package || res.packageValue,
                                             package: res.package || res.packageValue,
-                                            success: function (res) {
+                                            timestamp: res.timeStamp,
+                                            success(res) {
                                                 this.$toast.success('支付成功');
                                                 this.$toast.success('支付成功');
                                                 setTimeout(() => {
                                                 setTimeout(() => {
                                                     this.$router.replace('/orders');
                                                     this.$router.replace('/orders');
                                                 }, 1000);
                                                 }, 1000);
                                             },
                                             },
-                                            fail() {
+                                            fail(e) {
+                                                console.log(e);
                                                 this.$toast('支付失败,请稍后再试');
                                                 this.$toast('支付失败,请稍后再试');
                                             }
                                             }
                                         });
                                         });

+ 73 - 0
src/main/nine-space/src/views/user/Address.vue

@@ -0,0 +1,73 @@
+<template>
+    <div class="address">
+        <div class="title">我的地址</div>
+        <van-address-list :switchable="false" :list="list" default-tag-text="默认" @add="onAdd" @edit="onEdit" />
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            list: [
+                {
+                    id: '1',
+                    name: '张三',
+                    tel: '13000000000',
+                    address: '浙江省杭州市西湖区文三路 138 号东方通信大厦 7 楼 501 室',
+                    isDefault: true
+                },
+                {
+                    id: '2',
+                    name: '李四',
+                    tel: '1310000000',
+                    address: '浙江省杭州市拱墅区莫干山路 50 号'
+                }
+            ]
+        };
+    },
+    methods: {
+        onAdd() {
+            this.$router.push('/mineAddressEdit');
+        },
+        onEdit() {}
+    }
+};
+</script>
+<style lang="less" scoped>
+.address {
+    padding-bottom: 100px;
+    box-sizing: border-box;
+    background-color: @bg3;
+}
+
+.title {
+    font-size: 20px;
+    font-weight: bold;
+    color: #ffffff;
+    line-height: 30px;
+    padding: 10px 10px;
+    background-color: @bg;
+}
+
+/deep/.van-address-item {
+    background-color: @bg;
+    .van-tag--danger {
+        background-color: transparent;
+        color: @prim;
+        border: 1px solid @prim;
+    }
+}
+
+/deep/.van-address-list__bottom {
+    background-color: @bg;
+    padding-left: 48px;
+    padding-right: 48px;
+
+    .van-button--danger {
+        background: linear-gradient(135deg, #fdfb60 0%, #ff8f3e 100%);
+        border-width: 0;
+        color: @bg;
+        font-weight: bold;
+    }
+}
+</style>

+ 95 - 0
src/main/nine-space/src/views/user/AddressEdit.vue

@@ -0,0 +1,95 @@
+<template>
+    <div class="address">
+        <van-address-edit
+            :area-list="areaList"
+            show-delete
+            show-set-default
+            show-search-result
+            :tel-validator="val => phonePattern.test(val)"
+            :search-result="searchResult"
+            :area-columns-placeholder="['请选择', '请选择', '请选择']"
+            @save="onSave"
+            @delete="onDelete"
+            @change-detail="onChangeDetail"
+        />
+    </div>
+</template>
+
+<script>
+import { areaList } from '@vant/area-data';
+import phone from '../../mixins/phone';
+export default {
+    mixins: [phone],
+    data() {
+        return {
+            searchResult: [],
+            areaList
+        };
+    },
+    methods: {
+        onSave(content) {
+            this.$toast.loading({
+                message: '加载中...',
+                forbidClick: true
+            });
+            let form = {
+                userId: this.$store.state.userInfo.id,
+                provinceName: content.province,
+                cityName: content.city,
+                districtName: content.county,
+                districtId: content.areaCode,
+                def: content.isDefault,
+                name: content.name,
+                phone: content.tel,
+                address: content.addressDetail
+            };
+            this.$http.post('/userAddress/save', form, { body: 'json' }).then(() => {
+                this.$toast.success('保存成功');
+                setTimeout(() => {
+                    this.$router.go(-1);
+                }, 1500);
+            });
+        },
+        onDelete() {},
+        onChangeDetail(val) {
+            console.log(val);
+        }
+    }
+};
+</script>
+<style lang="less" scoped>
+.address {
+    background-color: @bg3;
+}
+/deep/.van-cell {
+    background-color: @bg;
+
+    .van-switch {
+        background-color: #000;
+        .van-switch__node {
+            background-color: #fff;
+        }
+    }
+
+    .van-switch--on {
+        background-color: @prim;
+        .van-switch__node {
+            background-color: @bg;
+        }
+    }
+}
+/deep/.van-address-edit__buttons {
+    padding: 50px 32px;
+    .van-button--danger {
+        background: linear-gradient(135deg, #fdfb60 0%, #ff8f3e 100%);
+        border-width: 0;
+        color: #19191b;
+        font-weight: bold;
+    }
+    .van-button--default {
+        background-color: transparent;
+        border-color: #fff;
+        font-weight: bold;
+    }
+}
+</style>

+ 5 - 0
src/main/nine-space/yarn.lock

@@ -1256,6 +1256,11 @@
     anymatch "^3.0.0"
     anymatch "^3.0.0"
     source-map "^0.6.0"
     source-map "^0.6.0"
 
 
+"@vant/area-data@^1.1.3":
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/@vant/area-data/-/area-data-1.1.3.tgz#aa1f146787c19c6b571428596cda76945571beac"
+  integrity sha512-RLPVLVG7tINIASaKfLXZGw8Z83S9DDuln0CPDwAASSNmUb7busFWPVZKscP79znTErkog7kdfAQMtN9+oz7PHQ==
+
 "@vant/icons@^1.7.1":
 "@vant/icons@^1.7.1":
   version "1.7.1"
   version "1.7.1"
   resolved "https://registry.yarnpkg.com/@vant/icons/-/icons-1.7.1.tgz#49ae420302b5581e54e6894891e5a05bc76e9f87"
   resolved "https://registry.yarnpkg.com/@vant/icons/-/icons-1.7.1.tgz#49ae420302b5581e54e6894891e5a05bc76e9f87"