微信菜单修改

This commit is contained in:
hupeng
2020-04-10 21:22:16 +08:00
parent 668788bd40
commit 72052c959b
11 changed files with 198 additions and 134 deletions

View File

@ -4,8 +4,8 @@ package co.yixiang.mp.controller;
import cn.hutool.core.util.StrUtil;
import co.yixiang.exception.BadRequestException;
import co.yixiang.mp.config.WxMpConfiguration;
import co.yixiang.mp.domain.YxCache;
import co.yixiang.mp.service.YxCacheService;
import co.yixiang.mp.domain.YxWechatMenu;
import co.yixiang.mp.service.YxWechatMenuService;
import co.yixiang.utils.OrderUtil;
import co.yixiang.utils.RedisUtil;
import com.alibaba.fastjson.JSON;
@ -31,41 +31,41 @@ import org.springframework.web.bind.annotation.*;
@SuppressWarnings("unchecked")
public class WechatMenuController {
private final YxCacheService yxCacheService;
private final YxWechatMenuService YxWechatMenuService;
public WechatMenuController(YxCacheService yxCacheService) {
this.yxCacheService = yxCacheService;
public WechatMenuController(YxWechatMenuService YxWechatMenuService) {
this.YxWechatMenuService = YxWechatMenuService;
}
@ApiOperation(value = "查询菜单")
@GetMapping(value = "/yxCache")
@PreAuthorize("@el.check('admin','YXCACHE_ALL','YXCACHE_SELECT')")
public ResponseEntity getYxCaches(){
return new ResponseEntity(yxCacheService.findById("wechat_menus"),HttpStatus.OK);
@GetMapping(value = "/YxWechatMenu")
@PreAuthorize("@el.check('admin','YxWechatMenu_ALL','YxWechatMenu_SELECT')")
public ResponseEntity getYxWechatMenus(){
return new ResponseEntity(YxWechatMenuService.findById("wechat_menus"),HttpStatus.OK);
}
@ApiOperation(value = "创建菜单")
@PostMapping(value = "/yxCache")
@PreAuthorize("@el.check('admin','YXCACHE_ALL','YXCACHE_CREATE')")
@PostMapping(value = "/YxWechatMenu")
@PreAuthorize("@el.check('admin','YxWechatMenu_ALL','YxWechatMenu_CREATE')")
public ResponseEntity create( @RequestBody String jsonStr){
//if(StrUtil.isNotEmpty("22")) throw new BadRequestException("演示环境禁止操作");
JSONObject jsonObject = JSON.parseObject(jsonStr);
String jsonButton = jsonObject.get("buttons").toString();
YxCache yxCache = new YxCache();
Boolean isExist = yxCacheService.isExist("wechat_menus");
YxWechatMenu YxWechatMenu = new YxWechatMenu();
Boolean isExist = YxWechatMenuService.isExist("wechat_menus");
WxMenu menu = JSONObject.parseObject(jsonStr,WxMenu.class);
WxMpService wxService = WxMpConfiguration.getWxMpService();
if(isExist){
yxCache.setKey("wechat_menus");
yxCache.setResult(jsonButton);
yxCacheService.update(yxCache);
YxWechatMenu.setKey("wechat_menus");
YxWechatMenu.setResult(jsonButton);
YxWechatMenuService.update(YxWechatMenu);
}else {
yxCache.setKey("wechat_menus");
yxCache.setResult(jsonButton);
yxCache.setAddTime(OrderUtil.getSecondTimestampTwo());
yxCacheService.create(yxCache);
YxWechatMenu.setKey("wechat_menus");
YxWechatMenu.setResult(jsonButton);
YxWechatMenu.setAddTime(OrderUtil.getSecondTimestampTwo());
YxWechatMenuService.create(YxWechatMenu);
}

View File

@ -16,8 +16,8 @@ import java.io.Serializable;
*/
@Entity
@Data
@Table(name="yx_cache")
public class YxCache implements Serializable {
@Table(name="yx_wechat_menu")
public class YxWechatMenu implements Serializable {
@Id
@ -32,7 +32,7 @@ public class YxCache implements Serializable {
@Column(name = "add_time")
private Integer addTime;
public void copy(YxCache source){
public void copy(YxWechatMenu source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}

View File

@ -1,7 +1,7 @@
package co.yixiang.mp.repository;
import co.yixiang.mp.domain.YxCache;
import co.yixiang.mp.domain.YxWechatMenu;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@ -9,5 +9,5 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
* @author hupeng
* @date 2019-10-06
*/
public interface YxCacheRepository extends JpaRepository<YxCache, String>, JpaSpecificationExecutor {
public interface YxWechatMenuRepository extends JpaRepository<YxWechatMenu, String>, JpaSpecificationExecutor {
}

View File

@ -1,9 +1,9 @@
package co.yixiang.mp.service;
import co.yixiang.mp.domain.YxCache;
import co.yixiang.mp.service.dto.YxCacheDTO;
import co.yixiang.mp.service.dto.YxCacheQueryCriteria;
import co.yixiang.mp.domain.YxWechatMenu;
import co.yixiang.mp.service.dto.YxWechatMenuDTO;
import co.yixiang.mp.service.dto.YxWechatMenuQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.List;
@ -13,8 +13,8 @@ import java.util.Map;
* @author hupeng
* @date 2019-10-06
*/
//@CacheConfig(cacheNames = "yxCache")
public interface YxCacheService {
//@CacheConfig(cacheNames = "YxWechatMenu")
public interface YxWechatMenuService {
/**
* 查询数据分页
@ -23,7 +23,7 @@ public interface YxCacheService {
* @return
*/
//@Cacheable
Map<String,Object> queryAll(YxCacheQueryCriteria criteria, Pageable pageable);
Map<String,Object> queryAll(YxWechatMenuQueryCriteria criteria, Pageable pageable);
/**
* 查询所有数据不分页
@ -31,7 +31,7 @@ public interface YxCacheService {
* @return
*/
//@Cacheable
List<YxCacheDTO> queryAll(YxCacheQueryCriteria criteria);
List<YxWechatMenuDTO> queryAll(YxWechatMenuQueryCriteria criteria);
/**
* 根据ID查询
@ -39,7 +39,7 @@ public interface YxCacheService {
* @return
*/
//@Cacheable(key = "#p0")
YxCacheDTO findById(String key);
YxWechatMenuDTO findById(String key);
/**
* 创建
@ -47,14 +47,14 @@ public interface YxCacheService {
* @return
*/
//@CacheEvict(allEntries = true)
YxCacheDTO create(YxCache resources);
YxWechatMenuDTO create(YxWechatMenu resources);
/**
* 编辑
* @param resources
*/
//@CacheEvict(allEntries = true)
void update(YxCache resources);
void update(YxWechatMenu resources);
/**
* 删除

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
* @date 2019-10-06
*/
@Data
public class YxCacheDTO implements Serializable {
public class YxWechatMenuDTO implements Serializable {
private String key;

View File

@ -7,5 +7,5 @@ import lombok.Data;
* @date 2019-10-06
*/
@Data
public class YxCacheQueryCriteria{
public class YxWechatMenuQueryCriteria{
}

View File

@ -1,89 +0,0 @@
package co.yixiang.mp.service.impl;
import co.yixiang.mp.domain.YxCache;
import co.yixiang.mp.repository.YxCacheRepository;
import co.yixiang.mp.service.YxCacheService;
import co.yixiang.mp.service.dto.YxCacheDTO;
import co.yixiang.mp.service.dto.YxCacheQueryCriteria;
import co.yixiang.mp.service.mapper.YxCacheMapper;
import co.yixiang.utils.PageUtil;
import co.yixiang.utils.QueryHelp;
import co.yixiang.utils.ValidationUtil;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* @author hupeng
* @date 2019-10-06
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class YxCacheServiceImpl implements YxCacheService {
private final YxCacheRepository yxCacheRepository;
private final YxCacheMapper yxCacheMapper;
public YxCacheServiceImpl(YxCacheRepository yxCacheRepository, YxCacheMapper yxCacheMapper) {
this.yxCacheRepository = yxCacheRepository;
this.yxCacheMapper = yxCacheMapper;
}
@Override
public Map<String,Object> queryAll(YxCacheQueryCriteria criteria, Pageable pageable){
Page<YxCache> page = yxCacheRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(yxCacheMapper::toDto));
}
@Override
public List<YxCacheDTO> queryAll(YxCacheQueryCriteria criteria){
return yxCacheMapper.toDto(yxCacheRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
}
@Override
public YxCacheDTO findById(String key) {
Optional<YxCache> yxCache = yxCacheRepository.findById(key);
ValidationUtil.isNull(yxCache,"YxCache","key",key);
return yxCacheMapper.toDto(yxCache.get());
}
@Override
public boolean isExist(String key) {
Optional<YxCache> yxCache = yxCacheRepository.findById(key);
if(!yxCache.isPresent()){
return false;
}
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public YxCacheDTO create(YxCache resources) {
//resources.setKey(IdUtil.simpleUUID());
return yxCacheMapper.toDto(yxCacheRepository.save(resources));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(YxCache resources) {
Optional<YxCache> optionalYxCache = yxCacheRepository.findById(resources.getKey());
ValidationUtil.isNull( optionalYxCache,"YxCache","id",resources.getKey());
YxCache yxCache = optionalYxCache.get();
yxCache.copy(resources);
yxCacheRepository.save(yxCache);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String key) {
yxCacheRepository.deleteById(key);
}
}

View File

@ -0,0 +1,89 @@
package co.yixiang.mp.service.impl;
import co.yixiang.mp.domain.YxWechatMenu;
import co.yixiang.mp.repository.YxWechatMenuRepository;
import co.yixiang.mp.service.YxWechatMenuService;
import co.yixiang.mp.service.dto.YxWechatMenuDTO;
import co.yixiang.mp.service.dto.YxWechatMenuQueryCriteria;
import co.yixiang.mp.service.mapper.YxWechatMenuMapper;
import co.yixiang.utils.PageUtil;
import co.yixiang.utils.QueryHelp;
import co.yixiang.utils.ValidationUtil;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* @author hupeng
* @date 2019-10-06
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class YxWechatMenuServiceImpl implements YxWechatMenuService {
private final YxWechatMenuRepository YxWechatMenuRepository;
private final YxWechatMenuMapper YxWechatMenuMapper;
public YxWechatMenuServiceImpl(YxWechatMenuRepository YxWechatMenuRepository, YxWechatMenuMapper YxWechatMenuMapper) {
this.YxWechatMenuRepository = YxWechatMenuRepository;
this.YxWechatMenuMapper = YxWechatMenuMapper;
}
@Override
public Map<String,Object> queryAll(YxWechatMenuQueryCriteria criteria, Pageable pageable){
Page<YxWechatMenu> page = YxWechatMenuRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(YxWechatMenuMapper::toDto));
}
@Override
public List<YxWechatMenuDTO> queryAll(YxWechatMenuQueryCriteria criteria){
return YxWechatMenuMapper.toDto(YxWechatMenuRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
}
@Override
public YxWechatMenuDTO findById(String key) {
Optional<YxWechatMenu> YxWechatMenu = YxWechatMenuRepository.findById(key);
ValidationUtil.isNull(YxWechatMenu,"YxWechatMenu","key",key);
return YxWechatMenuMapper.toDto(YxWechatMenu.get());
}
@Override
public boolean isExist(String key) {
Optional<YxWechatMenu> YxWechatMenu = YxWechatMenuRepository.findById(key);
if(!YxWechatMenu.isPresent()){
return false;
}
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public YxWechatMenuDTO create(YxWechatMenu resources) {
//resources.setKey(IdUtil.simpleUUID());
return YxWechatMenuMapper.toDto(YxWechatMenuRepository.save(resources));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(YxWechatMenu resources) {
Optional<YxWechatMenu> optionalYxWechatMenu = YxWechatMenuRepository.findById(resources.getKey());
ValidationUtil.isNull( optionalYxWechatMenu,"YxWechatMenu","id",resources.getKey());
YxWechatMenu YxWechatMenu = optionalYxWechatMenu.get();
YxWechatMenu.copy(resources);
YxWechatMenuRepository.save(YxWechatMenu);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String key) {
YxWechatMenuRepository.deleteById(key);
}
}

View File

@ -1,8 +1,8 @@
package co.yixiang.mp.service.mapper;
import co.yixiang.mapper.EntityMapper;
import co.yixiang.mp.domain.YxCache;
import co.yixiang.mp.service.dto.YxCacheDTO;
import co.yixiang.mp.domain.YxWechatMenu;
import co.yixiang.mp.service.dto.YxWechatMenuDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@ -11,6 +11,6 @@ import org.mapstruct.ReportingPolicy;
* @date 2019-10-06
*/
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface YxCacheMapper extends EntityMapper<YxCacheDTO, YxCache> {
public interface YxWechatMenuMapper extends EntityMapper<YxWechatMenuDTO, YxWechatMenu> {
}