bugfix 修复若干商品管理Bug;小程序商品列表不展示下架商品
This commit is contained in:
		@@ -56,7 +56,7 @@ public class GoodController {
 | 
			
		||||
                searchText = null;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        List<GoodVO> list = goodService.list(cateId, searchText);
 | 
			
		||||
        List<GoodVO> list = goodService.listOnSale(cateId, searchText);
 | 
			
		||||
        return Res.success(list);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -100,7 +100,8 @@ public class GoodController {
 | 
			
		||||
 | 
			
		||||
        // 分类列表
 | 
			
		||||
        List<GoodCategory> cateList = goodService.getCateList();
 | 
			
		||||
        String cateListForMock = JSONArray.from(cateList.stream().map(i -> i.getId()).collect(Collectors.toList())).toString();
 | 
			
		||||
        String cateListForMock = JSONArray.from(cateList.stream()
 | 
			
		||||
                .map(i -> i.getId().toString()).collect(Collectors.toList())).toString();
 | 
			
		||||
 | 
			
		||||
        // id列 字段名(区分大小写;以VO中的变量名为准)
 | 
			
		||||
        // 新增、修改弹窗时,使用该列作为主键列进行操作
 | 
			
		||||
@@ -133,7 +134,7 @@ public class GoodController {
 | 
			
		||||
                        "商品分类", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
 | 
			
		||||
                        FieldRuleListBuilder.create()
 | 
			
		||||
                                .add(FieldRuleBuilder.create("商品分类").required()),
 | 
			
		||||
                        "DPD @pick(" + cateListForMock + "])"
 | 
			
		||||
                        "DPD @pick(" + cateListForMock + ")"
 | 
			
		||||
                )
 | 
			
		||||
                .add("brand", "brand", "商品品牌", "",
 | 
			
		||||
                        FieldType.TEXT, SearchType.INPUT, AddType.INPUT, EditType.INPUT,
 | 
			
		||||
@@ -153,7 +154,7 @@ public class GoodController {
 | 
			
		||||
                                .add(FieldRuleBuilder.create("商品简介").minMax(6, 30)),
 | 
			
		||||
                        "DPD @cword(15, 30)"
 | 
			
		||||
                )
 | 
			
		||||
                .add("isOnSale", "isOnSale", "状态", true,
 | 
			
		||||
                .add("isOnSale", "isOnSaleDisplay", "状态", true,
 | 
			
		||||
                        FieldType.TEXT, SearchType.SELECT, AddType.SELECT, EditType.SELECT,
 | 
			
		||||
                        FieldBuilder.SEARCH_PLACEHOLDER_SAME_AS_FIELDNAME,
 | 
			
		||||
                        "状态", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
 | 
			
		||||
@@ -177,20 +178,24 @@ public class GoodController {
 | 
			
		||||
                        "DPD @cword(1, 2)"
 | 
			
		||||
                )
 | 
			
		||||
                .add("counterPrice", "counterPrice", "专柜价格", "",
 | 
			
		||||
                        FieldType.TEXT, SearchType.INPUT, AddType.INPUT, EditType.INPUT,
 | 
			
		||||
                        FieldType.TEXT, SearchType.INPUT, AddType.INPUT_NUMBER, EditType.INPUT_NUMBER,
 | 
			
		||||
                        "专柜价/原价/划线价",
 | 
			
		||||
                        "专柜价格 / 原价 / 划线价", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
 | 
			
		||||
                        FieldRuleListBuilder.create()
 | 
			
		||||
                                .add(FieldRuleBuilder.create("专柜价格").required()),
 | 
			
		||||
                        "DTD /^\\d+?(\\.?\\d+?)?$/"
 | 
			
		||||
                                .add(FieldRuleBuilder.create("专柜价格").required())
 | 
			
		||||
                        // .add(FieldRuleBuilder.create("专柜价格").regexp("^(\\d+(\\.\\d{1,2})?)$"))
 | 
			
		||||
                        ,
 | 
			
		||||
                        "DTD /^[1-9]\\d{0,4}(\\.?\\d{1,2})?$/"
 | 
			
		||||
                )
 | 
			
		||||
                .add("retailPrice", "retailPrice", "零售价格", "",
 | 
			
		||||
                        FieldType.TEXT, SearchType.INPUT, AddType.INPUT, EditType.INPUT,
 | 
			
		||||
                        FieldType.TEXT, SearchType.INPUT, AddType.INPUT_NUMBER, EditType.INPUT_NUMBER,
 | 
			
		||||
                        "零售价/售价/未划线价",
 | 
			
		||||
                        "零售价 / 售价 / 未划线价", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
 | 
			
		||||
                        FieldRuleListBuilder.create()
 | 
			
		||||
                                .add(FieldRuleBuilder.create("零售价格").required()),
 | 
			
		||||
                        "DTD /^\\d+?(\\.?\\d+?)?$/"
 | 
			
		||||
                                .add(FieldRuleBuilder.create("零售价格").required())
 | 
			
		||||
                        // .add(FieldRuleBuilder.create("零售价格").regexp("^(\\d+(\\.\\d{1,2})?)$"))
 | 
			
		||||
                        ,
 | 
			
		||||
                        "DTD /^[1-9]\\d{0,2}(\\.?\\d{1,2})?$/"
 | 
			
		||||
                )
 | 
			
		||||
                .add("detail", "detail", "商品详细介绍", "暂无商品详细介绍",
 | 
			
		||||
                        FieldType.LONG_TEXT, SearchType.INPUT, AddType.TEXTAREA, EditType.TEXTAREA,
 | 
			
		||||
@@ -212,7 +217,7 @@ public class GoodController {
 | 
			
		||||
        // build
 | 
			
		||||
        JSONArray fieldMapper = FieldMapperBuilder.create()
 | 
			
		||||
                .add("categoryId", "categoryName", cateMap)
 | 
			
		||||
                .add("isOnSale", "isOnSale", stateMap)
 | 
			
		||||
                .add("isOnSale", "isOnSaleDisplay", stateMap)
 | 
			
		||||
                .build();
 | 
			
		||||
 | 
			
		||||
        // 拼装返回结果
 | 
			
		||||
@@ -237,6 +242,18 @@ public class GoodController {
 | 
			
		||||
    @ResponseBody
 | 
			
		||||
    public Res editGood(@ModelAttribute GoodVO goodVO) {
 | 
			
		||||
        Good good = GoodVO.convertTo(goodVO);
 | 
			
		||||
        Double retailPrice = good.getRetailPrice();
 | 
			
		||||
        if (Objects.nonNull(retailPrice)) {
 | 
			
		||||
            if (retailPrice < 0 || retailPrice > 99999999.99) {
 | 
			
		||||
                return Res.error("零售价格输入不符,须在 0 - 99999999.99 之间");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        Double counterPrice = good.getCounterPrice();
 | 
			
		||||
        if (Objects.nonNull(counterPrice)) {
 | 
			
		||||
            if (counterPrice < 0 || counterPrice > 99999999.99) {
 | 
			
		||||
                return Res.error("专柜价格输入不符,须在 0 - 99999999.99 之间");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 先查询商品是否存在
 | 
			
		||||
        Good existGood = goodService.getGoodById(good.getId());
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,8 @@ public interface GoodDao {
 | 
			
		||||
 | 
			
		||||
    List<Good> list(@Param("cateId") Integer cateId, @Param("searchText") String searchText);
 | 
			
		||||
 | 
			
		||||
    List<Good> listOnSale(@Param("cateId") Integer cateId, @Param("searchText") String searchText);
 | 
			
		||||
 | 
			
		||||
    Good getById(Long id);
 | 
			
		||||
 | 
			
		||||
    Good selectById(Long id);
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,13 @@ public class GoodService {
 | 
			
		||||
        return goodVOS;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 只列出上架状态的商品
 | 
			
		||||
    public List<GoodVO> listOnSale(Integer cateId, String searchText) {
 | 
			
		||||
        List<Good> list = goodDao.listOnSale(cateId, searchText);
 | 
			
		||||
        List<GoodVO> goodVOS = GoodVO.convertFrom(list);
 | 
			
		||||
        return goodVOS;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public GoodVO getById(Long id) {
 | 
			
		||||
        Good good = goodDao.getById(id);
 | 
			
		||||
        GoodVO goodVO = GoodVO.convertFrom(good);
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,18 @@
 | 
			
		||||
        </if>
 | 
			
		||||
        order by `sort_order` asc
 | 
			
		||||
    </select>
 | 
			
		||||
    <select id="listOnSale" resultType="com.cxyxiaomo.epp.common.pojo.Good">
 | 
			
		||||
        SELECT *
 | 
			
		||||
        FROM goods
 | 
			
		||||
        WHERE is_on_sale = 1
 | 
			
		||||
        <if test="cateId != null">
 | 
			
		||||
            AND category_id = #{cateId}
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="searchText != null">
 | 
			
		||||
            AND goods_name LIKE concat('%',#{searchText,jdbcType=VARCHAR},'%')
 | 
			
		||||
        </if>
 | 
			
		||||
        order by `sort_order` asc
 | 
			
		||||
    </select>
 | 
			
		||||
    <select id="getById" parameterType="java.lang.Long" resultType="com.cxyxiaomo.epp.common.pojo.Good">
 | 
			
		||||
        SELECT *
 | 
			
		||||
        FROM goods
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user