This commit is contained in:
kuang.yife 2023-02-12 03:54:26 +08:00
parent 95cb637e18
commit 2547d9b92c
6 changed files with 127 additions and 2 deletions

View File

@ -8,9 +8,13 @@ import com.ghy.common.enums.BusinessType;
import com.ghy.common.utils.ExceptionUtil; import com.ghy.common.utils.ExceptionUtil;
import com.ghy.common.utils.ShiroUtils; import com.ghy.common.utils.ShiroUtils;
import com.ghy.common.utils.StringUtils; import com.ghy.common.utils.StringUtils;
import com.ghy.common.utils.bean.BeanUtils;
import com.ghy.common.utils.poi.ExcelUtil; import com.ghy.common.utils.poi.ExcelUtil;
import com.ghy.goods.domain.*; import com.ghy.goods.domain.*;
import com.ghy.goods.service.*; import com.ghy.goods.service.*;
import com.ghy.system.domain.SysArea;
import com.ghy.system.service.ISysAreaService;
import io.swagger.annotations.ApiModel;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -41,6 +45,8 @@ public class GoodsController extends BaseController {
private GoodsAreaService goodsAreaService; private GoodsAreaService goodsAreaService;
@Resource @Resource
private GoodsStandardService goodsStandardService; private GoodsStandardService goodsStandardService;
@Resource
private ISysAreaService sysAreaService;
@RequiresPermissions("goods:goods:view") @RequiresPermissions("goods:goods:view")
@GetMapping() @GetMapping()
@ -66,6 +72,83 @@ public class GoodsController extends BaseController {
return getDataTable(list); return getDataTable(list);
} }
@PostMapping("/app/detail")
@ResponseBody
public AjaxResult appDetail(@RequestBody Goods goods){
try {
GoodsEditReq goodsEditReq = new GoodsEditReq();
List<Goods> list = goodsService.selectGoodsList(goods);
if(CollectionUtils.isNotEmpty(list)){
BeanUtils.copyProperties(list.get(0), goodsEditReq);
}
// 补全商品服务区域
List<GoodsArea> goodsAreas = goodsAreaService.selectByGoodsId(goodsEditReq.getGoodsId());
if(CollectionUtils.isNotEmpty(goodsAreas)){
String areaName;
GoodsArea goodsArea = goodsAreas.get(0);
// 第三级
SysArea sysArea3 = sysAreaService.selectById(goodsArea.getCountryAreaId());
// 第二级
SysArea sysArea2 = sysAreaService.selectByAreaCode(sysArea3.getParentCode());
// 第一级
SysArea sysArea1 = sysAreaService.selectByAreaCode(sysArea2.getParentCode());
areaName = sysArea1.getAreaName() + "-" + sysArea2.getAreaName();
goodsEditReq.setAreaConcatName(areaName);
goodsEditReq.setParentAreaId(sysArea2.getAreaId());
}
goodsEditReq.setGoodsAreaList(goodsAreas);
// 补全商品规格
List<GoodsStandard> goodsStandards = goodsStandardService.selectByGoodsId(goodsEditReq.getGoodsId());
if(CollectionUtils.isNotEmpty(goodsStandards)){
String standardConcatName;
GoodsStandard goodsStandard = goodsStandards.get(0);
DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(goodsStandard.getDeptGoodsCategoryId());
// 当前层级4
GoodsCategory goodsCategory4 = goodsCategoryService.selectById(deptGoodsCategory.getGoodsCategoryId());
GoodsCategory goodsCategory3 = goodsCategoryService.selectById(goodsCategory4.getParentCategoryId());
GoodsCategory goodsCategory2 = goodsCategoryService.selectById(goodsCategory3.getParentCategoryId());
GoodsCategory goodsCategory1 = goodsCategoryService.selectById(goodsCategory2.getParentCategoryId());
standardConcatName = goodsCategory1.getGoodsCategoryName() + "-" + goodsCategory2.getGoodsCategoryName() + "-" + goodsCategory3.getGoodsCategoryName();
goodsEditReq.setCategoryConcatName(standardConcatName);
}
//
goodsStandards.forEach(goodsStandard -> {
DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(goodsStandard.getDeptGoodsCategoryId());
GoodsCategory category = goodsCategoryService.selectById(deptGoodsCategory.getGoodsCategoryId());
goodsStandard.setGoodsCategoryName(category.getGoodsCategoryName());
goodsStandard.setChecked(true);
});
goodsEditReq.setGoodsStandardList(goodsStandards);
// 补全商品类目及父级类目信息
GoodsCategory goodsCategory = goodsCategoryService.selectById(goodsEditReq.getDeptGoodsCategoryId());
goodsEditReq.setDeptGoodsCategoryName(goodsCategory.getGoodsCategoryName());
if (goodsCategory.getParentCategoryId() != null) {
GoodsCategory parGoodsCategory = goodsCategoryService.selectById(goodsCategory.getParentCategoryId());
goodsEditReq.setParGoodsCategoryId(parGoodsCategory.getGoodsCategoryId());
goodsEditReq.setParGoodsCategoryName(parGoodsCategory.getGoodsCategoryName());
}
List<String> detailUrl = new ArrayList<>();
List<String> lbUrl = new ArrayList<>();
List<GoodsImgs> goodsImgs = goodsImgsService.selectByGoodsId(goods.getGoodsId());
goodsImgs.forEach(imgs -> {
if(imgs.getImgType() == 0){
lbUrl.add(imgs.getImgUrl());
}else if(imgs.getImgType() == 1){
detailUrl.add(imgs.getImgUrl());
}
});
goodsEditReq.setLbUrl(lbUrl);
goodsEditReq.setDetailUrl(detailUrl);
return AjaxResult.success(goodsEditReq);
}catch (Exception e){
e.printStackTrace();
return AjaxResult.error(e.getMessage());
}
}
@PostMapping("/app/list") @PostMapping("/app/list")
@ResponseBody @ResponseBody
public TableDataInfo appList(@RequestBody Goods goods) { public TableDataInfo appList(@RequestBody Goods goods) {

View File

@ -5,6 +5,7 @@ import com.ghy.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -40,6 +41,8 @@ public class Goods extends BaseEntity {
private String expectDuration; private String expectDuration;
private String areaDesc;
@Excel(name = "商品排序", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "商品排序", cellType = Excel.ColumnType.NUMERIC)
private Integer goodsSort; private Integer goodsSort;
@ -80,4 +83,9 @@ public class Goods extends BaseEntity {
private List<GoodsImgs> goodsImgsList; private List<GoodsImgs> goodsImgsList;
private List<GoodsStandard> goodsStandardList; private List<GoodsStandard> goodsStandardList;
private List<String> detailUrl;
private List<String> lbUrl;
} }

View File

@ -21,4 +21,6 @@ public class GoodsArea {
private String areaName; private String areaName;
private boolean checked;
} }

View File

@ -0,0 +1,21 @@
package com.ghy.goods.domain;
import lombok.Data;
import java.util.List;
/**
* @author clunt
*/
@Data
public class GoodsEditReq extends Goods{
private String categoryConcatName;
private List<GoodsStandard> goodsStandards;
private String areaConcatName;
private Long parentAreaId;
}

View File

@ -43,4 +43,8 @@ public class GoodsStandard extends BaseEntity {
private BigDecimal finalPrice; private BigDecimal finalPrice;
private boolean checked;
private String goodsCategoryName;
} }

View File

@ -24,16 +24,17 @@
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="areaDesc" column="area_desc" />
</resultMap> </resultMap>
<sql id="selectGoods"> <sql id="selectGoods">
SELECT goods_id, goods_code, dept_id, goods_name, goods_desc, warranty_period, serv_activity, goods_unit, expect_duration, goods_sort, worker_id, SELECT goods_id, goods_code, dept_id, goods_name, goods_desc, warranty_period, serv_activity, goods_unit, expect_duration, goods_sort, worker_id,
dept_goods_category_id, goods_img_url, goods_video_url, status, create_by, create_time, remark dept_goods_category_id, goods_img_url, goods_video_url, status, create_by, create_time, remark, area_desc
FROM goods FROM goods
</sql> </sql>
<sql id="selectGoodsWithArea"> <sql id="selectGoodsWithArea">
SELECT DISTINCT g.goods_id, goods_code, dept_id, goods_name, goods_desc, goods_sort, worker_id, goods_unit, warranty_period, serv_activity, expect_duration, SELECT DISTINCT g.goods_id, goods_code, dept_id, goods_name, goods_desc, goods_sort, worker_id, goods_unit, warranty_period, serv_activity, expect_duration,
dept_goods_category_id, goods_img_url, goods_video_url, status, g.create_by, g.create_time, g.remark dept_goods_category_id, goods_img_url, goods_video_url, status, g.create_by, g.create_time, g.remark, g.area_desc
FROM goods g FROM goods g
LEFT JOIN goods_area ga ON g.goods_id = ga.goods_id LEFT JOIN goods_area ga ON g.goods_id = ga.goods_id
</sql> </sql>
@ -53,6 +54,7 @@
<if test="servActivity != null and servActivity!=''">serv_activity = #{servActivity},</if> <if test="servActivity != null and servActivity!=''">serv_activity = #{servActivity},</if>
<if test="expectDuration != null and expectDuration!=''">expect_duration = #{expectDuration},</if> <if test="expectDuration != null and expectDuration!=''">expect_duration = #{expectDuration},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="areaDesc != null and areaDesc != ''">area_desc = #{areaDesc},</if>
update_time = sysdate() update_time = sysdate()
</set> </set>
WHERE goods_id = #{goodsId} WHERE goods_id = #{goodsId}
@ -81,6 +83,7 @@
<if test="goodsVideoUrl != null and goodsVideoUrl != ''">goods_video_url,</if> <if test="goodsVideoUrl != null and goodsVideoUrl != ''">goods_video_url,</if>
<if test="status != null and status != ''">status,</if> <if test="status != null and status != ''">status,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
<if test="areaDesc != null and areaDesc != ''">area_desc,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
create_time create_time
)values( )values(
@ -99,6 +102,7 @@
<if test="goodsVideoUrl != null and goodsVideoUrl != ''">#{goodsVideoUrl},</if> <if test="goodsVideoUrl != null and goodsVideoUrl != ''">#{goodsVideoUrl},</if>
<if test="status != null and status != ''">#{status},</if> <if test="status != null and status != ''">#{status},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
<if test="areaDesc != null and areaDesc != ''">#{areaDesc},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
sysdate() sysdate()
) )
@ -141,6 +145,9 @@
<if test="workerId != null"> <if test="workerId != null">
AND worker_id = #{workerId} AND worker_id = #{workerId}
</if> </if>
<if test="goodsId != null">
AND g.goods_id = #{goodsId}
</if>
</where> </where>
/* 默认生成时间排序 */ /* 默认生成时间排序 */
order by create_time order by create_time