|  |  |  | 
|---|
|  |  |  | package com.panzhihua.service_dangjian.service.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
|---|
|  |  |  | import com.panzhihua.common.model.dtos.partybuilding.NewFightIntegral; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.R; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.building.NewFightShoppingOrderVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.user.SysUserNoticeVO; | 
|---|
|  |  |  | import com.panzhihua.common.service.user.UserService; | 
|---|
|  |  |  | import com.panzhihua.common.utlis.Snowflake; | 
|---|
|  |  |  | import com.panzhihua.service_dangjian.dao.ComActIntegralUsersMapper; | 
|---|
|  |  |  | import com.panzhihua.service_dangjian.dao.NewFightShoppingOrderDao; | 
|---|
|  |  |  | import com.panzhihua.service_dangjian.entity.ComActIntegralUser; | 
|---|
|  |  |  | import com.panzhihua.service_dangjian.entity.NewFightShopping; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.panzhihua.service_dangjian.service.*; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.apache.ibatis.annotations.Param; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ComActIntegralUsersService integralUsersService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserService userService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R getList(int pageNum,int pageSize,String userId,String goodsId,String orderNumber, | 
|---|
|  |  |  | String goodName,String name,String cancelType,String communityId) | 
|---|
|  |  |  | String goodName,String name,String cancelType,String communityId,String merchantId,String orderType) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Page page = new Page<NewFightShopping>(pageNum,pageSize); | 
|---|
|  |  |  | return R.ok(baseMapper.getList(page,userId,goodsId,orderNumber,goodName,name,cancelType,communityId)); | 
|---|
|  |  |  | return R.ok(baseMapper.getList(page,userId,goodsId,orderNumber,goodName,name,cancelType, | 
|---|
|  |  |  | communityId, merchantId,orderType)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | public R addData(NewFightShoppingOrderVO item) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | item.setOrderNumber(Snowflake.getId()+""); | 
|---|
|  |  |  | NewFightShopping goods=shoppingService.getDetails(item.getGoodsId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int allMoney=0; | 
|---|
|  |  |  | int getMoney=Integer.valueOf(goods.getGoodPrice()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 查询用户积分账户 | 
|---|
|  |  |  | 
|---|
|  |  |  | .eq(ComActIntegralUser::getUserId, item.getUserId()) | 
|---|
|  |  |  | .eq(ComActIntegralUser::getCommunityId, item.getCommunityId())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int allMoney=0; | 
|---|
|  |  |  | int getMoney=0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(integralUserDO==null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return R.fail("积分不足!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | allMoney=integralUserDO.getIntegralAvailableSum(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //判断是线上下单  还是商家线下下单  1线上   2线下 | 
|---|
|  |  |  | if(StringUtils.equals("2",item.getOrderType())) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | getMoney=Integer.valueOf(item.getPalyMoney()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | NewFightShopping goods=shoppingService.getDetails(item.getGoodsId()); | 
|---|
|  |  |  | getMoney=Integer.valueOf(goods.getGoodPrice()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(getMoney>allMoney) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | item.setCancelType("0"); | 
|---|
|  |  |  | item.setPalyMoney(goods.getGoodPrice()); | 
|---|
|  |  |  | item.setPalyMoney(getMoney+""); | 
|---|
|  |  |  | int num= baseMapper.addData(item); | 
|---|
|  |  |  | if(num>0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //修改个人积分总额 | 
|---|
|  |  |  | allMoney=allMoney-getMoney; | 
|---|
|  |  |  | NewFightIntegral integral=new NewFightIntegral(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | integral.setIntegralNum(allMoney+""); | 
|---|
|  |  |  | integral.setAddOrReduce(2); | 
|---|
|  |  |  | integral.setCommunityId(item.getCommunityId()); | 
|---|
|  |  |  | integral.setUserId(item.getUserId()); | 
|---|
|  |  |  | integral.setType("9"); | 
|---|
|  |  |  | integral.setIdentityType("1"); | 
|---|
|  |  |  | integral.setRemark("积分兑换商品"); | 
|---|
|  |  |  | if(StringUtils.equals("1",item.getOrderType())) | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | integral.setType("9"); | 
|---|
|  |  |  | integral.setIdentityType("1"); | 
|---|
|  |  |  | integral.setRemark("积分兑换商品"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | integral.setType("10"); | 
|---|
|  |  |  | integral.setIdentityType("1"); | 
|---|
|  |  |  | integral.setRemark("商家兑换商品"); | 
|---|
|  |  |  | integral.setMerchantId(item.getMerchantId()); | 
|---|
|  |  |  | integral.setIntegralNum(item.getPalyMoney()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO(); | 
|---|
|  |  |  | sysUserNoticeVO.setUserId(Long.valueOf(item.getUserId())); | 
|---|
|  |  |  | sysUserNoticeVO.setType(4); | 
|---|
|  |  |  | sysUserNoticeVO.setTitle("商家兑换成功"); | 
|---|
|  |  |  | sysUserNoticeVO.setBusinessType(14); | 
|---|
|  |  |  | sysUserNoticeVO.setBusinessTitle(item.getRemark()); | 
|---|
|  |  |  | sysUserNoticeVO | 
|---|
|  |  |  | .setBusinessContent(String.format("兑换商品%s", item.getRemark())); | 
|---|
|  |  |  | sysUserNoticeVO.setStatus(0); | 
|---|
|  |  |  | sysUserNoticeVO.setBusinessStatus(1); | 
|---|
|  |  |  | sysUserNoticeVO.setBusinessId(Long.valueOf(item.getId())); | 
|---|
|  |  |  | sysUserNoticeVO.setActivityType(4); | 
|---|
|  |  |  | R r2 = userService.addNotice(sysUserNoticeVO); | 
|---|
|  |  |  | if (R.isOk(r2)) { | 
|---|
|  |  |  | log.info("新增兑换商品通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | integralUsersService.upIntegral(integral); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.fail("添加失败"); | 
|---|
|  |  |  | return R.fail("失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | // 查询用户积分账户 | 
|---|
|  |  |  | ComActIntegralUser integralUserDO = | 
|---|
|  |  |  | integralUsersService.getOne(new QueryWrapper<ComActIntegralUser>().lambda() | 
|---|
|  |  |  | .eq(ComActIntegralUser::getUserId, order.getUserId()) | 
|---|
|  |  |  | .eq(ComActIntegralUser::getCommunityId, order.getCommunityId())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int allMoney=0; | 
|---|
|  |  |  | int getMoney=Integer.valueOf(order.getPalyMoney()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | allMoney=integralUserDO.getIntegralAvailableSum(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //修改个人金汇币总额 | 
|---|
|  |  |  | allMoney=allMoney+getMoney; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | NewFightIntegral integral=new NewFightIntegral(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | integral.setIntegralNum(allMoney+""); | 
|---|
|  |  |  | integral.setAddOrReduce(1); | 
|---|
|  |  |  | integral.setCommunityId(order.getCommunityId()); | 
|---|
|  |  |  | integral.setUserId(order.getUserId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(StringUtils.equals("1",order.getOrderType())) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | integral.setType("9"); | 
|---|
|  |  |  | integral.setIdentityType("1"); | 
|---|
|  |  |  | integral.setRemark("积分兑换商品取消"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | integral.setType("10"); | 
|---|
|  |  |  | integral.setIdentityType("1"); | 
|---|
|  |  |  | integral.setRemark("商家兑换商品取消"); | 
|---|
|  |  |  | integral.setMerchantId(order.getMerchantId()); | 
|---|
|  |  |  | integral.setIntegralNum(order.getPalyMoney()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | integralUsersService.upIntegral(integral); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|