| | |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.bouncycastle.jcajce.provider.asymmetric.GOST; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | |
| | | @Autowired |
| | | private GoodsMapper goodsMapper; |
| | | @Autowired |
| | | private ShopGoodsRelationMapper shopGoodsRelationMapper; |
| | | |
| | | |
| | | |
| | |
| | | goods.setEditor(user.getId()); |
| | | goods.setId(id); |
| | | goodsMapper.updateById(goods); |
| | | //删除供货价 |
| | | shopGoodsRelationMapper.delete(new UpdateWrapper<ShopGoodsRelation>().lambda().eq(ShopGoodsRelation::getGoodsId,id)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public void updateStatusById(List<Goods> list) { |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | |
| | | |
| | | |
| | | if(list == null || list.size()==0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | List<Integer> idList = new ArrayList<>(); |
| | | for(Goods model:list){ |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)){ |
| | | idList.add(model.getId() ); |
| | | } |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | if(Constants.formatIntegerNum(list.get(0).getStatus()) == Constants.ONE){ |
| | | //如果是批量下架 |
| | | goodsMapper.update(null,new UpdateWrapper<Goods>().lambda() |
| | | .set(Goods::getEditDate,new Date() ) |
| | | .set(Goods::getEditor,user.getId()) |
| | | .set(Goods::getStatus,Constants.ONE ) |
| | | .in(Goods::getId,idList)); |
| | | return; |
| | | } |
| | | long shopNum = shopMapper.selectCount(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getIsdeleted,Constants.ZERO) |
| | | .eq(Shop::getStatus,Constants.ZERO)); |
| | | MPJLambdaWrapper<Goods> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Goods.class); |
| | | queryWrapper.innerJoin(GoodsSku.class,GoodsSku::getGoodsId,Goods::getId); |
| | | queryWrapper.select("(select count(s.id) from shop_goods_relation s " + |
| | | "left join shop g on s.SHOP_ID =g.id " + |
| | | "where g.status=0 and s.ISDELETED=0 and s.GOODS_ID=t.id) as pricedShopNum "); |
| | | queryWrapper.eq(GoodsSku::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.eq(Goods::getId,model.getId()); |
| | | List<Goods> query= goodsAdminJoinMapper.selectJoinList(Goods.class,queryWrapper); |
| | | if(query==null||query.size()<=0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), model.getName()+":商品未配置SKU,无法上架"); |
| | | queryWrapper.in(Goods::getId,idList); |
| | | List<Goods> goodsList= goodsAdminJoinMapper.selectJoinList(Goods.class,queryWrapper); |
| | | if(goodsList==null || goodsList.size() == 0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "商品信息查询无效 "); |
| | | } |
| | | //查询全部sku信息 |
| | | List<GoodsSku> goodsSkuList=goodsSkuMapper.selectList(new QueryWrapper<GoodsSku>().lambda() |
| | | .eq(GoodsSku::getIsdeleted,Constants.ZERO) |
| | | .in(GoodsSku::getGoodsId,idList) ); |
| | | if(goodsSkuList==null || goodsSkuList.size() == 0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "商品尚未设置零售价,请先设置价格! "); |
| | | } |
| | | for(Goods param: list){ |
| | | Goods goods = getGoodsFromListById(param.getId(),goodsList,goodsSkuList); |
| | | if(goods ==null ){ |
| | | continue; |
| | | } |
| | | //如果是上架 |
| | | goods.setGoodsSkuList(goodsSkuList); |
| | | if(goods.getSkuPrice() == null || goods.getSkuPrice().compareTo(new BigDecimal(0)) <=0){ |
| | | //默认sku信息 |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":商品商品尚未设置零售价,无法上架"); |
| | | } |
| | | if(Constants.formatLongNum(goods.getPricedShopNum()) <= shopNum){ |
| | | //默认sku信息 |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":有未设置供货价的经销商,无法上架"); |
| | | } |
| | | } |
| | | Goods update=new Goods(); |
| | | update.setEditor(user.getId()); |
| | | update.setEditDate(new Date()); |
| | | update.setStatus(model.getStatus()); |
| | | update.setId(model.getId()); |
| | | goodsMapper.updateById(model); |
| | | goodsMapper.update(null,new UpdateWrapper<Goods>().lambda() |
| | | .set(Goods::getEditDate,new Date() ) |
| | | .set(Goods::getEditor,user.getId()) |
| | | .set(Goods::getStatus,Constants.ZERO ) |
| | | .in(Goods::getId,idList)); |
| | | } |
| | | |
| | | private Goods getGoodsFromListById(Integer id, List<Goods> goodsList, List<GoodsSku> skuList) { |
| | | for(Goods model: goodsList){ |
| | | if(Constants.equalsObject(model.getIdList(),id)){ |
| | | for(GoodsSku sku :skuList){ |
| | | if(Constants.equalsInteger(sku.getGoodsId(),id)){ |
| | | model.setSkuPrice(sku.getPrice()); |
| | | } |
| | | } |
| | | return model; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | |
| | | queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getParentCategoryId); |
| | | //库存量 |
| | | queryWrapper.select("(select sum(STOCK) from goods_sku where ISDELETED=0 and GOODS_ID=t.id) as stockNum "); |
| | | queryWrapper.select("(select count(id) from shop_goods_relation s where s.ISDELETED=0 and s.GOODS_ID=t.id) as pricedShopNum "); |
| | | if(pageWrap.getModel().getShopId() !=null){ |
| | | queryWrapper.select("(select s.price from shop_goods_relation s where s.ISDELETED=0 and s.GOODS_ID=t.id and s.shop_id="+pageWrap.getModel().getShopId()+" limit 1) as shopPrice");//商家供货价 |
| | | }else{ |
| | | queryWrapper.select("(select count(s.id) from shop_goods_relation s left join shop g on s.SHOP_ID =g.id where g.status=0 and s.ISDELETED=0 and s.GOODS_ID=t.id) as pricedShopNum "); |
| | | } |
| | | //实际销量 |
| | | queryWrapper.select("(select sum(gd.GOODS_NUM) from goodsorder_detail gd" + |
| | | " inner join goods_sku gs on gs.id=gd.GOODS_SKU_ID" + |
| | |
| | | queryWrapper.eq(pageWrap.getModel().getBrandId() != null, Goods::getBrandId, pageWrap.getModel().getBrandId()); |
| | | queryWrapper.eq(pageWrap.getModel().getStatus() != null, Goods::getStatus, pageWrap.getModel().getStatus()); |
| | | queryWrapper.in(pageWrap.getModel().getIdList() != null && pageWrap.getModel().getIdList().size()>0, Goods::getId, pageWrap.getModel().getIdList()); |
| | | if(pageWrap.getModel().getShopId() !=null){ |
| | | queryWrapper.orderByAsc("shopPrice"); |
| | | } |
| | | queryWrapper.orderByDesc(Goods::getId); |
| | | IPage<Goods> result = goodsAdminJoinMapper.selectJoinPage(page, Goods.class, queryWrapper); |
| | | initResult(result.getRecords()); |
| | | initResult(result.getRecords(),pageWrap.getModel().getShopId()==null); |
| | | return PageData.from(result); |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | |
| | | private void initResult(List<Goods> list) { |
| | | private void initResult(List<Goods> list,boolean shopId) { |
| | | if (list == null || list.size() == 0) { |
| | | return; |
| | | } |
| | | long shopNum = shopMapper.selectCount(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getIsdeleted,Constants.ZERO)); |
| | | long shopNum = 0; |
| | | if(shopId){//不针对商家搜索的话, |
| | | shopNum = shopMapper.selectCount(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getIsdeleted,Constants.ZERO) |
| | | .eq(Shop::getStatus,Constants.ZERO)); |
| | | } |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() |
| | | + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode(); |
| | | for (Goods goods : list) { |