From 80fd41ea0dc602ac3ca33778f17fce5bc2e817b1 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 16 一月 2026 18:58:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java | 145 +++++++++++++++++++++++++++++++++++++++---------
1 files changed, 117 insertions(+), 28 deletions(-)
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
index 5e2cce9..f4f382f 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
@@ -18,17 +18,20 @@
import com.doumee.dao.business.model.Goods;
import com.doumee.dao.business.model.Labels;
import com.doumee.dao.web.response.LabelsResponse;
+import com.doumee.service.business.AreasService;
import com.doumee.service.business.LabelsService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
@@ -54,36 +57,46 @@
private AreasMapper areasMapper;
@Autowired
+ private AreasService areasService;
+ @Autowired
private SystemDictDataBiz systemDictDataBiz;
@Autowired
private GoodsAdminJoinMapper goodsAdminJoinMapper;
@Override
+ @Transactional
public Integer create(Labels labels) {
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
labels.setCreator(user.getId());
labels.setCreateDate(new Date());
+ labels.setEditor(user.getId());
+ labels.setEditDate(labels.getCreateDate());
labels.setIsdeleted(Constants.ZERO);
labels.setStatus(Constants.ZERO);
- /* if(labels.getParentId()!=null){
+ /*if(labels.getParentId()!=null){
labels.setType(Constants.LabelsType.GOODSTYPE.getKey());
}else{
labels.setType(Constants.LabelsType.GOODSBRAND.getKey());
}*/
labelsMapper.insert(labels);
- if(Constants.equalsInteger(labels.getType(),Constants.LabelsType.BIG_AREA.getKey())
+ if((Constants.equalsInteger(labels.getType(),Constants.LabelsType.BIG_AREA.getKey())
+ ||Constants.equalsInteger(labels.getType(),Constants.LabelsType.YUN_FEE.getKey()))
&& labels.getAreaIdList()!=null
&&labels.getAreaIdList().size()>0){
- areasMapper.update(null,new UpdateWrapper<Areas>().lambda()
- .set(Areas::getBigAreaId,labels.getId())
- .in(Areas::getId,labels.getAreaIdList()));
+ areasMapper.update(null,new UpdateWrapper<Areas>().lambda()
+ .set(Constants.equalsInteger(labels.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId,labels.getId())
+ .set(Constants.equalsInteger(labels.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId,labels.getId())
+ .in(Constants.equalsInteger(labels.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getId,labels.getAreaIdList())
+ .in(Constants.equalsInteger(labels.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getId,labels.getAreaIdList()));
+ areasService.cacheData();
}
return labels.getId();
}
@Override
+ @Transactional
public void deleteById(Integer id) {
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
Labels query= labelsJoinMapper.selectById(id);
@@ -106,6 +119,18 @@
labels.setEditDate(new Date());
labels.setEditor(user.getId());
labelsMapper.updateById(labels);
+ if(query!=null &&( Constants.equalsInteger(query.getType(),Constants.LabelsType.BIG_AREA.getKey())
+ || Constants.equalsInteger(query.getType(),Constants.LabelsType.YUN_FEE.getKey()))){
+ int num = areasMapper.update(null, new UpdateWrapper<Areas>().lambda()
+ .set(Constants.equalsInteger(query.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId, null)
+ .eq(Constants.equalsInteger(query.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId, labels.getId())
+ .set(Constants.equalsInteger(query.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId, null)
+ .eq(Constants.equalsInteger(query.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId, labels.getId()));
+ if(num>0){
+ areasService.cacheData();
+ }
+ }
+
}
@Override
@@ -119,22 +144,34 @@
}
@Override
+ @Transactional
public void deleteByIdInBatch(List<Integer> ids) {
if (CollectionUtils.isEmpty(ids)) {
return;
}
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
Labels labels=new Labels();
- ids.stream().forEach(s->{
+ int num =0;
+ for(Integer s : ids){
labels.setId(s);
labels.setIsdeleted(Constants.ONE);
labels.setEditDate(new Date());
labels.setEditor(user.getId());
labelsMapper.updateById(labels);
- });
+ num += areasMapper.update(null, new UpdateWrapper<Areas>().lambda()
+ .set(Areas::getBigAreaId, null)
+ .eq(Areas::getBigAreaId, labels.getId()));
+ num += areasMapper.update(null, new UpdateWrapper<Areas>().lambda()
+ .set(Areas::getYunFeeId, null)
+ .eq(Areas::getYunFeeId, labels.getId()));
+ }
+ if(num>0){
+ areasService.cacheData();
+ }
}
@Override
+ @Transactional
public void updateById(Labels labels) {
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
labels.setEditDate(new Date());
@@ -147,17 +184,25 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
labelsMapper.updateById(labels);
- if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())){
+ if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())
+ ||Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey())){
//鍏堟竻绌哄師鏉ユ墍鏈夌粦瀹氱殑鏁版嵁
- areasMapper.update(null, new UpdateWrapper<Areas>().lambda()
- .set(Areas::getBigAreaId, null)
- .eq(Areas::getBigAreaId, labels.getId()));
+ int num = areasMapper.update(null, new UpdateWrapper<Areas>().lambda()
+ .set(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId, null)
+ .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId, labels.getId())
+ .set(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId, null)
+ .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId, labels.getId()));
if( labels.getAreaIdList()!=null
&&labels.getAreaIdList().size()>0){
//璁剧疆鏈�鏂扮粦瀹氱殑鏁版嵁
- areasMapper.update(null, new UpdateWrapper<Areas>().lambda()
- .set(Areas::getBigAreaId, labels.getId())
- .in(Areas::getId, labels.getAreaIdList()));
+ num += areasMapper.update(null, new UpdateWrapper<Areas>().lambda()
+ .set(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId, labels.getId())
+ .in(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getId, labels.getAreaIdList())
+ .set(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId, labels.getId())
+ .in(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getId, labels.getAreaIdList()));
+ }
+ if(num>0){
+ areasService.cacheData();
}
}
}
@@ -184,18 +229,21 @@
@Override
public Labels findById(Integer id) {
- Labels labels= labelsMapper.selectById(id);
- if(labels != null){
+ Labels model= labelsMapper.selectById(id);
+ if(model != null){
String resourcePath=systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode();
- getLablesIcon(labels,resourcePath);
- if(Constants.equalsInteger(labels.getType(),Constants.LabelsType.BIG_AREA.getKey())){
+ getLablesIcon(model,resourcePath);
+ if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())
+ ||Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey())){
//濡傛灉鏄ぇ鍖轰俊鎭紝鏌ヨ鎵�鏈夌粦瀹氶鐪佷唤淇℃伅
- labels.setAreaList(areasMapper.selectList(new LambdaQueryWrapper<Areas>()
+ model.setAreaList(areasMapper.selectList(new LambdaQueryWrapper<Areas>()
.eq(Areas::getIsdeleted,Constants.ZERO)
- .eq(Areas::getBigAreaId,labels.getId())));
+ .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId,model.getId())
+ .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId,model.getId())));
+
}
}
- return labels;
+ return model;
}
@Override
@@ -206,10 +254,7 @@
@Override
public List<Labels> findList(Labels labels) {
-
-
MPJLambdaWrapper<Labels> query = new MPJLambdaWrapper<>();
-
if(labels!=null&&labels.getParentId()!=null){
query.eq(Labels::getParentId,labels.getParentId());
}else{
@@ -222,14 +267,42 @@
}
query.eq(Labels::getIsdeleted,Constants.ZERO);
query.eq(labels.getType()!=null,Labels::getType,labels.getType());
+ query.orderByAsc(Labels::getSortnum);
List<Labels> list= labelsJoinMapper.selectList(query);
+ List<Labels> childList= null;
+ if(Constants.equalsInteger(labels.getType(),Constants.LabelsType.APPLICABLE_BRAND.getKey())){
+ childList= labelsJoinMapper.selectList(new QueryWrapper<Labels>().lambda()
+ .eq(Labels::getIsdeleted,Constants.ZERO)
+ .eq(Labels::getType,Constants.LabelsType.SERIES_BRAND.getKey())
+ .orderByAsc(Labels::getSortnum));
+ }
for(Labels model:list){
- if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())){
+ if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())
+ ||Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey())){
//濡傛灉鏄ぇ鍖轰俊鎭紝鏌ヨ鎵�鏈夌粦瀹氶鐪佷唤淇℃伅
model.setAreaList(areasMapper.selectList(new LambdaQueryWrapper<Areas>()
.eq(Areas::getIsdeleted,Constants.ZERO)
- .eq(Areas::getBigAreaId,model.getId())));
+ .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId,model.getId())
+ .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId,model.getId())));
}
+ if(Constants.equalsInteger(labels.getType(),Constants.LabelsType.APPLICABLE_BRAND.getKey())
+ &&Constants.equalsInteger(model.getType(),Constants.LabelsType.APPLICABLE_BRAND.getKey())){
+ //濡傛灉鏄�傚簲鍝佺墝锛屽垯鏌ヨ涓嬬骇绯诲垪
+ model.setChildList(getChildListbyParentId(childList,model.getId()));
+ }
+ }
+ return list;
+ }
+
+ private List<Labels> getChildListbyParentId(List<Labels> childList, Integer id) {
+ List<Labels> list = new ArrayList<>();
+ if(childList!=null && childList.size()>0){
+ for(Labels labels : childList){
+ if(Constants.equalsInteger(labels.getParentId(),id)){
+ list.add(labels);
+ }
+ }
+
}
return list;
}
@@ -243,6 +316,15 @@
queryWrapper.selectAll(Labels.class);
queryWrapper.select("(select name from labels where id=t.PARENT_ID) as parentName");
+ if(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.LabelsType.HOMEZHUANQU.getKey())){
+ queryWrapper.select("(select count(g.id) from goods g where g.isdeleted=0 and g.ZHUANQU_IDS like concat('%[',t.id,']%') ) as goodsNum");
+ }
+ if(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.LabelsType.APPLICABLE_BRAND.getKey())){
+ queryWrapper.select("(select count(g.id) from goods g where g.isdeleted=0 and g.BRAND_IDS like concat('%[',t.id,']%') ) as goodsNum");
+ }
+ if(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.LabelsType.SERIES_BRAND.getKey())){
+ queryWrapper.select("(select count(g.id) from goods g where g.isdeleted=0 and g.SERIAL_IDS like concat('%[',t.id,']%') ) as goodsNum");
+ }
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Labels::getName,pageWrap.getModel().getName());
queryWrapper.eq(pageWrap.getModel().getParentId()!=null,Labels::getParentId,pageWrap.getModel().getParentId());
queryWrapper.eq(pageWrap.getModel().getType()!=null,Labels::getType,pageWrap.getModel().getType());
@@ -264,17 +346,24 @@
IPage<Labels> result = labelsJoinMapper.selectJoinPage(page,Labels.class, queryWrapper);
/* String resourcePath=systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode();*/
if(org.apache.commons.collections.CollectionUtils.isNotEmpty(result.getRecords())){
+ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
+ + systemDictDataBiz.queryByCode(Constants.OSS,Constants.LABELS_IMG).getCode();
for(Labels model:result.getRecords()){
if(model.getParentId()==null){
model.setTypeLevel(0);
}else{
model.setTypeLevel(1);
}
- if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())){
+ if(StringUtils.isNotBlank(model.getImgurl())){
+ model.setImgFullurl(path + model.getImgurl());
+ }
+ if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())
+ || Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey())){
//濡傛灉鏄ぇ鍖轰俊鎭紝鏌ヨ鎵�鏈夌粦瀹氶鐪佷唤淇℃伅
model.setAreaList(areasMapper.selectList(new LambdaQueryWrapper<Areas>()
.eq(Areas::getIsdeleted,Constants.ZERO)
- .eq(Areas::getBigAreaId,model.getId())));
+ .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId,model.getId())
+ .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId,model.getId())));
}
}
}
--
Gitblit v1.9.3