diff --git a/doc/证书相关/1605949156_20210122_cert/apiclient_cert.p12 b/doc/证书相关/1605949156_20210122_cert/apiclient_cert.p12 new file mode 100644 index 000000000..8856524a3 Binary files /dev/null and b/doc/证书相关/1605949156_20210122_cert/apiclient_cert.p12 differ diff --git a/doc/证书相关/1605949156_20210122_cert/apiclient_cert.pem b/doc/证书相关/1605949156_20210122_cert/apiclient_cert.pem new file mode 100644 index 000000000..f00b58010 --- /dev/null +++ b/doc/证书相关/1605949156_20210122_cert/apiclient_cert.pem @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIID7DCCAtSgAwIBAgIUbDT71zU75w5Z4yw5CWCfJLSdY4swDQYJKoZIhvcNAQEL +BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT +FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg +Q0EwHhcNMjEwMTIyMDkyMzA4WhcNMjYwMTIxMDkyMzA4WjB+MRMwEQYDVQQDDAox +NjA1OTQ5MTU2MRswGQYDVQQKDBLlvq7kv6HllYbmiLfns7vnu58xKjAoBgNVBAsM +IeWugeWkj+mcsuWNjua1k+mFkuS4muaciemZkOWFrOWPuDELMAkGA1UEBgwCQ04x +ETAPBgNVBAcMCFNoZW5aaGVuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAoGdajHnrQQqVIr0fxt1pcP/J/SAAf5JYdQS2bkgZCsn6mzTX52NTiz5TKPDs +4Nt6BAD6ObLGMMDBiIzqI9olf6wBqpkjVSfofDdv/tQTYohVrSyNJiSlhfohqYVj +9X0pPkGKaNyqrxXnUHdW66VqDh1njQL8HyrIQXF0rKWJwz5YfMxNSrduY1YnBnIP +rU7Od6w/CRHnO51aHNldwaZ0MT6QJAkHy9VkW6cIIxRzZGOJFR54PS9xm39rrWZn +tAU8F7hg8gufZCDoX0g7X+5pXep7bIMgU78TGVLZr0/IUQaVyMHLF8Gs2NrjV/P1 +NtOzclnM++13IxCXj9I4O5MzzQIDAQABo4GBMH8wCQYDVR0TBAIwADALBgNVHQ8E +BAMCBPAwZQYDVR0fBF4wXDBaoFigVoZUaHR0cDovL2V2Y2EuaXRydXMuY29tLmNu +L3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJDMDRCMDZBRDM5NzU0OTg0 +NkMwMUMzRThFQkQyMA0GCSqGSIb3DQEBCwUAA4IBAQBy9i1tNQ2mIbY7w+m2OC6U +cygVVozbh0+q2ej97JQ9WbE4Fl+0OVVedzG7GjEadRP3ji/wu+lVIPxjw2rnpS2a +riDGeS0oGC+8Sjz3W+aOKToNcb2j6W9KJU1kttvf+98U9Cf8vR8c2/ow/8kdaGJE +NRGjIlR2kwbQZFSv/mBypwqDIwNCT2Z73tx2QMnkLqFRqzO/lqnVGfIraaL/+SCd +rnDOTCtL9SnzQiHMQwx/kWtI641y4EV4UAnJKawbR8L90ely751sNuOMLWs+Xzgg +qIsvvfVshkueM9ZyseksRO8GVFSF4njk1iwiSsfGTQpj1PvWFT9pOHAODSTtM0VL +-----END CERTIFICATE----- diff --git a/doc/证书相关/1605949156_20210122_cert/apiclient_key.pem b/doc/证书相关/1605949156_20210122_cert/apiclient_key.pem new file mode 100644 index 000000000..ed8463770 --- /dev/null +++ b/doc/证书相关/1605949156_20210122_cert/apiclient_key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCgZ1qMeetBCpUi +vR/G3Wlw/8n9IAB/klh1BLZuSBkKyfqbNNfnY1OLPlMo8Ozg23oEAPo5ssYwwMGI +jOoj2iV/rAGqmSNVJ+h8N2/+1BNiiFWtLI0mJKWF+iGphWP1fSk+QYpo3KqvFedQ +d1brpWoOHWeNAvwfKshBcXSspYnDPlh8zE1Kt25jVicGcg+tTs53rD8JEec7nVoc +2V3BpnQxPpAkCQfL1WRbpwgjFHNkY4kVHng9L3Gbf2utZme0BTwXuGDyC59kIOhf +SDtf7mld6ntsgyBTvxMZUtmvT8hRBpXIwcsXwazY2uNX8/U207NyWcz77XcjEJeP +0jg7kzPNAgMBAAECggEALEI4Tth5HBoyakJq2TFQnbhGYIyK9qhHtgoV2DoWhs6S +Um7zP8o9TAdnZL2NbsHAWgh3AqKcYulcvTO8iyXvANpSH2Nfx2hakqOtSE/2BVL+ +6OiJDcRA08Xfsem3Wg4t6hqleSeiBOtzRtWW6zBaIgjlAJiZPnRMixomClkmuPMz +9oVy4JPy1vunYRfswwEcqa50NJkxqTBHZttrr2+9QKmnShc/kcsb7Okof7hUpJ70 +p0TOiJC0FdUnqhozI4GZcYXgMXW9CNDOywBl7Y3r/7nEcW4dJgZSG6+juUs4ntF7 +xpHL8Zk5XxxWgI6zc5mHrd5H/0bSJugQpseiKrw71QKBgQDVffyMYfoHO49A6Zur +dxZkJBhpqYeMeMtXuFm23FdkOo4DhM4j2J2TkxUEdhZEGIUeh42+RBLcmND3n6wE +zCfcv/VbiUxP3uimjR1MS5aYXgMFjrVtbfihP5mJ4zq5ipdVjKtGAA8pZsCREEUa +ar9Guzn5//XUsqqCWgOlnYp+0wKBgQDAV18dgmM7QXNeJydQiN7SHSuyVYL9P734 +Crti9WY2ntx+Pf4XVtSxT/O4Q3Dvj/9phC/acaBYfwEb0uwLpYAtkLXuEuLsKLwT +9IYeqWATg5EoRPivbVl9syK378XO8OAohWYPfDkwWpedpy7RtESgB1LuwJTen8PL +PgrPr2Ye3wKBgFAsHsINLRq4OCS1VZs/fm4ey/gqDNgoqJwJg89S0ZK3FoulvM/j +UdGQg20Id3YdCyia2RThdX/X92l2Ud//VtzkTVyRo9G+sPmStrTnEeeoLlRQ8jrk ++GB9hMguR+hTbl9XEx6XeRogFyKizICOI8SJHM2QXJ4Cdlu7N/Fixxa3AoGAFhNx +JU/r18dBWJMh3gp3mKIke8l4yVxhj3Cb5VXJL4e4Qv0WhtM+gkNs87853SUn6ZJ0 +c5wLDV02YV0qHoQWXCR53SNpzDU4sQmlwyspjdPR+08/Q9NHLDg9SeNJTuEyuTPm +bOyTG8uqDzw7EXKhVcTBbgnIjGzF6jPqxb+Z9v0CgYEAmsek53w4UJyR9TsKI//c +pEVokUCt/Ntm1CQkSbdYPx1JZnhMNYBkhfsB8yNPMZ+kh73qbk/Wz4iQzoO4THU2 +UI122PNGSkzIplqGcTF9LmJXzW5FRuRZ18Aa2gDcshpOrevk2HIwp/WWa5DqENaX +fL8BpgJsNOYfriXUYJciBts= +-----END PRIVATE KEY----- diff --git a/doc/证书相关/1605949156_20210122_cert/证书使用说明.txt b/doc/证书相关/1605949156_20210122_cert/证书使用说明.txt new file mode 100644 index 000000000..041befb41 --- /dev/null +++ b/doc/证书相关/1605949156_20210122_cert/证书使用说明.txt @@ -0,0 +1,18 @@ +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户号(如:1900006031) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/AppOrderController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/AppOrderController.java index 3c696c301..0c0f10ad8 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/AppOrderController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/AppOrderController.java @@ -80,9 +80,6 @@ public class AppOrderController extends BaseController { public TableDataInfo list(AppOrder appOrder) { startPage(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(appOrder); - if (appOrder.getDeptId() != null) { - lqw.eq(AppOrder::getDeptId, appOrder.getDeptId()); - } if (appOrder.getUserId() != null) { lqw.eq(AppOrder::getUserId, appOrder.getUserId()); } @@ -175,7 +172,7 @@ public class AppOrderController extends BaseController { public AjaxResult add(@RequestBody AppOrder appOrder, HttpServletRequest req) { Long userId = getLoginUser().getUser().getUserId(); String username = getUsername(); - Long deptId = getDeptId(); + String id = System.currentTimeMillis() + RandomUtil.randomNumbers(6); @@ -191,7 +188,6 @@ public class AppOrderController extends BaseController { appOrder.setPostAddress(address.getAddress()); appOrder.setId(id); - appOrder.setDeptId(getDeptId()); appOrder.setUserId(userId); // 计算总金额 @@ -201,7 +197,8 @@ public class AppOrderController extends BaseController { GoodsMain goods = goodsMainService.getById(detail.getGoodsId()); detail.setUserId(userId); detail.setOrderId(id); - detail.setDeptId(deptId); + // 使用产品对应酒庄id + detail.setDeptId(goods.getDeptId()); detail.setStatus(0); detailService.save(detail); totalFee += (goods.getGoodsPrice().multiply(new BigDecimal(100)).intValue() * detail.getGoodsCount()); diff --git a/hope-winery/src/main/java/com/ruoyi/winery/domain/AppOrder.java b/hope-winery/src/main/java/com/ruoyi/winery/domain/AppOrder.java index 92a10dde5..51de19276 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/domain/AppOrder.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/domain/AppOrder.java @@ -39,10 +39,6 @@ private static final long serialVersionUID=1L; @TableId(value = "id", type = IdType.INPUT) private String id; - /** 部门ID */ - @Excel(name = "部门ID") - private Long deptId; - /** 用户ID */ @Excel(name = "用户ID") private Long userId; diff --git a/mini-app/src/apis/mallApis.js b/mini-app/src/apis/mallApis.js index ab8dcd0ca..b02097281 100644 --- a/mini-app/src/apis/mallApis.js +++ b/mini-app/src/apis/mallApis.js @@ -24,18 +24,18 @@ class MallApis { }) } - getActivityList() { - return request.get({ - url: baseUrl + 'winery/activity/open/list' - }) - } - getHotSwitch() { return request.get({ url: baseUrl + 'winery/activity/open/hotSwitch' }) } + getActivityList() { + return request.get({ + url: baseUrl + 'winery/activity/open/list' + }) + } + getNotice() { return request.get({ url: baseUrl + 'winery/activity/open/notice' diff --git a/mini-app/src/components/mall/tab/mall-home.wpy b/mini-app/src/components/mall/tab/mall-home.wpy index 5d86f7c6c..50625d28d 100644 --- a/mini-app/src/components/mall/tab/mall-home.wpy +++ b/mini-app/src/components/mall/tab/mall-home.wpy @@ -49,7 +49,6 @@ font-size: 12px; color: #999; display: flex; - } .grid-item { diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 63f3df9b1..da6722a9f 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -210,9 +210,12 @@ wxmini: # secret: 94ee42c0899a6ceccf353e1e729c50d4 # 宁夏通 secret: dc55bc1729090bdff9b63e1a5f0d03b2 # 紫色名片 - mchId: 1486984962 - mchKey: 82aZ9Tb6eu5W2HdXKQWZU2SztU8w8nJ8 - keyPath: "classpath:/cert/apiclient_cert1486984962.p12" # p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头) +# mchId: 1486984962 + mchId: 1605949156 +# mchKey: 82aZ9Tb6eu5W2HdXKQWZU2SztU8w8nJ8 + mchKey: 2e7fe280d91ded48798365961db89951 +# keyPath: "classpath:/cert/apiclient_cert1486984962.p12" # p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头) + keyPath: "classpath:/cert/apiclient_cert1605949156.p12" # p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头) subAppId: #服务商模式下的子商户公众账号ID subMchId: #服务商模式下的子商户号 diff --git a/ruoyi-admin/src/main/resources/cert/apiclient_cert1605949156.p12 b/ruoyi-admin/src/main/resources/cert/apiclient_cert1605949156.p12 new file mode 100644 index 000000000..8856524a3 Binary files /dev/null and b/ruoyi-admin/src/main/resources/cert/apiclient_cert1605949156.p12 differ diff --git a/ruoyi-ui/src/mixin/common.js b/ruoyi-ui/src/mixin/common.js index 17e2524cc..7cf3a276b 100644 --- a/ruoyi-ui/src/mixin/common.js +++ b/ruoyi-ui/src/mixin/common.js @@ -1,5 +1,6 @@ import Vue from 'vue' import {imageBaseUrl} from "@/settings"; +import {listDept} from "@/api/system/dept"; Vue.filter('getImageForKey', val => { @@ -11,4 +12,31 @@ Vue.filter('getImage200', val => { }) +// 定义一个混入对象 +export const CommonMixin = { + data() { + return { + + deptOptions: [] + } + }, + created: function () { + listDept().then(r => { + this.deptOptions = r.data.filter(x => x.parentId === 300) + }) + }, + methods: { + + // 商户类型字典翻译 + deptFormat(row, column) { + + if (this.deptOptions.length < 1) { + return '' + } + const dept = this.deptOptions.filter(x => x.deptId === row.deptId)[0] + return dept.deptName + } + + } +} diff --git a/ruoyi-ui/src/views/goods/goods_main/index.vue b/ruoyi-ui/src/views/goods/goods_main/index.vue index dcdf1fcf6..e8c802c4b 100644 --- a/ruoyi-ui/src/views/goods/goods_main/index.vue +++ b/ruoyi-ui/src/views/goods/goods_main/index.vue @@ -254,13 +254,14 @@ import { import UploadImage from '@/components/UploadImage/index' import UploadImageMultiple from '@/components/UploadImageMultiple/index' -import CommonMixin from "@/mixin/common"; + import Editor from '@/components/Editor/index'; import {listSpec} from "@/api/goods/goods_spec"; import {getDept, listDept} from "@/api/system/dept"; import {selectDictLabel} from "@/utils/ruoyi"; import * as settings from "@/settings"; import {imageBaseUrl} from "@/settings"; +import {CommonMixin} from "@/mixin/common"; export default { name: "GoodsMain", @@ -341,11 +342,7 @@ export default { this.goodsTypeOptions = response.data; }); - listDept().then(r => { - this.deptOptions = r.data.filter(x => x.parentId === 300) - - }) }, methods: { inputGoodsFaceImg(fileName) { @@ -364,16 +361,6 @@ export default { goodsTypeFormat(row, column) { return this.selectDictLabel(this.goodsTypeOptions, row.goodsType); }, - - // 商户类型字典翻译 - deptFormat(row, column) { - - if (this.deptOptions.length < 1) { - return '' - } - const dept = this.deptOptions.filter(x => x.deptId === row.deptId)[0] - return dept.deptName - }, /** 查询商品信息列表 */ getList() { this.loading = true; diff --git a/ruoyi-ui/src/views/winery/detail/index.vue b/ruoyi-ui/src/views/winery/detail/index.vue index f202e793b..67aac59be 100644 --- a/ruoyi-ui/src/views/winery/detail/index.vue +++ b/ruoyi-ui/src/views/winery/detail/index.vue @@ -1,15 +1,18 @@ @@ -225,10 +238,12 @@