diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..24ff3bf --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +logs +.idea +*.log +ZJ-javaimage diff --git a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/controller/goods/GoodsCateController.java b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/controller/goods/GoodsCateController.java index 52bf1a9..f018298 100644 --- a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/controller/goods/GoodsCateController.java +++ b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/controller/goods/GoodsCateController.java @@ -1,16 +1,14 @@ -package com.wyh.admin.controller; +package com.wyh.admin.controller.goods; +import com.alibaba.fastjson2.JSONArray; import com.wyh.admin.aop.Log; import com.wyh.admin.service.IGoodsCateService; import com.wyh.admin.validate.commons.IdValidate; import com.wyh.admin.validate.GoodsCateCreateValidate; import com.wyh.admin.validate.GoodsCateUpdateValidate; import com.wyh.admin.validate.GoodsCateSearchValidate; -import com.wyh.admin.validate.commons.PageValidate; -import com.wyh.admin.vo.GoodsCateListedVo; import com.wyh.admin.vo.GoodsCateDetailVo; import com.wyh.common.core.AjaxResult; -import com.wyh.common.core.PageResult; import com.wyh.common.validator.annotation.IDMust; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -29,9 +27,8 @@ public class GoodsCateController { @GetMapping("/list") @ApiOperation(value="产品分类列表") - public AjaxResult> list(@Validated PageValidate pageValidate, - @Validated GoodsCateSearchValidate searchValidate) { - PageResult list = iGoodsCateService.list(pageValidate, searchValidate); + public AjaxResult list(@Validated GoodsCateSearchValidate searchValidate) { + JSONArray list = iGoodsCateService.list(searchValidate); return AjaxResult.success(list); } diff --git a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/IGoodsCateService.java b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/IGoodsCateService.java index 30c6615..cf3051b 100644 --- a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/IGoodsCateService.java +++ b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/IGoodsCateService.java @@ -1,12 +1,10 @@ package com.wyh.admin.service; -import com.wyh.admin.validate.commons.PageValidate; +import com.alibaba.fastjson2.JSONArray; import com.wyh.admin.validate.GoodsCateCreateValidate; import com.wyh.admin.validate.GoodsCateUpdateValidate; import com.wyh.admin.validate.GoodsCateSearchValidate; -import com.wyh.admin.vo.GoodsCateListedVo; import com.wyh.admin.vo.GoodsCateDetailVo; -import com.wyh.common.core.PageResult; /** * 产品分类服务接口类 @@ -18,11 +16,10 @@ public interface IGoodsCateService { * 产品分类列表 * * @author LikeAdmin - * @param pageValidate 分页参数 * @param searchValidate 搜索参数 - * @return PageResult + * @return JSONArray */ - PageResult list(PageValidate pageValidate, GoodsCateSearchValidate searchValidate); + JSONArray list(GoodsCateSearchValidate searchValidate); /** * 产品分类详情 diff --git a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/GoodsCateServiceImpl.java b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/GoodsCateServiceImpl.java index a0cb1a1..280efc2 100644 --- a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/GoodsCateServiceImpl.java +++ b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/GoodsCateServiceImpl.java @@ -1,10 +1,8 @@ package com.wyh.admin.service.impl; +import com.alibaba.fastjson2.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.query.MPJQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.wyh.admin.validate.commons.PageValidate; import com.wyh.admin.service.IGoodsCateService; import com.wyh.admin.validate.GoodsCateCreateValidate; import com.wyh.admin.validate.GoodsCateUpdateValidate; @@ -12,7 +10,6 @@ import com.wyh.admin.validate.GoodsCateSearchValidate; import com.wyh.admin.vo.GoodsCateListedVo; import com.wyh.admin.vo.GoodsCateDetailVo; import com.wyh.common.config.GlobalConfig; -import com.wyh.common.core.PageResult; import com.wyh.common.entity.GoodsCate; import com.wyh.common.mapper.GoodsCateMapper; import com.wyh.common.util.ListUtils; @@ -31,7 +28,7 @@ import java.util.*; */ @Service public class GoodsCateServiceImpl implements IGoodsCateService { - + @Resource GoodsCateMapper goodsCateMapper; @@ -39,37 +36,35 @@ public class GoodsCateServiceImpl implements IGoodsCateService { * 产品分类列表 * * @author LikeAdmin - * @param pageValidate 分页参数 * @param searchValidate 搜索参数 - * @return PageResult + * @return JSONArray */ @Override - public PageResult list(PageValidate pageValidate, GoodsCateSearchValidate searchValidate) { - Integer page = pageValidate.getPageNo(); - Integer limit = pageValidate.getPageSize(); + public JSONArray list(GoodsCateSearchValidate searchValidate) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("is_delete", 0); - queryWrapper.orderByDesc(Arrays.asList("sort", "id")); + MPJQueryWrapper mpjQueryWrapper = new MPJQueryWrapper<>(); + mpjQueryWrapper.selectAll(GoodsCate.class); + mpjQueryWrapper.eq("is_delete", 0); + mpjQueryWrapper.orderByDesc(Arrays.asList("sort", "id")); - goodsCateMapper.setSearch(queryWrapper, searchValidate, new String[]{ - "like:name:str", - "=:sort:str", - "=:status:long", + goodsCateMapper.setSearch(mpjQueryWrapper, searchValidate, new String[]{ + "like:name:str", + "=:pid:str", + "=:sort:str", + "=:isShow@is_show:int", }); - IPage iPage = goodsCateMapper.selectPage(new Page<>(page, limit), queryWrapper); + List array = goodsCateMapper.selectJoinList( + GoodsCateListedVo.class, + mpjQueryWrapper); - List list = new LinkedList<>(); - for(GoodsCate item : iPage.getRecords()) { - GoodsCateListedVo vo = new GoodsCateListedVo(); - BeanUtils.copyProperties(item, vo); - vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime())); - vo.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime())); - list.add(vo); + for(GoodsCateListedVo item : array) { + item.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime())); + item.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime())); } - return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list); + JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(array)); + return ListUtils.listToTree(jsonArray, "id", "pid", "children"); } /** @@ -83,9 +78,9 @@ public class GoodsCateServiceImpl implements IGoodsCateService { public GoodsCateDetailVo detail(Integer id) { GoodsCate model = goodsCateMapper.selectOne( new QueryWrapper() - .eq("id", id) - .eq("is_delete", 0) - .last("limit 1")); + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); Assert.notNull(model, "数据不存在"); @@ -104,10 +99,11 @@ public class GoodsCateServiceImpl implements IGoodsCateService { public void add(GoodsCateCreateValidate createValidate) { GoodsCate model = new GoodsCate(); model.setName(createValidate.getName()); + model.setPid(createValidate.getPid()); model.setCreateTime(System.currentTimeMillis() / 1000); model.setUpdateTime(System.currentTimeMillis() / 1000); model.setSort(createValidate.getSort()); - model.setStatus(createValidate.getStatus()); + model.setIsShow(createValidate.getIsShow()); goodsCateMapper.insert(model); } @@ -121,17 +117,18 @@ public class GoodsCateServiceImpl implements IGoodsCateService { public void edit(GoodsCateUpdateValidate updateValidate) { GoodsCate model = goodsCateMapper.selectOne( new QueryWrapper() - .eq("id", updateValidate.getId()) - .eq("is_delete", 0) - .last("limit 1")); + .eq("id", updateValidate.getId()) + .eq("is_delete", 0) + .last("limit 1")); Assert.notNull(model, "数据不存在!"); model.setId(updateValidate.getId()); model.setName(updateValidate.getName()); + model.setPid(updateValidate.getPid()); model.setUpdateTime(System.currentTimeMillis() / 1000); model.setSort(updateValidate.getSort()); - model.setStatus(updateValidate.getStatus()); + model.setIsShow(updateValidate.getIsShow()); goodsCateMapper.updateById(model); } @@ -145,9 +142,9 @@ public class GoodsCateServiceImpl implements IGoodsCateService { public void del(Integer id) { GoodsCate model = goodsCateMapper.selectOne( new QueryWrapper() - .eq("id", id) - .eq("is_delete", 0) - .last("limit 1")); + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); Assert.notNull(model, "数据不存在!"); diff --git a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/SettingDictDataServiceImpl.java b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/SettingDictDataServiceImpl.java index 8eec2dc..963795a 100644 --- a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/SettingDictDataServiceImpl.java +++ b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/SettingDictDataServiceImpl.java @@ -54,7 +54,7 @@ public class SettingDictDataServiceImpl implements ISettingDictDataService { queryWrapper.select("id,type_id,name,value,remark,sort,status,create_time,update_time"); queryWrapper.eq("is_delete", 0); queryWrapper.eq("type_id", dictType.getId()); - queryWrapper.orderByDesc("id"); + queryWrapper.orderByDesc("sort").orderByDesc("id"); dictDataMapper.setSearch(queryWrapper, params, new String[]{ "like:name:str", @@ -101,7 +101,8 @@ public class SettingDictDataServiceImpl implements ISettingDictDataService { queryWrapper.select("id,type_id,name,value,remark,sort,status,create_time,update_time"); queryWrapper.eq("type_id", dictType.getId()); queryWrapper.eq("is_delete", 0); - queryWrapper.orderByDesc("id"); + queryWrapper.orderByDesc("sort").orderByDesc("id"); + dictDataMapper.setSearch(queryWrapper, params, new String[]{ "like:name:str", diff --git a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateCreateValidate.java b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateCreateValidate.java index 8b4469f..8b23ec8 100644 --- a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateCreateValidate.java +++ b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateCreateValidate.java @@ -16,12 +16,16 @@ public class GoodsCateCreateValidate implements Serializable { @ApiModelProperty(value = "产品分类名称") private String name; + @NotNull(message = "pid参数缺失") + @ApiModelProperty(value = "上级菜单") + private String pid; + @NotNull(message = "sort参数缺失") @ApiModelProperty(value = "排序编号") private String sort; - @NotNull(message = "status参数缺失") - @ApiModelProperty(value = "是否禁用: 0=否, 1=是") - private Long status; + @NotNull(message = "isShow参数缺失") + @ApiModelProperty(value = "是否显示: 0=否, 1=是") + private String isShow; } diff --git a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateSearchValidate.java b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateSearchValidate.java index e9ae397..6806ae3 100644 --- a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateSearchValidate.java +++ b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateSearchValidate.java @@ -14,10 +14,13 @@ public class GoodsCateSearchValidate implements Serializable { @ApiModelProperty(value = "产品分类名称") private String name; + @ApiModelProperty(value = "上级菜单") + private String pid; + @ApiModelProperty(value = "排序编号") private String sort; - @ApiModelProperty(value = "是否禁用: 0=否, 1=是") - private Long status; + @ApiModelProperty(value = "是否显示: 0=否, 1=是") + private String isShow; } diff --git a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateUpdateValidate.java b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateUpdateValidate.java index 1e12d4e..1768bb7 100644 --- a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateUpdateValidate.java +++ b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/validate/goods/GoodsCateUpdateValidate.java @@ -25,12 +25,16 @@ public class GoodsCateUpdateValidate implements Serializable { @ApiModelProperty(value = "产品分类名称") private String name; + @NotNull(message = "pid参数缺失") + @ApiModelProperty(value = "上级菜单") + private String pid; + @NotNull(message = "sort参数缺失") @ApiModelProperty(value = "排序编号") private String sort; - @NotNull(message = "status参数缺失") - @ApiModelProperty(value = "是否禁用: 0=否, 1=是") - private Long status; + @NotNull(message = "isShow参数缺失") + @ApiModelProperty(value = "是否显示: 0=否, 1=是") + private String isShow; } diff --git a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/vo/goods/GoodsCateDetailVo.java b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/vo/goods/GoodsCateDetailVo.java index 16ebe1d..3df82df 100644 --- a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/vo/goods/GoodsCateDetailVo.java +++ b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/vo/goods/GoodsCateDetailVo.java @@ -18,11 +18,14 @@ public class GoodsCateDetailVo implements Serializable { @ApiModelProperty(value = "产品分类名称") private String name; + @ApiModelProperty(value = "上级菜单") + private String pid; + @ApiModelProperty(value = "排序编号") private String sort; - @ApiModelProperty(value = "是否禁用: 0=否, 1=是") - private Long status; + @ApiModelProperty(value = "是否显示: 0=否, 1=是") + private String isShow; } diff --git a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/vo/goods/GoodsCateListedVo.java b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/vo/goods/GoodsCateListedVo.java index 103419c..20b8d13 100644 --- a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/vo/goods/GoodsCateListedVo.java +++ b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/vo/goods/GoodsCateListedVo.java @@ -18,6 +18,9 @@ public class GoodsCateListedVo implements Serializable { @ApiModelProperty(value = "产品分类名称") private String name; + @ApiModelProperty(value = "上级菜单") + private String pid; + @ApiModelProperty(value = "创建时间") private String createTime; @@ -27,8 +30,8 @@ public class GoodsCateListedVo implements Serializable { @ApiModelProperty(value = "排序编号") private String sort; - @ApiModelProperty(value = "是否禁用: 0=否, 1=是") - private Long status; + @ApiModelProperty(value = "是否显示: 0=否, 1=是") + private String isShow; } diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/entity/goods/GoodsCate.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/entity/goods/GoodsCate.java index aab6081..c20ec90 100644 --- a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/entity/goods/GoodsCate.java +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/entity/goods/GoodsCate.java @@ -21,6 +21,9 @@ public class GoodsCate implements Serializable { @ApiModelProperty(value = "产品分类名称") private String name; + @ApiModelProperty(value = "上级菜单") + private String pid; + @ApiModelProperty(value = "是否删除: 0=否, 1=是") private Integer isDelete; @@ -36,7 +39,7 @@ public class GoodsCate implements Serializable { @ApiModelProperty(value = "排序编号") private String sort; - @ApiModelProperty(value = "是否禁用: 0=否, 1=是") - private Long status; + @ApiModelProperty(value = "是否显示: 0=否, 1=是") + private String isShow; } \ No newline at end of file diff --git a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/config/SwaggerConfig.java b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/config/SwaggerConfig.java index 6a87f49..7374ce1 100644 --- a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/config/SwaggerConfig.java +++ b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/config/SwaggerConfig.java @@ -18,8 +18,8 @@ public class SwaggerConfig { @Value("${ZJ-java.knife4j.swagger-ui.enabled}") private boolean enabled; - @Value("${ZJ-java.knife4j.swagger-ui.path}") - private String pathMapping; +// @Value("${ZJ-java.knife4j.swagger-ui.path}") +// private String pathMapping; @Bean public Docket createRestApi(){ @@ -29,8 +29,7 @@ public class SwaggerConfig { .select() .apis(RequestHandlerSelectors.basePackage("com.wyh.front")) .build() - .groupName("中将业务接口【前台】") - .pathMapping(pathMapping); + .groupName("中将业务接口【前台】"); } private ApiInfo apiInfo(){ @@ -45,5 +44,4 @@ public class SwaggerConfig { .contact(new Contact(author, url, email)) .build(); } - } diff --git a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/WechatController.java b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/WechatController.java index bd731e9..e4a6582 100644 --- a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/WechatController.java +++ b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/WechatController.java @@ -5,11 +5,13 @@ import com.wyh.common.core.AjaxResult; import com.wyh.front.service.IWechatService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.checkerframework.checker.units.qual.A; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; import javax.annotation.Resource; import javax.validation.constraints.NotEmpty; @@ -18,6 +20,7 @@ import java.util.Map; @RestController @RequestMapping("api/wechat") @Api(tags = "微信管理") +@ApiIgnore public class WechatController { @Resource diff --git a/ZJ-java/ZJ-front/src/main/resources/application.yml b/ZJ-java/ZJ-front/src/main/resources/application.yml index cb26a12..e155a44 100644 --- a/ZJ-java/ZJ-front/src/main/resources/application.yml +++ b/ZJ-java/ZJ-front/src/main/resources/application.yml @@ -12,7 +12,7 @@ ZJ-java: knife4j: swagger-ui: enabled: true - path: /doc.html +# path: /doc.html # 服务配置 server: diff --git a/admin/.vscode/extensions.json b/admin/.vscode/extensions.json new file mode 100644 index 0000000..91f12b2 --- /dev/null +++ b/admin/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/admin/.vscode/settings.json b/admin/.vscode/settings.json new file mode 100644 index 0000000..2a24d8a --- /dev/null +++ b/admin/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "editor.detectIndentation": false, + "editor.tabSize": 4, + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" +}, + "css.validate": false, + "less.validate": false, + "scss.validate": false +} diff --git a/admin/src/views/goods/cate/edit.vue b/admin/src/views/goods/cate/edit.vue index 4353d98..ae3cd7f 100644 --- a/admin/src/views/goods/cate/edit.vue +++ b/admin/src/views/goods/cate/edit.vue @@ -10,17 +10,31 @@ @close="handleClose" > + + + + - +
数值越大越排前
- - + + - +