ines-num-new"> 240
+ # "color": "#173177"
+ # }
+ # }
+ #
+ # wxcfg = WECHAT.get('MINIAPP', {})
+ # appid = wxcfg.get('appID')
+ #
+ # sendtemplatemessage(openid=user.openid, template_id=settings.TEMPLATE_ID_COMPLEMENT, data=data, miniappid=appid, minipagepath='/pages/register/consumer/consumer?q={}&marketcode=1'.format(ciphertext))
+
+
+def is_maintenance_tracking_signed(tracking_info):
if not tracking_info:
return False
items = tracking_info.get('data', [])
@@ -206,6 +256,28 @@ def is_tracking_signed(tracking_info):
return items[0].get('status') == u'签收'
+def maintenance_tracking_info_update(maintenance, type_, tracking_info):
+ old_maintenance_status = maintenance.maintenance_status
+ is_tracking_signed = is_maintenance_tracking_signed(tracking_info)
+ if type_ == 'tracking':
+ maintenance.tracking_info = tracking_info
+ maintenance.tracking_signed = is_tracking_signed
+ maintenance_status = MaintenaceInfo.TRACKING_SIGNED_FIXING
+ else:
+ maintenance.back_tracking_info = tracking_info
+ maintenance.back_tracking_signed = is_tracking_signed
+ maintenance_status = MaintenaceInfo.TRACKING_BACK_SIGNED
+ maintenance.maintenance_status = maintenance_status
+ maintenance_status_at = maintenance.maintenance_status_at
+ if maintenance_status not in maintenance_status_at:
+ maintenance_status_at[maintenance_status] = tc.utc_datetime()
+ maintenance.maintenance_status_at = maintenance_status_at
+ maintenance.save()
+
+ if maintenance_status != old_maintenance_status:
+ maintenance_status_update_sendtemplatemessage(maintenance)
+
+
@logit
def maintenance_tracking_info(request):
maintenance_id = request.POST.get('maintenance_id', '')
@@ -231,13 +303,7 @@ def maintenance_tracking_info(request):
tracking_info = {}
if tracking_info:
- if type_ == 'tracking':
- maintenance.tracking_info = tracking_info
- maintenance.tracking_signed = is_tracking_signed(tracking_info)
- else:
- maintenance.back_tracking_info = tracking_info
- maintenance.back_tracking_signed = is_tracking_signed(tracking_info)
- maintenance.save()
+ maintenance_tracking_info_update(maintenance, type_, tracking_info)
return response(data={
'type': type_,
@@ -283,12 +349,6 @@ def maintenance_tracking_info_callback(request):
except MaintenaceInfo.DoesNotExist:
return response(MaintenanceStatusCode.MAINTENACE_NOT_FOUND)
- if type_ == 'tracking':
- maintenance.tracking_info = tracking_info
- maintenance.tracking_signed = is_tracking_signed(tracking_info)
- else:
- maintenance.back_tracking_info = tracking_info
- maintenance.back_tracking_signed = is_tracking_signed(tracking_info)
- maintenance.save()
+ maintenance_tracking_info_update(maintenance, type_, tracking_info)
return response()
@@ -54,6 +54,11 @@ class ExpressCompanyInfo(BaseModelMixin): |
||
| 54 | 54 |
|
| 55 | 55 |
|
| 56 | 56 |
class MaintenaceInfo(BaseModelMixin): |
| 57 |
+ TRACKING_TO_DESPATCH = u'寄出运送中' |
|
| 58 |
+ TRACKING_SIGNED_FIXING = u'已签收修理中' |
|
| 59 |
+ TRACKING_FIXED_BACK = u'已修复寄回' |
|
| 60 |
+ TRACKING_BACK_SIGNED = u'寄回签收' |
|
| 61 |
+ |
|
| 57 | 62 |
user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True) |
| 58 | 63 |
|
| 59 | 64 |
name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'姓名') |
@@ -81,7 +86,7 @@ class MaintenaceInfo(BaseModelMixin): |
||
| 81 | 86 |
back_tracking_signed = models.BooleanField(_(u'back_tracking_signed'), default=False, help_text=u'寄回快递是否已签收') |
| 82 | 87 |
|
| 83 | 88 |
# 寄出运送中、已签收修理中、已修复寄回、寄回签收 |
| 84 |
- maintenance_status = models.CharField(_(u'maintenance_status'), max_length=8, default=u'寄出运送中', help_text=u'维修状态') |
|
| 89 |
+ maintenance_status = models.CharField(_(u'maintenance_status'), max_length=8, default=TRACKING_TO_DESPATCH, help_text=u'维修状态') |
|
| 85 | 90 |
maintenance_status_at = JSONField(_(u'maintenance_status_at'), blank=True, null=True, default={}, help_text=u'维修状态变更时间')
|
| 86 | 91 |
|
| 87 | 92 |
class Meta: |