|  |  |  | 
|---|
|  |  |  | package com.ruoyi.other.service.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import cn.hutool.core.util.ObjectUtil; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
|---|
|  |  |  | import com.ruoyi.account.api.feignClient.AppUserClient; | 
|---|
|  |  |  | import com.ruoyi.account.api.model.AppUser; | 
|---|
|  |  |  | import com.ruoyi.common.core.constant.TokenConstants; | 
|---|
|  |  |  | import com.ruoyi.common.core.domain.R; | 
|---|
|  |  |  | import com.ruoyi.common.core.utils.ServletUtils; | 
|---|
|  |  |  | import com.ruoyi.common.core.utils.StringUtils; | 
|---|
|  |  |  | import com.ruoyi.common.core.utils.bean.BeanUtils; | 
|---|
|  |  |  | import com.ruoyi.common.core.web.page.PageInfo; | 
|---|
|  |  |  | import com.ruoyi.common.security.service.TokenService; | 
|---|
|  |  |  | import com.ruoyi.common.security.utils.SecurityUtils; | 
|---|
|  |  |  | import com.ruoyi.order.feignClient.OrderClient; | 
|---|
|  |  |  | import com.ruoyi.order.feignClient.RemoteOrderGoodsClient; | 
|---|
|  |  |  | import com.ruoyi.order.vo.Price; | 
|---|
|  |  |  | import com.ruoyi.other.api.domain.*; | 
|---|
|  |  |  | import com.ruoyi.other.api.vo.GetGoodsBargainPrice; | 
|---|
|  |  |  | import com.ruoyi.other.api.vo.GetSeckillActivityInfo; | 
|---|
|  |  |  | import com.ruoyi.other.enums.GoodsStatus; | 
|---|
|  |  |  | import com.ruoyi.other.mapper.GoodsAreaMapper; | 
|---|
|  |  |  | import com.ruoyi.other.mapper.GoodsMapper; | 
|---|
|  |  |  | import com.ruoyi.other.mapper.GoodsShopMapper; | 
|---|
|  |  |  | import com.ruoyi.other.mapper.ShopMapper; | 
|---|
|  |  |  | import com.ruoyi.other.service.*; | 
|---|
|  |  |  | import com.ruoyi.other.util.GeodesyUtil; | 
|---|
|  |  |  | import com.ruoyi.other.vo.GoodsVO; | 
|---|
|  |  |  | import com.ruoyi.system.api.model.LoginUser; | 
|---|
|  |  |  | import org.jetbrains.annotations.NotNull; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | import org.springframework.util.CollectionUtils; | 
|---|
|  |  |  | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  | import java.util.stream.Stream; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * <p> | 
|---|
|  |  |  | 
|---|
|  |  |  | private GoodsAreaService goodsAreaService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private RemoteOrderGoodsClient remoteOrderGoodsClient; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private SeckillActivityInfoService seckillActivityInfoService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private GoodsSeckillService goodsSeckillService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private GoodsBargainPriceService goodsBargainPriceService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private GoodsBargainPriceDetailService goodsBargainPriceDetailService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private OrderClient orderClient; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private GoodsEvaluateService goodsEvaluateService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<GoodsVO> goodsList(Goods search) { | 
|---|
|  |  |  | List<Goods> goodsList = this.list(new LambdaQueryWrapper<Goods>() | 
|---|
|  |  |  | .eq(Goods::getStatus, GoodsStatus.UP.getCode()) | 
|---|
|  |  |  | .eq(Objects.nonNull(search.getGoodsCategoryId()), Goods::getGoodsCategoryId, search.getGoodsCategoryId()) | 
|---|
|  |  |  | .like(StringUtils.isNotEmpty(search.getName()), Goods::getName, search.getName())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<GoodsVO> result = new ArrayList<>(); | 
|---|
|  |  |  | LoginUser loginUserApplet = tokenService.getLoginUserApplet(); | 
|---|
|  |  |  | for (Goods goods : goodsList) { | 
|---|
|  |  |  | GoodsVO goodsVO = new GoodsVO(); | 
|---|
|  |  |  | BeanUtils.copyBeanProp(goodsVO, goods); | 
|---|
|  |  |  | goodsVO.setGoodsId(goods.getId()); | 
|---|
|  |  |  | goodsVO.setGoodsName(goods.getName()); | 
|---|
|  |  |  | R<Price> r = remoteOrderGoodsClient.getGoodsPrice(loginUserApplet.getUserid(), goods.getId(), null); | 
|---|
|  |  |  | if (R.isSuccess(r)){ | 
|---|
|  |  |  | Price price = r.getData(); | 
|---|
|  |  |  | goodsVO.setSellingPrice(price.getCash()); | 
|---|
|  |  |  | goodsVO.setIntegral(price.getPoint()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | result.add(goodsVO); | 
|---|
|  |  |  | public PageInfo<GoodsVO> goodsList(Goods search) { | 
|---|
|  |  |  | Integer vipId = 0; | 
|---|
|  |  |  | String provinceCode = null; | 
|---|
|  |  |  | String cityCode = null; | 
|---|
|  |  |  | String districtCode = null; | 
|---|
|  |  |  | String token = SecurityUtils.getToken(ServletUtils.getRequest()); | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(token)){ | 
|---|
|  |  |  | Long userid = tokenService.getLoginUserApplet().getUserid(); | 
|---|
|  |  |  | AppUser appUser = appUserClient.getAppUserById(userid); | 
|---|
|  |  |  | vipId = appUser.getVipId(); | 
|---|
|  |  |  | provinceCode = appUser.getProvinceCode(); | 
|---|
|  |  |  | cityCode = appUser.getCityCode(); | 
|---|
|  |  |  | districtCode = appUser.getDistrictCode(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  | List<GoodsVO> list = this.baseMapper.goodsList(search.getGoodsCategoryId(), search.getName(), vipId); | 
|---|
|  |  |  | for (GoodsVO goods : list) { | 
|---|
|  |  |  | Price price = getPrice(vipId, goods.getGoodsId(), null, 1, provinceCode, cityCode, districtCode); | 
|---|
|  |  |  | if(null != price){ | 
|---|
|  |  |  | goods.setCashPayment(price.getCashPayment() ? 1 : 0); | 
|---|
|  |  |  | goods.setPointPayment(price.getPointPayment() ? 1 : 0); | 
|---|
|  |  |  | goods.setSellingPrice(price.getCash()); | 
|---|
|  |  |  | goods.setIntegral(price.getPoint()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer data = orderClient.getGoodsSaleNum(goods.getGoodsId(), 1).getData(); | 
|---|
|  |  |  | goods.setSaleNum(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //手动排序 | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(search.getOrderByColumn())){ | 
|---|
|  |  |  | if("selling_price".equals(search.getOrderByColumn())){ | 
|---|
|  |  |  | list.sort(new Comparator<GoodsVO>() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public int compare(GoodsVO o1, GoodsVO o2) { | 
|---|
|  |  |  | if(null != o1.getSellingPrice() && null != o2.getSellingPrice()){ | 
|---|
|  |  |  | return o1.getSellingPrice().compareTo(o2.getSellingPrice()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(null == o1.getSellingPrice() && null != o2.getSellingPrice()){ | 
|---|
|  |  |  | return BigDecimal.ZERO.compareTo(o2.getSellingPrice()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(null != o1.getSellingPrice() && null == o2.getSellingPrice()){ | 
|---|
|  |  |  | return o1.getSellingPrice().compareTo(BigDecimal.ZERO) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if("integral".equals(search.getOrderByColumn())){ | 
|---|
|  |  |  | list.sort(new Comparator<GoodsVO>() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public int compare(GoodsVO o1, GoodsVO o2) { | 
|---|
|  |  |  | if(null != o1.getIntegral() && null != o2.getIntegral()){ | 
|---|
|  |  |  | return o1.getIntegral().compareTo(o2.getIntegral()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(null == o1.getIntegral() && null != o2.getIntegral()){ | 
|---|
|  |  |  | return Integer.valueOf(0).compareTo(o2.getIntegral()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(null != o1.getIntegral() && null == o2.getIntegral()){ | 
|---|
|  |  |  | return o1.getIntegral().compareTo(Integer.valueOf(0)) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if("sale_num".equals(search.getOrderByColumn())){ | 
|---|
|  |  |  | list.sort(new Comparator<GoodsVO>() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public int compare(GoodsVO o1, GoodsVO o2) { | 
|---|
|  |  |  | return o1.getSaleNum().compareTo(o2.getSaleNum()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //手动处理分页 | 
|---|
|  |  |  | PageInfo<GoodsVO> pageInfo = new PageInfo<>(); | 
|---|
|  |  |  | pageInfo.setSize(search.getPageSize()); | 
|---|
|  |  |  | pageInfo.setTotal(list.size()); | 
|---|
|  |  |  | Integer pageSize = search.getPageSize(); | 
|---|
|  |  |  | Integer pageNum = (search.getPageCurr() - 1) * pageSize; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(list.size() >= (pageNum + 1) * pageSize){ | 
|---|
|  |  |  | list = list.subList(pageNum, pageNum + pageSize); | 
|---|
|  |  |  | }else if(pageNum < list.size() && list.size() < (pageNum + 1) * pageSize){ | 
|---|
|  |  |  | list = list.subList(pageNum, list.size()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | list = new ArrayList<>(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return pageInfo.setRecords(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public GoodsVO goodsDetail(Long goodsId) { | 
|---|
|  |  |  | public GoodsVO goodsDetail(Long goodsId, String longitude, String latitude) { | 
|---|
|  |  |  | if (goodsId == null || goodsId <= 0) { | 
|---|
|  |  |  | throw new NullPointerException("商品ID不能为空"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | LoginUser loginUserApplet = tokenService.getLoginUserApplet(); | 
|---|
|  |  |  | AppUser appUser = appUserClient.getAppUserById(loginUserApplet.getUserid()); | 
|---|
|  |  |  | BigDecimal sellingPrice; | 
|---|
|  |  |  | Integer integral; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | GoodsArea goodsArea = goodsAreaMapper.selectOne(new LambdaQueryWrapper<GoodsArea>() | 
|---|
|  |  |  | .eq(GoodsArea::getGoodsId, goodsId) | 
|---|
|  |  |  | .eq(GoodsArea::getProvinceCode, appUser.getProvinceCode()) | 
|---|
|  |  |  | .eq(StringUtils.isNotEmpty(appUser.getCityCode()), GoodsArea::getCityCode, appUser.getCityCode()) | 
|---|
|  |  |  | .eq(StringUtils.isNotEmpty(appUser.getDistrictCode()), GoodsArea::getDistrictsCode, appUser.getDistrictCode())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (Objects.nonNull(goodsArea)){ | 
|---|
|  |  |  | sellingPrice = goodsArea.getSellingPrice(); | 
|---|
|  |  |  | integral = goodsArea.getIntegral(); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | VipSetting vipSetting = vipSettingService.getVipSettingByUserId(loginUserApplet.getUserid()); | 
|---|
|  |  |  | GoodsVip goodsVip = goodsVipService.getOne(new LambdaQueryWrapper<GoodsVip>() | 
|---|
|  |  |  | .eq(GoodsVip::getVip, vipSetting.getId()) | 
|---|
|  |  |  | .eq(GoodsVip::getGoodsId, goodsId)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | sellingPrice = goodsVip.getSellingPrice(); | 
|---|
|  |  |  | integral = goodsVip.getIntegral(); | 
|---|
|  |  |  | Integer vipId = 0; | 
|---|
|  |  |  | String provinceCode = null; | 
|---|
|  |  |  | String cityCode = null; | 
|---|
|  |  |  | String districtCode = null; | 
|---|
|  |  |  | String token = SecurityUtils.getToken(ServletUtils.getRequest()); | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(token)){ | 
|---|
|  |  |  | Long userid = tokenService.getLoginUserApplet().getUserid(); | 
|---|
|  |  |  | AppUser appUser = appUserClient.getAppUserById(userid); | 
|---|
|  |  |  | vipId = appUser.getVipId(); | 
|---|
|  |  |  | provinceCode = appUser.getProvinceCode(); | 
|---|
|  |  |  | cityCode = appUser.getCityCode(); | 
|---|
|  |  |  | districtCode = appUser.getDistrictCode(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Goods goods = this.getById(goodsId); | 
|---|
|  |  |  | if(null == goods || goods.getDelFlag() == 1){ | 
|---|
|  |  |  | throw new RuntimeException("商品不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(goods.getStatus() == 1){ | 
|---|
|  |  |  | throw new RuntimeException("商品已被下架"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!goods.getCommodityAuthority().contains("-1") && !goods.getCommodityAuthority().contains(vipId.toString())){ | 
|---|
|  |  |  | throw new RuntimeException("权限不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | GoodsVO goodsVO = new GoodsVO(); | 
|---|
|  |  |  | BeanUtils.copyBeanProp(goodsVO, goods); | 
|---|
|  |  |  | goodsVO.setGoodsId(goods.getId()); | 
|---|
|  |  |  | goodsVO.setGoodsName(goods.getName()); | 
|---|
|  |  |  | goodsVO.setSellingPrice(sellingPrice); | 
|---|
|  |  |  | goodsVO.setIntegral(integral); | 
|---|
|  |  |  | Price price = getPrice(vipId, goods.getId(), null, 1, provinceCode, cityCode, districtCode); | 
|---|
|  |  |  | if(null != price){ | 
|---|
|  |  |  | goodsVO.setPointPayment(price.getPointPayment() ? 1 : 0); | 
|---|
|  |  |  | goodsVO.setCashPayment(price.getCashPayment() ? 1 : 0); | 
|---|
|  |  |  | goodsVO.setSellingPrice(price.getCash()); | 
|---|
|  |  |  | goodsVO.setIntegral(price.getPoint()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<GoodsShop> goodsShopList = goodsShopMapper.selectList(new LambdaQueryWrapper<GoodsShop>() | 
|---|
|  |  |  | .eq(GoodsShop::getGoodsId, goodsId)); | 
|---|
|  |  |  | if (!CollectionUtils.isEmpty(goodsShopList)){ | 
|---|
|  |  |  | List<Integer> shopIds = goodsShopList.stream().map(GoodsShop::getShopId).collect(Collectors.toList()); | 
|---|
|  |  |  | if(goods.getType() == 1){ | 
|---|
|  |  |  | if(goods.getAppointStore() == 2){ | 
|---|
|  |  |  | List<Shop> shopList = shopMapper.selectList(new LambdaQueryWrapper<Shop>() | 
|---|
|  |  |  | .in(Shop::getDelFlag, 0)); | 
|---|
|  |  |  | goodsVO.setShopList(shopList); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | List<GoodsShop> goodsShopList = goodsShopMapper.selectList(new LambdaQueryWrapper<GoodsShop>() | 
|---|
|  |  |  | .eq(GoodsShop::getGoodsId, goodsId)); | 
|---|
|  |  |  | if (!CollectionUtils.isEmpty(goodsShopList)){ | 
|---|
|  |  |  | List<Integer> shopIds = goodsShopList.stream().map(GoodsShop::getShopId).collect(Collectors.toList()); | 
|---|
|  |  |  | List<Shop> shopList = shopMapper.selectList(new LambdaQueryWrapper<Shop>() | 
|---|
|  |  |  | .in(Shop::getId, shopIds)); | 
|---|
|  |  |  | goodsVO.setShopList(shopList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | List<Shop> shopList = shopMapper.selectList(new LambdaQueryWrapper<Shop>() | 
|---|
|  |  |  | .in(Shop::getId, shopIds)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .in(Shop::getDelFlag, 0)); | 
|---|
|  |  |  | goodsVO.setShopList(shopList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(longitude) && StringUtils.isNotEmpty(latitude)){ | 
|---|
|  |  |  | List<Shop> shopList = goodsVO.getShopList(); | 
|---|
|  |  |  | for (Shop shop : shopList) { | 
|---|
|  |  |  | Double wgs84 = GeodesyUtil.getDistance(longitude + "," + latitude, shop.getLongitude() + "," + shop.getLatitude()).get("WGS84"); | 
|---|
|  |  |  | shop.setDistance(wgs84); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | shopList.sort(new Comparator<Shop>() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public int compare(Shop o1, Shop o2) { | 
|---|
|  |  |  | return o1.getDistance().compareTo(o2.getDistance()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | goodsVO.setShopList(shopList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer integer = orderClient.getGoodsSaleNum(goods.getId(), 1).getData(); | 
|---|
|  |  |  | goodsVO.setSaleNum(integer); | 
|---|
|  |  |  | GoodsEvaluate goodsEvaluate = goodsEvaluateService.lambdaQuery().eq(GoodsEvaluate::getGoodsId, goodsId) | 
|---|
|  |  |  | .orderByDesc(GoodsEvaluate::getGrade).eq(GoodsEvaluate::getStatus, 2).eq(GoodsEvaluate::getDelFlag, 0).last(" limit 0, 1").one(); | 
|---|
|  |  |  | if (null != goodsEvaluate) { | 
|---|
|  |  |  | AppUser appUserById = appUserClient.getAppUserById(goodsEvaluate.getAppUserId()); | 
|---|
|  |  |  | if(null != appUserById){ | 
|---|
|  |  |  | goodsEvaluate.setUserName(appUserById.getName()); | 
|---|
|  |  |  | goodsEvaluate.setAvatar(appUserById.getAvatar()); | 
|---|
|  |  |  | goodsEvaluate.setIdStr(String.valueOf(goodsEvaluate.getId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | goodsVO.setGoodsEvaluate(goodsEvaluate); | 
|---|
|  |  |  | return goodsVO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<Goods> getGoodsListByShopId(Integer shopId) { | 
|---|
|  |  |  | LoginUser loginUserApplet = tokenService.getLoginUserApplet(); | 
|---|
|  |  |  | VipSetting vipSetting = vipSettingService.getVipSettingByUserId(loginUserApplet.getUserid()); | 
|---|
|  |  |  | return goodsMapper.selectListByShopId(shopId, vipSetting.getId()); | 
|---|
|  |  |  | public List<Goods> getGoodsListByShopId(PageInfo<Goods> pageInfo, Integer shopId) { | 
|---|
|  |  |  | Integer vipId = 0; | 
|---|
|  |  |  | String provinceCode = null; | 
|---|
|  |  |  | String cityCode = null; | 
|---|
|  |  |  | String districtCode = null; | 
|---|
|  |  |  | String token = SecurityUtils.getToken(ServletUtils.getRequest()); | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(token)){ | 
|---|
|  |  |  | Long userid = tokenService.getLoginUserApplet().getUserid(); | 
|---|
|  |  |  | AppUser appUser = appUserClient.getAppUserById(userid); | 
|---|
|  |  |  | vipId = appUser.getVipId(); | 
|---|
|  |  |  | provinceCode = appUser.getProvinceCode(); | 
|---|
|  |  |  | cityCode = appUser.getCityCode(); | 
|---|
|  |  |  | districtCode = appUser.getDistrictCode(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Goods> goods = goodsMapper.selectListByShopId(pageInfo, shopId, vipId); | 
|---|
|  |  |  | for (Goods good : goods) { | 
|---|
|  |  |  | Price price = getPrice(vipId, good.getId(), shopId, 1, provinceCode, cityCode, districtCode); | 
|---|
|  |  |  | if(null != price){ | 
|---|
|  |  |  | good.setCashPayment(price.getCashPayment() ? 1 : 0); | 
|---|
|  |  |  | good.setPointPayment(price.getPointPayment() ? 1 : 0); | 
|---|
|  |  |  | good.setSellingPrice(price.getCash()); | 
|---|
|  |  |  | good.setIntegral(price.getPoint()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer data = orderClient.getGoodsSaleNum(good.getId(), 1).getData(); | 
|---|
|  |  |  | good.setSaleNum(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return goods; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 指定门店 | 
|---|
|  |  |  | Integer appointStore = goods.getAppointStore(); | 
|---|
|  |  |  | if (appointStore == 1){ | 
|---|
|  |  |  | if (null != appointStore && appointStore == 1){ | 
|---|
|  |  |  | List<GoodsShop> goodsShopList = goods.getGoodsShopList(); | 
|---|
|  |  |  | if (CollectionUtils.isEmpty(goodsShopList)){ | 
|---|
|  |  |  | throw new NullPointerException("请选择指定门店"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (GoodsShop goodsShop : goodsShopList) { | 
|---|
|  |  |  | goodsShop.setGoodsId(goods.getId()); | 
|---|
|  |  |  | goodsShop.setId(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | goodsShopService.saveBatch(goodsShopList); | 
|---|
|  |  |  | saveGoodsShopList(goodsShopList, goods.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 指定用户 | 
|---|
|  |  |  | List<GoodsAppUser> goodsAppUserList = goods.getGoodsAppUserList(); | 
|---|
|  |  |  | if (!CollectionUtils.isEmpty(goodsAppUserList)){ | 
|---|
|  |  |  | for (GoodsAppUser goodsAppUser : goodsAppUserList) { | 
|---|
|  |  |  | goodsAppUser.setId(null ); | 
|---|
|  |  |  | goodsAppUser.setGoodsId(goods.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | goodsAppUserService.saveBatch(goodsAppUserList); | 
|---|
|  |  |  | saveGoodsAppUserList(goodsAppUserList, goods.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 会员价格配置 | 
|---|
|  |  |  | List<GoodsVip> goodsVipList = goods.getGoodsVipList(); | 
|---|
|  |  |  | for (GoodsVip goodsVip : goodsVipList) { | 
|---|
|  |  |  | goodsVip.setId(null); | 
|---|
|  |  |  | goodsVip.setGoodsId(goods.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | goodsVipService.saveBatch(goodsVipList); | 
|---|
|  |  |  | saveGoodsVipList(goodsVipList, goods.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 特殊地区售价设置 | 
|---|
|  |  |  | List<GoodsArea> goodsAreaList = goods.getGoodsAreaList(); | 
|---|
|  |  |  | if (!CollectionUtils.isEmpty(goodsAreaList)){ | 
|---|
|  |  |  | for (GoodsArea goodsArea : goodsAreaList) { | 
|---|
|  |  |  | List<GoodsArea> goodsAreaList1 = goodsArea.getGoodsAreaList(); | 
|---|
|  |  |  | for (GoodsArea area : goodsAreaList1) { | 
|---|
|  |  |  | area.setGoodsId(goods.getId()); | 
|---|
|  |  |  | area.setProvince(goodsArea.getProvince()); | 
|---|
|  |  |  | area.setCity(goodsArea.getCity()); | 
|---|
|  |  |  | area.setDistricts(goodsArea.getDistricts()); | 
|---|
|  |  |  | area.setProvinceCode(goodsArea.getProvinceCode()); | 
|---|
|  |  |  | area.setCityCode(goodsArea.getCityCode()); | 
|---|
|  |  |  | area.setDistrictsCode(goodsArea.getDistrictsCode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | goodsAreaService.saveBatch(goodsAreaList1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | saveGoodsAreaList(goodsAreaList, goods.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void updateManageGoods(Goods goods) { | 
|---|
|  |  |  | goodsMapper.updateById(goods); | 
|---|
|  |  |  | this.updateById(goods); | 
|---|
|  |  |  | //修改个别字段 | 
|---|
|  |  |  | this.update(new LambdaUpdateWrapper<Goods>().eq(Goods::getId, goods.getId()).set(Goods::getSellingPrice, goods.getSellingPrice()) | 
|---|
|  |  |  | .set(Goods::getIntegral, goods.getIntegral())); | 
|---|
|  |  |  | // 指定门店 | 
|---|
|  |  |  | List<GoodsShop> goodsShopList = goods.getGoodsShopList(); | 
|---|
|  |  |  | goodsShopService.updateBatchById(goodsShopList); | 
|---|
|  |  |  | saveGoodsShopList(goodsShopList, goods.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 指定用户 | 
|---|
|  |  |  | List<GoodsAppUser> goodsAppUserList = goods.getGoodsAppUserList(); | 
|---|
|  |  |  | goodsAppUserService.updateBatchById(goodsAppUserList); | 
|---|
|  |  |  | saveGoodsAppUserList(goodsAppUserList, goods.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 会员价格配置 | 
|---|
|  |  |  | List<GoodsVip> goodsVipList = goods.getGoodsVipList(); | 
|---|
|  |  |  | goodsVipService.updateBatchById(goodsVipList); | 
|---|
|  |  |  | saveGoodsVipList(goodsVipList, goods.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 特殊地区售价设置 | 
|---|
|  |  |  | List<GoodsArea> goodsAreaList = goods.getGoodsAreaList(); | 
|---|
|  |  |  | saveGoodsAreaList(goodsAreaList, goods.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void saveGoodsAreaList(List<GoodsArea> goodsAreaList, Integer id) { | 
|---|
|  |  |  | goodsAreaService.remove(new LambdaQueryWrapper<GoodsArea>() | 
|---|
|  |  |  | .eq(GoodsArea::getGoodsId, id)); | 
|---|
|  |  |  | if (!CollectionUtils.isEmpty(goodsAreaList)){ | 
|---|
|  |  |  | for (GoodsArea goodsArea : goodsAreaList) { | 
|---|
|  |  |  | List<GoodsArea> goodsAreaList1 = goodsArea.getGoodsAreaList(); | 
|---|
|  |  |  | List<GoodsArea> goodsAreaList2 = new ArrayList<>(); | 
|---|
|  |  |  | for (GoodsArea area : goodsAreaList1) { | 
|---|
|  |  |  | area.setGoodsId(goods.getId()); | 
|---|
|  |  |  | area.setId(null); | 
|---|
|  |  |  | area.setGoodsId(id); | 
|---|
|  |  |  | area.setProvince(goodsArea.getProvince()); | 
|---|
|  |  |  | area.setCity(goodsArea.getCity()); | 
|---|
|  |  |  | area.setDistricts(goodsArea.getDistricts()); | 
|---|
|  |  |  | area.setProvinceCode(goodsArea.getProvinceCode()); | 
|---|
|  |  |  | area.setCityCode(goodsArea.getCityCode()); | 
|---|
|  |  |  | area.setDistrictsCode(goodsArea.getDistrictsCode()); | 
|---|
|  |  |  | goodsAreaList1.add(area); | 
|---|
|  |  |  | if(null != area.getSellingPrice() && null != area.getIntegral()){ | 
|---|
|  |  |  | goodsAreaList2.add(area); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | goodsAreaService.updateBatchById(goodsAreaList1); | 
|---|
|  |  |  | goodsAreaService.saveBatch(goodsAreaList2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void saveGoodsVipList(List<GoodsVip> goodsVipList, Integer id) { | 
|---|
|  |  |  | goodsVipService.remove(new LambdaQueryWrapper<GoodsVip>() | 
|---|
|  |  |  | .eq(GoodsVip::getGoodsId, id)); | 
|---|
|  |  |  | goodsVipList.forEach(item -> { | 
|---|
|  |  |  | item.setId(null); | 
|---|
|  |  |  | item.setGoodsId(id); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | goodsVipService.saveBatch(goodsVipList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void saveGoodsAppUserList(List<GoodsAppUser> goodsAppUserList, Integer id) { | 
|---|
|  |  |  | goodsAppUserService.remove(new LambdaQueryWrapper<GoodsAppUser>() | 
|---|
|  |  |  | .eq(GoodsAppUser::getGoodsId, id)); | 
|---|
|  |  |  | if (!CollectionUtils.isEmpty(goodsAppUserList)){ | 
|---|
|  |  |  | for (GoodsAppUser goodsAppUser : goodsAppUserList) { | 
|---|
|  |  |  | goodsAppUser.setId(null); | 
|---|
|  |  |  | goodsAppUser.setGoodsId(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | goodsAppUserService.saveBatch(goodsAppUserList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void saveGoodsShopList(List<GoodsShop> goodsShopList, Integer goodsId) { | 
|---|
|  |  |  | goodsShopService.remove(new LambdaQueryWrapper<GoodsShop>() | 
|---|
|  |  |  | .eq(GoodsShop::getGoodsId, goodsId)); | 
|---|
|  |  |  | if (!CollectionUtils.isEmpty(goodsShopList)){ | 
|---|
|  |  |  | for (GoodsShop goodsShop : goodsShopList) { | 
|---|
|  |  |  | goodsShop.setGoodsId(goodsId); | 
|---|
|  |  |  | goodsShop.setId(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | goodsShopService.saveBatch(goodsShopList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (GoodsShop goodsShop : goodsShops) { | 
|---|
|  |  |  | Shop shop = shopMapper.selectById(goodsShop.getShopId()); | 
|---|
|  |  |  | goodsShop.setShopName(shop.getName()); | 
|---|
|  |  |  | goodsShop.setOwnerName(shop.getShopManager()); | 
|---|
|  |  |  | goodsShop.setPhone(shop.getPhone()); | 
|---|
|  |  |  | goodsShop.setAddress(shop.getAddress()); | 
|---|
|  |  |  | if(null != shop){ | 
|---|
|  |  |  | goodsShop.setShopName(shop.getName()); | 
|---|
|  |  |  | goodsShop.setOwnerName(shop.getShopManager()); | 
|---|
|  |  |  | goodsShop.setPhone(shop.getPhone()); | 
|---|
|  |  |  | goodsShop.setAddress(shop.getAddress()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | goods.setGoodsShopList(goodsShops); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | goodsAppUser.setUserName(u.getName()); | 
|---|
|  |  |  | goodsAppUser.setPhone(u.getPhone()); | 
|---|
|  |  |  | VipSetting vipSetting = vipSettingService.getById(u.getVipId()); | 
|---|
|  |  |  | goodsAppUser.setVipName(vipSetting.getVipName()); | 
|---|
|  |  |  | if (vipSetting != null){ | 
|---|
|  |  |  | goodsAppUser.setVipName(vipSetting.getVipName()); | 
|---|
|  |  |  | goodsAppUser.setVipId(u.getVipId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | // 会员价格 | 
|---|
|  |  |  | List<GoodsVip> goodsVipList = goodsVipService.list(new LambdaQueryWrapper<GoodsVip>() | 
|---|
|  |  |  | .eq(GoodsVip::getGoodsId, goodsId)); | 
|---|
|  |  |  | List<VipSetting> vipSettings = getVipSettings(goodsVipList.stream().map(GoodsVip::getVip)); | 
|---|
|  |  |  | goodsVipList.forEach(goodsArea -> vipSettings.stream() | 
|---|
|  |  |  | .filter(vipSetting -> vipSetting.getId().equals(goodsArea.getVip())) | 
|---|
|  |  |  | .findFirst().ifPresent( vipSetting -> goodsArea.setVipName(vipSetting.getVipName()))); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | goods.setGoodsVipList(goodsVipList); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 特殊地区售价设置 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<GoodsArea> goodsAreaList1 = new ArrayList<>(); | 
|---|
|  |  |  | listMap.forEach((s, goodsAreas) -> { | 
|---|
|  |  |  | GoodsArea goodsArea = goodsAreas.get(0); | 
|---|
|  |  |  | GoodsArea goodsArea1 = new GoodsArea(); | 
|---|
|  |  |  | goodsArea1.setProvinceCode(goodsArea.getProvinceCode()); | 
|---|
|  |  |  | goodsArea1.setCityCode(goodsArea.getCityCode()); | 
|---|
|  |  |  | goodsArea1.setDistrictsCode(goodsArea.getDistrictsCode()); | 
|---|
|  |  |  | goodsArea1.setProvince(goodsArea.getProvince()); | 
|---|
|  |  |  | goodsArea1.setCity(goodsArea.getCity()); | 
|---|
|  |  |  | goodsArea1.setDistricts(goodsArea.getDistricts()); | 
|---|
|  |  |  | goodsArea1.setGoodsAreaList(goodsAreas); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<VipSetting> vipSettings1 = getVipSettings(goodsAreas.stream().map(GoodsArea::getVip)); | 
|---|
|  |  |  | goodsAreas.forEach(goodsArea -> vipSettings1.stream() | 
|---|
|  |  |  | .filter(vipSetting -> vipSetting.getId().equals(goodsArea.getVip())) | 
|---|
|  |  |  | .findFirst().ifPresent( vipSetting -> goodsArea.setVipName(vipSetting.getVipName()))); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | GoodsArea goodsArea1 = getGoodsArea(goodsAreas); | 
|---|
|  |  |  | goodsAreaList1.add(goodsArea1); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | goods.setGoodsAreaList(goodsAreaList1); | 
|---|
|  |  |  | return goods; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private List<VipSetting> getVipSettings(Stream<Integer> goodsVipList) { | 
|---|
|  |  |  | List<Integer> vipIds = goodsVipList.collect(Collectors.toList()); | 
|---|
|  |  |  | if (CollectionUtils.isEmpty(vipIds)){ | 
|---|
|  |  |  | return new ArrayList<>(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return vipSettingService.listByIds(vipIds); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @NotNull | 
|---|
|  |  |  | private static GoodsArea getGoodsArea(List<GoodsArea> goodsAreas) { | 
|---|
|  |  |  | GoodsArea goodsArea = goodsAreas.get(0); | 
|---|
|  |  |  | GoodsArea goodsArea1 = new GoodsArea(); | 
|---|
|  |  |  | goodsArea1.setProvinceCode(goodsArea.getProvinceCode()); | 
|---|
|  |  |  | goodsArea1.setCityCode(goodsArea.getCityCode()); | 
|---|
|  |  |  | goodsArea1.setDistrictsCode(goodsArea.getDistrictsCode()); | 
|---|
|  |  |  | goodsArea1.setProvince(goodsArea.getProvince()); | 
|---|
|  |  |  | goodsArea1.setCity(goodsArea.getCity()); | 
|---|
|  |  |  | goodsArea1.setDistricts(goodsArea.getDistricts()); | 
|---|
|  |  |  | goodsArea1.setGoodsAreaList(goodsAreas); | 
|---|
|  |  |  | return goodsArea1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据商品的价格配置体系获取商品当前的价格 | 
|---|
|  |  |  | * @param vip | 
|---|
|  |  |  | * @param goodsId | 
|---|
|  |  |  | * @param type          1普通商品,2秒杀商品 | 
|---|
|  |  |  | * @param shopId | 
|---|
|  |  |  | * @param provinceCode | 
|---|
|  |  |  | * @param cityCode | 
|---|
|  |  |  | * @param districtCode | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Price getPrice(Integer vip, Integer goodsId, Integer shopId, Integer type, String provinceCode, String cityCode, String districtCode){ | 
|---|
|  |  |  | //获取支付价格 | 
|---|
|  |  |  | //秒杀活动>门店特价>地区价格>会员价格 | 
|---|
|  |  |  | //判断是否有秒杀活动 | 
|---|
|  |  |  | Price price = new Price(); | 
|---|
|  |  |  | SeckillActivityInfo one = seckillActivityInfoService.getOne(new LambdaQueryWrapper<SeckillActivityInfo>().eq(SeckillActivityInfo::getGoodId, goodsId) | 
|---|
|  |  |  | .eq(SeckillActivityInfo::getIsShelves, 1).eq(SeckillActivityInfo::getDelFlag, 0) | 
|---|
|  |  |  | .last(" and now() between start_time and end_time and FIND_IN_SET(" + vip + ", vip_ids) order by create_time desc limit 0, 1")); | 
|---|
|  |  |  | GoodsSeckill goodsSeckill = null; | 
|---|
|  |  |  | if(null != one){ | 
|---|
|  |  |  | goodsSeckill = goodsSeckillService.getOne(new LambdaQueryWrapper<GoodsSeckill>().eq(GoodsSeckill::getSeckillActivityInfoId, one.getId()).eq(GoodsSeckill::getVip, vip)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //没有秒杀活动或者添加的普通商品则不使用秒杀活动价格 | 
|---|
|  |  |  | if(null == goodsSeckill || type == 1){ | 
|---|
|  |  |  | //没有秒杀价,则判断门店特价 | 
|---|
|  |  |  | GoodsBargainPriceDetail bargainPriceDetail = null; | 
|---|
|  |  |  | if (shopId != null){ | 
|---|
|  |  |  | GoodsBargainPrice priceServiceOne = goodsBargainPriceService.getOne(new LambdaQueryWrapper<GoodsBargainPrice>().eq(GoodsBargainPrice::getGoodsId, goodsId).eq(GoodsBargainPrice::getShopId, shopId) | 
|---|
|  |  |  | .eq(GoodsBargainPrice::getDelFlag, 0).eq(GoodsBargainPrice::getAuditStatus, 1).last(" order by create_time desc limit 0, 1")); | 
|---|
|  |  |  | if(null != priceServiceOne){ | 
|---|
|  |  |  | bargainPriceDetail = goodsBargainPriceDetailService.getOne(new LambdaQueryWrapper<GoodsBargainPriceDetail>().eq(GoodsBargainPriceDetail::getGoodsBargainPriceId, priceServiceOne.getId()).eq(GoodsBargainPriceDetail::getVip, vip)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(null == bargainPriceDetail){ | 
|---|
|  |  |  | //没有门店特价,判断地区价格配置 | 
|---|
|  |  |  | LambdaQueryWrapper<GoodsArea> queryWrapper = new LambdaQueryWrapper<GoodsArea>().eq(GoodsArea::getGoodsId, goodsId).eq(GoodsArea::getVip, vip); | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(districtCode)){ | 
|---|
|  |  |  | queryWrapper.eq(GoodsArea::getDistrictsCode, districtCode); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(cityCode)){ | 
|---|
|  |  |  | queryWrapper.eq(GoodsArea::getCityCode, cityCode); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(provinceCode)){ | 
|---|
|  |  |  | queryWrapper.eq(GoodsArea::getProvinceCode, provinceCode); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | GoodsArea goodsArea = goodsAreaService.getOne(queryWrapper); | 
|---|
|  |  |  | if(null == goodsArea){ | 
|---|
|  |  |  | //没有地区价格,则使用会员价格 | 
|---|
|  |  |  | GoodsVip goodsVip = goodsVipService.getOne(new LambdaQueryWrapper<GoodsVip>().eq(GoodsVip::getGoodsId, goodsId).eq(GoodsVip::getVip, vip)); | 
|---|
|  |  |  | if(null == goodsVip){ | 
|---|
|  |  |  | //没有配置价格,直接使用原始基础价格 | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | //构建价格数据 | 
|---|
|  |  |  | if(goodsVip.getCashPayment() == 1 && goodsVip.getPointPayment() == 1){ | 
|---|
|  |  |  | price.setCash(goodsVip.getSellingPrice()); | 
|---|
|  |  |  | price.setPoint(goodsVip.getIntegral()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(goodsVip.getCashPayment() == 1 && goodsVip.getPointPayment() == 0){ | 
|---|
|  |  |  | price.setCash(goodsVip.getSellingPrice()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(goodsVip.getCashPayment() == 0 && goodsVip.getPointPayment() == 1){ | 
|---|
|  |  |  | price.setPoint(goodsVip.getIntegral()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | price.setCashPayment(goodsVip.getCashPayment() == 1); | 
|---|
|  |  |  | price.setPointPayment(goodsVip.getPointPayment() == 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | //构建价格数据 | 
|---|
|  |  |  | if(goodsArea.getCashPayment() == 1 && goodsArea.getPointPayment() == 1){ | 
|---|
|  |  |  | price.setCash(goodsArea.getSellingPrice()); | 
|---|
|  |  |  | price.setPoint(goodsArea.getIntegral()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(goodsArea.getCashPayment() == 1 && goodsArea.getPointPayment() == 0){ | 
|---|
|  |  |  | price.setCash(goodsArea.getSellingPrice()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(goodsArea.getCashPayment() == 0 && goodsArea.getPointPayment() == 1){ | 
|---|
|  |  |  | price.setPoint(goodsArea.getIntegral()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | price.setCashPayment(goodsArea.getCashPayment() == 1); | 
|---|
|  |  |  | price.setPointPayment(goodsArea.getPointPayment() == 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | price.setCash(bargainPriceDetail.getSellingPrice()); | 
|---|
|  |  |  | price.setPoint(bargainPriceDetail.getIntegral()); | 
|---|
|  |  |  | price.setCashPayment(bargainPriceDetail.getSellingPrice() != null); | 
|---|
|  |  |  | price.setPointPayment(bargainPriceDetail.getIntegral() != null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | //构建价格数据 | 
|---|
|  |  |  | if(goodsSeckill.getCashPayment() == 1 && goodsSeckill.getPointPayment() == 1){ | 
|---|
|  |  |  | price.setCash(goodsSeckill.getSellingPrice()); | 
|---|
|  |  |  | price.setPoint(goodsSeckill.getIntegral()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(goodsSeckill.getCashPayment() == 1 && goodsSeckill.getPointPayment() == 0){ | 
|---|
|  |  |  | price.setCash(goodsSeckill.getSellingPrice()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(goodsSeckill.getCashPayment() == 0 && goodsSeckill.getPointPayment() == 1){ | 
|---|
|  |  |  | price.setPoint(goodsSeckill.getIntegral()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | price.setCashPayment(goodsSeckill.getCashPayment() == 1); | 
|---|
|  |  |  | price.setPointPayment(goodsSeckill.getPointPayment() == 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return price; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|