Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion planet/api/v2/AFreshManFirstOrder.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,3 @@ def post(self, fresh_man):
'delete': self.creshman.del_award,
}
return apis

2 changes: 1 addition & 1 deletion planet/api/v2/ATrialCommodity.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ def post(self, commodity):
'resubmit': self.ctrialcommodity.resubmit_apply,
'shelves': self.ctrialcommodity.shelves,
}
return apis
return apis
4 changes: 4 additions & 0 deletions planet/config/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,13 @@ class ApplyFrom(Enum):


class ApplyStatus(Enum):
lose_effect = -40, '已失效'
shelves = -30, '已下架'
cancle = -20, '已撤销'
reject = -10, '已拒绝'
wait_check = 0, '审核中'
agree = 10, '已同意'
lose_agree = 20, '重新审核中'


class OrderRefundOrstatus(Enum):
Expand Down Expand Up @@ -279,8 +281,10 @@ class GuessNumAwardStatus(Enum):

class TrialCommodityStatus(Enum):
"""试用商品状态"""
lose_effect=-20,'已失效'
cancel = -10, '已取消'
upper = 0, '已上架'
lose_upper = 10,'重新审核中'
# off_shelves = 10, '已下架'
auditing = 20, '审核中'
reject = 30, '下架/审核失败'
Expand Down
2 changes: 1 addition & 1 deletion planet/control/CActivationCode.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def set_rule(self):
'ACRcash': form.acrcash.data
})
db.session.add(rule_instance)
BASEADMIN().create_action(AdminActionS.insert.value, 'ActivationCodeRule', str(uuid.uuid1()))
BASEADMIN().create_action(AdminActionS.insert.value, 'ActivationCodeRule', rule_instance.ACRid)
return Success('添加成功', rule_instance.ACRid)

@admin_required
Expand Down
365 changes: 356 additions & 9 deletions planet/control/CApproval.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion planet/control/CCategory.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def create(self):
'PCtopPic': data.get('pctoppic')
})
s.add(category_instance)
BASEADMIN().create_action(AdminActionS.insert.value, 'ProductCategory', str(uuid.uuid4()))
BASEADMIN().create_action(AdminActionS.insert.value, 'ProductCategory', category_instance.PCid)
return Success('创建成功', {'pcid': category_instance.PCid})

@admin_required
Expand Down
2 changes: 1 addition & 1 deletion planet/control/CClub.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def create_companymessage(self):
"CMindex": CMindex
})
db.session.add(new_companymessage)
BASEADMIN().create_action(AdminActionS.insert.value, 'CompanyMessage', str(uuid.uuid1()))
BASEADMIN().create_action(AdminActionS.insert.value, 'CompanyMessage', new_companymessage.CMid)
return Success("发布成功")

@get_session
Expand Down
1 change: 0 additions & 1 deletion planet/control/CCollection.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ def collect(self):
try:
c = CollectionType(c).value
except:
current_app.logger.info('get colletcion type {} error '.format(c))
c = 0

ctid = self._check_type_id(c, ctid)
Expand Down
338 changes: 260 additions & 78 deletions planet/control/CFreshManFirstOrder.py

Large diffs are not rendered by default.

395 changes: 297 additions & 98 deletions planet/control/CGuessNum.py

Large diffs are not rendered by default.

156 changes: 111 additions & 45 deletions planet/control/CIntegralStore.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def apply(self):
instance_list.append(ipsku_instance)
db.session.add_all(instance_list)
if is_admin():
BASEADMIN().create_action(AdminActionS.insert.value, 'IntegralProduct', str(uuid.uuid1()))
BASEADMIN().create_action(AdminActionS.insert.value, 'IntegralProduct', ip_instance.IPid)
super(CIntegralStore, self).create_approval('tointegral', uid, ip_instance.IPid, applyfrom=ipfrom)
return Success('申请成功', data=dict(IPid=ip_instance.IPid))

Expand All @@ -102,6 +102,7 @@ def update(self):
IntegralProduct.IPid == ipid,
IntegralProduct.IPstatus.in_([ApplyStatus.cancle.value,
ApplyStatus.reject.value,
ApplyStatus.agree.value,
ApplyStatus.shelves.value])
).first_("当前状态不可进行编辑")
if ip.SUid != uid:
Expand All @@ -112,43 +113,108 @@ def update(self):
if is_supplizer():
filter_args.append(Products.CreaterId == uid)
product = Products.query.filter(*filter_args).first_("当前商品状态不允许编辑")
instance_list = list()
with db.auto_commit():
ip_dict = {
'IPstatus': ApplyStatus.wait_check.value,
'IPprice': ipprice
}
ip.update(ip_dict)
instance_list.append(ip)

# 原sku全部删除
old_ips = IntegralProductSku.query.filter_by_(IPid=ip.IPid).all()
for old_ipsku in old_ips:
old_ipsku.isdelete = True
# super(CIntegralStore, self)._update_stock(int(old_ipsku.IPSstock), skuid=old_ipsku.SKUid)
# 接收新sku并重新扣除库存
for sku in skus:
parameter_required(('skuid', 'skuprice', 'ipsstock'), datafrom=sku)
skuid, skuprice, ipsstock = sku.get('skuid'), sku.get('skuprice'), sku.get('ipsstock')
skuprice = self._check_price(skuprice)
ipsstock = self._check_price(ipsstock)
sku_instance = ProductSku.query.filter_by(isdelete=False, PRid=ip.PRid,
SKUid=skuid).first_('商品sku信息不存在')

# 从商品sku中减库存
super(CIntegralStore, self)._update_stock(-int(ipsstock), product, sku_instance)
ipsku_instance = IntegralProductSku.create({
'IPSid': str(uuid.uuid1()),
'IPid': ip.IPid,
'IPSstock': ipsstock,
'SKUid': skuid,
'SKUprice': skuprice
parent_apply = ip
while parent_apply.ParentIpid:
current_apply = IntegralProduct.query.filter(IntegralProduct.IPid == parent_apply.ParentIpid,
IntegralProduct.IPstatus.in_([ApplyStatus.agree.value,
ApplyStatus.lose_effect.value]),
IntegralProduct.isdelete == False).first()
if current_apply:
current_app.logger.info('current_apply{}'.format(current_apply.IPid))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

没有current_apply 会导致死循环

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

当前申请的父申请可能在重新审核中

if current_apply.IPstatus == ApplyStatus.lose_effect.value:
children_apply = IntegralProduct.query.filter(
IntegralProduct.ParentIpid == current_apply.IPid,
IntegralProduct.IPstatus == ApplyStatus.agree.value,
IntegralProduct.isdelete == False).first()
if children_apply:
current_app.logger.info('child{}'.format(children_apply.IPid))
children_apply.update({"IPstatus": ApplyStatus.lose_agree.value})
db.session.add(children_apply)
break
else:
current_apply.update({"IPstatus": ApplyStatus.lose_agree.value})
db.session.add(current_apply)
break
parent_apply = IntegralProduct.query.filter(
IntegralProduct.IPid == parent_apply.ParentIpid).first()
if ip.IPstatus != ApplyStatus.agree.value and ip.IPstatus != ApplyStatus.lose_agree.value:
instance_list = list()
with db.auto_commit():
ip_dict = {
'IPstatus': ApplyStatus.wait_check.value,
'IPprice': ipprice
}
ip.update(ip_dict)
instance_list.append(ip)

# 原sku全部删除
old_ips = IntegralProductSku.query.filter_by_(IPid=ip.IPid).all()
for old_ipsku in old_ips:
old_ipsku.isdelete = True
# super(CIntegralStore, self)._update_stock(int(old_ipsku.IPSstock), skuid=old_ipsku.SKUid)
# 接收新sku并重新扣除库存
for sku in skus:
parameter_required(('skuid', 'skuprice', 'ipsstock'), datafrom=sku)
skuid, skuprice, ipsstock = sku.get('skuid'), sku.get('skuprice'), sku.get('ipsstock')
skuprice = self._check_price(skuprice)
ipsstock = self._check_price(ipsstock)
sku_instance = ProductSku.query.filter_by(isdelete=False, PRid=ip.PRid,
SKUid=skuid).first_('商品sku信息不存在')

# 从商品sku中减库存
super(CIntegralStore, self)._update_stock(-int(ipsstock), product, sku_instance)
ipsku_instance = IntegralProductSku.create({
'IPSid': str(uuid.uuid1()),
'IPid': ip.IPid,
'IPSstock': ipsstock,
'SKUid': skuid,
'SKUprice': skuprice
})
instance_list.append(ipsku_instance)
db.session.add_all(instance_list)
if is_admin():
BASEADMIN().create_action(AdminActionS.update.value, 'IntegralProduct', ip.IPid)
super(CIntegralStore, self).create_approval('tointegral', uid, ip.IPid, applyfrom=ipfrom)
else:
ip.update({"IPstatus": ApplyStatus.lose_agree.value})
db.session.add(ip)
instance_list = list()
with db.auto_commit():
product = Products.query.filter(*filter_args).first_('只能选择自己的商品')
prid = data.get('prid')
ip_instance = IntegralProduct.create({
'IPid': str(uuid.uuid1()),
'SUid': uid,
'IPfrom': ipfrom,
'PRid': prid,
'IPstatus': ApplyStatus.wait_check.value,
'IPprice': ipprice,
'ParentIpid':ip.IPid
})
instance_list.append(ipsku_instance)
db.session.add_all(instance_list)
if is_admin():
BASEADMIN().create_action(AdminActionS.update.value, 'IntegralProduct', str(uuid.uuid1()))
super(CIntegralStore, self).create_approval('tointegral', uid, ip.IPid, applyfrom=ipfrom)
instance_list.append(ip_instance)
current_app.logger.info("正在增加新ip {}".format(ip_instance.IPid))
for sku in skus:
parameter_required(('skuid', 'skuprice', 'ipsstock'), datafrom=sku)
skuid, skuprice, ipsstock = sku.get('skuid'), sku.get('skuprice'), sku.get('ipsstock')
skuprice = self._check_price(skuprice)
ipsstock = self._check_price(ipsstock)
sku_instance = ProductSku.query.filter_by(isdelete=False, PRid=product.PRid,
SKUid=skuid).first_('商品sku信息不存在')
# 从商品sku中减库存
super(CIntegralStore, self)._update_stock(-int(ipsstock), product, sku_instance)
ipsku_instance = IntegralProductSku.create({
'IPSid': str(uuid.uuid1()),
'IPid': ip_instance.IPid,
'IPSstock': ipsstock,
'SKUid': skuid,
'SKUprice': skuprice
})
instance_list.append(ipsku_instance)
db.session.add_all(instance_list)
if is_admin():
BASEADMIN().create_action(AdminActionS.insert.value, 'IntegralProduct', ip_instance.IPid)
super(CIntegralStore, self).create_approval('tointegral', uid, ip_instance.IPid, applyfrom=ipfrom)

return Success('更新成功', data=dict(IPid=ip.IPid))

def get(self):
Expand All @@ -167,24 +233,24 @@ def list(self):
args = parameter_required()
prtitle = args.get('prtitle')
ipstatus = args.get('status')
filter_args = [IntegralProduct.isdelete == False,
Products.isdelete == False,
Products.PRstatus == ProductStatus.usual.value
]
try:
ipstatus = getattr(ApplyStatus, ipstatus).value
except Exception as e:
current_app.logger.error('integral list status error : {}'.format(e))
ipstatus = None
integral_balance = 0
if common_user():
ipstatus = ApplyStatus.agree.value
user = User.query.filter_by_(USid=request.user.id).first()
integral_balance = getattr(user, 'USintegral', 0)
filter_args.append(IntegralProduct.IPstatus.in_([ApplyStatus.agree.value,ApplyStatus.lose_agree.value]))
elif is_tourist():
ipstatus = ApplyStatus.agree.value

filter_args = [IntegralProduct.isdelete == False,
IntegralProduct.IPstatus == ipstatus,
Products.isdelete == False,
Products.PRstatus == ProductStatus.usual.value
]
filter_args.append(IntegralProduct.IPstatus.in_([ApplyStatus.agree.value,ApplyStatus.lose_agree.value]))
else:
filter_args.append(IntegralProduct.IPstatus == ipstatus)
if is_supplizer():
filter_args.append(Products.CreaterId == request.user.id),
if prtitle:
Expand Down
Loading