123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- # -*- coding: utf-8 -*-
- #!/usr/bin/env python
- import datetime
- import logging
- from mongoengine import StringField, DateTimeField, ObjectIdField, BooleanField, IntField, ListField
- from mongoengine.fields import DictField
- from apilib.monetary import RMB
- from apps.web.core.db import Searchable, MonetaryField
- from apps.web.common.models import UserSearchable
- logger = logging.getLogger(__name__)
- class SuperManager(UserSearchable):
- brandName = StringField(verbose_name = '品牌名称', default = '')
- logo = StringField(verbose_name = '品牌LOGO', default = '')
- search_fields = ('username', 'nickname', 'remarks')
- meta = {
- 'collection': 'super_manager',
- 'db_alias': 'default'
- }
- def to_dict(self):
- rv = super(SuperManager, self).to_dict()
- rv.update({'brandName': self.brandName,
- 'logo': self.logo})
- class WebLog(Searchable):
- title = StringField()
- content = StringField()
- superManagerId = ObjectIdField()
- createdTime = DateTimeField(default=datetime.datetime.now)
- search_fields = ('title', 'content')
- meta = {'collection': 'weblogs', 'db_alias': 'default'}
- def __repr__(self): return (u'<WebLog title=%s>' % (self.title,)).encode('utf-8')
- def to_dict(self):
- return {
- 'id': str(self.id),
- 'title': self.title,
- 'content': self.content,
- 'createdTime': self.createdTime
- }
- class SuperManagerRefundRecords(Searchable):
- refundType = StringField(verbose_name='退款类型 =: (simCard|others)', default='others')
- money = MonetaryField(verbose_name='充值', default=RMB('0.00'))
- refundDetail = DictField(verbose_name = '附带参数', default = {})
- description = StringField(verbose_name='退款描述', default='')
- dateTimeAdded = DateTimeField(default=datetime.datetime.now)
- search_fields = ('refundType')
- meta = {'collection': 'super_manager_refund_records'}
- @classmethod
- def create_refund_records(cls, refundType, money, refundDetail, description):
- try:
- cls(refundType=refundType,
- money=money,
- refundDetail=refundDetail,
- description=description).save()
- except Exception, e:
- logger.exception(e)
- class UserComplaintRecord(Searchable):
- mchid = StringField(verbose_name=u'商户号', default='1510834731')
- complaint_id = StringField(verbose_name=u'投诉单号')
- complaint_detail = StringField(verbose_name=u'投诉详情', default='', max_length=300)
- complaint_state = StringField(verbose_name=u'投诉单状态(PENGING / PROCESSING / PROCESSED)', default='PENDING')
- payer_phone = StringField(verbose_name=u'投诉人联系方式', default='')
- payer_openid = StringField(verbose_name=u'投诉人openId', default='')
- complaint_full_refunded = BooleanField(verbose_name=u'是否已经退款', default=False)
- incoming_user_response = BooleanField(verbose_name=u'是否有未处理留言', default=False)
- user_complaint_times = IntField(verbose_name=u'用户投诉次数')
- complaint_order_info = ListField(verbose_name=u'投诉单号详情', default=[])
- dateTimeAdded = DateTimeField(verbose_name=u'投诉时间', default=datetime.datetime.now)
- meta = {'collection': 'user_complaint_record'}
- search_fields = ('mchid', 'wxOrderNo', 'orderNo', 'complaint_id')
- @classmethod
- def create_user_complaint_record(cls, dataList):
- if dataList == []:
- return
- else:
- for cs in dataList:
- templateData = {
- 'complaint_id': '',
- 'complaint_detail': '',
- 'complaint_state:': '',
- 'payer_phone:': '',
- 'payer_openid': '',
- 'complaint_full_refunded:': False,
- 'incoming_user_response:': False,
- 'user_complaint_times:': 1,
- 'complaint_order_info': []
- }
- for k, v in cs.items():
- if k == 'complaint_id':
- templateData.update({'complaint_id': v})
- if k == 'complaint_detail':
- templateData.update({'complaint_detail': v})
- if k == 'complaint_state':
- templateData.update({'complaint_state': v})
- if k == 'payer_phone':
- templateData.update({'payer_phone': v})
- if k == 'payer_openid':
- templateData.update({'payer_openid': v})
- if k == 'complaint_full_refunded':
- templateData.update({'complaint_full_refunded': v})
- if k == 'incoming_user_response':
- templateData.update({'incoming_user_response': v})
- if k == 'user_complaint_times':
- templateData.update({'user_complaint_times': v})
- if k == 'complaint_full_refunded':
- templateData.update({'complaint_full_refunded': v})
- if k == 'complaint_order_info':
- templateData.update({'complaint_order_info': v})
- try:
- cls(
- complaint_id=templateData['complaint_id'],
- complaint_detail=templateData['complaint_detail'],
- complaint_state=templateData['complaint_state'],
- payer_phone=templateData['payer_phone'],
- payer_openid=templateData['payer_openid'],
- complaint_full_refunded=templateData['complaint_full_refunded'],
- incoming_user_response=templateData['incoming_user_response'],
- user_complaint_times=templateData['user_complaint_times'],
- complaint_order_info=templateData['complaint_order_info']
- ).save()
- except Exception as e:
- logger.exception(e)
|