yshop1.8发布,新增素材管理等,详细查看readme或登录网站后台查看
This commit is contained in:
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>1.7</version>
|
||||
<version>1.8</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -20,12 +20,12 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-logging</artifactId>
|
||||
<version>1.7</version>
|
||||
<version>1.8</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-mp</artifactId>
|
||||
<version>1.7</version>
|
||||
<version>1.8</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
@ -0,0 +1,62 @@
|
||||
package co.yixiang.modules.shop.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import org.hibernate.annotations.CreationTimestamp;
|
||||
|
||||
import javax.persistence.*;
|
||||
import javax.validation.constraints.*;
|
||||
import java.sql.Timestamp;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
@Entity
|
||||
@Data
|
||||
@Table(name="yx_material")
|
||||
public class YxMaterial implements Serializable {
|
||||
|
||||
/** PK */
|
||||
@Id
|
||||
@Column(name = "id")
|
||||
private String id;
|
||||
|
||||
|
||||
/** 逻辑删除标记(0:显示;1:隐藏) */
|
||||
@Column(name = "del_flag",nullable = false,insertable = false)
|
||||
private String delFlag;
|
||||
|
||||
/** 创建时间 */
|
||||
@Column(name = "create_time",nullable = false)
|
||||
@CreationTimestamp
|
||||
private Timestamp createTime;
|
||||
|
||||
|
||||
/** 创建者ID */
|
||||
@Column(name = "create_id")
|
||||
private String createId;
|
||||
|
||||
/** 类型1、图片;2、视频 */
|
||||
@Column(name = "type",nullable = false)
|
||||
private String type;
|
||||
|
||||
/** 分组ID */
|
||||
@Column(name = "group_id")
|
||||
private String groupId;
|
||||
|
||||
/** 素材名 */
|
||||
@Column(name = "name",nullable = false)
|
||||
@NotBlank
|
||||
private String name;
|
||||
|
||||
/** 素材链接 */
|
||||
@Column(name = "url")
|
||||
private String url;
|
||||
|
||||
public void copy(YxMaterial source){
|
||||
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package co.yixiang.modules.shop.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import org.hibernate.annotations.CreationTimestamp;
|
||||
|
||||
import javax.persistence.*;
|
||||
import javax.validation.constraints.*;
|
||||
import java.sql.Timestamp;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
@Entity
|
||||
@Data
|
||||
@Table(name="yx_material_group")
|
||||
public class YxMaterialGroup implements Serializable {
|
||||
|
||||
/** PK */
|
||||
@Id
|
||||
@Column(name = "id")
|
||||
private String id;
|
||||
|
||||
|
||||
/** 逻辑删除标记(0:显示;1:隐藏) */
|
||||
@Column(name = "del_flag",nullable = false,insertable = false)
|
||||
private String delFlag;
|
||||
|
||||
/** 创建时间 */
|
||||
@Column(name = "create_time",nullable = false)
|
||||
@CreationTimestamp
|
||||
private Timestamp createTime;
|
||||
|
||||
|
||||
/** 创建者ID */
|
||||
@Column(name = "create_id")
|
||||
private String createId;
|
||||
|
||||
/** 分组名 */
|
||||
@Column(name = "name",nullable = false)
|
||||
@NotBlank
|
||||
private String name;
|
||||
|
||||
public void copy(YxMaterialGroup source){
|
||||
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||
}
|
||||
}
|
@ -51,6 +51,7 @@ public class YxSystemUserLevel implements Serializable {
|
||||
|
||||
// 是否显示 1=显示,0=隐藏
|
||||
@Column(name = "is_show",nullable = false)
|
||||
@NotNull(message = "请选择显示状态")
|
||||
private Integer isShow;
|
||||
|
||||
// 会员等级
|
||||
|
@ -0,0 +1,12 @@
|
||||
package co.yixiang.modules.shop.repository;
|
||||
|
||||
import co.yixiang.modules.shop.domain.YxMaterialGroup;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
public interface YxMaterialGroupRepository extends JpaRepository<YxMaterialGroup, String>, JpaSpecificationExecutor<YxMaterialGroup> {
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package co.yixiang.modules.shop.repository;
|
||||
|
||||
import co.yixiang.modules.shop.domain.YxMaterial;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
public interface YxMaterialRepository extends JpaRepository<YxMaterial, String>, JpaSpecificationExecutor<YxMaterial> {
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package co.yixiang.modules.shop.rest;
|
||||
|
||||
|
||||
import co.yixiang.aop.log.Log;
|
||||
import co.yixiang.modules.shop.domain.YxMaterial;
|
||||
import co.yixiang.modules.shop.service.YxMaterialService;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialQueryCriteria;
|
||||
import co.yixiang.utils.SecurityUtils;
|
||||
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 org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
@Api(tags = "素材管理管理")
|
||||
@RestController
|
||||
@RequestMapping("/api/material")
|
||||
public class YxMaterialController {
|
||||
|
||||
private final YxMaterialService yxMaterialService;
|
||||
|
||||
public YxMaterialController(YxMaterialService yxMaterialService) {
|
||||
this.yxMaterialService = yxMaterialService;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GetMapping(value = "/page")
|
||||
@Log("查询素材管理")
|
||||
@ApiOperation("查询素材管理")
|
||||
public ResponseEntity<Object> getYxMaterials(YxMaterialQueryCriteria criteria, Pageable pageable){
|
||||
return new ResponseEntity<>(yxMaterialService.queryAll(criteria,pageable),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Log("新增素材管理")
|
||||
@ApiOperation("新增素材管理")
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody YxMaterial resources){
|
||||
resources.setCreateId(SecurityUtils.getUsername());
|
||||
return new ResponseEntity<>(yxMaterialService.create(resources),HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改素材管理")
|
||||
@ApiOperation("修改素材管理")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody YxMaterial resources){
|
||||
yxMaterialService.update(resources);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@Log("删除素材管理")
|
||||
@ApiOperation("删除素材管理")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
public ResponseEntity<Object> deleteAll(@PathVariable String id) {
|
||||
yxMaterialService.deleteById(id);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package co.yixiang.modules.shop.rest;
|
||||
|
||||
import co.yixiang.aop.log.Log;
|
||||
import co.yixiang.modules.shop.domain.YxMaterialGroup;
|
||||
import co.yixiang.modules.shop.service.YxMaterialGroupService;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialGroupQueryCriteria;
|
||||
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-01-09
|
||||
*/
|
||||
@Api(tags = "素材分组管理")
|
||||
@RestController
|
||||
@RequestMapping("/api/materialgroup")
|
||||
public class YxMaterialGroupController {
|
||||
|
||||
private final YxMaterialGroupService yxMaterialGroupService;
|
||||
|
||||
public YxMaterialGroupController(YxMaterialGroupService yxMaterialGroupService) {
|
||||
this.yxMaterialGroupService = yxMaterialGroupService;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GetMapping(value = "/page")
|
||||
@Log("查询素材分组")
|
||||
@ApiOperation("查询素材分组")
|
||||
public ResponseEntity<Object> getYxMaterialGroups(YxMaterialGroupQueryCriteria criteria, Pageable pageable){
|
||||
return new ResponseEntity<>(yxMaterialGroupService.queryAll(criteria,pageable),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Log("新增素材分组")
|
||||
@ApiOperation("新增素材分组")
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody YxMaterialGroup resources){
|
||||
return new ResponseEntity<>(yxMaterialGroupService.create(resources),HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改素材分组")
|
||||
@ApiOperation("修改素材分组")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody YxMaterialGroup resources){
|
||||
yxMaterialGroupService.update(resources);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@Log("删除素材分组")
|
||||
@ApiOperation("删除素材分组")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
public ResponseEntity<Object> deleteAll(@PathVariable String id) {
|
||||
yxMaterialGroupService.deleteById(id);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
package co.yixiang.modules.shop.service;
|
||||
|
||||
import co.yixiang.modules.shop.domain.YxMaterialGroup;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialGroupDto;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialGroupQueryCriteria;
|
||||
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-01-09
|
||||
*/
|
||||
public interface YxMaterialGroupService {
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
* @param criteria 条件
|
||||
* @param pageable 分页参数
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
Map<String,Object> queryAll(YxMaterialGroupQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 查询所有数据不分页
|
||||
* @param criteria 条件参数
|
||||
* @return List<YxMaterialGroupDto>
|
||||
*/
|
||||
List<YxMaterialGroupDto> queryAll(YxMaterialGroupQueryCriteria criteria);
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
* @param id ID
|
||||
* @return YxMaterialGroupDto
|
||||
*/
|
||||
YxMaterialGroupDto findById(String id);
|
||||
|
||||
/**
|
||||
* 创建
|
||||
* @param resources /
|
||||
* @return YxMaterialGroupDto
|
||||
*/
|
||||
YxMaterialGroupDto create(YxMaterialGroup resources);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
* @param resources /
|
||||
*/
|
||||
void update(YxMaterialGroup resources);
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
* @param ids /
|
||||
*/
|
||||
void deleteAll(String[] ids);
|
||||
|
||||
void deleteById(String id);
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package co.yixiang.modules.shop.service;
|
||||
|
||||
import co.yixiang.modules.shop.domain.YxMaterial;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialDto;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialQueryCriteria;
|
||||
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-01-09
|
||||
*/
|
||||
public interface YxMaterialService {
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
* @param criteria 条件
|
||||
* @param pageable 分页参数
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
Map<String,Object> queryAll(YxMaterialQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 查询所有数据不分页
|
||||
* @param criteria 条件参数
|
||||
* @return List<YxMaterialDto>
|
||||
*/
|
||||
List<YxMaterialDto> queryAll(YxMaterialQueryCriteria criteria);
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
* @param id ID
|
||||
* @return YxMaterialDto
|
||||
*/
|
||||
YxMaterialDto findById(String id);
|
||||
|
||||
/**
|
||||
* 创建
|
||||
* @param resources /
|
||||
* @return YxMaterialDto
|
||||
*/
|
||||
YxMaterialDto create(YxMaterial resources);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
* @param resources /
|
||||
*/
|
||||
void update(YxMaterial resources);
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
* @param ids /
|
||||
*/
|
||||
void deleteAll(String[] ids);
|
||||
|
||||
void deleteById(String id);
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package co.yixiang.modules.shop.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.sql.Timestamp;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
@Data
|
||||
public class YxMaterialDto implements Serializable {
|
||||
|
||||
/** PK */
|
||||
private String id;
|
||||
|
||||
/** 逻辑删除标记(0:显示;1:隐藏) */
|
||||
private String delFlag;
|
||||
|
||||
/** 创建时间 */
|
||||
private Timestamp createTime;
|
||||
|
||||
|
||||
/** 创建者ID */
|
||||
private String createId;
|
||||
|
||||
/** 类型1、图片;2、视频 */
|
||||
private String type;
|
||||
|
||||
/** 分组ID */
|
||||
private String groupId;
|
||||
|
||||
/** 素材名 */
|
||||
private String name;
|
||||
|
||||
/** 素材链接 */
|
||||
private String url;
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package co.yixiang.modules.shop.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.sql.Timestamp;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
@Data
|
||||
public class YxMaterialGroupDto implements Serializable {
|
||||
|
||||
/** PK */
|
||||
private String id;
|
||||
|
||||
/** 逻辑删除标记(0:显示;1:隐藏) */
|
||||
private String delFlag;
|
||||
|
||||
/** 创建时间 */
|
||||
private Timestamp createTime;
|
||||
|
||||
/** 创建者ID */
|
||||
private String createId;
|
||||
|
||||
/** 分组名 */
|
||||
private String name;
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package co.yixiang.modules.shop.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
@Data
|
||||
public class YxMaterialGroupQueryCriteria{
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package co.yixiang.modules.shop.service.dto;
|
||||
|
||||
import co.yixiang.annotation.Query;
|
||||
import lombok.Data;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
@Data
|
||||
public class YxMaterialQueryCriteria{
|
||||
@Query
|
||||
private String groupId;
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
package co.yixiang.modules.shop.service.impl;
|
||||
|
||||
import co.yixiang.modules.shop.domain.YxMaterialGroup;
|
||||
import co.yixiang.modules.shop.repository.YxMaterialGroupRepository;
|
||||
import co.yixiang.modules.shop.service.YxMaterialGroupService;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialGroupDto;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialGroupQueryCriteria;
|
||||
import co.yixiang.modules.shop.service.mapper.YxMaterialGroupMapper;
|
||||
import co.yixiang.utils.FileUtil;
|
||||
import co.yixiang.utils.PageUtil;
|
||||
import co.yixiang.utils.QueryHelp;
|
||||
import co.yixiang.utils.ValidationUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
// 默认不使用缓存
|
||||
//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-01-09
|
||||
*/
|
||||
@Service
|
||||
//@CacheConfig(cacheNames = "yxMaterialGroup")
|
||||
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
||||
public class YxMaterialGroupServiceImpl implements YxMaterialGroupService {
|
||||
|
||||
private final YxMaterialGroupRepository yxMaterialGroupRepository;
|
||||
|
||||
private final YxMaterialGroupMapper yxMaterialGroupMapper;
|
||||
|
||||
public YxMaterialGroupServiceImpl(YxMaterialGroupRepository yxMaterialGroupRepository, YxMaterialGroupMapper yxMaterialGroupMapper) {
|
||||
this.yxMaterialGroupRepository = yxMaterialGroupRepository;
|
||||
this.yxMaterialGroupMapper = yxMaterialGroupMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
//@Cacheable
|
||||
public Map<String,Object> queryAll(YxMaterialGroupQueryCriteria criteria, Pageable pageable){
|
||||
Page<YxMaterialGroup> page = yxMaterialGroupRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
|
||||
return PageUtil.toPage(page.map(yxMaterialGroupMapper::toDto));
|
||||
}
|
||||
|
||||
@Override
|
||||
//@Cacheable
|
||||
public List<YxMaterialGroupDto> queryAll(YxMaterialGroupQueryCriteria criteria){
|
||||
return yxMaterialGroupMapper.toDto(yxMaterialGroupRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
|
||||
}
|
||||
|
||||
@Override
|
||||
//@Cacheable(key = "#p0")
|
||||
public YxMaterialGroupDto findById(String id) {
|
||||
YxMaterialGroup yxMaterialGroup = yxMaterialGroupRepository.findById(id).orElseGet(YxMaterialGroup::new);
|
||||
ValidationUtil.isNull(yxMaterialGroup.getId(),"YxMaterialGroup","id",id);
|
||||
return yxMaterialGroupMapper.toDto(yxMaterialGroup);
|
||||
}
|
||||
|
||||
@Override
|
||||
//@CacheEvict(allEntries = true)
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public YxMaterialGroupDto create(YxMaterialGroup resources) {
|
||||
resources.setId(IdUtil.simpleUUID());
|
||||
return yxMaterialGroupMapper.toDto(yxMaterialGroupRepository.save(resources));
|
||||
}
|
||||
|
||||
@Override
|
||||
//@CacheEvict(allEntries = true)
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(YxMaterialGroup resources) {
|
||||
YxMaterialGroup yxMaterialGroup = yxMaterialGroupRepository.findById(resources.getId()).orElseGet(YxMaterialGroup::new);
|
||||
ValidationUtil.isNull( yxMaterialGroup.getId(),"YxMaterialGroup","id",resources.getId());
|
||||
yxMaterialGroup.copy(resources);
|
||||
yxMaterialGroupRepository.save(yxMaterialGroup);
|
||||
}
|
||||
|
||||
@Override
|
||||
//@CacheEvict(allEntries = true)
|
||||
public void deleteAll(String[] ids) {
|
||||
for (String id : ids) {
|
||||
yxMaterialGroupRepository.deleteById(id);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteById(String id) {
|
||||
yxMaterialGroupRepository.deleteById(id);
|
||||
}
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
package co.yixiang.modules.shop.service.impl;
|
||||
|
||||
import co.yixiang.modules.shop.domain.YxMaterial;
|
||||
import co.yixiang.modules.shop.repository.YxMaterialRepository;
|
||||
import co.yixiang.modules.shop.service.YxMaterialService;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialDto;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialQueryCriteria;
|
||||
import co.yixiang.modules.shop.service.mapper.YxMaterialMapper;
|
||||
import co.yixiang.utils.FileUtil;
|
||||
import co.yixiang.utils.PageUtil;
|
||||
import co.yixiang.utils.QueryHelp;
|
||||
import co.yixiang.utils.ValidationUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
// 默认不使用缓存
|
||||
//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-01-09
|
||||
*/
|
||||
@Service
|
||||
//@CacheConfig(cacheNames = "yxMaterial")
|
||||
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
||||
public class YxMaterialServiceImpl implements YxMaterialService {
|
||||
|
||||
private final YxMaterialRepository yxMaterialRepository;
|
||||
|
||||
private final YxMaterialMapper yxMaterialMapper;
|
||||
|
||||
public YxMaterialServiceImpl(YxMaterialRepository yxMaterialRepository, YxMaterialMapper yxMaterialMapper) {
|
||||
this.yxMaterialRepository = yxMaterialRepository;
|
||||
this.yxMaterialMapper = yxMaterialMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
//@Cacheable
|
||||
public Map<String,Object> queryAll(YxMaterialQueryCriteria criteria, Pageable pageable){
|
||||
Page<YxMaterial> page = yxMaterialRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
|
||||
return PageUtil.toPage(page.map(yxMaterialMapper::toDto));
|
||||
}
|
||||
|
||||
@Override
|
||||
//@Cacheable
|
||||
public List<YxMaterialDto> queryAll(YxMaterialQueryCriteria criteria){
|
||||
return yxMaterialMapper.toDto(yxMaterialRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
|
||||
}
|
||||
|
||||
@Override
|
||||
//@Cacheable(key = "#p0")
|
||||
public YxMaterialDto findById(String id) {
|
||||
YxMaterial yxMaterial = yxMaterialRepository.findById(id).orElseGet(YxMaterial::new);
|
||||
ValidationUtil.isNull(yxMaterial.getId(),"YxMaterial","id",id);
|
||||
return yxMaterialMapper.toDto(yxMaterial);
|
||||
}
|
||||
|
||||
@Override
|
||||
//@CacheEvict(allEntries = true)
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public YxMaterialDto create(YxMaterial resources) {
|
||||
resources.setId(IdUtil.simpleUUID());
|
||||
return yxMaterialMapper.toDto(yxMaterialRepository.save(resources));
|
||||
}
|
||||
|
||||
@Override
|
||||
//@CacheEvict(allEntries = true)
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(YxMaterial resources) {
|
||||
YxMaterial yxMaterial = yxMaterialRepository.findById(resources.getId()).orElseGet(YxMaterial::new);
|
||||
ValidationUtil.isNull( yxMaterial.getId(),"YxMaterial","id",resources.getId());
|
||||
yxMaterial.copy(resources);
|
||||
yxMaterialRepository.save(yxMaterial);
|
||||
}
|
||||
|
||||
@Override
|
||||
//@CacheEvict(allEntries = true)
|
||||
public void deleteAll(String[] ids) {
|
||||
for (String id : ids) {
|
||||
yxMaterialRepository.deleteById(id);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteById(String id) {
|
||||
yxMaterialRepository.deleteById(id);
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package co.yixiang.modules.shop.service.mapper;
|
||||
|
||||
|
||||
import co.yixiang.base.BaseMapper;
|
||||
import co.yixiang.modules.shop.domain.YxMaterialGroup;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialGroupDto;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.ReportingPolicy;
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||
public interface YxMaterialGroupMapper extends BaseMapper<YxMaterialGroupDto, YxMaterialGroup> {
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package co.yixiang.modules.shop.service.mapper;
|
||||
|
||||
|
||||
import co.yixiang.base.BaseMapper;
|
||||
import co.yixiang.modules.shop.domain.YxMaterial;
|
||||
import co.yixiang.modules.shop.service.dto.YxMaterialDto;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.ReportingPolicy;
|
||||
|
||||
/**
|
||||
* @author hupeng
|
||||
* @date 2020-01-09
|
||||
*/
|
||||
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||
public interface YxMaterialMapper extends BaseMapper<YxMaterialDto, YxMaterial> {
|
||||
|
||||
}
|
Reference in New Issue
Block a user