Skip to content

Commit

Permalink
feat: add Prize's addition and search
Browse files Browse the repository at this point in the history
  • Loading branch information
DirectorJerrian committed Jan 25, 2022
1 parent c0d0c4e commit e635458
Show file tree
Hide file tree
Showing 7 changed files with 196 additions and 6 deletions.
44 changes: 44 additions & 0 deletions src/main/java/com/softeng/dingtalk/controller/PrizeController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.softeng.dingtalk.controller;

import com.softeng.dingtalk.service.PrizeService;
import com.softeng.dingtalk.vo.PrizeVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
* @Description 获奖情况
* @Author Jerrian Zhao
* @Data 01/25/2022
*/

@Slf4j
@RestController
@RequestMapping("/api")
public class PrizeController {
@Autowired
PrizeService prizeService;

/**
* 获取用户的获奖情况
*
* @param userId
* @return
*/
@GetMapping("/prizeList")
public List<PrizeVO> findByUserId(@RequestAttribute int userId) {
return prizeService.findByUser(userId);
}

/**
* 新增奖项
* @param userId
* @param prizeVO
*/
@PostMapping("/prize/add")
public void addNewPrize(@RequestAttribute int userId, @RequestBody PrizeVO prizeVO){
prizeService.addNewPrize(userId,prizeVO);
}
}
55 changes: 51 additions & 4 deletions src/main/java/com/softeng/dingtalk/entity/Prize.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package com.softeng.dingtalk.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.*;
import java.time.LocalDate;

/**
* @Description 获奖奖项实体类
Expand All @@ -20,8 +19,56 @@
@Entity
@NoArgsConstructor
public class Prize {
/**
* 表示奖项级别的静态常量
*/
public static final int SCHOOL_LEVEL = 0;
public static final int PROVINCE_LEVEL = 1;
public static final int NATIONAL_LEVEL = 2;
public static final int INTERNATIONAL_LEVEL = 3;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@JsonIgnoreProperties("allPrizes")
@ManyToOne(fetch = FetchType.LAZY)
private User user;

/**
* 获奖时间
*/
@Column(nullable = false)
private LocalDate prizeTime;

/**
* 奖项名称
*/
@Column(nullable = false)
private String prizeName;

/**
* 奖项级别
*/
@Column(nullable = false)
private int level;

/**
* 备注
*/
private String remark;

/**
* 软删除标识
*/
@Column(nullable = false)
private boolean deleted = false;

public Prize(User user, LocalDate prizeTime, String prizeName, int level, String remark) {
this.user = user;
this.prizeTime = prizeTime;
this.prizeName = prizeName;
this.level = level;
this.remark = remark;
}
}
9 changes: 9 additions & 0 deletions src/main/java/com/softeng/dingtalk/entity/User.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.softeng.dingtalk.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.softeng.dingtalk.enums.Position;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -11,6 +12,7 @@
import javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
* @author zhanyeye
Expand Down Expand Up @@ -140,6 +142,13 @@ public class User {
*/
private String remark;

/**
* 获奖情况
*/
@JsonIgnoreProperties("user")
@OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE)
private List<Prize> allPrizes;

public User(String userid, String unionid, String name, String avatar, int authority, Position position) {
this.userid = userid;
this.unionid = unionid;
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/com/softeng/dingtalk/repository/PrizeRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.softeng.dingtalk.repository;

import com.softeng.dingtalk.entity.Prize;
import com.softeng.dingtalk.vo.PrizeVO;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

/**
* @Description
* @Author Jerrian Zhao
* @Data 01/25/2022
*/

public interface PrizeRepository extends CustomizedRepository<Prize, Integer> {

/**
* 查询用户所有奖项
* @param userId
* @return
*/
@Query(value = "select id,pr.user.id as userId,prizeTime,prizeName,level,remark from prize pr where pr.user.id=:userId",nativeQuery = true)
List<PrizeVO> findByUserId(int userId);
}
46 changes: 46 additions & 0 deletions src/main/java/com/softeng/dingtalk/service/PrizeService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.softeng.dingtalk.service;

import com.softeng.dingtalk.entity.Prize;
import com.softeng.dingtalk.entity.User;
import com.softeng.dingtalk.repository.PrizeRepository;
import com.softeng.dingtalk.vo.PrizeVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
* @Description 获奖情况业务逻辑
* @Author Jerrian Zhao
* @Data 01/25/2022
*/

@Service
@Transactional
@Slf4j
public class PrizeService {
@Autowired
PrizeRepository prizeRepository;

/**
* 查询用户所有奖项
* @param userId
* @return
*/
public List<PrizeVO> findByUser(int userId){
return prizeRepository.findByUserId(userId);
}

/**
* 新增奖项
* @param userId
* @param prizeVO
* @return
*/
public Prize addNewPrize(int userId,PrizeVO prizeVO){
Prize prize=new Prize(new User(userId),prizeVO.getPrizeTime(),prizeVO.getPrizeName(),prizeVO.getLevel(),prizeVO.getRemark());
return prizeRepository.save(prize);
}
}
6 changes: 5 additions & 1 deletion src/main/java/com/softeng/dingtalk/service/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -129,5 +129,9 @@ public void updateUserInfo(UserInfoVO userInfoVO, int uid) {
userRepository.save(u);
}


/**
* @Description 获奖情况与固定资产
* @Author Jerrian Zhao
* @Data 01/25/2022
*/
}
18 changes: 17 additions & 1 deletion src/main/java/com/softeng/dingtalk/vo/PrizeVO.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,26 @@
package com.softeng.dingtalk.vo;

import com.softeng.dingtalk.entity.User;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDate;

/**
* @Description
* @Author Jerrian Zhao
* @Data 01/24/2022
*/

@Setter
@Getter
@AllArgsConstructor
public class PrizeVO {
private int id;
private int userId;
private LocalDate prizeTime;
private String prizeName;
private int level;
private String remark;
private boolean deleted;
}

0 comments on commit e635458

Please sign in to comment.