无关风月
4 天以前 5de4a49148636dce6568d37e4c62039934b0a188
ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
@@ -1,8 +1,8 @@
package com.ruoyi.goods.controller;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.GlobalException;
@@ -17,7 +17,9 @@
import com.ruoyi.goods.vo.TGoodsVO;
import com.ruoyi.goods.vo.TOrderVO;
import com.ruoyi.study.api.domain.TUser;
import com.ruoyi.study.api.dto.OrderQuery;
import com.ruoyi.study.api.feignClient.StudyClient;
import com.ruoyi.study.api.vo.UserPersonalCenterVO;
import com.ruoyi.system.api.model.LoginUserParent;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -63,14 +65,9 @@
    @PostMapping("/listType")
    @ApiOperation(value = "列表查询", tags = {"后台-商品类型管理"})
    public R<PageInfo<TGoodsType>> listType(@RequestBody GoodsTypeQuery query) {
        QueryWrapper<TGoodsType> wrapper = new QueryWrapper<>();
        if (StringUtils.hasLength(query.getName())) {
            wrapper.like("name", query.getName());
        }
//        wrapper.ne("isDelete",1);
        wrapper.orderByDesc("id");
        List<TGoodsType> list = goodsTypeService.list(wrapper);
        PageInfo<TGoodsType> res = new PageInfo<>(query.getPageNumber(), query.getPageSize());
        List<TGoodsType> list = goodsTypeService.listType(query, res);
        res.setRecords(list);
        return R.ok(res);
    }
@@ -127,7 +124,7 @@
        wrapper.eq("isDelete", 0);
        // sort排序
        wrapper.orderByAsc("CASE WHEN sort IS NULL THEN 1 ELSE 0 END")
                .orderByAsc("sort")
                .orderByDesc("sort")
                .orderByDesc("createTime");
        return R.ok(goodsService.page(new PageInfo<>(goodQuery.getPageNumber(), goodQuery.getPageSize()), wrapper));
    }
@@ -172,7 +169,9 @@
            wrapper.like("name", query.getName());
        }
        wrapper.orderByDesc("id");
        List<TGoods> list = goodsService.list(wrapper);
        PageInfo<TGoods> res = new PageInfo<>(query.getPageNumber(), query.getPageSize());
        List<TGoods> list = goodsService.listAll(query, res);
        for (TGoods tGoods : list) {
            Long temp = 0L;
            List<TOrder> list1 = orderService.list(new QueryWrapper<TOrder>().eq("goodsId", tGoods.getId()));
@@ -195,7 +194,6 @@
            }
        }
        PageInfo<TGoods> res = new PageInfo<>(query.getPageNumber(), query.getPageSize());
        res.setRecords(list);
        return R.ok(res);
    }
@@ -224,7 +222,7 @@
    @ApiOperation(value = "修改", tags = {"后台-商品管理"})
    public R updateGoods(@RequestBody TGoods dto) {
        TGoods byId = goodsService.getById(dto.getId());
        if (!Objects.equals(byId.getTotal(), dto.getTotal())){
        if (byId.getTotal()!=null && dto.getTotal()!=null &&!Objects.equals(byId.getTotal(), dto.getTotal())){
            // 如果修改了商品总数 那么需要再判断当前商品已被购买了多少
            List<TOrder> list = orderService.list(new QueryWrapper<TOrder>()
                    .eq("goodsId", dto.getId()));
@@ -233,7 +231,7 @@
                temp += tOrder.getCount();
            }
            if (dto.getTotal()<temp){
                return R.fail("商品总数不能小于当前商品已兑换数量,"+"当前商品已兑换数量为:"+temp);
                return R.fail("商品总数不能小于当前商品已兑换数量,"+"当前商品已兑换数量为:"+temp);
            }
        }
        goodsService.updateById(dto);
@@ -266,14 +264,15 @@
     */
    @GetMapping("/exchangeRecord")
    @ApiOperation(value = "学习端-兑换记录", tags = {"学习端-商城"})
    public R<List<ExchangeRecordVO>> exchangeRecord() {
    public R<PageInfo<ExchangeRecordVO>> exchangeRecord(Integer pageNumber,Integer pageSize) {
        PageInfo<ExchangeRecordVO> res = new PageInfo<>(pageNumber, pageSize);
        LoginUserParent loginUserStudy = tokenService.getLoginUserStudy();
        if (null == loginUserStudy) {
            return R.tokenError("登录失效!");
        }
        List<ExchangeRecordVO> exchangeRecord = orderService.exchangeRecord(tokenService.getLoginUserStudy().getUserid());
        List<ExchangeRecordVO> exchangeRecord = orderService.exchangeRecord(res,tokenService.getLoginUserStudy().getUserid());
        for (ExchangeRecordVO record : exchangeRecord) {
            TGoods goods = goodsService.getById(record.getGoodsId());
            TGoods goods = goodsService.getById1(record.getGoodsId());
            List<String> typeList;
            if (null != goods) {
                List<TGoodsType> goodsTypes = goodsTypeService.lambdaQuery().in(TGoodsType::getId, Arrays.stream(goods.getTypeIds().split(",")).collect(Collectors.toList()))
@@ -284,18 +283,21 @@
            }
            record.setGoodsType(typeList);
        }
        return R.ok(exchangeRecord);
        res.setRecords(exchangeRecord);
        res.setTotal(exchangeRecord.size());
        return R.ok(res);
    }
    @GetMapping("/exchangeRecordParent")
    @ApiOperation(value = "家长端-兑换记录", tags = {"家长端-兑换记录"})
    public R<List<ExchangeRecordVO>> exchangeRecordParent() {
    public R<PageInfo<ExchangeRecordVO>> exchangeRecordParent(Integer pageNumber,Integer pageSize) {
        PageInfo<ExchangeRecordVO> res = new PageInfo<>(pageNumber, pageSize);
        if (tokenService.getLoginUser1() == null) {
            return R.tokenError("登录失效");
        }
        List<ExchangeRecordVO> exchangeRecord = orderService.exchangeRecord(tokenService.getLoginUser1().getUserid());
        List<ExchangeRecordVO> exchangeRecord = orderService.exchangeRecord(res,tokenService.getLoginUser1().getUserid());
        for (ExchangeRecordVO record : exchangeRecord) {
            TGoods goods = goodsService.getById(record.getGoodsId());
            TGoods goods = goodsService.getById1(record.getGoodsId());
            List<String> typeList;
            if (null != goods) {
                List<TGoodsType> goodsTypes = goodsTypeService.lambdaQuery().in(TGoodsType::getId, Arrays.stream(goods.getTypeIds().split(",")).collect(Collectors.toList()))
@@ -306,7 +308,9 @@
            }
            record.setGoodsType(typeList);
        }
        return R.ok(exchangeRecord);
        res.setRecords(exchangeRecord);
        res.setTotal(exchangeRecord.size());
        return R.ok(res);
    }
    /**
@@ -318,11 +322,12 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "id", dataType = "String", required = true)
    })
    public R<Boolean> confirm(@RequestParam Integer id) {
    public R<Boolean> confirm(@RequestParam String id) {
        if (tokenService.getLoginUser1() == null) {
            return R.tokenError("登录失效");
        }
        TOrder byId = orderService.getById(id);
        byId.setUserId(null);
        byId.setState(3);
        byId.setCompleteTime(new Date());
        return R.ok(orderService.updateById(byId));
@@ -337,11 +342,12 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "id", dataType = "String", required = true)
    })
    public R<Boolean> confirmStudy(@RequestParam Integer id) {
    public R<Boolean> confirmStudy(@RequestParam String id) {
        if (tokenService.getLoginUserStudy() == null) {
            return R.tokenError("登录失效");
        }
        TOrder byId = orderService.getById(id);
        byId.setUserId(null);
        byId.setState(3);
        byId.setCompleteTime(new Date());
        return R.ok(orderService.updateById(byId));
@@ -590,7 +596,7 @@
            @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "String", required = true),
            @ApiImplicitParam(value = "地址信息id", name = "recipientId", dataType = "String", required = true)
    })
    public R updateOrderAddressParent(@RequestParam Integer orderId, @RequestParam Integer recipientId) {
    public R updateOrderAddressParent(@RequestParam String orderId, @RequestParam Integer recipientId) {
        if (tokenService.getLoginUser1() == null) {
            return R.tokenError("登录失效");
        }
@@ -602,7 +608,8 @@
        if (!Constants.ONE.equals(order.getState())) {
            throw new GlobalException("订单已发货,无法修改收货地址!");
        }
        order.setConsigneeName(recipient.getAddress());
        order.setUserId(null);
        order.setConsigneeName(recipient.getRecipient());
        order.setConsigneePhone(recipient.getRecipientPhone());
        order.setConsigneeAddress(recipient.getProvince()+recipient.getCity()+recipient.getAddress());
        orderService.updateById(order);
@@ -616,7 +623,7 @@
            @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "String", required = true),
            @ApiImplicitParam(value = "地址信息id", name = "recipientId", dataType = "String", required = true)
    })
    public R updateOrderAddress(@RequestParam Integer orderId, @RequestParam Integer recipientId) {
    public R updateOrderAddress(@RequestParam String orderId, @RequestParam Integer recipientId) {
        if (tokenService.getLoginUserStudy() == null) {
            return R.tokenError("登录失效");
        }
@@ -628,7 +635,8 @@
        if (!Constants.ONE.equals(order.getState())) {
            throw new GlobalException("订单已发货,无法修改收货地址!");
        }
        order.setConsigneeName(recipient.getAddress());
        order.setUserId(null);
        order.setConsigneeName(recipient.getRecipient());
        order.setConsigneePhone(recipient.getRecipientPhone());
        order.setConsigneeAddress(recipient.getProvince()+recipient.getCity()+recipient.getAddress());
        orderService.updateById(order);
@@ -657,7 +665,20 @@
        if (null == loginUserStudy) {
            return R.tokenError("登录失效!");
        }
        return R.ok(goodsService.goodRecommend(loginUserStudy.getUserid()));
        UserPersonalCenterVO data = studyClient.userInfo().getData();
        List<TGoodsVO> tGoodsVOS = goodsService.goodRecommend(loginUserStudy.getUserid());
        List<TGoodsVO> res = new ArrayList<>();
        int temp = 0;
        for (TGoodsVO re : tGoodsVOS) {
            if (temp>=3){
                break;
            }
            if (data.getUser().getIntegral()>=re.getIntegral()){
                res.add(re);
                temp++;
            }
        }
        return R.ok(res);
    }
    /**
@@ -697,7 +718,10 @@
        if (null != goods.getBasicCount()) {
            number += goods.getBasicCount();
        }
        number += orderService.getGoodBuyNumber(goods.getId());
        List<TOrder> list = orderService.list(new QueryWrapper<TOrder>().eq("goodsId", goods.getId()));
        for (TOrder tOrder : list) {
            number+=tOrder.getCount();
        }
        // 剩余兑换数量
        Integer residueNumber = null;
        if (null != goods.getTotal()) {
@@ -739,7 +763,10 @@
        if (null != goods.getBasicCount()) {
            number += goods.getBasicCount();
        }
        number += orderService.getGoodBuyNumber(goods.getId());
        List<TOrder> list = orderService.list(new QueryWrapper<TOrder>().eq("goodsId", goods.getId()));
        for (TOrder tOrder : list) {
            number+=tOrder.getCount();
        }
        // 剩余兑换数量
        Integer residueNumber = null;
        if (null != goods.getTotal()) {
@@ -869,9 +896,9 @@
    @PostMapping("/getOrderInfo/{id}")
    @ApiOperation(value = "查看详情", tags = {"后台-订单管理"})
    @ApiOperationSupport(order = 11)
    public R<TOrderVO> getOrderInfo(@PathVariable("id") Integer id) {
    public R<TOrderVO> getOrderInfo(@PathVariable("id") String id) {
        TOrder byId = orderService.getById(id);
        TGoods byId2 = goodsService.getById(byId.getGoodsId());
        TGoods byId2 = goodsService.getById1(byId.getGoodsId());
        TOrderVO tGoodsVO = new TOrderVO();
        BeanUtils.copyProperties(byId, tGoodsVO);
        tGoodsVO.setName(byId2.getName());
@@ -889,6 +916,7 @@
    @ApiOperationSupport(order = 12)
    public R getGoodsInfo1(@RequestBody OrderDTO dto) {
        TOrder byId = orderService.getById(dto.getId());
        byId.setUserId(null);
        byId.setState(2);
        byId.setExpress(dto.getExpress());
        byId.setExpressNumber(dto.getExpressNumber());
@@ -912,37 +940,21 @@
            query.setStartTime1(parse);
            query.setEndTime1(parse1);
        }
        List<TOrderVO> list = orderService.listAll(query);
        List<TOrderVO> list1 = new ArrayList<>();
        for (TOrderVO tOrderVO : list) {
            TUser data = studyClient.getUserById(tOrderVO.getUserId()).getData();
            if (data != null) {
                tOrderVO.setUserName(data.getName());
                tOrderVO.setPhone(data.getPhone());
            }
            if (!StringUtils.hasLength(query.getPhone()) && !StringUtils.hasLength(query.getUserName())) {
                list1.add(tOrderVO);
                continue;
            }
            // 如果筛选条件输入了电话或者姓名那么需要过滤掉不符合条件的数据
            if (StringUtils.hasLength(query.getPhone()) && StringUtils.hasLength(query.getUserName())) {
                if (tOrderVO.getPhone().contains(query.getPhone()) && tOrderVO.getUserName().contains(query.getUserName())) {
                    list1.add(tOrderVO);
                }
            } else if (StringUtils.hasLength(query.getPhone())) {
                if (tOrderVO.getPhone().contains(query.getPhone())) {
                    list1.add(tOrderVO);
                }
            } else if (StringUtils.hasLength(query.getUserName())) {
                if (tOrderVO.getUserName().contains(query.getUserName())) {
                    list1.add(tOrderVO);
                }
            }
        }
        PageInfo<TOrderVO> res = new PageInfo<>(query.getPageNumber(), query.getPageSize());
        res.setRecords(list1);
        List<TUser> data = studyClient.listAll(query).getData();
        List<Integer> userIds = data.stream().map(TUser::getId).collect(Collectors.toList());
        query.setUserIds(userIds);
        List<TOrderVO> list = orderService.listAll(query,res);
        for (TOrderVO tOrderVO : list) {
            TUser user = data.stream().filter(e -> Objects.equals(e.getId(), tOrderVO.getUserId())).findFirst()
                    .orElse(null);
            if (user != null){
                tOrderVO.setUserName(user.getName());
                tOrderVO.setPhone(user.getPhone());
            }
        }
        res.setRecords(list);
        return R.ok(res);
    }
}