caoyiwen 2 years ago
parent
commit
13e2798202
  1. 2
      diet-core/src/main/java/com/mathvision/diet/domain/UserDO.java
  2. 3
      diet-dao/src/main/java/com/mathvision/diet/repository/DishRepository.java
  3. 3
      diet-dao/src/main/java/com/mathvision/diet/repository/IngredientMarkRepository.java
  4. 5
      diet-dao/src/main/java/com/mathvision/diet/repository/MenuDishRepository.java
  5. 2
      diet-dao/src/main/java/com/mathvision/diet/repository/MenuRepository.java
  6. 1
      diet-dao/src/main/java/com/mathvision/diet/repository/RoleRepository.java
  7. 2
      diet-web/src/main/java/com/mathvision/diet/utils/JWTUtils.java

2
diet-core/src/main/java/com/mathvision/diet/domain/UserDO.java

@ -28,6 +28,6 @@ public class UserDO {
@JSONField(serialize = false)
public boolean isAdmin() {
return vender == null;
return vender == null || vender.getId() == null;
}
}

3
diet-dao/src/main/java/com/mathvision/diet/repository/DishRepository.java

@ -4,16 +4,19 @@ import com.mathvision.diet.entity.Dish;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
public interface DishRepository extends JpaRepository<Dish, Long>, JpaSpecificationExecutor<Dish> {
@Transactional
long deleteByVender(Long vender);
@Query("select new Dish(d.id, d.name, d.marks, d.ingredient) from Dish d where d.name like ?1 order by d.id DESC")
List<Dish> findByNameLikeOrderByIdDesc(String name);
boolean existsByVenderAndNameAndIdNot(Long vender, String name, Long id);
boolean existsByVenderAndIdIn(Long vender, Collection<Long> ids);
@Transactional
long deleteByIdInAndVender(Collection<Long> ids, Long vender);
@Query("select d from Dish d where d.vender = ?1 and d.id in ?2")
List<Dish> findByVenderAndIdIn(Long vender, Collection<Long> ids);

3
diet-dao/src/main/java/com/mathvision/diet/repository/IngredientMarkRepository.java

@ -9,7 +9,10 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
public interface IngredientMarkRepository extends JpaRepository<IngredientMark, Long>, JpaSpecificationExecutor<IngredientMark> {
@Transactional
long deleteByIngredient(String ingredient);
@Transactional
long deleteByVender(Long vender);
@Transactional
@Modifying

5
diet-dao/src/main/java/com/mathvision/diet/repository/MenuDishRepository.java

@ -3,18 +3,23 @@ package com.mathvision.diet.repository;
import com.mathvision.diet.entity.MenuDish;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
public interface MenuDishRepository extends JpaRepository<MenuDish, Long>, JpaSpecificationExecutor<MenuDish> {
@Transactional
long deleteByVender(Long vender);
MenuDish findByMenuAndVenderAndDayAndDishAndMeal(Long menu, Long vender, Long day, Long dish, String meal);
List<MenuDish> findByMenuAndVenderAndDay(Long menu, Long vender, Long day);
List<MenuDish> findByMenuAndVender(Long menu, Long vender);
MenuDish findByIdAndVender(Long id, Long vender);
List<MenuDish> findByMenu(Long menu);
@Transactional
long deleteByMenuAndDayGreaterThanAndMealNotIn(Long menu, Long day, Collection<String> meals);
@Transactional
long deleteByMenuAndVender(Long menu, Long vender);
@Transactional
long deleteByMenu(Long menu);
}

2
diet-dao/src/main/java/com/mathvision/diet/repository/MenuRepository.java

@ -16,6 +16,7 @@ import java.util.Map;
public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificationExecutor<Menu> {
List<Menu> findByNutrient(Long nutrient);
@Transactional
long deleteByVender(Long vender);
@Query(value = "select m.id from menu m " +
"where m.vender = ?1 and m.status = ?2 and (WEEKDAY(NOW()) + 1) <= m.day and now() between m.start_time and m.end_time " +
@ -42,6 +43,7 @@ public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificat
@Modifying
@Query("update Menu m set m.status = ?1, m.startTime = ?2, m.endTime = ?3, m.operate = ?4 where m.id = ?5")
int updateStatusAndStartTimeAndEndTimeAndOperateById(MenuStatus status, Instant startTime, Instant endTime, String operate, Long id);
@Transactional
long deleteByIdAndVender(Long id, Long vender);
Menu findByIdAndVender(Long id, Long vender);

1
diet-dao/src/main/java/com/mathvision/diet/repository/RoleRepository.java

@ -26,6 +26,7 @@ public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificat
@Query("update Role r set r.roleName = ?1, r.operate = ?2 where r.id = ?3 and r.vender = ?4 and r.roleType != '系统'")
int updateRoleNameAndOperateByIdAndVenderAndRoleTypeNot(String roleName, String operate, Long id, Long vender);
@Transactional
@Query("DELETE FROM Role d WHERE d.id = ?1 AND d.vender = ?2 AND ?3 != d.roleType")
long deleteByIdAndVenderAndRoleTypeNot(Long id, Long vender, RoleType roleType);
List<Role> findByVender(Long vender);

2
diet-web/src/main/java/com/mathvision/diet/utils/JWTUtils.java

@ -37,7 +37,7 @@ public class JWTUtils {
boolean isAdmin = decodedJWT.getClaim("isAdmin").asBoolean();
String uid = decodedJWT.getClaim("uid").asString();
Long rid = decodedJWT.getClaim("rid").asLong();
Vender vender = Vender.builder().id(decodedJWT.getClaim("vender").isMissing() ? null : decodedJWT.getClaim("vender").asLong()).build();
Vender vender = decodedJWT.getClaim("vender").isMissing() || decodedJWT.getClaim("vender").asLong() == null ? null : Vender.builder().id(decodedJWT.getClaim("vender").isMissing() ? null : decodedJWT.getClaim("vender").asLong()).build();
List<RoleItem> roleItems = JSON.parseArray(decodedJWT.getClaim("items").asString(), Long.class).stream().map(id -> RoleItem.builder().id(id).build()).collect(Collectors.toList());
UserDO userDO = UserDO.builder().uid(uid).roleId(rid).roleItems(roleItems).vender(vender).build();
return userDO == null || isAdmin != userDO.isAdmin() ? null : userDO;

Loading…
Cancel
Save