lyh 3 years ago
parent
commit
ad8c36c74a

+ 2 - 2
apps/activity/models.py

@@ -172,6 +172,8 @@ class Order(models.Model):
     tel = models.CharField(max_length=100, verbose_name=u"电话", null=True, blank=True)
     number = models.CharField(max_length=50, verbose_name=u"车牌号", null=True, blank=True)
     name = models.CharField(max_length=50, verbose_name=u"姓名", null=True, blank=True)
+    recommend_member = models.ForeignKey(Customer, verbose_name=u"推荐人", related_name='recommend_member_ref_customer', on_delete=models.PROTECT, null=True, blank=True, editable=False)
+    rebate = models.FloatField(verbose_name=u"返利", default=0)
     create_time = models.DateTimeField(verbose_name=u"添加时间", auto_now_add=True, editable=False)
     delete = models.BooleanField(verbose_name=u"删除", default=False)
 
@@ -278,8 +280,6 @@ class MemberCoupon(models.Model):
             raise CustomError(u'未找到相应的会员优惠券')
         return instance
 
-
-
 class ActivityCoupon(models.Model):
     activity = models.ForeignKey(Activity, verbose_name=u"活动", on_delete=models.PROTECT)
     coupon = models.ForeignKey(Coupon, verbose_name=u"优惠券", on_delete=models.PROTECT)

+ 1 - 0
apps/activity/serializers.py

@@ -88,6 +88,7 @@ class MemberCouponSerializer(serializers.ModelSerializer):
 class OrderSerializer(serializers.ModelSerializer):
     activity_name = serializers.CharField(source='activity.title', read_only=True)
     member_name = serializers.CharField(source='member.name', read_only=True)
+    recommend_member_name = serializers.CharField(source='recommend_member.name', read_only=True)
     member_tel = serializers.CharField(source='member.tel', read_only=True)
     branch_name = serializers.CharField(source='branch.name', read_only=True)
     status_text = serializers.CharField(source='get_status_display', read_only=True)

+ 10 - 2
apps/activity/views.py

@@ -12,7 +12,7 @@ from apps.exceptions import CustomError
 
 from apps.foundation.models import BizLog
 
-from django.db.models import Q
+from django.db.models import Q, Sum
 from django.conf import settings
 from .models import *
 from .serializers import *
@@ -114,9 +114,17 @@ def order_list(request):
     else:
         rows = Order.objects.filter(branch=request.user.branch)
     f = OrderFilter(request.GET, queryset=rows)
+    rows_sum = f.qs.aggregate(
+        sum_rebate=Sum('rebate'),
+        sum_amount=Sum('amount')
+    )
+    more = {
+        'sum_amount':rows_sum['sum_amount'],
+        'sum_rebate':rows_sum['sum_rebate'],
+    }
     rows, total = utils.get_page_data(request, f.qs)
     serializer = OrderSerializer(rows, many=True)
-    return DataGridJSONResponse(serializer.data, total)
+    return DataGridJSONResponse(serializer.data, total, more)
 
 
 @token_required

+ 1 - 1
uis/views/activity/index.html

@@ -37,7 +37,7 @@
                   </dl>
                 </div>
               </button>
-              <button class="layui-btn layui-btn-sm"  id="btn_coupon"><i class="layui-icon layui-icon-ok-circle"></i>添加优惠券</button>
+              <button class="layui-btn layui-btn-sm"  id="btn_coupon"><i class="layui-icon layui-icon-add-circle"></i>添加优惠券</button>
               <button class="layui-btn layui-btn-sm"  id="btn_set"><i class="layui-icon layui-icon-ok-circle"></i>购买设置</button>
               <button class="layui-btn layui-btn-sm" id="btn_query"><i class="layui-icon layui-icon-search"></i>查询</button>
             </div>

+ 20 - 0
uis/views/order/index.html

@@ -103,11 +103,31 @@
         ,{field:'tel', title:'电话', width:120}
         ,{field:'number', title:'车牌号', width:110}
         ,{field:'status_text', title:'状态', width:90}
+        ,{field:'recommend_member_name', title:'推荐人', width:90}
+        ,{field:'rebate', title:'返利', width:90}
         ,{field:'delete_text', title:'是否删除', width:100}
         ,{field:'create_time', title:'创建时间', width:180}
       ]]
       ,page: true
       ,height: 'full-104'
+      ,totalRow: true
+      ,parseData:function(res) {
+        var cols = this.cols[0];
+        for (var i in cols) {
+            if (cols[i].field == 'rebate') {
+                cols[i].totalRowText = res.more.sum_rebate;
+            }
+
+            if (cols[i].field == 'amount') {
+                cols[i].totalRowText = res.more.sum_amount;
+            }
+        }
+        return {
+          "code": res.code, //解析接口状态
+          "count": res.count, //解析数据长度
+          "data": res.data //解析数据列表
+        };
+      }
       ,done: function () {
         layui.index.removeNoPermButtons();
       }