Explorar o código

激活连续无限流量修改套餐有效期

zhangdongming hai 1 ano
pai
achega
b2616c36b7

+ 39 - 0
Controller/UnicomCombo/UnicomComboController.py

@@ -1101,3 +1101,42 @@ class UnicomComboView(View):
         except Exception as e:
             LOGGER.info('{}判断是否4G设备异常,errLine:{}, errMsg:{}'.format(serial_number, e.__traceback__.tb_lineno, repr(e)))
             return False
+
+    @classmethod
+    def update_package_order(cls, request_dict, response):
+        iccid = request_dict.get('iccid', None)
+        result = cls.update_flow_package_order_by_iccid(iccid)
+        print(result)
+        return response.json(0)
+
+    @classmethod
+    def update_flow_package_order_by_iccid(cls, iccid):
+        """
+        延长无限流量套餐
+        """
+        try:
+            LOGGER.info(f'更新流量套餐包有效期:iccid={iccid}')
+            package_info_qs = UnicomComboOrderInfo.objects.filter(iccid=iccid) \
+                .filter(~Q(combo__combo_type=4), ~Q(status=2)).order_by('created_time')
+            if not package_info_qs.exists():
+                return False
+            if package_info_qs.count() > 1:
+                a_time = 0
+                is_unlimited = 0
+                for item in package_info_qs:
+                    if is_unlimited == 1 and item.combo.is_unlimited == 1:
+                        activate_time = a_time - (3600 * 12)
+                        expire_time = LocalDateTimeUtil.get_after_days_timestamp(a_time, item.combo.expiration_days)
+                        UnicomComboOrderInfo.objects.filter(id=item.id) \
+                            .update(activation_time=activate_time, expire_time=expire_time,
+                                    updated_time=int(time.time()))
+                        LOGGER.info(f'有更新:iccid={iccid}')
+                    is_unlimited = item.combo.is_unlimited
+                    a_time = item.expire_time
+            return True
+
+        except Exception as e:
+            LOGGER.info(
+                '{}update_flow_package_order_by_iccid,errLine:{}, errMsg:{}'.format(iccid, e.__traceback__.tb_lineno,
+                                                                                    repr(e)))
+            return False

+ 2 - 0
Controller/UnicomCombo/WXTechController.py

@@ -315,6 +315,8 @@ class WXTechControllerView(View):
                                                      user_id, combo_id)
                 if result:
                     exchange_code_qs.update(status=True, updated_time=int(time.time()))
+                    # 校验是否两个重叠无限流量套餐 修改套餐数据
+                    UnicomComboView().update_flow_package_order_by_iccid(iccid)
                     cls.save_log(ip, 10065, '兑换成功{},{}'.format(serial_number, code))
                     return response.json(10065)
             elif card_type == 1:  # 五兴电信无限流量兑换码