| | |
| | | package com.yeshi.fanli.service.impl.shop;
|
| | |
|
| | | import java.io.InputStream;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | | import java.util.UUID;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | | import org.springframework.web.multipart.MultipartFile;
|
| | | import org.yeshi.utils.tencentcloud.COSManager;
|
| | |
|
| | | import com.yeshi.fanli.dao.mybatis.shop.BanLiShopGoodsMapper;
|
| | | import com.yeshi.fanli.entity.shop.BanLiShopGoods;
|
| | | import com.yeshi.fanli.entity.shop.BanLiShopGoodsImg;
|
| | | import com.yeshi.fanli.entity.shop.BanLiShopGoodsSets;
|
| | | import com.yeshi.fanli.exception.shop.BanLiShopGoodsException;
|
| | | import com.yeshi.fanli.exception.shop.BanLiShopGoodsSetException;
|
| | | import com.yeshi.fanli.exception.shop.BanLiShopGoodsSetPayException;
|
| | | import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsImgService;
|
| | | import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsService;
|
| | | import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsSetService;
|
| | | import com.yeshi.fanli.util.FilePathEnum;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | |
|
| | | @Service
|
| | | public class BanLiShopGoodsServiceImpl implements BanLiShopGoodsService {
|
| | |
|
| | | @Resource
|
| | | private BanLiShopGoodsSetService banLiShopGoodsSetService;
|
| | |
|
| | | @Resource
|
| | | private BanLiShopGoodsImgService banLiShopGoodsImgService;
|
| | |
|
| | | @Resource
|
| | | private BanLiShopGoodsMapper banLiShopGoodsMapper;
|
| | |
|
| | | @Override
|
| | | public List<BanLiShopGoods> listGoods(String key, Integer state, int page, int pageSize) {
|
| | | return banLiShopGoodsMapper.listGoods(key, state, (page - 1) * pageSize, pageSize);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countGoods(String key, Integer state) {
|
| | | return banLiShopGoodsMapper.countGoods(key, state);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public BanLiShopGoods getGoodsDetail(Long goodsId) {
|
| | | return banLiShopGoodsMapper.selectDetailByPrimaryKey(goodsId);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public BanLiShopGoods selectByPrimaryKey(Long id) {
|
| | | return banLiShopGoodsMapper.selectByPrimaryKey(id);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void addGoods(BanLiShopGoods goods)
|
| | | throws BanLiShopGoodsException, BanLiShopGoodsSetException, BanLiShopGoodsSetPayException {
|
| | | if (goods.getId() == null) {// 新增
|
| | | if (goods.getGoodsClass() == null || goods.getGoodsClass().getId() == null) {
|
| | | throw new BanLiShopGoodsSetException(1, "请指定商品分类");
|
| | | }
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(goods.getTitle()))
|
| | | throw new BanLiShopGoodsSetException(1, "缺少标题");
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(goods.getPicture()))
|
| | | throw new BanLiShopGoodsSetException(1, "缺少封面图");
|
| | |
|
| | | // 默认上线
|
| | | if (goods.getState() == null)
|
| | | goods.setState(BanLiShopGoods.STATE_ONLINE);
|
| | |
|
| | | if (goods.getSalesCount() == null)
|
| | | goods.setSalesCount(0L);
|
| | |
|
| | | if (goods.getCreateTime() == null)
|
| | | goods.setCreateTime(new Date());
|
| | |
|
| | | banLiShopGoodsMapper.insertSelective(goods);
|
| | | if (goods.getWeight() == null) {// 权重更新
|
| | | BanLiShopGoods update = new BanLiShopGoods();
|
| | | update.setId(goods.getId());
|
| | | update.setWeight((int) goods.getId().longValue());
|
| | | banLiShopGoodsMapper.updateByPrimaryKeySelective(update);
|
| | | }
|
| | |
|
| | | if (goods.getSetsList() != null && goods.getSetsList().size() > 0) {
|
| | | for (BanLiShopGoodsSets set : goods.getSetsList())// 更新支付方式
|
| | | {
|
| | | set.setGoods(goods);
|
| | | banLiShopGoodsSetService.addSet(set);
|
| | | }
|
| | | }
|
| | |
|
| | | // TODO 更改图片
|
| | | if (goods.getImgList() != null)
|
| | | for (BanLiShopGoodsImg img : goods.getImgList()) {
|
| | | banLiShopGoodsImgService.addImg(img.getUrl(), goods.getId());
|
| | | }
|
| | |
|
| | | } else {// 修改
|
| | | updateSelectiveByPrimaryKey(goods);
|
| | | // 更新支付方式
|
| | | if (goods.getSetsList() != null && goods.getSetsList().size() > 0) {
|
| | | // 删除原有套餐
|
| | | List<BanLiShopGoodsSets> setList = banLiShopGoodsSetService.listByGoodsId(goods.getId());
|
| | | for (BanLiShopGoodsSets set : setList)
|
| | | banLiShopGoodsSetService.deleteByPrimaryKey(set.getId());
|
| | |
|
| | | // 添加新的套餐
|
| | | for (BanLiShopGoodsSets set : goods.getSetsList())// 更新支付方式
|
| | | banLiShopGoodsSetService.addSet(set);
|
| | | }
|
| | |
|
| | | // 更新图片
|
| | | if (goods.getImgList() != null && goods.getImgList().size() > 0) {
|
| | | // 删除原有图片
|
| | | List<BanLiShopGoodsImg> imgList = banLiShopGoodsImgService.listByGoodsId(goods.getId());
|
| | | for (BanLiShopGoodsImg img : imgList)
|
| | | banLiShopGoodsImgService.deleteByPrimaryKey(img.getId());
|
| | | // 添加新的图片
|
| | | for (BanLiShopGoodsImg img : goods.getImgList())// 更新支付方式
|
| | | banLiShopGoodsImgService.addImg(img.getUrl(), goods.getId());
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | public void saveObject(MultipartFile file, MultipartFile file2, BanLiShopGoods record) throws BanLiShopGoodsException, Exception{
|
| | | if (record.getGoodsClass() == null || record.getGoodsClass().getId() == null)
|
| | | throw new BanLiShopGoodsException(1, "请指定商品分类");
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(record.getTitle()))
|
| | | throw new BanLiShopGoodsException(1, "缺少标题");
|
| | |
|
| | | if (file != null)
|
| | | record.setPicture(uploadPicture(file));
|
| | | |
| | | if (file2 != null)
|
| | | record.setSquarePicture(uploadPicture(file2));
|
| | | |
| | | if (record.getState() == null)
|
| | | record.setState(BanLiShopGoods.STATE_ONLINE);
|
| | | |
| | | if (record.getSalesCount() == null)
|
| | | record.setSalesCount(0L);
|
| | | |
| | | record.setUpdateTime(new Date());
|
| | | |
| | | if (record.getId() == null) {
|
| | | if (StringUtil.isNullOrEmpty(record.getPicture()))
|
| | | throw new BanLiShopGoodsException(1, "缺少封面图");
|
| | | |
| | | record.setCreateTime(new Date());
|
| | | banLiShopGoodsMapper.insertSelective(record);
|
| | | } else {
|
| | | BanLiShopGoods resultObj = banLiShopGoodsMapper.selectDetailByPrimaryKey(record.getId());
|
| | | if (resultObj == null)
|
| | | throw new BanLiShopGoodsException(1, "修改内容已不存在");
|
| | | |
| | | if (StringUtil.isNullOrEmpty(record.getPicture())) {
|
| | | record.setPicture(resultObj.getPicture());
|
| | | } else {
|
| | | removePicture(resultObj.getPicture());
|
| | | }
|
| | | |
| | | if (StringUtil.isNullOrEmpty(record.getSquarePicture())) {
|
| | | record.setSquarePicture(resultObj.getSquarePicture());
|
| | | } else {
|
| | | removePicture(resultObj.getSquarePicture());
|
| | | }
|
| | | |
| | | if (StringUtil.isNullOrEmpty(record.getPicture()))
|
| | | throw new BanLiShopGoodsException(1, "缺少封面图");
|
| | | |
| | | record.setCreateTime(resultObj.getCreateTime());
|
| | | banLiShopGoodsMapper.updateByPrimaryKey(record);
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | /**
|
| | | * 上传图片
|
| | | * @param file
|
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | public String uploadPicture(MultipartFile file) throws Exception {
|
| | | // 文件解析 |
| | | InputStream inputStream = file.getInputStream();
|
| | | String contentType = file.getContentType();
|
| | | String type = contentType.substring(contentType.indexOf("/") + 1);
|
| | | // 文件路径
|
| | | String filePath=FilePathEnum.banLiShopGoods.getPath() +UUID.randomUUID().toString().replace("-", "") + "." + type;
|
| | | // 执行上传
|
| | | String fileLink= COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
|
| | | return fileLink;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 删除图片-不更新数据库
|
| | | * @param record
|
| | | * @throws Exception
|
| | | */
|
| | | public void removePicture(String picture) throws Exception {
|
| | | if (picture != null && picture.trim().length() > 0) {
|
| | | COSManager.getInstance().deleteFile(picture);
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | |
| | | @Override
|
| | | public void updateSelectiveByPrimaryKey(BanLiShopGoods goods) {
|
| | | if (goods == null || goods.getId() == null)
|
| | | return;
|
| | | if (goods.getUpdateTime() == null)
|
| | | goods.setUpdateTime(new Date());
|
| | |
|
| | | banLiShopGoodsMapper.updateByPrimaryKeySelective(goods);
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Override
|
| | | public void delete(List<Long> idsList) {
|
| | | if (idsList != null)
|
| | | for (Long id : idsList)
|
| | | deleteByPrimaryKey(id);
|
| | |
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Override
|
| | | public void deleteByPrimaryKey(Long id) {
|
| | | banLiShopGoodsMapper.deleteByPrimaryKey(id);
|
| | | List<BanLiShopGoodsSets> setList = banLiShopGoodsSetService.listByGoodsId(id);
|
| | | if (setList != null)
|
| | | for (BanLiShopGoodsSets set : setList)
|
| | | banLiShopGoodsSetService.deleteByPrimaryKey(set.getId());
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void addSalesCount(Long id, int count) {
|
| | | BanLiShopGoods goods = selectByPrimaryKey(id);
|
| | | if (goods != null) {
|
| | | BanLiShopGoods update = new BanLiShopGoods(id);
|
| | | update.setSalesCount(goods.getSalesCount() + count);
|
| | | update.setUpdateTime(new Date());
|
| | | updateSelectiveByPrimaryKey(goods);
|
| | |
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | | package com.yeshi.fanli.service.impl.shop; |
| | | |
| | | import java.io.InputStream; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.UUID; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import org.yeshi.utils.tencentcloud.COSManager; |
| | | |
| | | import com.yeshi.fanli.dao.mybatis.shop.BanLiShopGoodsMapper; |
| | | import com.yeshi.fanli.entity.shop.BanLiShopGoods; |
| | | import com.yeshi.fanli.entity.shop.BanLiShopGoodsImg; |
| | | import com.yeshi.fanli.entity.shop.BanLiShopGoodsSets; |
| | | import com.yeshi.fanli.exception.shop.BanLiShopGoodsException; |
| | | import com.yeshi.fanli.exception.shop.BanLiShopGoodsSetException; |
| | | import com.yeshi.fanli.exception.shop.BanLiShopGoodsSetPayException; |
| | | import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsImgService; |
| | | import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsService; |
| | | import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsSetService; |
| | | import com.yeshi.fanli.util.FilePathEnum; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | |
| | | @Service |
| | | public class BanLiShopGoodsServiceImpl implements BanLiShopGoodsService { |
| | | |
| | | @Resource |
| | | private BanLiShopGoodsSetService banLiShopGoodsSetService; |
| | | |
| | | @Resource |
| | | private BanLiShopGoodsImgService banLiShopGoodsImgService; |
| | | |
| | | @Resource |
| | | private BanLiShopGoodsMapper banLiShopGoodsMapper; |
| | | |
| | | @Override |
| | | public List<BanLiShopGoods> listGoods(String key, Integer state, int page, int pageSize) { |
| | | return banLiShopGoodsMapper.listGoods(key, state, (page - 1) * pageSize, pageSize); |
| | | } |
| | | |
| | | @Override |
| | | public long countGoods(String key, Integer state) { |
| | | return banLiShopGoodsMapper.countGoods(key, state); |
| | | } |
| | | |
| | | @Override |
| | | public BanLiShopGoods getGoodsDetail(Long goodsId) { |
| | | return banLiShopGoodsMapper.selectDetailByPrimaryKey(goodsId); |
| | | } |
| | | |
| | | @Override |
| | | public BanLiShopGoods selectByPrimaryKey(Long id) { |
| | | return banLiShopGoodsMapper.selectByPrimaryKey(id); |
| | | } |
| | | |
| | | @Override |
| | | public void addGoods(BanLiShopGoods goods) |
| | | throws BanLiShopGoodsException, BanLiShopGoodsSetException, BanLiShopGoodsSetPayException { |
| | | if (goods.getId() == null) {// 新增 |
| | | if (goods.getGoodsClass() == null || goods.getGoodsClass().getId() == null) { |
| | | throw new BanLiShopGoodsSetException(1, "请指定商品分类"); |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(goods.getTitle())) |
| | | throw new BanLiShopGoodsSetException(1, "缺少标题"); |
| | | |
| | | if (StringUtil.isNullOrEmpty(goods.getPicture())) |
| | | throw new BanLiShopGoodsSetException(1, "缺少封面图"); |
| | | |
| | | // 默认上线 |
| | | if (goods.getState() == null) |
| | | goods.setState(BanLiShopGoods.STATE_ONLINE); |
| | | |
| | | if (goods.getSalesCount() == null) |
| | | goods.setSalesCount(0L); |
| | | |
| | | if (goods.getCreateTime() == null) |
| | | goods.setCreateTime(new Date()); |
| | | |
| | | banLiShopGoodsMapper.insertSelective(goods); |
| | | if (goods.getWeight() == null) {// 权重更新 |
| | | BanLiShopGoods update = new BanLiShopGoods(); |
| | | update.setId(goods.getId()); |
| | | update.setWeight((int) goods.getId().longValue()); |
| | | banLiShopGoodsMapper.updateByPrimaryKeySelective(update); |
| | | } |
| | | |
| | | if (goods.getSetsList() != null && goods.getSetsList().size() > 0) { |
| | | for (BanLiShopGoodsSets set : goods.getSetsList())// 更新支付方式 |
| | | { |
| | | set.setGoods(goods); |
| | | banLiShopGoodsSetService.addSet(set); |
| | | } |
| | | } |
| | | |
| | | // TODO 更改图片 |
| | | if (goods.getImgList() != null) |
| | | for (BanLiShopGoodsImg img : goods.getImgList()) { |
| | | banLiShopGoodsImgService.addImg(img.getUrl(), goods.getId()); |
| | | } |
| | | |
| | | } else {// 修改 |
| | | updateSelectiveByPrimaryKey(goods); |
| | | // 更新支付方式 |
| | | if (goods.getSetsList() != null && goods.getSetsList().size() > 0) { |
| | | // 删除原有套餐 |
| | | List<BanLiShopGoodsSets> setList = banLiShopGoodsSetService.listByGoodsId(goods.getId()); |
| | | for (BanLiShopGoodsSets set : setList) |
| | | banLiShopGoodsSetService.deleteByPrimaryKey(set.getId()); |
| | | |
| | | // 添加新的套餐 |
| | | for (BanLiShopGoodsSets set : goods.getSetsList())// 更新支付方式 |
| | | banLiShopGoodsSetService.addSet(set); |
| | | } |
| | | |
| | | // 更新图片 |
| | | if (goods.getImgList() != null && goods.getImgList().size() > 0) { |
| | | // 删除原有图片 |
| | | List<BanLiShopGoodsImg> imgList = banLiShopGoodsImgService.listByGoodsId(goods.getId()); |
| | | for (BanLiShopGoodsImg img : imgList) |
| | | banLiShopGoodsImgService.deleteByPrimaryKey(img.getId()); |
| | | // 添加新的图片 |
| | | for (BanLiShopGoodsImg img : goods.getImgList())// 更新支付方式 |
| | | banLiShopGoodsImgService.addImg(img.getUrl(), goods.getId()); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void saveObject(MultipartFile file, MultipartFile file2, BanLiShopGoods record) throws BanLiShopGoodsException, Exception{ |
| | | if (record.getGoodsClass() == null || record.getGoodsClass().getId() == null) |
| | | throw new BanLiShopGoodsException(1, "请指定商品分类"); |
| | | |
| | | if (StringUtil.isNullOrEmpty(record.getTitle())) |
| | | throw new BanLiShopGoodsException(1, "缺少标题"); |
| | | |
| | | if (file != null) |
| | | record.setPicture(uploadPicture(file)); |
| | | |
| | | if (file2 != null) |
| | | record.setSquarePicture(uploadPicture(file2)); |
| | | |
| | | if (record.getState() == null) |
| | | record.setState(BanLiShopGoods.STATE_ONLINE); |
| | | |
| | | if (record.getSalesCount() == null) |
| | | record.setSalesCount(0L); |
| | | |
| | | record.setUpdateTime(new Date()); |
| | | |
| | | if (record.getId() == null) { |
| | | if (StringUtil.isNullOrEmpty(record.getPicture())) |
| | | throw new BanLiShopGoodsException(1, "缺少封面图"); |
| | | |
| | | record.setCreateTime(new Date()); |
| | | banLiShopGoodsMapper.insertSelective(record); |
| | | } else { |
| | | BanLiShopGoods resultObj = banLiShopGoodsMapper.selectDetailByPrimaryKey(record.getId()); |
| | | if (resultObj == null) |
| | | throw new BanLiShopGoodsException(1, "修改内容已不存在"); |
| | | |
| | | if (StringUtil.isNullOrEmpty(record.getPicture())) { |
| | | record.setPicture(resultObj.getPicture()); |
| | | } else { |
| | | removePicture(resultObj.getPicture()); |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(record.getSquarePicture())) { |
| | | record.setSquarePicture(resultObj.getSquarePicture()); |
| | | } else { |
| | | removePicture(resultObj.getSquarePicture()); |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(record.getPicture())) |
| | | throw new BanLiShopGoodsException(1, "缺少封面图"); |
| | | |
| | | record.setCreateTime(resultObj.getCreateTime()); |
| | | banLiShopGoodsMapper.updateByPrimaryKey(record); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void switchState(Long id) throws BanLiShopGoodsException { |
| | | if (id == null) { |
| | | throw new BanLiShopGoodsException(1, "请传递正确参数"); |
| | | } |
| | | BanLiShopGoods resultObj = banLiShopGoodsMapper.selectByPrimaryKey(id); |
| | | if (resultObj == null) { |
| | | throw new BanLiShopGoodsException(1, "此内容已不存在"); |
| | | } |
| | | |
| | | Integer state = resultObj.getState(); |
| | | if (state == null || state == 0) { |
| | | state = 1; |
| | | } else { |
| | | state = 0; |
| | | } |
| | | |
| | | BanLiShopGoods updateObj = new BanLiShopGoods(); |
| | | updateObj.setId(id); |
| | | updateObj.setState(state); |
| | | banLiShopGoodsMapper.updateByPrimaryKeySelective(updateObj); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 上传图片 |
| | | * @param file |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public String uploadPicture(MultipartFile file) throws Exception { |
| | | // 文件解析 |
| | | InputStream inputStream = file.getInputStream(); |
| | | String contentType = file.getContentType(); |
| | | String type = contentType.substring(contentType.indexOf("/") + 1); |
| | | // 文件路径 |
| | | String filePath=FilePathEnum.banLiShopGoods.getPath() +UUID.randomUUID().toString().replace("-", "") + "." + type; |
| | | // 执行上传 |
| | | String fileLink= COSManager.getInstance().uploadFile(inputStream, filePath).getUrl(); |
| | | return fileLink; |
| | | } |
| | | |
| | | /** |
| | | * 删除图片-不更新数据库 |
| | | * @param record |
| | | * @throws Exception |
| | | */ |
| | | public void removePicture(String picture) throws Exception { |
| | | if (picture != null && picture.trim().length() > 0) { |
| | | COSManager.getInstance().deleteFile(picture); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void updateSelectiveByPrimaryKey(BanLiShopGoods goods) { |
| | | if (goods == null || goods.getId() == null) |
| | | return; |
| | | if (goods.getUpdateTime() == null) |
| | | goods.setUpdateTime(new Date()); |
| | | |
| | | banLiShopGoodsMapper.updateByPrimaryKeySelective(goods); |
| | | } |
| | | |
| | | @Transactional |
| | | @Override |
| | | public void delete(List<Long> idsList) { |
| | | if (idsList != null) |
| | | for (Long id : idsList) |
| | | deleteByPrimaryKey(id); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Transactional |
| | | @Override |
| | | public void deleteByPrimaryKey(Long id) { |
| | | banLiShopGoodsMapper.deleteByPrimaryKey(id); |
| | | List<BanLiShopGoodsSets> setList = banLiShopGoodsSetService.listByGoodsId(id); |
| | | if (setList != null) |
| | | for (BanLiShopGoodsSets set : setList) |
| | | banLiShopGoodsSetService.deleteByPrimaryKey(set.getId()); |
| | | } |
| | | |
| | | @Override |
| | | public void addSalesCount(Long id, int count) { |
| | | BanLiShopGoods goods = selectByPrimaryKey(id); |
| | | if (goods != null) { |
| | | BanLiShopGoods update = new BanLiShopGoods(id); |
| | | update.setSalesCount(goods.getSalesCount() + count); |
| | | update.setUpdateTime(new Date()); |
| | | updateSelectiveByPrimaryKey(goods); |
| | | |
| | | } |
| | | } |
| | | |
| | | } |