package com.panzhihua.service_jinhui_community.service.impl;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.jinhui.JinhuiCoinGeneralTableVO;
|
import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
|
import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingOrderVO;
|
import com.panzhihua.common.utlis.Snowflake;
|
import com.panzhihua.service_jinhui_community.dao.JinhuiShoppingOrderDao;
|
import com.panzhihua.service_jinhui_community.entity.JinhuiCoinGeneralTable;
|
import com.panzhihua.service_jinhui_community.entity.JinhuiShopping;
|
import com.panzhihua.service_jinhui_community.entity.JinhuiShoppingOrder;
|
import com.panzhihua.service_jinhui_community.service.JinhuiCoinGeneralTableService;
|
import com.panzhihua.service_jinhui_community.service.JinhuiGoldCoinRecordService;
|
import com.panzhihua.service_jinhui_community.service.JinhuiShoppingOrderService;
|
import com.panzhihua.service_jinhui_community.service.JinhuiShoppingService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
|
|
@Slf4j
|
@Service
|
public class JinhuiShoppingOrderServiceImpl extends ServiceImpl<JinhuiShoppingOrderDao,
|
JinhuiShoppingOrder> implements JinhuiShoppingOrderService
|
{
|
|
@Resource
|
private JinhuiShoppingService shoppingService;
|
|
@Resource
|
private JinhuiCoinGeneralTableService tableService;
|
|
@Resource
|
private JinhuiGoldCoinRecordService goldCoinRecordService;
|
|
@Override
|
public R getList(int pageNum,int pageSize,String userId,String goodsId,String orderNumber,
|
String goodName,String name,String cancelType,String communityId)
|
{
|
Page page = new Page<JinhuiShopping>(pageNum,pageSize);
|
return R.ok(baseMapper.getList(page,userId,goodsId,orderNumber,goodName,name,cancelType,communityId));
|
}
|
|
@Override
|
public JinhuiShoppingOrder getDetails(String id,String communityId) {
|
return baseMapper.getDetails(id,communityId);
|
}
|
|
|
@Override
|
public R addData(JinhuiShoppingOrderVO item)
|
{
|
item.setOrderNumber(Snowflake.getId()+"");
|
JinhuiCoinGeneralTable generalTable=tableService.getDetails(item.getUserId());
|
JinhuiShopping goods=shoppingService.getDetails(item.getGoodsId(),null);
|
|
int allMoney=0;
|
int getMoney=Integer.valueOf(goods.getGoodPrice());
|
|
|
if(generalTable==null)
|
{
|
return R.fail("金汇币不足!");
|
}
|
|
if(!StringUtils.isEmpty(generalTable.getGoldCoin()))
|
{
|
allMoney=Integer.valueOf(generalTable.getGoldCoin());
|
}
|
if(getMoney>allMoney)
|
{
|
return R.fail("金汇币不足!");
|
}
|
|
item.setCancelType("0");
|
item.setPalyMoney(goods.getGoodPrice());
|
int num= baseMapper.addData(item);
|
if(num>0)
|
{
|
//修改个人金汇币总额
|
allMoney=allMoney-getMoney;
|
JinhuiCoinGeneralTableVO generalTableVO=new JinhuiCoinGeneralTableVO();
|
generalTableVO.setId(generalTable.getId());
|
generalTableVO.setGoldCoin(allMoney+"");
|
tableService.editData(generalTableVO);
|
|
//增加兑换记录
|
JinhuiGoldCoinRecordVO recordVO=new JinhuiGoldCoinRecordVO();
|
recordVO.setTitle("兑换商品");
|
recordVO.setType("2");
|
recordVO.setUserId(item.getUserId());
|
recordVO.setGoldCoin(getMoney+"");
|
goldCoinRecordService.addData(recordVO);
|
|
return R.ok();
|
}
|
return R.fail("添加失败");
|
}
|
|
@Override
|
public R editData(JinhuiShoppingOrderVO item) {
|
int num= baseMapper.editData(item);
|
if(num>0)
|
{
|
return R.ok();
|
}
|
return R.fail("添加失败");
|
}
|
|
@Override
|
public R cancelOrder(String orderId,String communityId)
|
{
|
JinhuiShoppingOrder order=baseMapper.getDetails(orderId,communityId);
|
|
if(!StringUtils.equals("0",order.getCancelType()))
|
{
|
return R.fail("订单不是待核销状态");
|
}
|
|
JinhuiShoppingOrderVO orderVO=new JinhuiShoppingOrderVO();
|
orderVO.setId(orderId);
|
orderVO.setCancelType("2");
|
orderVO.setAbolishTime(new Date());
|
int num=baseMapper.editData(orderVO);
|
if(num>0)
|
{
|
JinhuiCoinGeneralTable generalTable=tableService.getDetails(order.getUserId());
|
|
int allMoney=0;
|
int getMoney=Integer.valueOf(order.getPalyMoney());
|
|
if(!StringUtils.isEmpty(generalTable.getGoldCoin()))
|
{
|
allMoney=Integer.valueOf(generalTable.getGoldCoin());
|
}
|
|
//修改个人金汇币总额
|
allMoney=allMoney+getMoney;
|
JinhuiCoinGeneralTableVO generalTableVO=new JinhuiCoinGeneralTableVO();
|
generalTableVO.setId(generalTable.getId());
|
generalTableVO.setGoldCoin(allMoney+"");
|
tableService.editData(generalTableVO);
|
|
//增加兑换记录
|
JinhuiGoldCoinRecordVO recordVO=new JinhuiGoldCoinRecordVO();
|
recordVO.setTitle("商品订单取消");
|
recordVO.setType("3");
|
recordVO.setUserId(order.getUserId());
|
recordVO.setGoldCoin(getMoney+"");
|
goldCoinRecordService.addData(recordVO);
|
|
return R.ok();
|
}
|
return R.fail("取消失败");
|
}
|
|
@Override
|
public R expurgateData(String id,String communityId)
|
{
|
JinhuiShoppingOrder order=baseMapper.getDetails(id,communityId);
|
|
if(StringUtils.equals("0",order.getCancelType()))
|
{
|
return R.fail("待核销订单不能删除");
|
}
|
|
int num= baseMapper.expurgateData(id);
|
if(num>0)
|
{
|
return R.ok();
|
}
|
return R.fail("添加失败");
|
}
|
}
|