集成方案基本信息

main
王宇航 2024-08-19 15:54:13 +08:00
parent db54a23466
commit 3cc4ba9953
94 changed files with 2880 additions and 177 deletions

2
ZJ-java/.gitignore vendored
View File

@ -32,5 +32,5 @@ rebel-remote.xml
rebel.xml
### customize ###
/likeadmin-java.iml
/ZJ-java.iml
/logs

View File

@ -20,17 +20,17 @@
<tree path="/ZJ-admin/src/main/java/com/wyh/admin/service" title="服务层"/>
<tree path="/ZJ-admin/src/main/java/com/wyh/admin/validate" title="验证层"/>
<tree path="/ZJ-admin/src/main/java/com/wyh/admin/vo" title="传输层"/>
<tree path="/ZJ-admin/src/main/java/com/wyh/admin/LikeAdminApplication.java" title="启动器" extension="java"/>
<tree path="/ZJ-admin/src/main/java/com/wyh/admin/LikeAdminInterceptor.java" title="拦截器" extension="java"/>
<tree path="/ZJ-admin/src/main/java/com/wyh/admin/LikeAdminThreadLocal.java" title="线程" extension="java"/>
<tree path="/ZJ-admin/src/main/java/com/wyh/admin/ZJAdminApplication.java" title="启动器" extension="java"/>
<tree path="/ZJ-admin/src/main/java/com/wyh/admin/ZJAdminInterceptor.java" title="拦截器" extension="java"/>
<tree path="/ZJ-admin/src/main/java/com/wyh/admin/ZJAdminThreadLocal.java" title="线程" extension="java"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/config" title="配置层"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/controller" title="控制层"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/service" title="服务层"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/validate" title="验证层"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/vo" title="传输层"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/LikeFrontApplication.java" title="启动器" extension="java"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/LikeFrontInterceptor.java" title="拦截器" extension="java"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/LikeFrontThreadLocal.java" title="线程" extension="java"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/ZJFrontApplication.java" title="启动器" extension="java"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/ZJFrontInterceptor.java" title="拦截器" extension="java"/>
<tree path="/ZJ-front/src/main/java/com/wyh/front/ZJFrontThreadLocal.java" title="线程" extension="java"/>
<tree path="/ZJ-admin/src/main/java/com/wyh/admin/crontab" title="任务层"/>
<tree path="/ZJ-common/src/main/java/com/wyh/common/util" title="公共工具"/>
<tree path="/ZJ-common/src/main/java/com/wyh/common/aop" title="公共切面"/>

View File

@ -0,0 +1,68 @@
package com.wyh.admin.controller.info;
import com.alibaba.fastjson2.JSONArray;
import com.wyh.admin.aop.Log;
import com.wyh.admin.service.IClassInfoService;
import com.wyh.admin.validate.commons.IdValidate;
import com.wyh.admin.validate.commons.PageValidate;
import com.wyh.common.core.AjaxResult;
import com.wyh.common.validator.annotation.IDMust;
import com.wyh.common.validator.info.ClassInfoCreateValidate;
import com.wyh.common.validator.info.ClassInfoSearchValidate;
import com.wyh.common.validator.info.ClassInfoUpdateValidate;
import com.wyh.common.vo.info.ClassInfoDetailVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("api/info")
@Api(tags = "班级信息管理")
public class ClassInfoController {
@Resource
IClassInfoService iClassInfoService;
@GetMapping("/list")
@ApiOperation(value="班级信息列表")
public AjaxResult<JSONArray> list(@Validated PageValidate pageValidate,
@Validated ClassInfoSearchValidate searchValidate) {
JSONArray list = iClassInfoService.list(pageValidate, searchValidate);
return AjaxResult.success(list);
}
@GetMapping("/detail")
@ApiOperation(value="班级信息详情")
public AjaxResult<ClassInfoDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
ClassInfoDetailVo detail = iClassInfoService.detail(id);
return AjaxResult.success(detail);
}
@Log(title = "班级信息新增")
@PostMapping("/add")
@ApiOperation(value="班级信息新增")
public AjaxResult<Object> add(@Validated @RequestBody ClassInfoCreateValidate createValidate) {
iClassInfoService.add(createValidate);
return AjaxResult.success();
}
@Log(title = "班级信息编辑")
@PostMapping("/edit")
@ApiOperation(value="班级信息编辑")
public AjaxResult<Object> edit(@Validated @RequestBody ClassInfoUpdateValidate updateValidate) {
iClassInfoService.edit(updateValidate);
return AjaxResult.success();
}
@Log(title = "班级信息删除")
@PostMapping("/del")
@ApiOperation(value="班级信息删除")
public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
iClassInfoService.del(idValidate.getId());
return AjaxResult.success();
}
}

View File

@ -0,0 +1,69 @@
package com.wyh.admin.controller.schme;
import com.wyh.admin.aop.Log;
import com.wyh.admin.service.IIntegrationSchmeService;
import com.wyh.admin.validate.commons.IdValidate;
import com.wyh.admin.validate.commons.PageValidate;
import com.wyh.common.core.AjaxResult;
import com.wyh.common.core.PageResult;
import com.wyh.common.validator.annotation.IDMust;
import com.wyh.common.validator.schme.IntegrationSchmeCreateValidate;
import com.wyh.common.validator.schme.IntegrationSchmeSearchValidate;
import com.wyh.common.validator.schme.IntegrationSchmeUpdateValidate;
import com.wyh.common.vo.schme.IntegrationSchmeDetailVo;
import com.wyh.common.vo.schme.IntegrationSchmeListedVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("api/schme")
@Api(tags = "集成方案信息管理")
public class IntegrationSchmeController {
@Resource
IIntegrationSchmeService iIntegrationSchmeService;
@GetMapping("/list")
@ApiOperation(value="集成方案信息列表")
public AjaxResult<PageResult<IntegrationSchmeListedVo>> list(@Validated PageValidate pageValidate,
@Validated IntegrationSchmeSearchValidate searchValidate) {
PageResult<IntegrationSchmeListedVo> list = iIntegrationSchmeService.list(pageValidate, searchValidate);
return AjaxResult.success(list);
}
@GetMapping("/detail")
@ApiOperation(value="集成方案信息详情")
public AjaxResult<IntegrationSchmeDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
IntegrationSchmeDetailVo detail = iIntegrationSchmeService.detail(id);
return AjaxResult.success(detail);
}
@Log(title = "集成方案信息新增")
@PostMapping("/add")
@ApiOperation(value="集成方案信息新增")
public AjaxResult<Object> add(@Validated @RequestBody IntegrationSchmeCreateValidate createValidate) {
iIntegrationSchmeService.add(createValidate);
return AjaxResult.success();
}
@Log(title = "集成方案信息编辑")
@PostMapping("/edit")
@ApiOperation(value="集成方案信息编辑")
public AjaxResult<Object> edit(@Validated @RequestBody IntegrationSchmeUpdateValidate updateValidate) {
iIntegrationSchmeService.edit(updateValidate);
return AjaxResult.success();
}
@Log(title = "集成方案信息删除")
@PostMapping("/del")
@ApiOperation(value="集成方案信息删除")
public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
iIntegrationSchmeService.del(idValidate.getId());
return AjaxResult.success();
}
}

View File

@ -0,0 +1,76 @@
package com.wyh.admin.controller.subject;
import com.wyh.admin.aop.Log;
import com.wyh.admin.service.ISubjectInfoService;
import com.wyh.admin.validate.commons.IdValidate;
import com.wyh.admin.validate.commons.PageValidate;
import com.wyh.common.core.AjaxResult;
import com.wyh.common.core.PageResult;
import com.wyh.common.validator.annotation.IDMust;
import com.wyh.common.validator.subject.SubjectInfoCreateValidate;
import com.wyh.common.validator.subject.SubjectInfoSearchValidate;
import com.wyh.common.validator.subject.SubjectInfoUpdateValidate;
import com.wyh.common.vo.subject.SubjectInfoDetailVo;
import com.wyh.common.vo.subject.SubjectInfoListedVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping("api/subject")
@Api(tags = "集成方案属性管理")
public class SubjectInfoController {
@Resource
ISubjectInfoService iSubjectInfoService;
@GetMapping("/list")
@ApiOperation(value="集成方案属性列表")
public AjaxResult<PageResult<SubjectInfoListedVo>> list(@Validated PageValidate pageValidate,
@Validated SubjectInfoSearchValidate searchValidate) {
PageResult<SubjectInfoListedVo> list = iSubjectInfoService.list(pageValidate, searchValidate);
return AjaxResult.success(list);
}
@GetMapping("/all")
@ApiOperation(value="集成方案属性全部")
public AjaxResult<List<SubjectInfoListedVo>> all() {
List<SubjectInfoListedVo> list = iSubjectInfoService.all();
return AjaxResult.success(list);
}
@GetMapping("/detail")
@ApiOperation(value="集成方案属性详情")
public AjaxResult<SubjectInfoDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
SubjectInfoDetailVo detail = iSubjectInfoService.detail(id);
return AjaxResult.success(detail);
}
@Log(title = "集成方案属性新增")
@PostMapping("/add")
@ApiOperation(value="集成方案属性新增")
public AjaxResult<Object> add(@Validated @RequestBody SubjectInfoCreateValidate createValidate) {
iSubjectInfoService.add(createValidate);
return AjaxResult.success();
}
@Log(title = "集成方案属性编辑")
@PostMapping("/edit")
@ApiOperation(value="集成方案属性编辑")
public AjaxResult<Object> edit(@Validated @RequestBody SubjectInfoUpdateValidate updateValidate) {
iSubjectInfoService.edit(updateValidate);
return AjaxResult.success();
}
@Log(title = "集成方案属性删除")
@PostMapping("/del")
@ApiOperation(value="集成方案属性删除")
public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
iSubjectInfoService.del(idValidate.getId());
return AjaxResult.success();
}
}

View File

@ -11,14 +11,14 @@ import com.wyh.common.core.PageResult;
/**
*
* @author LikeAdmin
* @author wyh
*/
public interface IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<AboutListedVo>
@ -28,7 +28,7 @@ public interface IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return AboutDetailVo
*/
@ -37,7 +37,7 @@ public interface IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(AboutCreateValidate createValidate);
@ -45,7 +45,7 @@ public interface IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(AboutUpdateValidate updateValidate);
@ -53,7 +53,7 @@ public interface IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -11,14 +11,14 @@ import com.wyh.common.core.PageResult;
/**
* banner
* @author LikeAdmin
* @author wyh
*/
public interface IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<BannerListedVo>
@ -28,7 +28,7 @@ public interface IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return BannerDetailVo
*/
@ -37,7 +37,7 @@ public interface IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(BannerCreateValidate createValidate);
@ -45,7 +45,7 @@ public interface IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(BannerUpdateValidate updateValidate);
@ -53,7 +53,7 @@ public interface IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -0,0 +1,59 @@
package com.wyh.admin.service;
import com.alibaba.fastjson2.JSONArray;
import com.wyh.admin.validate.commons.PageValidate;
import com.wyh.common.validator.info.ClassInfoCreateValidate;
import com.wyh.common.validator.info.ClassInfoSearchValidate;
import com.wyh.common.validator.info.ClassInfoUpdateValidate;
import com.wyh.common.vo.info.ClassInfoDetailVo;
/**
*
* @author wyh
*/
public interface IClassInfoService {
/**
*
*
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<ClassInfoListedVo>
*/
JSONArray list(PageValidate pageValidate, ClassInfoSearchValidate searchValidate);
/**
*
*
* @author wyh
* @param id ID
* @return ClassInfoDetailVo
*/
ClassInfoDetailVo detail(Integer id);
/**
*
*
* @author wyh
* @param createValidate
*/
void add(ClassInfoCreateValidate createValidate);
/**
*
*
* @author wyh
* @param updateValidate
*/
void edit(ClassInfoUpdateValidate updateValidate);
/**
*
*
* @author wyh
* @param id ID
*/
void del(Integer id);
}

View File

@ -8,14 +8,14 @@ import com.wyh.admin.vo.goods.GoodsCateDetailVo;
/**
*
* @author LikeAdmin
* @author wyh
*/
public interface IGoodsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param searchValidate
* @return JSONArray
*/
@ -24,7 +24,7 @@ public interface IGoodsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return GoodsCateDetailVo
*/
@ -33,7 +33,7 @@ public interface IGoodsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(GoodsCateCreateValidate createValidate);
@ -41,7 +41,7 @@ public interface IGoodsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(GoodsCateUpdateValidate updateValidate);
@ -49,7 +49,7 @@ public interface IGoodsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -11,14 +11,14 @@ import com.wyh.common.vo.goods.GoodsListedVo;
/**
*
* @author LikeAdmin
* @author wyh
*/
public interface IGoodsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<GoodsListedVo>
@ -28,7 +28,7 @@ public interface IGoodsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return GoodsDetailVo
*/
@ -37,7 +37,7 @@ public interface IGoodsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(GoodsCreateValidate createValidate);
@ -45,7 +45,7 @@ public interface IGoodsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(GoodsUpdateValidate updateValidate);
@ -53,7 +53,7 @@ public interface IGoodsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -0,0 +1,60 @@
package com.wyh.admin.service;
import com.wyh.admin.validate.commons.PageValidate;
import com.wyh.common.core.PageResult;
import com.wyh.common.validator.schme.IntegrationSchmeCreateValidate;
import com.wyh.common.validator.schme.IntegrationSchmeSearchValidate;
import com.wyh.common.validator.schme.IntegrationSchmeUpdateValidate;
import com.wyh.common.vo.schme.IntegrationSchmeDetailVo;
import com.wyh.common.vo.schme.IntegrationSchmeListedVo;
/**
*
* @author wyh
*/
public interface IIntegrationSchmeService {
/**
*
*
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<IntegrationSchmeListedVo>
*/
PageResult<IntegrationSchmeListedVo> list(PageValidate pageValidate, IntegrationSchmeSearchValidate searchValidate);
/**
*
*
* @author wyh
* @param id ID
* @return IntegrationSchmeDetailVo
*/
IntegrationSchmeDetailVo detail(Integer id);
/**
*
*
* @author wyh
* @param createValidate
*/
void add(IntegrationSchmeCreateValidate createValidate);
/**
*
*
* @author wyh
* @param updateValidate
*/
void edit(IntegrationSchmeUpdateValidate updateValidate);
/**
*
*
* @author wyh
* @param id ID
*/
void del(Integer id);
}

View File

@ -10,14 +10,14 @@ import com.wyh.common.core.PageResult;
/**
*
* @author LikeAdmin
* @author wyh
*/
public interface IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<JrwmListedVo>
@ -27,7 +27,7 @@ public interface IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return JrwmDetailVo
*/
@ -36,7 +36,7 @@ public interface IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(JrwmCreateValidate createValidate);
@ -44,7 +44,7 @@ public interface IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(JrwmUpdateValidate updateValidate);
@ -52,7 +52,7 @@ public interface IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -13,14 +13,14 @@ import java.util.List;
/**
*
* @author LikeAdmin
* @author wyh
*/
public interface INewsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<NewsCateListedVo>
@ -30,7 +30,7 @@ public interface INewsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return NewsCateDetailVo
*/
@ -39,7 +39,7 @@ public interface INewsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(NewsCateCreateValidate createValidate);
@ -47,7 +47,7 @@ public interface INewsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(NewsCateUpdateValidate updateValidate);
@ -55,7 +55,7 @@ public interface INewsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -10,14 +10,14 @@ import com.wyh.common.core.PageResult;
/**
*
* @author LikeAdmin
* @author wyh
*/
public interface INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<NewsListedVo>
@ -27,7 +27,7 @@ public interface INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return NewsDetailVo
*/
@ -36,7 +36,7 @@ public interface INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(NewsCreateValidate createValidate);
@ -44,7 +44,7 @@ public interface INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(NewsUpdateValidate updateValidate);
@ -52,7 +52,7 @@ public interface INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -0,0 +1,63 @@
package com.wyh.admin.service;
import com.wyh.admin.validate.commons.PageValidate;
import com.wyh.common.core.PageResult;
import com.wyh.common.validator.subject.SubjectInfoCreateValidate;
import com.wyh.common.validator.subject.SubjectInfoSearchValidate;
import com.wyh.common.validator.subject.SubjectInfoUpdateValidate;
import com.wyh.common.vo.subject.SubjectInfoDetailVo;
import com.wyh.common.vo.subject.SubjectInfoListedVo;
import java.util.List;
/**
*
* @author wyh
*/
public interface ISubjectInfoService {
/**
*
*
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<SubjectInfoListedVo>
*/
PageResult<SubjectInfoListedVo> list(PageValidate pageValidate, SubjectInfoSearchValidate searchValidate);
/**
*
*
* @author wyh
* @param id ID
* @return SubjectInfoDetailVo
*/
SubjectInfoDetailVo detail(Integer id);
/**
*
*
* @author wyh
* @param createValidate
*/
void add(SubjectInfoCreateValidate createValidate);
/**
*
*
* @author wyh
* @param updateValidate
*/
void edit(SubjectInfoUpdateValidate updateValidate);
/**
*
*
* @author wyh
* @param id ID
*/
void del(Integer id);
List<SubjectInfoListedVo> all();
}

View File

@ -29,7 +29,7 @@ import java.util.*;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Service
public class AboutServiceImpl implements IAboutService {
@ -40,7 +40,7 @@ public class AboutServiceImpl implements IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<AboutListedVo>
@ -83,7 +83,7 @@ public class AboutServiceImpl implements IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id
* @return About
*/
@ -105,7 +105,7 @@ public class AboutServiceImpl implements IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -128,7 +128,7 @@ public class AboutServiceImpl implements IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -158,7 +158,7 @@ public class AboutServiceImpl implements IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -28,7 +28,7 @@ import java.util.*;
/**
* banner
* @author LikeAdmin
* @author wyh
*/
@Service
public class BannerServiceImpl implements IBannerService {
@ -39,7 +39,7 @@ public class BannerServiceImpl implements IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<BannerListedVo>
@ -78,7 +78,7 @@ public class BannerServiceImpl implements IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param id
* @return Banner
*/
@ -101,7 +101,7 @@ public class BannerServiceImpl implements IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -120,7 +120,7 @@ public class BannerServiceImpl implements IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -146,7 +146,7 @@ public class BannerServiceImpl implements IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -0,0 +1,153 @@
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.wyh.admin.service.IClassInfoService;
import com.wyh.admin.validate.commons.PageValidate;
import com.wyh.common.entity.info.ClassInfo;
import com.wyh.common.mapper.info.ClassInfoMapper;
import com.wyh.common.util.ListUtils;
import com.wyh.common.util.TimeUtils;
import com.wyh.common.validator.info.ClassInfoCreateValidate;
import com.wyh.common.validator.info.ClassInfoSearchValidate;
import com.wyh.common.validator.info.ClassInfoUpdateValidate;
import com.wyh.common.vo.info.ClassInfoDetailVo;
import com.wyh.common.vo.info.ClassInfoListedVo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
/**
*
* @author wyh
*/
@Service
public class ClassInfoServiceImpl implements IClassInfoService {
@Resource
ClassInfoMapper classInfoMapper;
/**
*
*
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<ClassInfoListedVo>
*/
@Override
public JSONArray list(PageValidate pageValidate, ClassInfoSearchValidate searchValidate) {
MPJQueryWrapper<ClassInfo> mpjQueryWrapper = new MPJQueryWrapper<>();
mpjQueryWrapper.selectAll(ClassInfo.class);
mpjQueryWrapper.eq("is_delete", 0);
mpjQueryWrapper.orderByDesc(Arrays.asList("sort", "id"));
classInfoMapper.setSearch(mpjQueryWrapper, searchValidate, new String[]{
"like:name:str",
"=:pid:str",
"=:sort:str",
});
List<ClassInfoListedVo> array = classInfoMapper.selectJoinList(
ClassInfoListedVo.class,
mpjQueryWrapper);
for(ClassInfoListedVo item : array) {
item.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime()));
item.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime()));
}
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(array));
return ListUtils.listToTree(jsonArray, "id", "pid", "children");
}
/**
*
*
* @author wyh
* @param id
* @return ClassInfo
*/
@Override
public ClassInfoDetailVo detail(Integer id) {
ClassInfo model = classInfoMapper.selectOne(
new QueryWrapper<ClassInfo>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
ClassInfoDetailVo vo = new ClassInfoDetailVo();
BeanUtils.copyProperties(model, vo);
return vo;
}
/**
*
*
* @author wyh
* @param createValidate
*/
@Override
public void add(ClassInfoCreateValidate createValidate) {
ClassInfo model = new ClassInfo();
model.setName(createValidate.getName());
model.setPid(createValidate.getPid());
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
model.setSort(createValidate.getSort());
classInfoMapper.insert(model);
}
/**
*
*
* @author wyh
* @param updateValidate
*/
@Override
public void edit(ClassInfoUpdateValidate updateValidate) {
ClassInfo model = classInfoMapper.selectOne(
new QueryWrapper<ClassInfo>()
.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());
classInfoMapper.updateById(model);
}
/**
*
*
* @author wyh
* @param id ID
*/
@Override
public void del(Integer id) {
ClassInfo model = classInfoMapper.selectOne(
new QueryWrapper<ClassInfo>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
classInfoMapper.updateById(model);
}
}

View File

@ -23,7 +23,7 @@ import java.util.*;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Service
public class GoodsCateServiceImpl implements IGoodsCateService {
@ -34,7 +34,7 @@ public class GoodsCateServiceImpl implements IGoodsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param searchValidate
* @return JSONArray
*/
@ -69,7 +69,7 @@ public class GoodsCateServiceImpl implements IGoodsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id
* @return GoodsCate
*/
@ -91,7 +91,7 @@ public class GoodsCateServiceImpl implements IGoodsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -109,7 +109,7 @@ public class GoodsCateServiceImpl implements IGoodsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -134,7 +134,7 @@ public class GoodsCateServiceImpl implements IGoodsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -11,7 +11,9 @@ import com.wyh.common.config.GlobalConfig;
import com.wyh.common.core.PageResult;
import com.wyh.common.entity.goods.Goods;
import com.wyh.common.entity.goods.GoodsCate;
import com.wyh.common.entity.goods.GoodsExpand;
import com.wyh.common.mapper.goods.GoodsCateMapper;
import com.wyh.common.mapper.goods.GoodsExpandMapper;
import com.wyh.common.mapper.goods.GoodsMapper;
import com.wyh.common.util.TimeUtils;
import com.wyh.common.validator.goods.GoodsCreateValidate;
@ -19,12 +21,14 @@ import com.wyh.common.validator.goods.GoodsSearchValidate;
import com.wyh.common.validator.goods.GoodsUpdateValidate;
import com.wyh.common.vo.goods.GoodsDetailVo;
import com.wyh.common.vo.goods.GoodsListedVo;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.LinkedList;
/**
*
@ -39,10 +43,13 @@ public class GoodsServiceImpl implements IGoodsService {
@Resource
GoodsCateMapper goodsCateMapper;
@Resource
GoodsExpandMapper goodsExpandMapper;
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<GoodsListedVo>
@ -87,7 +94,7 @@ public class GoodsServiceImpl implements IGoodsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id
* @return Goods
*/
@ -103,13 +110,19 @@ public class GoodsServiceImpl implements IGoodsService {
GoodsDetailVo vo = new GoodsDetailVo();
BeanUtils.copyProperties(model, vo);
LinkedList<GoodsExpand> goodsExpands = new LinkedList<>(goodsExpandMapper.selectList(
new QueryWrapper<GoodsExpand>()
.eq("goods_id", id)
.last("limit 100")
));
vo.setGoodsExpand(goodsExpands);
return vo;
}
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -126,13 +139,23 @@ public class GoodsServiceImpl implements IGoodsService {
model.setIsDownload(createValidate.getIsDownload());
model.setSummary(createValidate.getSummary());
model.setCateId(createValidate.getCateId());
goodsMapper.insert(model);
if (CollectionUtils.isNotEmpty(createValidate.getGoodsExpand())) {
for (GoodsExpand item : createValidate.getGoodsExpand()) {
GoodsExpand goodsExpand = new GoodsExpand();
BeanUtils.copyProperties(item, goodsExpand);
goodsExpand.setGoodsId(model.getId());
goodsExpandMapper.insert(goodsExpand);
}
}
}
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -157,12 +180,21 @@ public class GoodsServiceImpl implements IGoodsService {
model.setSummary(updateValidate.getSummary());
model.setCateId(updateValidate.getCateId());
goodsMapper.updateById(model);
if (CollectionUtils.isNotEmpty(updateValidate.getGoodsExpand())) {
goodsExpandMapper.delete(Wrappers.<GoodsExpand>lambdaQuery().eq(GoodsExpand::getGoodsId, model.getId()));
for (GoodsExpand item : updateValidate.getGoodsExpand()) {
GoodsExpand goodsExpand = new GoodsExpand();
BeanUtils.copyProperties(item, goodsExpand);
goodsExpand.setGoodsId(model.getId());
goodsExpandMapper.insert(goodsExpand);
}
}
}
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -0,0 +1,185 @@
package com.wyh.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wyh.admin.service.IIntegrationSchmeService;
import com.wyh.admin.validate.commons.PageValidate;
import com.wyh.common.core.PageResult;
import com.wyh.common.entity.schme.IntegrationSchme;
import com.wyh.common.entity.subject.SubjectInfo;
import com.wyh.common.mapper.schme.IntegrationSchmeMapper;
import com.wyh.common.mapper.subject.SubjectInfoMapper;
import com.wyh.common.util.TimeUtils;
import com.wyh.common.validator.schme.IntegrationSchmeCreateValidate;
import com.wyh.common.validator.schme.IntegrationSchmeSearchValidate;
import com.wyh.common.validator.schme.IntegrationSchmeUpdateValidate;
import com.wyh.common.vo.schme.IntegrationSchmeDetailVo;
import com.wyh.common.vo.schme.IntegrationSchmeListedVo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
/**
*
* @author wyh
*/
@Service
public class IntegrationSchmeServiceImpl implements IIntegrationSchmeService {
@Resource
IntegrationSchmeMapper integrationSchmeMapper;
@Resource
SubjectInfoMapper subjectInfoMapper;
/**
*
*
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<IntegrationSchmeListedVo>
*/
@Override
public PageResult<IntegrationSchmeListedVo> list(PageValidate pageValidate, IntegrationSchmeSearchValidate searchValidate) {
Integer page = pageValidate.getPageNo();
Integer limit = pageValidate.getPageSize();
QueryWrapper<IntegrationSchme> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByDesc(Arrays.asList("sort", "id"));
integrationSchmeMapper.setSearch(queryWrapper, searchValidate, new String[]{
"like:name:str",
"=:schmeImg@schme_img:str",
"=:schmeListImg@schme_list_img:str",
"=:sort:int",
"=:content:str",
"=:type:int",
"=:isDownload@is_download:int",
"=:infoId@info_id:int",
});
IPage<IntegrationSchme> iPage = integrationSchmeMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<IntegrationSchmeListedVo> list = new LinkedList<>();
for(IntegrationSchme item : iPage.getRecords()) {
IntegrationSchmeListedVo vo = new IntegrationSchmeListedVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime()));
if(item.getInfoId() != null){
SubjectInfo subjectInfo = subjectInfoMapper.selectOne(Wrappers.<SubjectInfo>lambdaQuery().eq(SubjectInfo::getId, item.getInfoId()));
if (subjectInfo != null) {
vo.setInfoName(subjectInfo.getName());
}
}
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @author wyh
* @param id
* @return IntegrationSchme
*/
@Override
public IntegrationSchmeDetailVo detail(Integer id) {
IntegrationSchme model = integrationSchmeMapper.selectOne(
new QueryWrapper<IntegrationSchme>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
IntegrationSchmeDetailVo vo = new IntegrationSchmeDetailVo();
BeanUtils.copyProperties(model, vo);
return vo;
}
/**
*
*
* @author wyh
* @param createValidate
*/
@Override
public void add(IntegrationSchmeCreateValidate createValidate) {
IntegrationSchme model = new IntegrationSchme();
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
model.setName(createValidate.getName());
model.setSchmeImg(createValidate.getSchmeImg());
model.setSchmeListImg(createValidate.getSchmeListImg());
model.setSort(createValidate.getSort());
model.setContent(createValidate.getContent());
model.setType(createValidate.getType());
model.setIsDownload(createValidate.getIsDownload());
model.setInfoId(createValidate.getInfoId());
integrationSchmeMapper.insert(model);
}
/**
*
*
* @author wyh
* @param updateValidate
*/
@Override
public void edit(IntegrationSchmeUpdateValidate updateValidate) {
IntegrationSchme model = integrationSchmeMapper.selectOne(
new QueryWrapper<IntegrationSchme>()
.eq("id", updateValidate.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(updateValidate.getId());
model.setUpdateTime(System.currentTimeMillis() / 1000);
model.setName(updateValidate.getName());
model.setSchmeImg(updateValidate.getSchmeImg());
model.setSchmeListImg(updateValidate.getSchmeListImg());
model.setSort(updateValidate.getSort());
model.setContent(updateValidate.getContent());
model.setType(updateValidate.getType());
model.setIsDownload(updateValidate.getIsDownload());
model.setInfoId(updateValidate.getInfoId());
integrationSchmeMapper.updateById(model);
}
/**
*
*
* @author wyh
* @param id ID
*/
@Override
public void del(Integer id) {
IntegrationSchme model = integrationSchmeMapper.selectOne(
new QueryWrapper<IntegrationSchme>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
integrationSchmeMapper.updateById(model);
}
}

View File

@ -31,7 +31,7 @@ import java.util.*;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Service
public class JrwmServiceImpl implements IJrwmService {
@ -45,7 +45,7 @@ public class JrwmServiceImpl implements IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<JrwmListedVo>
@ -88,7 +88,7 @@ public class JrwmServiceImpl implements IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id
* @return Jrwm
*/
@ -110,7 +110,7 @@ public class JrwmServiceImpl implements IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -128,7 +128,7 @@ public class JrwmServiceImpl implements IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -153,7 +153,7 @@ public class JrwmServiceImpl implements IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -30,7 +30,7 @@ import java.util.*;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Service
public class NewsCateServiceImpl implements INewsCateService {
@ -41,7 +41,7 @@ public class NewsCateServiceImpl implements INewsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<NewsCateListedVo>
@ -76,7 +76,7 @@ public class NewsCateServiceImpl implements INewsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id
* @return NewsCate
*/
@ -98,7 +98,7 @@ public class NewsCateServiceImpl implements INewsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -113,7 +113,7 @@ public class NewsCateServiceImpl implements INewsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -135,7 +135,7 @@ public class NewsCateServiceImpl implements INewsCateService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -29,7 +29,7 @@ import java.util.*;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Service
public class NewsServiceImpl implements INewsService {
@ -42,7 +42,7 @@ public class NewsServiceImpl implements INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<NewsListedVo>
@ -89,7 +89,7 @@ public class NewsServiceImpl implements INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id
* @return News
*/
@ -111,7 +111,7 @@ public class NewsServiceImpl implements INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -132,7 +132,7 @@ public class NewsServiceImpl implements INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -160,7 +160,7 @@ public class NewsServiceImpl implements INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -0,0 +1,165 @@
package com.wyh.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wyh.admin.service.ISubjectInfoService;
import com.wyh.admin.validate.commons.PageValidate;
import com.wyh.common.core.PageResult;
import com.wyh.common.entity.subject.SubjectInfo;
import com.wyh.common.mapper.subject.SubjectInfoMapper;
import com.wyh.common.util.TimeUtils;
import com.wyh.common.validator.subject.SubjectInfoCreateValidate;
import com.wyh.common.validator.subject.SubjectInfoSearchValidate;
import com.wyh.common.validator.subject.SubjectInfoUpdateValidate;
import com.wyh.common.vo.subject.SubjectInfoDetailVo;
import com.wyh.common.vo.subject.SubjectInfoListedVo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.LinkedList;
import java.util.List;
/**
*
* @author wyh
*/
@Service
public class SubjectInfoServiceImpl implements ISubjectInfoService {
@Resource
SubjectInfoMapper subjectInfoMapper;
/**
*
*
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<SubjectInfoListedVo>
*/
@Override
public PageResult<SubjectInfoListedVo> list(PageValidate pageValidate, SubjectInfoSearchValidate searchValidate) {
Integer page = pageValidate.getPageNo();
Integer limit = pageValidate.getPageSize();
QueryWrapper<SubjectInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByDesc("id");
subjectInfoMapper.setSearch(queryWrapper, searchValidate, new String[]{
"like:name:str",
});
IPage<SubjectInfo> iPage = subjectInfoMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<SubjectInfoListedVo> list = new LinkedList<>();
for(SubjectInfo item : iPage.getRecords()) {
SubjectInfoListedVo vo = new SubjectInfoListedVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime()));
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @author wyh
* @param id
* @return SubjectInfo
*/
@Override
public SubjectInfoDetailVo detail(Integer id) {
SubjectInfo model = subjectInfoMapper.selectOne(
new QueryWrapper<SubjectInfo>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
SubjectInfoDetailVo vo = new SubjectInfoDetailVo();
BeanUtils.copyProperties(model, vo);
return vo;
}
/**
*
*
* @author wyh
* @param createValidate
*/
@Override
public void add(SubjectInfoCreateValidate createValidate) {
SubjectInfo model = new SubjectInfo();
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
model.setName(createValidate.getName());
subjectInfoMapper.insert(model);
}
/**
*
*
* @author wyh
* @param updateValidate
*/
@Override
public void edit(SubjectInfoUpdateValidate updateValidate) {
SubjectInfo model = subjectInfoMapper.selectOne(
new QueryWrapper<SubjectInfo>()
.eq("id", updateValidate.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(updateValidate.getId());
model.setUpdateTime(System.currentTimeMillis() / 1000);
model.setName(updateValidate.getName());
subjectInfoMapper.updateById(model);
}
/**
*
*
* @author wyh
* @param id ID
*/
@Override
public void del(Integer id) {
SubjectInfo model = subjectInfoMapper.selectOne(
new QueryWrapper<SubjectInfo>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
subjectInfoMapper.updateById(model);
}
@Override
public List<SubjectInfoListedVo> all() {
List<SubjectInfo> subjectInfos = subjectInfoMapper.selectList(null);
List<SubjectInfoListedVo> list = new LinkedList<>();
for(SubjectInfo item : subjectInfos) {
SubjectInfoListedVo vo = new SubjectInfoListedVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime()));
list.add(vo);
}
return list;
}
}

View File

@ -9,7 +9,7 @@ import com.wyh.common.validator.annotation.IDMust;
/**
* banner
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("banner信息更新参数")

View File

@ -9,7 +9,7 @@ import com.wyh.common.validator.annotation.IDMust;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("关于中将信息更新参数")

View File

@ -9,7 +9,7 @@ import com.wyh.common.validator.annotation.IDMust;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("加入我们信息更新参数")

View File

@ -9,7 +9,7 @@ import com.wyh.common.validator.annotation.IDMust;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("产品分类更新参数")

View File

@ -9,7 +9,7 @@ import com.wyh.common.validator.annotation.IDMust;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("新闻分类更新参数")

View File

@ -9,7 +9,7 @@ import com.wyh.common.validator.annotation.IDMust;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("新闻信息更新参数")

View File

@ -0,0 +1,27 @@
package com.wyh.common.entity.goods;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("产品拓展实体")
public class GoodsExpand implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
@ApiModelProperty(value = "主键id")
private Long id;
@ApiModelProperty(value = "可完成课本及拓展实验")
private String name;
@ApiModelProperty(value = "商品id")
private Integer goodsId;
}

View File

@ -0,0 +1,42 @@
package com.wyh.common.entity.info;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("班级信息实体")
public class ClassInfo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "班级/科目名称")
private String name;
@ApiModelProperty(value = "上级菜单")
private Integer pid;
@ApiModelProperty(value = "是否删除: 0=否, 1=是")
private Integer isDelete;
@ApiModelProperty(value = "创建时间")
private Long createTime;
@ApiModelProperty(value = "更新时间")
private Long updateTime;
@ApiModelProperty(value = "删除时间")
private Long deleteTime;
@ApiModelProperty(value = "排序编号")
private Integer sort;
}

View File

@ -0,0 +1,57 @@
package com.wyh.common.entity.schme;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("集成方案信息实体")
public class IntegrationSchme implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "是否删除: 0=否, 1=是")
private Integer isDelete;
@ApiModelProperty(value = "创建时间")
private Long createTime;
@ApiModelProperty(value = "更新时间")
private Long updateTime;
@ApiModelProperty(value = "删除时间")
private Long deleteTime;
@ApiModelProperty(value = "集成方案名称")
private String name;
@ApiModelProperty(value = "集成方案主图")
private String schmeImg;
@ApiModelProperty(value = "集成方案列表图")
private String schmeListImg;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "实验室说明")
private String content;
@ApiModelProperty(value = "是否上架0=否1=是")
private Integer type;
@ApiModelProperty(value = "是否下载")
private Integer isDownload;
@ApiModelProperty(value = "所属id")
private Integer infoId;
}

View File

@ -0,0 +1,36 @@
package com.wyh.common.entity.subject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("集成方案属性实体")
public class SubjectInfo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "是否删除: 0=否, 1=是")
private Integer isDelete;
@ApiModelProperty(value = "创建时间")
private Long createTime;
@ApiModelProperty(value = "更新时间")
private Long updateTime;
@ApiModelProperty(value = "删除时间")
private Long deleteTime;
@ApiModelProperty(value = "科目名称")
private String name;
}

View File

@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* bannerMapper
* @author LikeAdmin
* @author wyh
*/
@Mapper
public interface BannerMapper extends IBaseMapper<Banner> {

View File

@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author LikeAdmin
* @author wyh
*/
@Mapper
public interface AboutMapper extends IBaseMapper<About> {

View File

@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author LikeAdmin
* @author wyh
*/
@Mapper
public interface JrwmMapper extends IBaseMapper<Jrwm> {

View File

@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author LikeAdmin
* @author wyh
*/
@Mapper
public interface GoodsCateMapper extends IBaseMapper<GoodsCate> {

View File

@ -0,0 +1,13 @@
package com.wyh.common.mapper.goods;
import com.wyh.common.core.basics.IBaseMapper;
import com.wyh.common.entity.goods.GoodsExpand;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author wyh
*/
@Mapper
public interface GoodsExpandMapper extends IBaseMapper<GoodsExpand> {
}

View File

@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author LikeAdmin
* @author wyh
*/
@Mapper
public interface GoodsMapper extends IBaseMapper<Goods> {

View File

@ -0,0 +1,13 @@
package com.wyh.common.mapper.info;
import com.wyh.common.core.basics.IBaseMapper;
import com.wyh.common.entity.info.ClassInfo;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author wyh
*/
@Mapper
public interface ClassInfoMapper extends IBaseMapper<ClassInfo> {
}

View File

@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author LikeAdmin
* @author wyh
*/
@Mapper
public interface NewsCateMapper extends IBaseMapper<NewsCate> {

View File

@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author LikeAdmin
* @author wyh
*/
@Mapper
public interface NewsMapper extends IBaseMapper<News> {

View File

@ -0,0 +1,13 @@
package com.wyh.common.mapper.schme;
import com.wyh.common.core.basics.IBaseMapper;
import com.wyh.common.entity.schme.IntegrationSchme;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author wyh
*/
@Mapper
public interface IntegrationSchmeMapper extends IBaseMapper<IntegrationSchme> {
}

View File

@ -0,0 +1,13 @@
package com.wyh.common.mapper.subject;
import com.wyh.common.core.basics.IBaseMapper;
import com.wyh.common.entity.subject.SubjectInfo;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author wyh
*/
@Mapper
public interface SubjectInfoMapper extends IBaseMapper<SubjectInfo> {
}

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("产品分类更新参数")

View File

@ -1,5 +1,6 @@
package com.wyh.common.validator.goods;
import com.wyh.common.entity.goods.GoodsExpand;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -7,6 +8,7 @@ import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel("产品信息创建参数")
@ -50,4 +52,7 @@ public class GoodsCreateValidate implements Serializable {
@ApiModelProperty(value = "产品分类")
private Integer cateId;
@ApiModelProperty(value = "产品扩展信息")
private List<GoodsExpand> goodsExpand;
}

View File

@ -1,5 +1,6 @@
package com.wyh.common.validator.goods;
import com.wyh.common.entity.goods.GoodsExpand;
import com.wyh.common.validator.annotation.IDMust;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -8,10 +9,11 @@ import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("产品信息更新参数")
@ -59,4 +61,7 @@ public class GoodsUpdateValidate implements Serializable {
@ApiModelProperty(value = "产品分类")
private Integer cateId;
@ApiModelProperty(value = "产品扩展信息")
private List<GoodsExpand> goodsExpand;
}

View File

@ -0,0 +1,28 @@
package com.wyh.common.validator.info;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
@ApiModel("班级信息创建参数")
public class ClassInfoCreateValidate implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull(message = "name参数缺失")
@ApiModelProperty(value = "班级/科目名称")
private String name;
@NotNull(message = "pid参数缺失")
@ApiModelProperty(value = "上级菜单")
private Integer pid;
@NotNull(message = "sort参数缺失")
@ApiModelProperty(value = "排序编号")
private Integer sort;
}

View File

@ -0,0 +1,23 @@
package com.wyh.common.validator.info;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("班级信息搜素参数")
public class ClassInfoSearchValidate implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "班级/科目名称")
private String name;
@ApiModelProperty(value = "上级菜单")
private Integer pid;
@ApiModelProperty(value = "排序编号")
private Integer sort;
}

View File

@ -0,0 +1,36 @@
package com.wyh.common.validator.info;
import com.wyh.common.validator.annotation.IDMust;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
*
* @author wyh
*/
@Data
@ApiModel("班级信息更新参数")
public class ClassInfoUpdateValidate implements Serializable {
private static final long serialVersionUID = 1L;
@IDMust(message = "id参数必传且需大于0")
@ApiModelProperty(value = "主键")
private Integer id;
@NotNull(message = "name参数缺失")
@ApiModelProperty(value = "班级/科目名称")
private String name;
@NotNull(message = "pid参数缺失")
@ApiModelProperty(value = "上级菜单")
private Integer pid;
@NotNull(message = "sort参数缺失")
@ApiModelProperty(value = "排序编号")
private Integer sort;
}

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("新闻分类更新参数")

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("新闻信息更新参数")

View File

@ -0,0 +1,48 @@
package com.wyh.common.validator.schme;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
@ApiModel("集成方案信息创建参数")
public class IntegrationSchmeCreateValidate implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull(message = "name参数缺失")
@ApiModelProperty(value = "集成方案名称")
private String name;
@NotNull(message = "schmeImg参数缺失")
@ApiModelProperty(value = "集成方案主图")
private String schmeImg;
@NotNull(message = "schmeListImg参数缺失")
@ApiModelProperty(value = "集成方案列表图")
private String schmeListImg;
@NotNull(message = "sort参数缺失")
@ApiModelProperty(value = "排序")
private Integer sort;
@NotNull(message = "content参数缺失")
@ApiModelProperty(value = "实验室说明")
private String content;
@NotNull(message = "type参数缺失")
@ApiModelProperty(value = "是否上架0=否1=是")
private Integer type;
@NotNull(message = "isDownload参数缺失")
@ApiModelProperty(value = "是否下载")
private Integer isDownload;
@NotNull(message = "infoId参数缺失")
@ApiModelProperty(value = "所属id")
private Integer infoId;
}

View File

@ -0,0 +1,38 @@
package com.wyh.common.validator.schme;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("集成方案信息搜素参数")
public class IntegrationSchmeSearchValidate implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "集成方案名称")
private String name;
@ApiModelProperty(value = "集成方案主图")
private String schmeImg;
@ApiModelProperty(value = "集成方案列表图")
private String schmeListImg;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "实验室说明")
private String content;
@ApiModelProperty(value = "是否上架0=否1=是")
private Integer type;
@ApiModelProperty(value = "是否下载")
private Integer isDownload;
@ApiModelProperty(value = "所属id")
private Integer infoId;
}

View File

@ -0,0 +1,57 @@
package com.wyh.common.validator.schme;
import com.wyh.common.validator.annotation.IDMust;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
*
* @author wyh
*/
@Data
@ApiModel("集成方案信息更新参数")
public class IntegrationSchmeUpdateValidate implements Serializable {
private static final long serialVersionUID = 1L;
@IDMust(message = "id参数必传且需大于0")
@ApiModelProperty(value = "主键")
private Integer id;
@NotNull(message = "name参数缺失")
@ApiModelProperty(value = "集成方案名称")
private String name;
@NotNull(message = "schmeImg参数缺失")
@ApiModelProperty(value = "集成方案主图")
private String schmeImg;
@NotNull(message = "schmeListImg参数缺失")
@ApiModelProperty(value = "集成方案列表图")
private String schmeListImg;
@NotNull(message = "sort参数缺失")
@ApiModelProperty(value = "排序")
private Integer sort;
@NotNull(message = "content参数缺失")
@ApiModelProperty(value = "实验室说明")
private String content;
@NotNull(message = "type参数缺失")
@ApiModelProperty(value = "是否上架0=否1=是")
private Integer type;
@NotNull(message = "isDownload参数缺失")
@ApiModelProperty(value = "是否下载")
private Integer isDownload;
@NotNull(message = "infoId参数缺失")
@ApiModelProperty(value = "所属id")
private Integer infoId;
}

View File

@ -0,0 +1,20 @@
package com.wyh.common.validator.subject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
@ApiModel("集成方案属性创建参数")
public class SubjectInfoCreateValidate implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull(message = "name参数缺失")
@ApiModelProperty(value = "科目名称")
private String name;
}

View File

@ -0,0 +1,17 @@
package com.wyh.common.validator.subject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("集成方案属性搜素参数")
public class SubjectInfoSearchValidate implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "科目名称")
private String name;
}

View File

@ -0,0 +1,29 @@
package com.wyh.common.validator.subject;
import com.wyh.common.validator.annotation.IDMust;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
*
* @author wyh
*/
@Data
@ApiModel("集成方案属性更新参数")
public class SubjectInfoUpdateValidate implements Serializable {
private static final long serialVersionUID = 1L;
@IDMust(message = "id参数必传且需大于0")
@ApiModelProperty(value = "主键")
private Integer id;
@NotNull(message = "name参数缺失")
@ApiModelProperty(value = "科目名称")
private String name;
}

View File

@ -1,11 +1,13 @@
package com.wyh.common.vo.goods;
import com.wyh.common.entity.goods.GoodsExpand;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel("产品信息详情Vo")
@ -43,5 +45,7 @@ public class GoodsDetailVo implements Serializable {
@ApiModelProperty(value = "产品分类")
private Integer cateId;
private List<GoodsExpand> goodsExpand;
}

View File

@ -52,4 +52,7 @@ public class GoodsListedVo implements Serializable {
@ApiModelProperty(value = "产品分类名称")
private String cateName;
@ApiModelProperty(value = "产品拓展")
private String goodsExpand;
}

View File

@ -0,0 +1,28 @@
package com.wyh.common.vo.info;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("班级信息详情Vo")
public class ClassInfoDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "班级/科目名称")
private String name;
@ApiModelProperty(value = "上级菜单")
private Integer pid;
@ApiModelProperty(value = "排序编号")
private Integer sort;
}

View File

@ -0,0 +1,34 @@
package com.wyh.common.vo.info;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("班级信息列表Vo")
public class ClassInfoListedVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "班级/科目名称")
private String name;
@ApiModelProperty(value = "上级菜单")
private Integer pid;
@ApiModelProperty(value = "创建时间")
private String createTime;
@ApiModelProperty(value = "更新时间")
private String updateTime;
@ApiModelProperty(value = "排序编号")
private Integer sort;
}

View File

@ -0,0 +1,43 @@
package com.wyh.common.vo.schme;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("集成方案信息详情Vo")
public class IntegrationSchmeDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "集成方案名称")
private String name;
@ApiModelProperty(value = "集成方案主图")
private String schmeImg;
@ApiModelProperty(value = "集成方案列表图")
private String schmeListImg;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "实验室说明")
private String content;
@ApiModelProperty(value = "是否上架0=否1=是")
private Integer type;
@ApiModelProperty(value = "是否下载")
private Integer isDownload;
@ApiModelProperty(value = "所属id")
private Integer infoId;
}

View File

@ -0,0 +1,49 @@
package com.wyh.common.vo.schme;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("集成方案信息列表Vo")
public class IntegrationSchmeListedVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "创建时间")
private String createTime;
@ApiModelProperty(value = "更新时间")
private String updateTime;
@ApiModelProperty(value = "集成方案名称")
private String name;
@ApiModelProperty(value = "集成方案主图")
private String schmeImg;
@ApiModelProperty(value = "集成方案列表图")
private String schmeListImg;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "是否上架0=否1=是")
private Integer type;
@ApiModelProperty(value = "是否下载")
private Integer isDownload;
@ApiModelProperty(value = "所属id")
private Integer infoId;
private String infoName;
}

View File

@ -0,0 +1,22 @@
package com.wyh.common.vo.subject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("集成方案属性详情Vo")
public class SubjectInfoDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "科目名称")
private String name;
}

View File

@ -0,0 +1,28 @@
package com.wyh.common.vo.subject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("集成方案属性列表Vo")
public class SubjectInfoListedVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "创建时间")
private String createTime;
@ApiModelProperty(value = "更新时间")
private String updateTime;
@ApiModelProperty(value = "科目名称")
private String name;
}

View File

@ -3,8 +3,12 @@ package com.wyh.front.controller;
import com.alibaba.fastjson2.JSONArray;
import com.wyh.common.aop.NotLogin;
import com.wyh.common.core.AjaxResult;
import com.wyh.common.core.PageResult;
import com.wyh.common.validator.goods.GoodsCateSearchValidate;
import com.wyh.common.validator.goods.GoodsSearchValidate;
import com.wyh.common.vo.goods.GoodsListedVo;
import com.wyh.front.service.GoodsService;
import com.wyh.front.validate.common.PageValidate;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
@ -28,4 +32,14 @@ public class GoodsController {
JSONArray list = goodsService.cateTree(searchValidate);
return AjaxResult.success(list);
}
@NotLogin
@RequestMapping("/list")
@ApiOperation(value = "产品列表", httpMethod = "GET" )
public AjaxResult<PageResult<GoodsListedVo>> list(@Validated PageValidate pageValidate,
@Validated GoodsSearchValidate searchValidate) {
PageResult<GoodsListedVo> list = goodsService.list( pageValidate, searchValidate);
return AjaxResult.success(list);
}
}

View File

@ -1,8 +1,14 @@
package com.wyh.front.service;
import com.alibaba.fastjson2.JSONArray;
import com.wyh.common.core.PageResult;
import com.wyh.common.validator.goods.GoodsCateSearchValidate;
import com.wyh.common.validator.goods.GoodsSearchValidate;
import com.wyh.common.vo.goods.GoodsListedVo;
import com.wyh.front.validate.common.PageValidate;
public interface GoodsService {
JSONArray cateTree( GoodsCateSearchValidate searchValidate);
PageResult<GoodsListedVo> list(PageValidate pageValidate, GoodsSearchValidate searchValidate);
}

View File

@ -12,14 +12,14 @@ import com.wyh.front.vo.basic.company.AboutListedVo;
/**
*
* @author LikeAdmin
* @author wyh
*/
public interface IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<AboutListedVo>
@ -29,7 +29,7 @@ public interface IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return AboutDetailVo
*/
@ -38,7 +38,7 @@ public interface IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(AboutCreateValidate createValidate);
@ -46,7 +46,7 @@ public interface IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(AboutUpdateValidate updateValidate);
@ -54,7 +54,7 @@ public interface IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -12,14 +12,14 @@ import com.wyh.front.vo.basic.banner.BannerListedVo;
/**
* banner
* @author LikeAdmin
* @author wyh
*/
public interface IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<BannerListedVo>
@ -29,7 +29,7 @@ public interface IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return BannerDetailVo
*/
@ -38,7 +38,7 @@ public interface IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(BannerCreateValidate createValidate);
@ -46,7 +46,7 @@ public interface IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(BannerUpdateValidate updateValidate);
@ -54,7 +54,7 @@ public interface IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -11,14 +11,14 @@ import com.wyh.front.vo.basic.company.JrwmListedVo;
/**
*
* @author LikeAdmin
* @author wyh
*/
public interface IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<JrwmListedVo>
@ -28,7 +28,7 @@ public interface IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return JrwmDetailVo
*/
@ -37,7 +37,7 @@ public interface IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(JrwmCreateValidate createValidate);
@ -45,7 +45,7 @@ public interface IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(JrwmUpdateValidate updateValidate);
@ -53,7 +53,7 @@ public interface IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -14,14 +14,14 @@ import java.util.List;
/**
*
* @author LikeAdmin
* @author wyh
*/
public interface INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<NewsListedVo>
@ -31,7 +31,7 @@ public interface INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
* @return NewsDetailVo
*/
@ -40,7 +40,7 @@ public interface INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
void add(NewsCreateValidate createValidate);
@ -48,7 +48,7 @@ public interface INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
void edit(NewsUpdateValidate updateValidate);
@ -56,7 +56,7 @@ public interface INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
void del(Integer id);

View File

@ -25,7 +25,7 @@ import java.util.List;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Service
public class AboutServiceImpl implements IAboutService {
@ -36,7 +36,7 @@ public class AboutServiceImpl implements IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<AboutListedVo>
@ -79,7 +79,7 @@ public class AboutServiceImpl implements IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id
* @return About
*/
@ -101,7 +101,7 @@ public class AboutServiceImpl implements IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -124,7 +124,7 @@ public class AboutServiceImpl implements IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -154,7 +154,7 @@ public class AboutServiceImpl implements IAboutService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -27,7 +27,7 @@ import java.util.List;
/**
* banner
* @author LikeAdmin
* @author wyh
*/
@Service
public class BannerServiceImpl implements IBannerService {
@ -38,7 +38,7 @@ public class BannerServiceImpl implements IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<BannerListedVo>
@ -77,7 +77,7 @@ public class BannerServiceImpl implements IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param id
* @return Banner
*/
@ -100,7 +100,7 @@ public class BannerServiceImpl implements IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -119,7 +119,7 @@ public class BannerServiceImpl implements IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -145,7 +145,7 @@ public class BannerServiceImpl implements IBannerService {
/**
* banner
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -1,15 +1,24 @@
package com.wyh.front.service.impl;
import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.wyh.common.config.GlobalConfig;
import com.wyh.common.core.PageResult;
import com.wyh.common.entity.goods.Goods;
import com.wyh.common.entity.goods.GoodsCate;
import com.wyh.common.mapper.goods.GoodsCateMapper;
import com.wyh.common.mapper.goods.GoodsMapper;
import com.wyh.common.util.ListUtils;
import com.wyh.common.util.TimeUtils;
import com.wyh.common.validator.goods.GoodsCateSearchValidate;
import com.wyh.common.validator.goods.GoodsSearchValidate;
import com.wyh.common.vo.goods.GoodsCateListedVo;
import com.wyh.common.vo.goods.GoodsListedVo;
import com.wyh.front.service.GoodsService;
import com.wyh.front.validate.common.PageValidate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -52,4 +61,42 @@ public class GoodsServiceImpl implements GoodsService {
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(array));
return ListUtils.listToTree(jsonArray, "id", "pid", "children");
}
@Override
public PageResult<GoodsListedVo> list(PageValidate pageValidate, GoodsSearchValidate searchValidate) {
Integer page = pageValidate.getPageNo();
Integer limit = pageValidate.getPageSize();
MPJQueryWrapper<Goods> mpjQueryWrapper = new MPJQueryWrapper<>();
mpjQueryWrapper.selectAll(Goods.class);
mpjQueryWrapper.innerJoin("?_goods_cate gc ON gc.id=t.cate_id".replace("?_", GlobalConfig.tablePrefix));
mpjQueryWrapper.eq("t.is_delete", 0);
mpjQueryWrapper.orderByDesc(Arrays.asList("t.sort", "t.id"));
goodsMapper.setSearch(mpjQueryWrapper, searchValidate, new String[]{
"like:goodsName@goods_name:str",
"=:cateId@cate_id:int",
});
IPage<GoodsListedVo> iPage = goodsMapper.selectJoinPage(
new Page<>(page, limit),
GoodsListedVo.class,
mpjQueryWrapper);
for(GoodsListedVo item : iPage.getRecords()) {
item.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime()));
item.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime()));
if (item.getCateId() != null) {
GoodsCate goodsCate = goodsCateMapper.selectOne(Wrappers.<GoodsCate>lambdaQuery().eq(GoodsCate::getId, item.getCateId()).eq(GoodsCate::getIsDelete, 0));
GoodsCate goodsCate1 = goodsCateMapper.selectOne(Wrappers.<GoodsCate>lambdaQuery().eq(GoodsCate::getId, (goodsCate.getPid())).eq(GoodsCate::getIsDelete, 0));
item.setCateName(goodsCate1.getName() + "-" + goodsCate.getName());
}
}
return PageResult.iPageHandle(iPage);
}
}

View File

@ -26,7 +26,7 @@ import javax.annotation.Resource;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Service
public class JrwmServiceImpl implements IJrwmService {
@ -40,7 +40,7 @@ public class JrwmServiceImpl implements IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<JrwmListedVo>
@ -83,7 +83,7 @@ public class JrwmServiceImpl implements IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id
* @return Jrwm
*/
@ -105,7 +105,7 @@ public class JrwmServiceImpl implements IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -123,7 +123,7 @@ public class JrwmServiceImpl implements IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -148,7 +148,7 @@ public class JrwmServiceImpl implements IJrwmService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -29,7 +29,7 @@ import java.util.List;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Service
public class NewsServiceImpl implements INewsService {
@ -43,7 +43,7 @@ public class NewsServiceImpl implements INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param pageValidate
* @param searchValidate
* @return PageResult<NewsListedVo>
@ -90,7 +90,7 @@ public class NewsServiceImpl implements INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id
* @return News
*/
@ -118,7 +118,7 @@ public class NewsServiceImpl implements INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param createValidate
*/
@Override
@ -139,7 +139,7 @@ public class NewsServiceImpl implements INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param updateValidate
*/
@Override
@ -167,7 +167,7 @@ public class NewsServiceImpl implements INewsService {
/**
*
*
* @author LikeAdmin
* @author wyh
* @param id ID
*/
@Override

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
/**
* banner
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("banner信息更新参数")

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("关于中将信息更新参数")

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
/**
*
* @author LikeAdmin
* @author wyh
*/
@Data
@ApiModel("加入我们信息更新参数")

View File

@ -16,7 +16,7 @@ ZJ-java:
# 服务配置
server:
port: 8084
port: 2019
# servlet:
# context-path: /

View File

@ -31,7 +31,6 @@
<mybatis-plus.version>3.5.2</mybatis-plus.version>
<mybatis-plus-join.version>1.2.4</mybatis-plus-join.version>
<pagehelper.version>1.4.5</pagehelper.version>
<lombok.version>1.18.24</lombok.version>
<fastJson2.version>2.0.16</fastJson2.version>
<commons-lang3.version>3.12.0</commons-lang3.version>

26
admin/src/api/info.ts Normal file
View File

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 班级信息列表
export function infoLists(params?: Record<string, any>) {
return request.get({ url: '/info/list', params })
}
// 班级信息详情
export function infoDetail(params: Record<string, any>) {
return request.get({ url: '/info/detail', params })
}
// 班级信息新增
export function infoAdd(params: Record<string, any>) {
return request.post({ url: '/info/add', params })
}
// 班级信息编辑
export function infoEdit(params: Record<string, any>) {
return request.post({ url: '/info/edit', params })
}
// 班级信息删除
export function infoDelete(params: Record<string, any>) {
return request.post({ url: '/info/del', params })
}

26
admin/src/api/schme.ts Normal file
View File

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 集成方案信息列表
export function schmeLists(params?: Record<string, any>) {
return request.get({ url: '/schme/list', params })
}
// 集成方案信息详情
export function schmeDetail(params: Record<string, any>) {
return request.get({ url: '/schme/detail', params })
}
// 集成方案信息新增
export function schmeAdd(params: Record<string, any>) {
return request.post({ url: '/schme/add', params })
}
// 集成方案信息编辑
export function schmeEdit(params: Record<string, any>) {
return request.post({ url: '/schme/edit', params })
}
// 集成方案信息删除
export function schmeDelete(params: Record<string, any>) {
return request.post({ url: '/schme/del', params })
}

32
admin/src/api/subject.ts Normal file
View File

@ -0,0 +1,32 @@
import request from '@/utils/request'
// 集成方案属性列表
export function infoLists(params?: Record<string, any>) {
return request.get({ url: '/subject/list', params })
}
// 集成方案属性详情
export function infoDetail(params: Record<string, any>) {
return request.get({ url: '/subject/detail', params })
}
// 集成方案属性新增
export function infoAdd(params: Record<string, any>) {
return request.post({ url: '/subject/add', params })
}
// 集成方案属性编辑
export function infoEdit(params: Record<string, any>) {
return request.post({ url: '/subject/edit', params })
}
// 集成方案属性删除
export function infoDelete(params: Record<string, any>) {
return request.post({ url: '/subject/del', params })
}
export function listAll() {
return request.get({ url: '/subject/all' })
}

View File

@ -58,6 +58,18 @@
<el-form-item label="实验室说明" prop="summary">
<editor v-model="formData.summary" :height="500" />
</el-form-item>
<div>
<el-button type="info" @click="addInput"></el-button>
<div v-for="(input, index) in inputs" :key="index">
<el-input v-model="input.name" placeholder="请输入内容" style="width: 700px"></el-input>
<el-button type="danger" @click="removeInput">X</el-button>
</div>
</div>
</el-form>
</popup>
</div>
@ -98,9 +110,11 @@ const formData = reactive({
type: '',
isDownload: '',
summary: '',
cateId :''
cateId :'',
goodsExpand:[]
})
const formRules = {
id: [
{
@ -174,25 +188,13 @@ const { optionsData } = useDictOptions<{
}
})
const getCate = async () => {
// optionsData = await cateLists()
// console.log( " ++++++++++++++",optionsData)
// const cate: any = {
// id: 0,
// name: '',
// children: []
// }
// cate.children = arrayToTree(
// treeToArray(data)
// )
// cateOptions.value.push(cate)
// cateOptions.value.filter((item) => item.id != 0)
// console.log(cateOptions)
}
const handleSubmit = async () => {
await formRef.value?.validate()
const data: any = { ...formData }
for (let i = 0; i < inputs.value.length; i++) {
formData.goodsExpand.push(inputs.value[i]);
}
mode.value == 'edit' ? await goodsEdit(data) : await goodsAdd(data)
popupRef.value?.close()
feedback.msgSuccess('操作成功')
@ -218,17 +220,35 @@ const getDetail = async (row: Record<string, any>) => {
id: row.id
})
setFormData(data)
for (let i = 0; i < data.goodsExpand.length; i++) {
inputs.value.push(data.goodsExpand[i])
}
}
const handleClose = () => {
inputs.value.splice(0, inputs.value.length);
emit('close')
}
getCate()
defineExpose({
open,
setFormData,
getDetail
})
const inputs = ref([]);
function addInput() {
inputs.value.push({ name: '' });
}
function removeInput(index) {
inputs.value.splice(index, 1);
}
</script>

View File

@ -0,0 +1,147 @@
<template>
<div class="edit-popup">
<popup
ref="popupRef"
:title="popupTitle"
:async="true"
width="550px"
:clickModalClose="true"
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="上级菜单" prop="pid">
<el-tree-select
class="flex-1"
v-model="formData.pid"
:data="treeList"
clearable
node-key="id"
:props="{ label: 'name', value: 'id', children: 'children' }"
:default-expand-all="true"
placeholder="请选择上级菜单"
check-strictly
/>
</el-form-item>
<el-form-item label="产品分类名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入产品分类名称" />
</el-form-item>
<el-form-item label="排序" prop="menuSort">
<div>
<el-input-number v-model="formData.sort" :max="9999" />
<div class="form-tips">数值越大越排前</div>
</div>
</el-form-item>
</el-form>
</popup>
</div>
</template>
<script lang="ts" setup>
import type { FormInstance } from 'element-plus'
import { infoEdit, infoAdd, infoDetail , infoLists} from '@/api/info'
import Popup from '@/components/popup/index.vue'
import feedback from '@/utils/feedback'
import type { PropType } from 'vue'
import {cateLists} from "@/api/cate";
defineProps({
dictData: {
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
})
const treeList = ref<any[]>([])
const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑班级信息' : '新增班级信息'
})
const formData = reactive({
id: '',
name: '',
pid: '',
sort: '',
})
const formRules = {
id: [
{
required: true,
message: '请输入主键',
trigger: ['blur']
}
],
name: [
{
required: true,
message: '请输入班级/科目名称',
trigger: ['blur']
}
],
pid: [
{
required: true,
message: '请输入上级菜单',
trigger: ['blur']
}
],
sort: [
{
required: true,
message: '请输入排序编号',
trigger: ['blur']
}
],
}
const handleSubmit = async () => {
await formRef.value?.validate()
const data: any = { ...formData }
mode.value == 'edit' ? await infoEdit(data) : await infoAdd(data)
popupRef.value?.close()
feedback.msgSuccess('操作成功')
emit('success')
}
const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
}
const setFormData = async (data: Record<string, any>) => {
for (const key in formData) {
if (data[key] != null && data[key] != undefined) {
//@ts-ignore
formData[key] = data[key]
}
}
}
const getDetail = async (row: Record<string, any>) => {
const data = await infoDetail({
id: row.id
})
setFormData(data)
}
const getLists = async () => {
const data: any = await infoLists()
const item = { id: 0, name: '顶级', children: [] }
item.children = data
treeList.value.push(item)
}
const handleClose = () => {
emit('close')
}
getLists()
defineExpose({
open,
setFormData,
getDetail
})
</script>

View File

@ -0,0 +1,138 @@
<template>
<div class="index-lists">
<el-card class="!border-none mt-4" shadow="never">
<div>
<el-button v-perms="['info:add']" type="primary" @click="handleAdd()">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增
</el-button>
<el-button @click="handleExpand"> / </el-button>
</div>
<el-table
v-loading="loading"
ref="tableRef"
class="mt-4"
size="large"
:data="lists"
row-key="id"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
<el-table-column label="班级分类名称" prop="name" min-width="100" />
<el-table-column label="创建时间" prop="createTime" min-width="100" />
<el-table-column label="更新时间" prop="updateTime" min-width="100" />
<el-table-column label="排序编号" prop="sort" min-width="100" />
<el-table-column label="是否显示" prop="isShow" min-width="100"/>
<el-table-column label="操作" width="160" fixed="right">
<template #default="{ row }">
<el-button
v-perms="['cate:add']"
type="primary"
link
@click="handleAdd(row.id)"
>
新增
</el-button>
<el-button
v-perms="['info:edit']"
type="primary"
link
@click="handleEdit(row)"
>
编辑
</el-button>
<el-button
v-perms="['info:del']"
type="danger"
link
@click="handleDelete(row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<edit-popup
v-if="showEdit"
ref="editRef"
@success="getLists"
@close="showEdit = false"
/>
</div>
</template>
<script lang="ts" setup name="info">
import { infoDelete, infoLists } from '@/api/info'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import {ElTable} from "element-plus";
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const showEdit = ref(false)
const loading = ref(false)
let isExpand = false
const tableRef = shallowRef<InstanceType<typeof ElTable>>()
const lists = ref<any[]>([])
const queryParams = reactive({
name: '',
pid: '',
sort: '',
})
const getLists = async () => {
loading.value = true
try {
const data = await infoLists(queryParams)
lists.value = data
loading.value = false
} catch (error) {
loading.value = false
}
}
const handleAdd = async(id?: number) => {
showEdit.value = true
await nextTick()
if (id) {
editRef.value?.setFormData({
pid: id
})
}
editRef.value?.open('add')
}
const handleEdit = async (data: any) => {
showEdit.value = true
await nextTick()
editRef.value?.open('edit')
editRef.value?.getDetail(data)
}
const handleExpand = () => {
isExpand = !isExpand
toggleExpand(lists.value, isExpand)
}
const toggleExpand = (children: any[], unfold = true) => {
for (const key in children) {
tableRef.value?.toggleRowExpansion(children[key], unfold)
if (children[key].children) {
toggleExpand(children[key].children!, unfold)
}
}
}
const handleDelete = async (id: number) => {
await feedback.confirm('确定要删除?')
await infoDelete({ id })
feedback.msgSuccess('删除成功')
getLists()
}
getLists()
</script>

View File

@ -0,0 +1,205 @@
<template>
<div class="edit-popup">
<popup
ref="popupRef"
:title="popupTitle"
:async="true"
width="1000px"
:clickModalClose="true"
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="110px" style="width: 800px" :rules="formRules">
<el-form-item label="集成方案名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入集成方案名称" />
</el-form-item>
<el-form-item label="集成方案主图" prop="schmeImg">
<material-picker size="300px" v-model="formData.schmeImg" />
</el-form-item>
<el-form-item label="列表图" prop="schmeListImg">
<material-picker size="300px" v-model="formData.schmeListImg" />
</el-form-item>
<el-form-item label="排序" prop="sort">
<div>
<el-input-number v-model="formData.sort" :max="9999" />
<div class="form-tips">数值越大越排前</div>
</div>
</el-form-item>
<el-form-item label="实验室说明" prop="content">
<editor v-model="formData.content" :height="500" />
</el-form-item>
<el-form-item label="是否上架" prop="type">
<el-radio-group class="flex-1" v-model="formData.type" placeholder="请选择是否上架01是">
<el-radio :label="1">上架</el-radio>
<el-radio :label="0">下架</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否下载" prop="isDownload">
<el-radio-group v-model="formData.isDownload" placeholder="请输入是否下载" >
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="所属id" prop="infoId">
<el-select
v-model="formData.infoId"
class="flex-1"
clearable
placeholder="请选择方案属性"
>
<el-option v-for="item in optionDataList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-form>
</popup>
</div>
</template>
<script lang="ts" setup>
import type { FormInstance } from 'element-plus'
import { schmeEdit, schmeAdd, schmeDetail } from '@/api/schme'
import Popup from '@/components/popup/index.vue'
import feedback from '@/utils/feedback'
import type { PropType } from 'vue'
import {useDictOptions} from "@/hooks/useDictOptions";
import {infoLists} from "@/api/info";
defineProps({
dictData: {
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
})
const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑集成方案信息' : '新增集成方案信息'
})
import {listAll} from "@/api/subject";
const optionDataList = ref<any[]>([])
const formData = reactive({
id: '',
name: '',
schmeImg: '',
schmeListImg: '',
sort: '',
content: '',
type: '',
isDownload: '',
infoId: '',
})
const formRules = {
id: [
{
required: true,
message: '请输入主键',
trigger: ['blur']
}
],
name: [
{
required: true,
message: '请输入集成方案名称',
trigger: ['blur']
}
],
schmeImg: [
{
required: true,
message: '请输入集成方案主图',
trigger: ['blur']
}
],
schmeListImg: [
{
required: true,
message: '请输入集成方案列表图',
trigger: ['blur']
}
],
sort: [
{
required: true,
message: '请输入排序',
trigger: ['blur']
}
],
content: [
{
required: true,
message: '请输入实验室说明',
trigger: ['blur']
}
],
type: [
{
required: true,
message: '请选择是否上架0=否1=是',
trigger: ['blur']
}
],
isDownload: [
{
required: true,
message: '请输入是否下载',
trigger: ['blur']
}
],
infoId: [
{
required: true,
message: '请输入所属id',
trigger: ['blur']
}
],
}
const handleSubmit = async () => {
await formRef.value?.validate()
const data: any = { ...formData }
mode.value == 'edit' ? await schmeEdit(data) : await schmeAdd(data)
popupRef.value?.close()
feedback.msgSuccess('操作成功')
emit('success')
}
const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
}
const getNewsCateList = async () => {
const res: any = await listAll()
optionDataList.value = res || []
}
const setFormData = async (data: Record<string, any>) => {
for (const key in formData) {
if (data[key] != null && data[key] != undefined) {
//@ts-ignore
formData[key] = data[key]
}
}
}
const getDetail = async (row: Record<string, any>) => {
const data = await schmeDetail({
id: row.id
})
setFormData(data)
}
const handleClose = () => {
emit('close')
}
defineExpose({
open,
setFormData,
getDetail
})
getNewsCateList()
</script>

View File

@ -0,0 +1,177 @@
<template>
<div class="index-lists">
<el-card class="!border-none" shadow="never">
<el-form ref="formRef" class="mb-[-16px]" :model="queryParams" :inline="true">
<el-form-item label="集名称" prop="name">
<el-input class="w-[280px]" v-model="queryParams.name" />
</el-form-item>
<el-form-item label="所属分类" prop="infoId">
<el-select
v-model="queryParams.infoId"
class="flex-1"
clearable
placeholder="请选择方案属性"
>
<el-option v-for="item in optionDataList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage"></el-button>
<el-button @click="resetParams"></el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="!border-none mt-4" shadow="never">
<div>
<el-button v-perms="['schme:add']" type="primary" @click="handleAdd()">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增
</el-button>
</div>
<el-table
class="mt-4"
size="large"
v-loading="pager.loading"
:data="pager.lists"
>
<el-table-column label="创建时间" prop="createTime" min-width="100" />
<el-table-column label="更新时间" prop="updateTime" min-width="100" />
<el-table-column label="集成方案名称" prop="name" min-width="100" />
<el-table-column label="集成方案主图" prop="schmeImg" min-width="100" >
<template #default="{ row }">
<image-contain
:width="100"
:height="60"
:src="row.schmeImg"
:preview-src-list="[row.schmeImg]"
preview-teleported
hide-on-click-modal
/>
</template>
</el-table-column>
<el-table-column label="集成方案列表图" prop="schmeListImg" min-width="100" >
<template #default="{ row }">
<image-contain
:width="100"
:height="60"
:src="row.schmeListImg"
:preview-src-list="[row.schmeListImg]"
preview-teleported
hide-on-click-modal
/>
</template>
</el-table-column>
<el-table-column label="排序" prop="sort" min-width="100" />
<el-table-column label="是否上架" prop="type" min-width="100" >
<template #default="{ row }">
<dict-value :options="dictData.Integer" :value="row.type" />
</template>
</el-table-column>>
<el-table-column label="是否下载" prop="isDownload" min-width="100" >
<template #default="{ row }">
<dict-value :options="dictData.Integer" :value="row.isDownload" />
</template>
</el-table-column>
<el-table-column label="所属分类" prop="infoName" min-width="100" />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button
v-perms="['schme:edit']"
type="primary"
link
@click="handleEdit(row)"
>
编辑
</el-button>
<el-button
v-perms="['schme:del']"
type="danger"
link
@click="handleDelete(row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<div class="flex justify-end mt-4">
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
<edit-popup
v-if="showEdit"
ref="editRef"
@success="getLists"
@close="showEdit = false"
/>
</div>
</template>
<script lang="ts" setup name="schme">
import { schmeDelete, schmeLists } from '@/api/schme'
import { usePaging } from '@/hooks/usePaging'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import {useDictData, useDictOptions} from "@/hooks/useDictOptions";
import {listAll} from "@/api/subject";
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const showEdit = ref(false)
const { dictData } = useDictData<{
Integer: any[]
}>(['Integer'])
const queryParams = reactive({
name: '',
schmeImg: '',
schmeListImg: '',
sort: '',
content: '',
type: '',
isDownload: '',
infoId: '',
})
const { pager, getLists, resetPage, resetParams } = usePaging({
fetchFun: schmeLists,
params: queryParams
})
const optionDataList = ref<any[]>([])
const getNewsCateList = async () => {
const res: any = await listAll()
optionDataList.value = res || []
}
const handleAdd = async () => {
showEdit.value = true
await nextTick()
editRef.value?.open('add')
}
const handleEdit = async (data: any) => {
showEdit.value = true
await nextTick()
editRef.value?.open('edit')
editRef.value?.getDetail(data)
}
const handleDelete = async (id: number) => {
await feedback.confirm('确定要删除?')
await schmeDelete({ id })
feedback.msgSuccess('删除成功')
getLists()
}
getNewsCateList()
getLists()
</script>

View File

@ -0,0 +1,101 @@
<template>
<div class="edit-popup">
<popup
ref="popupRef"
:title="popupTitle"
:async="true"
width="550px"
:clickModalClose="true"
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form-item label="科目名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入科目名称" />
</el-form-item>
</el-form>
</popup>
</div>
</template>
<script lang="ts" setup>
import type { FormInstance } from 'element-plus'
import { infoEdit, infoAdd, infoDetail } from '@/api/subject'
import Popup from '@/components/popup/index.vue'
import feedback from '@/utils/feedback'
import type { PropType } from 'vue'
defineProps({
dictData: {
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
})
const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑集成方案属性' : '新增集成方案属性'
})
const formData = reactive({
id: '',
name: '',
})
const formRules = {
id: [
{
required: true,
message: '请输入主键',
trigger: ['blur']
}
],
name: [
{
required: true,
message: '请输入科目名称',
trigger: ['blur']
}
],
}
const handleSubmit = async () => {
await formRef.value?.validate()
const data: any = { ...formData }
mode.value == 'edit' ? await infoEdit(data) : await infoAdd(data)
popupRef.value?.close()
feedback.msgSuccess('操作成功')
emit('success')
}
const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
}
const setFormData = async (data: Record<string, any>) => {
for (const key in formData) {
if (data[key] != null && data[key] != undefined) {
//@ts-ignore
formData[key] = data[key]
}
}
}
const getDetail = async (row: Record<string, any>) => {
const data = await infoDetail({
id: row.id
})
setFormData(data)
}
const handleClose = () => {
emit('close')
}
defineExpose({
open,
setFormData,
getDetail
})
</script>

View File

@ -0,0 +1,104 @@
<template>
<div class="index-lists">
<el-card class="!border-none" shadow="never">
<el-form ref="formRef" class="mb-[-16px]" :model="queryParams" :inline="true">
<el-form-item label="科目名称" prop="name">
<el-input class="w-[280px]" v-model="queryParams.name" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage"></el-button>
<el-button @click="resetParams"></el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="!border-none mt-4" shadow="never">
<div>
<el-button v-perms="['info:add']" type="primary" @click="handleAdd()">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增
</el-button>
</div>
<el-table
class="mt-4"
size="large"
v-loading="pager.loading"
:data="pager.lists"
>
<el-table-column label="创建时间" prop="createTime" min-width="100" />
<el-table-column label="更新时间" prop="updateTime" min-width="100" />
<el-table-column label="科目名称" prop="name" min-width="100" />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button
v-perms="['info:edit']"
type="primary"
link
@click="handleEdit(row)"
>
编辑
</el-button>
<el-button
v-perms="['info:del']"
type="danger"
link
@click="handleDelete(row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<div class="flex justify-end mt-4">
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
<edit-popup
v-if="showEdit"
ref="editRef"
@success="getLists"
@close="showEdit = false"
/>
</div>
</template>
<script lang="ts" setup name="info">
import { infoDelete, infoLists } from '@/api/subject'
import { usePaging } from '@/hooks/usePaging'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const showEdit = ref(false)
const queryParams = reactive({
name: '',
})
const { pager, getLists, resetPage, resetParams } = usePaging({
fetchFun: infoLists,
params: queryParams
})
const handleAdd = async () => {
showEdit.value = true
await nextTick()
editRef.value?.open('add')
}
const handleEdit = async (data: any) => {
showEdit.value = true
await nextTick()
editRef.value?.open('edit')
editRef.value?.getDetail(data)
}
const handleDelete = async (id: number) => {
await feedback.confirm('确定要删除?')
await infoDelete({ id })
feedback.msgSuccess('删除成功')
getLists()
}
getLists()
</script>