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 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(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("添加失败"); } }