From 44aa87717297bb4fca4bb83ba631646a87749174 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Wed, 09 Jul 2025 11:37:58 +0800 Subject: [PATCH] feat(mall): 新增社区功能相关接口和数据结构 --- src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java | 651 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 646 insertions(+), 5 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java index 90a02a0..f84f1a6 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java @@ -2,14 +2,29 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; -import cc.mrbird.febs.common.enumerates.StateUpDownEnum; -import cc.mrbird.febs.mall.dto.clothes.AdminClothesTypeInfoDto; +import cc.mrbird.febs.common.enumerates.*; +import cc.mrbird.febs.common.properties.XcxProperties; +import cc.mrbird.febs.common.utils.SpringContextHolder; +import cc.mrbird.febs.common.utils.excl.ExcelSheetPO; +import cc.mrbird.febs.common.utils.excl.ExcelUtil; +import cc.mrbird.febs.common.utils.excl.ExcelVersion; +import cc.mrbird.febs.common.utils.excl.ResponseHeadUtil; +import cc.mrbird.febs.mall.dto.clothes.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.ClothesTypeService; +import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; +import cc.mrbird.febs.mall.service.IMallMoneyFlowService; +import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesOrderListVo; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesSocialListVo; +import cc.mrbird.febs.pay.util.WeixinServiceUtil; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -17,12 +32,17 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.Map; -import java.util.Set; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -42,6 +62,18 @@ private final ClothesTypeClothMapper clothesTypeClothMapper; private final ClothesTypePatternMapper clothesTypePatternMapper; private final ClothesTypeLocationMapper clothesTypeLocationMapper; + private final ClothesOrderMapper clothesOrderMapper; + private final MallExpressInfoMapper mallExpressInfoMapper; + private final ClothesSocialMapper clothesSocialMapper; + private final ClothesSocialFileMapper clothesSocialFileMapper; + private final ClothesSocialMuseMapper clothesSocialMuseMapper; + private final ClothesSocialCategoryMapper clothesSocialCategoryMapper; + + private final IApiMallMemberWalletService memberWalletService; + private final IMallMoneyFlowService mallMoneyFlowService; + private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class); + @Autowired + private WeixinServiceUtil weixinServiceUtil; @Override public IPage<ClothesType> adminTypeList(ClothesType dto, QueryRequest request) { @@ -421,4 +453,613 @@ } return new FebsResponse().success().message("操作成功"); } + + @Override + public IPage<AdminClothesOrderListVo> getOrderListInPage(AdminClothesOrderListDto dto, QueryRequest request) { + Page<AdminClothesOrderListVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminClothesOrderListVo> vos = clothesOrderMapper.selectOrderListInPage(page, dto); + return vos; + } + + @Override + public FebsResponse deliverGoods(AdminClothesDeliverGoodsDto dto) { + ClothesOrder clothesOrder = clothesOrderMapper.selectById(dto.getId()); + + if(ObjectUtil.isNull(clothesOrder)){ + return new FebsResponse().fail().message("订单不存在,刷新后重试"); + } + Integer status = clothesOrder.getStatus(); + if(ClothesOrderStatusEnum.WAIT_SHIPPING.getValue() != status){ + return new FebsResponse().fail().message("订单不是待发货状态"); + } + String expressNo = dto.getExpressNo(); + if(StrUtil.isEmpty(expressNo)){ + return new FebsResponse().fail().message("请输入物流单号"); + } + String expressCom = dto.getExpressCom(); + if(StrUtil.isEmpty(expressCom)){ + return new FebsResponse().fail().message("请输入物流公司"); + } + MallExpressInfo mallExpressInfo = new MallExpressInfo(); + mallExpressInfo.setMemberId(clothesOrder.getMemberId()); + mallExpressInfo.setOrderId(clothesOrder.getId()); + mallExpressInfo.setOrderNo(clothesOrder.getOrderNo()); + mallExpressInfo.setExpressNo(expressNo); + mallExpressInfo.setExpressCom(expressCom); + mallExpressInfoMapper.insert(mallExpressInfo); + + clothesOrderMapper.update( + null, + Wrappers.lambdaUpdate(ClothesOrder.class) + .set(ClothesOrder::getStatus, ClothesOrderStatusEnum.WAIT_FINISH.getValue()) + .set(ClothesOrder::getUpdatedTime, new Date()) + .set(ClothesOrder::getDeliveryState, OrderDeliveryStateEnum.DELIVERY_FINISH.getValue()) + .eq(ClothesOrder::getId, clothesOrder.getId()) + ); + return new FebsResponse().success().message("操作成功"); + } + + @Override + public FebsResponse deliverGoodsUpdate(AdminClothesDeliverGoodsDto dto) { + ClothesOrder clothesOrder = clothesOrderMapper.selectById(dto.getId()); + + if(ObjectUtil.isNull(clothesOrder)){ + return new FebsResponse().fail().message("订单不存在,刷新后重试"); + } + Integer status = clothesOrder.getStatus(); + if(ClothesOrderStatusEnum.WAIT_FINISH.getValue() != status){ + return new FebsResponse().fail().message("订单不是待发货状态"); + } + String expressNo = dto.getExpressNo(); + if(StrUtil.isEmpty(expressNo)){ + return new FebsResponse().fail().message("请输入物流单号"); + } + String expressCom = dto.getExpressCom(); + if(StrUtil.isEmpty(expressCom)){ + return new FebsResponse().fail().message("请输入物流公司"); + } + MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectOne( + Wrappers.lambdaQuery(MallExpressInfo.class) + .eq(MallExpressInfo::getOrderId, clothesOrder.getId()) + .eq(MallExpressInfo::getOrderNo, clothesOrder.getOrderNo()) + .last("limit 1") + ); + if(ObjectUtil.isNull(mallExpressInfo)){ + return new FebsResponse().fail().message("请先发货"); + } + mallExpressInfoMapper.update( + null, + Wrappers.lambdaUpdate(MallExpressInfo.class) + .set(MallExpressInfo::getExpressNo, expressNo) + .set(MallExpressInfo::getExpressCom, expressCom) + .set(MallExpressInfo::getUpdatedTime, new Date()) + .eq(MallExpressInfo::getId, mallExpressInfo.getId()) + ); + return new FebsResponse().success().message("操作成功"); + } + + + private void clothesUpdateStatusAndUpdateTimeById(Long id, Date date, int value) { + clothesOrderMapper.update( + null, + Wrappers.lambdaUpdate(ClothesOrder.class) + .set(ClothesOrder::getStatus, ClothesOrderStatusEnum.CANCEL.getValue()) + .set(ClothesOrder::getUpdatedTime, new Date()) + .eq(ClothesOrder::getId, id) + ); + } + + private Boolean weChatRefundOrderEvent(int refundMoney, BigDecimal orderAmount, String orderNo, String refundNo) { + Boolean flag; + Boolean debug = xcxProperties.getDebug(); + if (debug) { + if(orderAmount.compareTo(BigDecimal.ZERO) > 0){ + boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null); + flag = b; + }else{ + flag = true; + } + } else { + if(orderAmount.compareTo(BigDecimal.ZERO) > 0){ + log.info("开始调用退款接口。。。退款编号为{}", refundNo); + boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, refundMoney, refundMoney, null); + flag = b; + }else{ + flag = true; + } + } + return flag; + } + @Override + public FebsResponse refundOrder(AdminClothesRefundOrderDto dto) { + ClothesOrder clothesOrder = clothesOrderMapper.selectById(dto.getId()); + if(ObjectUtil.isNull(clothesOrder)){ + return new FebsResponse().fail().message("订单不存在,刷新后重试"); + } + Integer status = clothesOrder.getStatus(); + if(ClothesOrderStatusEnum.WAIT_SHIPPING.getValue() != status){ + return new FebsResponse().fail().message("订单不是待发货状态"); + } + + //退款订单编号 + String orderNo = clothesOrder.getOrderNo(); + //退款退款编号 + String refundNo = clothesOrder.getOrderNo()+"_REFUND_"+clothesOrder.getId(); + //退款订单金额 + BigDecimal orderAmount = clothesOrder.getRealAmount(); + + //余额支付退款 + if(ClothesOrderPayTypeEnum.BALANCE.getName().equals(clothesOrder.getPayMethod())){ + log.info("余额支付退款"); + if(orderAmount.compareTo(BigDecimal.ZERO) > 0){ + //更新订单详情 + clothesUpdateStatusAndUpdateTimeById(clothesOrder.getId(),new Date(),ClothesOrderStatusEnum.CANCEL.getValue()); + + memberWalletService.add(orderAmount, clothesOrder.getMemberId(), "balance"); + mallMoneyFlowService.addMoneyFlow( + clothesOrder.getMemberId(), + orderAmount, + ScoreFlowTypeEnum.REFUND.getValue(), + clothesOrder.getOrderNo(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.REFUND.getDesc(),orderAmount), + 2 + ); + } + return new FebsResponse().success().message("退款成功"); + }else if(ClothesOrderPayTypeEnum.WECHAT.getName().equals(clothesOrder.getPayMethod())){ + + int refundMoney = orderAmount.multiply(new BigDecimal(100)).intValue(); + Boolean flag = weChatRefundOrderEvent(refundMoney, orderAmount, orderNo, refundNo); + if(flag){ + if(orderAmount.compareTo(BigDecimal.ZERO) > 0){ + //更新订单详情 + clothesUpdateStatusAndUpdateTimeById(clothesOrder.getId(),new Date(),ClothesOrderStatusEnum.CANCEL.getValue()); + + mallMoneyFlowService.addMoneyFlow( + clothesOrder.getMemberId(), + orderAmount, + ScoreFlowTypeEnum.WECHAT_REFUND.getValue(), + clothesOrder.getOrderNo(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.WECHAT_REFUND.getDesc(),orderAmount), + 2 + ); + } + }else{ + return new FebsResponse().fail().message("退款失败,请联系客服人员"); + } + }else{ + return new FebsResponse().fail().message("退款失败,请联系客服人员"); + } + + return new FebsResponse().success().message("退款成功"); + } + + @Override + public void confirmOrder(long orderId) { + ClothesOrder clothesOrder = clothesOrderMapper.selectById(orderId); + if(ObjectUtil.isNotNull(clothesOrder) && ClothesOrderStatusEnum.WAIT_FINISH.getValue() == clothesOrder.getStatus()){ + clothesUpdateStatusAndUpdateTimeById(clothesOrder.getId(),new Date(),ClothesOrderStatusEnum.FINISH.getValue()); + } + } + + @Override + public void exportOrderList(List<Long> orderIds, HttpServletResponse response) throws IOException { + List<ExcelSheetPO> res = new ArrayList<>(); + + ExcelSheetPO orderSheet = new ExcelSheetPO(); + String title = "订单列表"; + orderSheet.setSheetName(title); + orderSheet.setTitle(title); + String[] header = {"订单ID", "订单编号", "收货姓名", "收货电话", "收货地址", "商品详情", "备注", "物流单号", "物流公司", "物流公司码"}; + orderSheet.setHeaders(header); + + QueryRequest request = new QueryRequest(); + request.setPageNum(1); + request.setPageSize(9999); + List<ClothesOrder> dataList = clothesOrderMapper.selectList( + Wrappers.lambdaQuery(ClothesOrder.class) + .in(ClothesOrder::getId, orderIds) + .eq(ClothesOrder::getDelFlag, 0) + .eq(ClothesOrder::getStatus, ClothesOrderStatusEnum.WAIT_SHIPPING.getValue())); + Map<Long, ClothesType> longClothesTypeHashMap = new HashMap<>(); + if(CollUtil.isNotEmpty(dataList)){ + Set<Long> typeIds = dataList.stream().map(ClothesOrder::getTypeId).collect(Collectors.toSet()); + List<ClothesType> clothesTypes = clothesTypeMapper.selectList( + Wrappers.lambdaQuery(ClothesType.class) + .in(ClothesType::getId, typeIds) + ); + if(CollUtil.isNotEmpty(clothesTypes)){ + //stream操作clothesTypes,返回一个HashMap<Long, ClothesType>, key为clothesType.id, value为clothesType + longClothesTypeHashMap = clothesTypes.stream().collect(Collectors.toMap(ClothesType::getId, clothesType -> clothesType)); + } + } + + List<List<Object>> list = new ArrayList<>(); + + if (dataList.size() > 0) { + for (ClothesOrder item : dataList) { + List<Object> temp = new ArrayList<>(); + temp.add(item.getId()); + temp.add(item.getOrderNo()); + temp.add(item.getName()); + temp.add(item.getPhone()); + temp.add(item.getAddress()); + temp.add(longClothesTypeHashMap.get(item.getTypeId()).getName()); + temp.add(item.getRemark()); + list.add(temp); + } + } + orderSheet.setDataList(list); + res.add(orderSheet); + response = ResponseHeadUtil.setExcelHead(response); + response.setHeader("Content-Disposition", + "attachment;filename=" + URLEncoder.encode(title + DateUtil.format(new Date(), "yyyyMMDDHHmmss") + ".xlsx".trim(), "UTF-8")); + OutputStream os = response.getOutputStream(); + ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true); + } + + @Override + public void deliverGoodsImport(AdminClothesDeliverGoodsDto dto) { + ClothesOrder clothesOrder = clothesOrderMapper.selectById(dto.getId()); + + if(ObjectUtil.isNull(clothesOrder)){ + return; + } + Integer status = clothesOrder.getStatus(); + if(ClothesOrderStatusEnum.WAIT_SHIPPING.getValue() != status){ + return; + } + String expressNo = dto.getExpressNo(); + if(StrUtil.isEmpty(expressNo)){ + return; + } + String expressCom = dto.getExpressCom(); + if(StrUtil.isEmpty(expressCom)){ + return; + } + mallExpressInfoMapper.update( + null, + Wrappers.lambdaUpdate(MallExpressInfo.class) + .set(MallExpressInfo::getExpressNo, expressNo) + .set(MallExpressInfo::getExpressCom, expressCom) + .eq(MallExpressInfo::getOrderId, clothesOrder.getId()) + .eq(MallExpressInfo::getOrderNo, clothesOrder.getOrderNo()) + ); + + clothesOrderMapper.update( + null, + Wrappers.lambdaUpdate(ClothesOrder.class) + .set(ClothesOrder::getStatus, ClothesOrderStatusEnum.WAIT_FINISH.getValue()) + .set(ClothesOrder::getUpdatedTime, new Date()) + .set(ClothesOrder::getDeliveryState, OrderDeliveryStateEnum.DELIVERY_ING.getValue()) + .eq(ClothesOrder::getId, clothesOrder.getId()) + ); + } + + @Override + public IPage<AdminClothesSocialListVo> getSocialListInPage(AdminClothesSocialListDto dto, QueryRequest request) { + Page<AdminClothesSocialListVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminClothesSocialListVo> vos = clothesSocialMapper.selectSocialListInPage(page, dto); + return vos; + } + + @Override + public FebsResponse socialState(Long id, Integer state) { + + ClothesSocial clothesSocial = clothesSocialMapper.selectById(id); + if(ObjectUtil.isNull(clothesSocial)){ + throw new RuntimeException("内容不存在"); + } + clothesSocialMapper.update( + null, + Wrappers.lambdaUpdate(ClothesSocial.class) + .set(ClothesSocial::getState, state) + .eq(ClothesSocial::getId, id) + ); + return new FebsResponse().success().message("操作成功"); + } + + @Override + public FebsResponse socialHotState(Long id, Integer state) { + + ClothesSocial clothesSocial = clothesSocialMapper.selectById(id); + if(ObjectUtil.isNull(clothesSocial)){ + throw new RuntimeException("内容不存在"); + } + clothesSocialMapper.update( + null, + Wrappers.lambdaUpdate(ClothesSocial.class) + .set(ClothesSocial::getHotState, state) + .eq(ClothesSocial::getId, id) + ); + return new FebsResponse().success().message("操作成功"); + } + + @Override + public FebsResponse socialDelete(Long id) { + ClothesSocial clothesSocial = clothesSocialMapper.selectById(id); + if(ObjectUtil.isNull(clothesSocial)){ + throw new RuntimeException("内容不存在"); + } + clothesSocialMapper.update( + null, + Wrappers.lambdaUpdate(ClothesSocial.class) + .set(ClothesSocial::getDelFlag, ClothesEnum.UP.getCode()) + .eq(ClothesSocial::getId, id) + ); + return new FebsResponse().success().message("操作成功"); + } + + @Override + public List<ClothesSocialCategory> allGroup() { + List<ClothesSocialCategory> list = + clothesSocialCategoryMapper.selectList( + Wrappers.lambdaQuery(ClothesSocialCategory.class) + .eq(ClothesSocialCategory::getState, ClothesEnum.UP.getCode()) + .eq(ClothesSocialCategory::getDeleteFlag, ClothesEnum.DOWN.getCode()) + .orderByDesc(ClothesSocialCategory::getOrderCnt) + ); + if(CollUtil.isNotEmpty(list)){ + return list; + } + return Collections.emptyList(); + } + + @Override + public IPage<ClothesSocialCategory> getGroupList(AdminClothesSocialCategoryDto dto, QueryRequest request) { + Page<ClothesSocialCategory> page = new Page<>(request.getPageNum(), request.getPageSize()); + LambdaQueryWrapper<ClothesSocialCategory> queryWrapper = new LambdaQueryWrapper<>(); + if(StrUtil.isNotEmpty(dto.getName())){ + queryWrapper.like(ClothesSocialCategory::getName,dto.getName()); + } + if(ObjectUtil.isNotEmpty(dto.getStatus())){ + queryWrapper.eq(ClothesSocialCategory::getState,dto.getStatus()); + } + if(ObjectUtil.isNotEmpty(dto.getHotState())){ + queryWrapper.eq(ClothesSocialCategory::getHotState,dto.getHotState()); + } + queryWrapper.eq(ClothesSocialCategory::getDeleteFlag, ClothesEnum.DOWN.getCode()); + queryWrapper.orderByAsc(ClothesSocialCategory::getOrderCnt); + + Page<ClothesSocialCategory> pages = clothesSocialCategoryMapper.selectPage(page, queryWrapper); + return pages; + } + + @Override + public FebsResponse addGroup(AdminClothesCategoryAddDto dto) { + ClothesSocialCategory entity = new ClothesSocialCategory(); + entity.setName(dto.getName()); + entity.setOrderCnt(dto.getOrderCnt()); + clothesSocialCategoryMapper.insert(entity); + return new FebsResponse().success().message("操作成功"); + } + + @Override + public FebsResponse groupDelete(Long id) { + + ClothesSocialCategory vo = clothesSocialCategoryMapper.selectById(id); + vo.setDeleteFlag(ClothesEnum.UP.getCode()); + clothesSocialCategoryMapper.updateById(vo); + return new FebsResponse().success().message("操作成功"); + } + + @Override + public FebsResponse groupUpdate(AdminClothesCategoryUpdateDto dto) { + + ClothesSocialCategory vo = clothesSocialCategoryMapper.selectById(dto.getId()); + vo.setName(dto.getName()); + vo.setOrderCnt(dto.getOrderCnt()); + clothesSocialCategoryMapper.updateById(vo); + return new FebsResponse().success().message("操作成功"); + } + + @Override + public FebsResponse groupState(Long id, Integer type) { + + ClothesSocialCategory vo = clothesSocialCategoryMapper.selectById(id); + if(ClothesEnum.UP.getCode() == vo.getDeleteFlag()){ + throw new RuntimeException("该分组已删除,无法操作"); + } + + if(type == 1){ + vo.setHotState(vo.getHotState() == ClothesEnum.UP.getCode() ? ClothesEnum.DOWN.getCode() : ClothesEnum.UP.getCode()); + } + + if(type == 2){ + vo.setState(vo.getState() == ClothesEnum.UP.getCode() ? ClothesEnum.DOWN.getCode() : ClothesEnum.UP.getCode()); + } + clothesSocialCategoryMapper.updateById(vo); + return new FebsResponse().success().message("操作成功"); + } + + @Override + public FebsResponse socialAdd(ClothesSocial dto) { + if(ObjectUtil.isEmpty(dto.getMemberId())){ + throw new RuntimeException("请选择发布人"); + } + if(ObjectUtil.isEmpty(dto.getCategoryId())){ + throw new RuntimeException("请选择分类"); + } + ClothesSocial entity = new ClothesSocial(); + BeanUtil.copyProperties(dto, entity); + clothesSocialMapper.insert(entity); + + String thumbs = dto.getThumbs(); + if (StrUtil.isNotEmpty(thumbs)) { + List<String> list = StrUtil.splitTrim(thumbs, ","); + if (CollUtil.isNotEmpty(list)) { + int i = 1; + for (String img : list) { + ClothesSocialFile clothesSocialFile = new ClothesSocialFile(); + clothesSocialFile.setSocialId(entity.getId()); + clothesSocialFile.setFileUrl(img); + clothesSocialFile.setSeq(i); + clothesSocialFileMapper.insert(clothesSocialFile); + i++; + } + } + } + + if(ObjectUtil.isNotNull(dto.getTypeId())){ + ClothesSocialMuse clothesSocialMuse = new ClothesSocialMuse(); + clothesSocialMuse.setSocialId(entity.getId()); + clothesSocialMuse.setTypeId(dto.getTypeId()); + clothesSocialMuseMapper.insert(clothesSocialMuse); + } + + return new FebsResponse().success().message("操作成功"); + } + + @Override + public FebsResponse socialUpdate(ClothesSocial dto) { + ClothesSocial entity = clothesSocialMapper.selectById(dto.getId()); + if(ObjectUtil.isNull(entity)){ + throw new RuntimeException("内容不存在,无法操作"); + } + entity.setCategoryId(dto.getCategoryId()); + entity.setMemberId(dto.getMemberId()); + entity.setName(dto.getName()); + entity.setContent(dto.getContent()); + entity.setIndexFile(dto.getIndexFile()); + entity.setOrderCnt(dto.getOrderCnt()); + + clothesSocialMapper.updateById(entity); + + clothesSocialFileMapper.delete( + Wrappers.lambdaQuery(ClothesSocialFile.class) + .eq(ClothesSocialFile::getSocialId, entity.getId()) + ); + String thumbs = dto.getThumbs(); + if (StrUtil.isNotEmpty(thumbs)) { + List<String> list = StrUtil.splitTrim(thumbs, ","); + if (CollUtil.isNotEmpty(list)) { + int i = 1; + for (String img : list) { + ClothesSocialFile clothesSocialFile = new ClothesSocialFile(); + clothesSocialFile.setSocialId(entity.getId()); + clothesSocialFile.setFileUrl(img); + clothesSocialFile.setSeq(i); + clothesSocialFileMapper.insert(clothesSocialFile); + i++; + } + } + } + + clothesSocialMuseMapper.delete( + Wrappers.lambdaQuery(ClothesSocialMuse.class) + .eq(ClothesSocialMuse::getSocialId, entity.getId()) + ); + if(ObjectUtil.isNotNull(dto.getTypeId())){ + ClothesSocialMuse clothesSocialMuse = new ClothesSocialMuse(); + clothesSocialMuse.setSocialId(entity.getId()); + clothesSocialMuse.setTypeId(dto.getTypeId()); + clothesSocialMuseMapper.insert(clothesSocialMuse); + } + + return new FebsResponse().success().message("操作成功"); + } + + @Override + public List<ClothesType> allType() { + List<ClothesType> list = + clothesTypeMapper.selectList( + Wrappers.lambdaQuery(ClothesType.class) + .eq(ClothesType::getState, ClothesEnum.UP.getCode()) + ); + if(CollUtil.isNotEmpty(list)){ + return list; + } + return Collections.emptyList(); + } + + @Override + public List<ClothesCloth> allCloth(Long typeId) { + List<ClothesTypeCloth> entities = clothesTypeClothMapper.selectList( + Wrappers.lambdaQuery(ClothesTypeCloth.class) + .eq(ClothesTypeCloth::getTypeId, typeId) + ); + if(CollUtil.isNotEmpty(entities)){ + Set<Long> ids = entities.stream().map(ClothesTypeCloth::getClothId).collect(Collectors.toSet()); + return clothesClothMapper.selectBatchIds(ids); + } + return Collections.emptyList(); + } + + @Override + public List<ClothesPattern> allPattern(Long typeId) { + List<ClothesTypePattern> entities = clothesTypePatternMapper.selectList( + Wrappers.lambdaQuery(ClothesTypePattern.class) + .eq(ClothesTypePattern::getTypeId, typeId) + ); + if(CollUtil.isNotEmpty(entities)){ + Set<Long> ids = entities.stream().map(ClothesTypePattern::getPatternId).collect(Collectors.toSet()); + return clothesPatternMapper.selectBatchIds(ids); + } + return Collections.emptyList(); + } + + @Override + public List<ClothesLocation> allLocation(Long typeId) { + List<ClothesTypeLocation> entities = clothesTypeLocationMapper.selectList( + Wrappers.lambdaQuery(ClothesTypeLocation.class) + .eq(ClothesTypeLocation::getTypeId, typeId) + ); + if(CollUtil.isNotEmpty(entities)){ + Set<Long> ids = entities.stream().map(ClothesTypeLocation::getLocationId).collect(Collectors.toSet()); + return clothesLocationMapper.selectBatchIds(ids); + } + return Collections.emptyList(); + } + + @Override + public List<ClothesSize> allSize(Long typeId) { + List<ClothesTypeSize> entities = clothesTypeSizeMapper.selectList( + Wrappers.lambdaQuery(ClothesTypeSize.class) + .eq(ClothesTypeSize::getTypeId, typeId) + ); + if(CollUtil.isNotEmpty(entities)){ + Set<Long> ids = entities.stream().map(ClothesTypeSize::getSizeId).collect(Collectors.toSet()); + return clothesSizeMapper.selectBatchIds(ids); + } + return Collections.emptyList(); + } + + @Override + public List<ClothesArt> allArt(Long typeId) { + List<ClothesTypeArt> entities = clothesTypeArtMapper.selectList( + Wrappers.lambdaQuery(ClothesTypeArt.class) + .eq(ClothesTypeArt::getTypeId, typeId) + ); + if(CollUtil.isNotEmpty(entities)){ + Set<Long> ids = entities.stream().map(ClothesTypeArt::getArtId).collect(Collectors.toSet()); + return clothesArtMapper.selectBatchIds(ids); + } + return Collections.emptyList(); + } + + @Override + public FebsResponse socialMuseUpdate(ClothesSocialMuse dto) { + Long id = dto.getId(); + + ClothesSocialMuse entity = clothesSocialMuseMapper.selectById(id); + if(ObjectUtil.isNotNull(entity)){ + entity.setClothId(dto.getClothId()); + entity.setLocationId(dto.getLocationId()); + entity.setSizeId(dto.getSizeId()); + entity.setPatternId(dto.getPatternId()); + entity.setArtId(dto.getArtId()); + + JSONObject jsonObject = new JSONObject(); + jsonObject.putByPath("text", dto.getPatternText()); + jsonObject.putByPath("file", dto.getPatternImage()); + entity.setPatternRemark(jsonObject.toString()); + + clothesSocialMuseMapper.updateById(entity); + } + + return new FebsResponse().success().message("操作成功"); + } + } -- Gitblit v1.9.1