From 7347f37e19ebf910e021f1c1b221d4ba22fad2eb Mon Sep 17 00:00:00 2001 From: hupeng Date: Sun, 28 Jun 2020 16:28:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=A3=E7=A0=81=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=99=A8=E6=A8=A1=E6=9D=BF=E5=BC=95=E5=85=A5=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/generator/admin/MapperP.ftl | 3 +- .../template/generator/admin/ServiceImplP.ftl | 4 +- .../template/generator/admin/ServiceP.ftl | 2 +- .../modules/user/rest/UserController.java | 13 --- .../product/domain/YxStoreProductRule.java | 52 +++++++++++ .../service/YxStoreProductRuleService.java | 49 +++++++++++ .../service/dto/YxStoreProductRuleDto.java | 36 ++++++++ .../dto/YxStoreProductRuleQueryCriteria.java | 21 +++++ .../impl/YxStoreProductRuleServiceImpl.java | 88 +++++++++++++++++++ .../mapper/YxStoreProductRuleMapper.java | 24 +++++ .../rest/StoreProductRuleController.java | 86 ++++++++++++++++++ 11 files changed, 360 insertions(+), 18 deletions(-) create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/product/domain/YxStoreProductRule.java create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductRuleService.java create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/YxStoreProductRuleDto.java create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/YxStoreProductRuleQueryCriteria.java create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductRuleServiceImpl.java create mode 100644 yshop-mall/src/main/java/co/yixiang/modules/product/service/mapper/YxStoreProductRuleMapper.java create mode 100644 yshop-shop/src/main/java/co/yixiang/modules/product/rest/StoreProductRuleController.java diff --git a/yshop-admin/src/main/resources/template/generator/admin/MapperP.ftl b/yshop-admin/src/main/resources/template/generator/admin/MapperP.ftl index ad301653..50f79b78 100644 --- a/yshop-admin/src/main/resources/template/generator/admin/MapperP.ftl +++ b/yshop-admin/src/main/resources/template/generator/admin/MapperP.ftl @@ -8,7 +8,7 @@ */ package ${package}.service.mapper; -import co.yixiang.commonold.mapper.CoreMapper; +import co.yixiang.common.mapper.CoreMapper; import ${package}.domain.${className}; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @@ -18,7 +18,6 @@ import org.springframework.stereotype.Repository; * @date ${date} */ @Repository -@Mapper public interface ${className}Mapper extends CoreMapper<${className}> { } diff --git a/yshop-admin/src/main/resources/template/generator/admin/ServiceImplP.ftl b/yshop-admin/src/main/resources/template/generator/admin/ServiceImplP.ftl index 0e2c3590..82eb800a 100644 --- a/yshop-admin/src/main/resources/template/generator/admin/ServiceImplP.ftl +++ b/yshop-admin/src/main/resources/template/generator/admin/ServiceImplP.ftl @@ -18,12 +18,12 @@ import co.yixiang.exception.EntityExistException; -import co.yixiang.commonold.service.impl.BaseServiceImpl; +import co.yixiang.common.service.impl.BaseServiceImpl; import lombok.AllArgsConstructor; import co.yixiang.dozer.service.IGenerator; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import co.yixiang.commonold.utils.QueryHelpPlus; +import co.yixiang.common.utils.QueryHelpPlus; import co.yixiang.utils.ValidationUtil; import co.yixiang.utils.FileUtil; import ${package}.service.${className}Service; diff --git a/yshop-admin/src/main/resources/template/generator/admin/ServiceP.ftl b/yshop-admin/src/main/resources/template/generator/admin/ServiceP.ftl index c28ee8b7..24c5c81c 100644 --- a/yshop-admin/src/main/resources/template/generator/admin/ServiceP.ftl +++ b/yshop-admin/src/main/resources/template/generator/admin/ServiceP.ftl @@ -7,7 +7,7 @@ * 一经发现盗用、分享等行为,将追究法律责任,后果自负 */ package ${package}.service; -import co.yixiang.commonold.service.BaseService; +import co.yixiang.common.service.BaseService; import ${package}.domain.${className}; import ${package}.service.dto.${className}Dto; import ${package}.service.dto.${className}QueryCriteria; diff --git a/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserController.java b/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserController.java index 9616de6f..94c2683e 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserController.java +++ b/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserController.java @@ -147,19 +147,6 @@ public class UserController { return ApiResult.ok(map); } -// /** -// * 获取活动状态 -// */ -// @GetMapping("/user/activity") -// @ApiOperation(value = "获取活动状态",notes = "获取活动状态") -// @Deprecated -// public ApiResult activity(){ -// Map map = new LinkedHashMap<>(); -// map.put("is_bargin",false); -// map.put("is_pink",false); -// map.put("is_seckill",false); -// return ApiResult.ok(map); -// } /** * 签到用户信息 diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/domain/YxStoreProductRule.java b/yshop-mall/src/main/java/co/yixiang/modules/product/domain/YxStoreProductRule.java new file mode 100644 index 00000000..92019c85 --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/domain/YxStoreProductRule.java @@ -0,0 +1,52 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.product.domain; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import co.yixiang.domain.BaseDomain; +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** +* @author hupeng +* @date 2020-06-28 +*/ +@Data +@TableName(value = "yx_store_product_rule",autoResultMap = true) +public class YxStoreProductRule extends BaseDomain { + + @TableId + private Integer id; + + + /** 规格名称 */ + @NotBlank + private String ruleName; + + + /** 规格值 */ + @TableField(typeHandler = FastjsonTypeHandler.class) + @NotNull + private JSONArray ruleValue; + + + + public void copy(YxStoreProductRule source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductRuleService.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductRuleService.java new file mode 100644 index 00000000..417d92ba --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductRuleService.java @@ -0,0 +1,49 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.product.service; + +import co.yixiang.common.service.BaseService; +import co.yixiang.modules.product.domain.YxStoreProductRule; +import co.yixiang.modules.product.service.dto.YxStoreProductRuleDto; +import co.yixiang.modules.product.service.dto.YxStoreProductRuleQueryCriteria; +import org.springframework.data.domain.Pageable; +import java.util.Map; +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +/** +* @author hupeng +* @date 2020-06-28 +*/ +public interface YxStoreProductRuleService extends BaseService { + +/** + * 查询数据分页 + * @param criteria 条件 + * @param pageable 分页参数 + * @return Map + */ + Map queryAll(YxStoreProductRuleQueryCriteria criteria, Pageable pageable); + + /** + * 查询所有数据不分页 + * @param criteria 条件参数 + * @return List + */ + List queryAll(YxStoreProductRuleQueryCriteria criteria); + + /** + * 导出数据 + * @param all 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(List all, HttpServletResponse response) throws IOException; +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/YxStoreProductRuleDto.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/YxStoreProductRuleDto.java new file mode 100644 index 00000000..ab091448 --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/YxStoreProductRuleDto.java @@ -0,0 +1,36 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.product.service.dto; + +import com.alibaba.fastjson.JSONArray; +import lombok.Data; +import java.sql.Timestamp; +import java.io.Serializable; + +/** +* @author hupeng +* @date 2020-06-28 +*/ +@Data +public class YxStoreProductRuleDto implements Serializable { + + private Integer id; + + /** 规格名称 */ + private String ruleName; + + /** 规格值 */ + private JSONArray ruleValue; + + private Timestamp createTime; + + private Timestamp updateTime; + + private Integer isDel; +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/YxStoreProductRuleQueryCriteria.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/YxStoreProductRuleQueryCriteria.java new file mode 100644 index 00000000..b958ede2 --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/YxStoreProductRuleQueryCriteria.java @@ -0,0 +1,21 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.product.service.dto; + +import lombok.Data; +import java.util.List; +import co.yixiang.annotation.Query; + +/** +* @author hupeng +* @date 2020-06-28 +*/ +@Data +public class YxStoreProductRuleQueryCriteria{ +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductRuleServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductRuleServiceImpl.java new file mode 100644 index 00000000..c9e76b61 --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductRuleServiceImpl.java @@ -0,0 +1,88 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.product.service.impl; + +import co.yixiang.common.service.impl.BaseServiceImpl; +import co.yixiang.common.utils.QueryHelpPlus; + +import co.yixiang.modules.product.domain.YxStoreProductRule; +import co.yixiang.modules.product.service.YxStoreProductRuleService; +import co.yixiang.modules.product.service.dto.YxStoreProductRuleDto; +import co.yixiang.modules.product.service.dto.YxStoreProductRuleQueryCriteria; +import co.yixiang.modules.product.service.mapper.YxStoreProductRuleMapper; +import lombok.AllArgsConstructor; +import co.yixiang.dozer.service.IGenerator; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; + +import co.yixiang.utils.ValidationUtil; +import co.yixiang.utils.FileUtil; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; +// 默认不使用缓存 +//import org.springframework.cache.annotation.CacheConfig; +//import org.springframework.cache.annotation.CacheEvict; +//import org.springframework.cache.annotation.Cacheable; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import java.util.List; +import java.util.Map; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; + +/** +* @author hupeng +* @date 2020-06-28 +*/ +@Service +@AllArgsConstructor +//@CacheConfig(cacheNames = "yxStoreProductRule") +@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) +public class YxStoreProductRuleServiceImpl extends BaseServiceImpl implements YxStoreProductRuleService { + + private final IGenerator generator; + + @Override + //@Cacheable + public Map queryAll(YxStoreProductRuleQueryCriteria criteria, Pageable pageable) { + getPage(pageable); + PageInfo page = new PageInfo<>(queryAll(criteria)); + Map map = new LinkedHashMap<>(2); + map.put("content", generator.convert(page.getList(), YxStoreProductRuleDto.class)); + map.put("totalElements", page.getTotal()); + return map; + } + + + @Override + //@Cacheable + public List queryAll(YxStoreProductRuleQueryCriteria criteria){ + return baseMapper.selectList(QueryHelpPlus.getPredicate(YxStoreProductRule.class, criteria)); + } + + + @Override + public void download(List all, HttpServletResponse response) throws IOException { + List> list = new ArrayList<>(); + for (YxStoreProductRuleDto yxStoreProductRule : all) { + Map map = new LinkedHashMap<>(); + map.put("规格名称", yxStoreProductRule.getRuleName()); + map.put("规格值", yxStoreProductRule.getRuleValue()); + map.put(" createTime", yxStoreProductRule.getCreateTime()); + map.put(" updateTime", yxStoreProductRule.getUpdateTime()); + map.put(" isDel", yxStoreProductRule.getIsDel()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/mapper/YxStoreProductRuleMapper.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/mapper/YxStoreProductRuleMapper.java new file mode 100644 index 00000000..a8b03ae3 --- /dev/null +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/mapper/YxStoreProductRuleMapper.java @@ -0,0 +1,24 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.product.service.mapper; + + +import co.yixiang.common.mapper.CoreMapper; +import co.yixiang.modules.product.domain.YxStoreProductRule; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** +* @author hupeng +* @date 2020-06-28 +*/ +@Repository +public interface YxStoreProductRuleMapper extends CoreMapper { + +} diff --git a/yshop-shop/src/main/java/co/yixiang/modules/product/rest/StoreProductRuleController.java b/yshop-shop/src/main/java/co/yixiang/modules/product/rest/StoreProductRuleController.java new file mode 100644 index 00000000..e89f9f53 --- /dev/null +++ b/yshop-shop/src/main/java/co/yixiang/modules/product/rest/StoreProductRuleController.java @@ -0,0 +1,86 @@ +/** +* Copyright (C) 2018-2020 +* All rights reserved, Designed By www.yixiang.co +* 注意: +* 本软件为www.yixiang.co开发研制,未经购买不得使用 +* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) +* 一经发现盗用、分享等行为,将追究法律责任,后果自负 +*/ +package co.yixiang.modules.product.rest; +import java.util.Arrays; +import co.yixiang.dozer.service.IGenerator; +import co.yixiang.modules.product.domain.YxStoreProductRule; +import co.yixiang.modules.product.service.YxStoreProductRuleService; +import co.yixiang.modules.product.service.dto.YxStoreProductRuleDto; +import co.yixiang.modules.product.service.dto.YxStoreProductRuleQueryCriteria; +import lombok.AllArgsConstructor; +import co.yixiang.logging.aop.log.Log; + +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +/** +* @author hupeng +* @date 2020-06-28 +*/ +@AllArgsConstructor +@Api(tags = "sku规则管理") +@RestController +@RequestMapping("/api/yxStoreProductRule") +public class StoreProductRuleController { + + private final YxStoreProductRuleService yxStoreProductRuleService; + private final IGenerator generator; + + + @Log("导出数据") + @ApiOperation("导出数据") + @GetMapping(value = "/download") + @PreAuthorize("@el.check('admin','yxStoreProductRule:list')") + public void download(HttpServletResponse response, YxStoreProductRuleQueryCriteria criteria) throws IOException { + yxStoreProductRuleService.download(generator.convert(yxStoreProductRuleService.queryAll(criteria), YxStoreProductRuleDto.class), response); + } + + @GetMapping + @Log("查询sku规则") + @ApiOperation("查询sku规则") + @PreAuthorize("@el.check('admin','yxStoreProductRule:list')") + public ResponseEntity getYxStoreProductRules(YxStoreProductRuleQueryCriteria criteria, Pageable pageable){ + return new ResponseEntity<>(yxStoreProductRuleService.queryAll(criteria,pageable),HttpStatus.OK); + } + + @PostMapping + @Log("新增sku规则") + @ApiOperation("新增sku规则") + @PreAuthorize("@el.check('admin','yxStoreProductRule:add')") + public ResponseEntity create(@Validated @RequestBody YxStoreProductRule resources){ + return new ResponseEntity<>(yxStoreProductRuleService.save(resources),HttpStatus.CREATED); + } + + @PutMapping + @Log("修改sku规则") + @ApiOperation("修改sku规则") + @PreAuthorize("@el.check('admin','yxStoreProductRule:edit')") + public ResponseEntity update(@Validated @RequestBody YxStoreProductRule resources){ + yxStoreProductRuleService.updateById(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除sku规则") + @ApiOperation("删除sku规则") + @PreAuthorize("@el.check('admin','yxStoreProductRule:del')") + @DeleteMapping + public ResponseEntity deleteAll(@RequestBody Integer[] ids) { + Arrays.asList(ids).forEach(id->{ + yxStoreProductRuleService.removeById(id); + }); + return new ResponseEntity<>(HttpStatus.OK); + } +}