diff --git a/application/api/controller/Goods.php b/application/api/controller/Goods.php index 050f4c784db97a011353d4a9c2c0dc98dca72f6c..58ee9f6b3ea6d15a4f381860ef6df6cc4f135e38 100755 --- a/application/api/controller/Goods.php +++ b/application/api/controller/Goods.php @@ -169,7 +169,10 @@ class Goods extends Common $ret = CallPluginsServiceMethod('coupon', 'CouponService', 'CouponList', $coupon_params); // 排除商品不支持的活动 - $ret['data'] = CallPluginsServiceMethod('coupon', 'BaseService', 'CouponListGoodsExclude', ['data'=>$ret['data'], 'goods_id'=>$goods_id]); + if(!empty($ret['data'])) + { + $ret['data'] = CallPluginsServiceMethod('coupon', 'BaseService', 'CouponListGoodsExclude', ['data'=>$ret['data'], 'goods_id'=>$goods_id]); + } // 返回数据 return [ diff --git a/application/common.php b/application/common.php index ab65d23674ac0acb54cc47b07fdfac21a2033db2..b6cddb3c2113cb3073836e24c8a97ee6d11ef939 100755 --- a/application/common.php +++ b/application/common.php @@ -88,6 +88,12 @@ function PathToParams($key = null, $default = null, $path = '') */ function CallPluginsData($plugins, $attachment_field = [], $service_name = '', $attachment_property = 'base_config_attachment_field') { + // 插件是否启用 + if(app\service\PluginsService::PluginsStatus($plugins) != 1) + { + return DataReturn('插件状态异常['.$plugins.']', -1); + } + // 未指定附件字段则自动去获取 $attachment = []; if(empty($attachment_field) && !empty($attachment_property)) @@ -128,6 +134,13 @@ function CallPluginsServiceMethod($plugins, $service, $method, $params = null) { if(method_exists($plugins_class, $method)) { + // 插件是否启用 + if(app\service\PluginsService::PluginsStatus($plugins) != 1) + { + return DataReturn('插件状态异常['.$plugins.']', -1); + } + + // 调用方法返回数据 return $plugins_class::$method($params); } else { return DataReturn('类方法未定义['.$plugins.'-'.$service.'-'.$method.']', -1); diff --git a/application/service/PluginsService.php b/application/service/PluginsService.php index 924dc3f2b4d4492b708325bac399aab7a311c2da..3a83967f524422e0a5d24d1d29df1dee1896eaf9 100755 --- a/application/service/PluginsService.php +++ b/application/service/PluginsService.php @@ -46,10 +46,10 @@ class PluginsService if(empty($data)) { // 获取数据 - $data = Db::name('Plugins')->where(['plugins'=>$plugins])->value('data'); - if(!empty($data)) + $ret = self::PluginsField($plugins, 'data'); + if(!empty($ret['data'])) { - $data = json_decode($data, true); + $data = json_decode($ret['data'], true); // 是否有自定义附件需要处理 if(!empty($attachment_field) && is_array($attachment_field)) @@ -166,5 +166,20 @@ class PluginsService $data = Db::name('Plugins')->where(['plugins'=>$plugins])->value($field); return DataReturn('操作成功', 0, $data); } + + /** + * 应用状态 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2019-10-17 + * @desc description + * @param [string] $plugins [应用标记] + */ + public static function PluginsStatus($plugins) + { + $ret = self::PluginsField($plugins, 'is_enable'); + return $ret['data']; + } } ?> \ No newline at end of file diff --git a/public/appmini/old/weixin/pages/coupon/coupon.js b/public/appmini/old/weixin/pages/coupon/coupon.js index b5f1ccb53af55c392351415025bcf045c7c28453..8c52f184f23912c9a214e68a847c5508f15deca1 100644 --- a/public/appmini/old/weixin/pages/coupon/coupon.js +++ b/public/appmini/old/weixin/pages/coupon/coupon.js @@ -75,7 +75,7 @@ Page({ }); }, - // 领取事件 + // 优惠劵领取事件 receive_event(e) { var user = app.get_user_cache_info(this, "receive_event"); // 用户未绑定用户则转到登录页面 diff --git a/public/appmini/old/weixin/pages/coupon/coupon.wxml b/public/appmini/old/weixin/pages/coupon/coupon.wxml index d4867ac6ac08e8b65c40f22cb6817027db5a5705..feac3c959738b31b4bb008a00f1157737de4e39b 100644 --- a/public/appmini/old/weixin/pages/coupon/coupon.wxml +++ b/public/appmini/old/weixin/pages/coupon/coupon.wxml @@ -8,12 +8,12 @@ {{item.discount_value}} - {{item.type == 0 ? '元' : '折'}} + {{item.type_unit}} {{item.desc}} {{item.use_limit_type_name}} - + {{item.is_operable_name}} diff --git a/public/appmini/old/weixin/pages/goods-detail/goods-detail.js b/public/appmini/old/weixin/pages/goods-detail/goods-detail.js index 858836214fa2c84760d02d9a1e60d542c13fc20c..76595254dbb803460fa157b5f66d21215ae027c6 100755 --- a/public/appmini/old/weixin/pages/goods-detail/goods-detail.js +++ b/public/appmini/old/weixin/pages/goods-detail/goods-detail.js @@ -787,6 +787,50 @@ Page({ } }, + // 优惠劵领取事件 + coupon_receive_event(e) { + var user = app.get_user_cache_info(this, "receive_event"); + // 用户未绑定用户则转到登录页面 + if (app.user_is_need_login(user)) { + wx.redirectTo({ + url: "/pages/login/login?event_callback=receive_event" + }); + return false; + } else { + var self = this; + var index = e.currentTarget.dataset.index; + var value = e.currentTarget.dataset.value; + var temp_list = this.data.plugins_coupon_data.data; + if (temp_list[index]['is_operable'] != 0) { + wx.showLoading({ title: "处理中..." }); + wx.request({ + url: app.get_request_url("receive", "coupon"), + method: "POST", + data: { "coupon_id": value }, + dataType: "json", + header: { 'content-type': 'application/x-www-form-urlencoded' }, + success: res => { + wx.hideLoading(); + if (res.data.code == 0) { + app.showToast(res.data.msg, "success"); + if (self.data.plugins_coupon_data.base != null && self.data.plugins_coupon_data.base.is_repeat_receive != 1) { + temp_list[index]['is_operable'] = 0; + temp_list[index]['is_operable_name'] = '已领取'; + self.setData({ 'plugins_coupon_data.data': temp_list }); + } + } else { + app.showToast(res.data.msg); + } + }, + fail: () => { + wx.hideLoading(); + app.showToast("服务器请求出错"); + } + }); + } + } + }, + // 自定义分享 onShareAppMessage() { var user = app.get_user_cache_info(this, 'goods_favor_event') || null; diff --git a/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxml b/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxml index d2a7ca63fabcc0ebc69a9bfb1826b00d0ed6a48a..9461a13a197ab71b7cbdae404efc3097fa775b2c 100755 --- a/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxml +++ b/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxml @@ -73,12 +73,12 @@ {{item.discount_value}} - {{item.type == 0 ? '元' : '折'}} - {{item.desc}} + {{item.type_unit}} {{item.use_limit_type_name}} + {{item.desc}} - + {{item.is_operable_name}} diff --git a/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxss b/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxss index ca57173cc4ac8629ebe187d339dedcf398f2ebd3..381a66842c96f2de42338ea6e3beb2ef0c190651 100755 --- a/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxss +++ b/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxss @@ -293,15 +293,33 @@ } +/* + * 优惠劵 - 插件 + */ .coupon-container { white-space: nowrap; box-sizing: border-box; padding: 20rpx 10rpx; } +.coupon-container scroll-view { + height: 174rpx; +} .coupon-container .item { display: inline-block; + width: 60vw; +} +.coupon-container .v-left { + padding: 20rpx 0 20rpx 20rpx; } .coupon-container .item:not(:last-child) { margin-right: 20rpx; +} +.coupon-container .item, +.coupon-container .v-right, +.coupon-container .v-right .circle { + height: 170rpx; +} +.coupon-container .v-left .base .price { + font-size: 46rpx; } \ No newline at end of file diff --git a/public/appmini/old/weixin/pages/user-coupon/user-coupon.wxml b/public/appmini/old/weixin/pages/user-coupon/user-coupon.wxml index 1b4aa6202153ef83d86023a2cbf617d9501dcef4..53ccd76bf003e59bd199016f9d74ea9b1aacd873 100644 --- a/public/appmini/old/weixin/pages/user-coupon/user-coupon.wxml +++ b/public/appmini/old/weixin/pages/user-coupon/user-coupon.wxml @@ -16,7 +16,7 @@ {{item.coupon.discount_value}} - {{item.coupon.type == 0 ? '元' : '折'}} + {{item.coupon.type_unit}} {{item.coupon.desc}} {{item.coupon.use_limit_type_name}}