Skip to content

Commit b27433f

Browse files
authored
Merge pull request #365 from Dapp-Learning-DAO/dev
add feature
2 parents 86890db + 03afcd8 commit b27433f

33 files changed

+1155
-63
lines changed

src/main/java/com/dl/officialsite/bounty/BountyService.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,10 +204,11 @@ public void apply(ApplyBountyParam applyBountyParam) {
204204
.orElseThrow(() -> new BizException(NOT_FOUND_MEMBER.getCode(), NOT_FOUND_MEMBER.getMsg()));
205205

206206
try {
207-
emailService.sendMail(createBountyMember.getEmail(), "有新人申请bounty", "bounty名称:"
208-
+ bounty.getTitle() + "\n" + "申请人地址:" + createBountyMember.getAddress() +
209-
"\n" + "赶紧去看看吧 "
210-
+ "https://dapplearning.org/bounty");
207+
emailService.sendMail(createBountyMember.getEmail(), "有新人申请bounty", "bounty名称:" + bounty.getTitle() + "\n"
208+
+ "申请人地址:" + createBountyMember.getAddress() + "\n"
209+
+ "联系方式:" + applyBountyParam.getContractAddress() + "\n"
210+
+ "简介:\n" + applyBountyParam.getIntroduction() + "\n"
211+
+ "赶紧去看看吧: https://dapplearning.org/bounty");
211212
} catch (Exception e) {
212213
throw new RuntimeException(e);
213214
}

src/main/java/com/dl/officialsite/common/constants/Constants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public class Constants {
6464
public static final String CHAIN_ID_LINEA = "59144";
6565
public static final String CHAIN_ID_BASE = "8453";
6666
public static final String CHAIN_ID_GNOSIS = "100";
67+
public static final String CHAIN_ID_OP_SEPOLIA = "11155420";
6768

6869

6970
/**

src/main/java/com/dl/officialsite/common/enums/CodeEnums.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,10 @@ public enum CodeEnums {
5757
INVALID_AMOUNT("6007", "Invalid amount"),
5858
DUPLICATE_CLAIMER("6008", "Duplicate claimer"),
5959
SIZE_NOT_MATCH("6009", "Size not match"),
60-
;
60+
NOT_FOUND_WISH("7000", "not found wish"),
61+
62+
// wish
63+
NOT_REPEAT_LIKE("7001", "not repeat like");
6164

6265
private String code;
6366

src/main/java/com/dl/officialsite/login/filter/LoginFilter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public class LoginFilter extends OncePerRequestFilter {
7373
add("/sponsors/all");
7474
add("/course/detail");
7575
add("/course/list");
76+
add("/wish");
7677
}} ;
7778

7879
private Set<String> noAddrCheckApis = new HashSet() {{

src/main/java/com/dl/officialsite/sharing/Share.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,4 +157,8 @@ public class Share {
157157

158158
@Column(columnDefinition = "MEDIUMTEXT")
159159
private String outline;
160+
161+
private Long wishId;
162+
163+
private String wishTitle;
160164
}

src/main/java/com/dl/officialsite/sharing/SharingController.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ public BaseResponse loadSharing(@RequestParam(value = "pageNo",defaultValue = "1
9292
* 条件搜索
9393
*/
9494
@PostMapping("/search")
95-
public BaseResponse searchSharing(@RequestBody ShareSearchVo searchVo, @RequestParam(value =
96-
"pageNo",defaultValue = "1") int pageNumber,
97-
@RequestParam(value = "pageSize",defaultValue = "20") int pageSize){
95+
public BaseResponse searchSharing(@RequestBody ShareSearchVo searchVo,
96+
@RequestParam(value = "pageNo",defaultValue = "1") int pageNumber,
97+
@RequestParam(value = "pageSize",defaultValue = "20") int pageSize){
9898
Pageable pageable = PageRequest.of(pageNumber - 1, pageSize);
9999
Page<Share> page = sharingService.searchSharing(searchVo, pageable);
100100
return BaseResponse.successWithData(page);

src/main/java/com/dl/officialsite/sharing/SharingRepository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.dl.officialsite.sharing;
22

33
import java.util.List;
4+
import java.util.Optional;
45
import org.springframework.data.domain.Page;
56
import org.springframework.data.domain.Pageable;
67
import org.springframework.data.jpa.repository.JpaRepository;
@@ -53,4 +54,7 @@ List<Share> findAllSharesByUidPaged(@Param("memberAddress") String memberAddress
5354
//通过courseId查询share表中的数据
5455
@Query(value = "select * from share s where s.course_id = :courseId", nativeQuery = true)
5556
List<Share> findByCourseId(Long courseId);
57+
58+
@Query(value = "select * from share s where s.wish_id = :wishId", nativeQuery = true)
59+
Optional<Share> findByWishId(Long wishId);
5660
}

src/main/java/com/dl/officialsite/sharing/SharingService.java

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
import com.dl.officialsite.sharing.model.req.UpdateSharingReq;
2121
import com.dl.officialsite.sharing.model.resp.ShareTagResp;
2222
import com.dl.officialsite.team.TeamService;
23+
import com.dl.officialsite.wish.WishService;
24+
import com.dl.officialsite.wish.domain.Wish;
25+
import com.dl.officialsite.wish.repository.WishRepository;
2326
import com.google.common.collect.Lists;
2427
import java.math.BigInteger;
2528
import java.text.SimpleDateFormat;
@@ -31,6 +34,7 @@
3134
import java.util.Optional;
3235
import java.util.stream.Collectors;
3336
import java.util.stream.Stream;
37+
import javax.annotation.Resource;
3438
import javax.persistence.criteria.Predicate;
3539
import lombok.extern.slf4j.Slf4j;
3640
import org.springframework.beans.factory.annotation.Autowired;
@@ -42,6 +46,7 @@
4246
import org.springframework.data.jpa.domain.Specification;
4347
import org.springframework.stereotype.Service;
4448
import org.springframework.transaction.annotation.Transactional;
49+
import org.springframework.util.ObjectUtils;
4550
import org.springframework.util.StringUtils;
4651

4752
@Service
@@ -60,6 +65,9 @@ public class SharingService {
6065
@Autowired
6166
TeamService teamService;
6267

68+
@Resource
69+
private WishRepository wishRepository;
70+
6371
private final EmailService emailService;
6472

6573
private final ApplicationContext applicationContext;
@@ -73,6 +81,15 @@ public SharingService(EmailService emailService, ApplicationContext applicationC
7381
@Transactional(rollbackFor = Exception.class)
7482
public Share createSharing(Share share, String address) {
7583

84+
if (!ObjectUtils.isEmpty(share.getWishId())) {
85+
Wish wish = wishRepository.findById(share.getWishId()).orElseThrow(() -> new BizException(
86+
CodeEnums.NOT_FOUND_WISH
87+
));
88+
wish.setApply(1);
89+
wishRepository.save(wish);
90+
share.setWishTitle(wish.getTitle());
91+
}
92+
7693
// 保存分享记录
7794
share = sharingRepository.save(share);
7895

@@ -98,6 +115,8 @@ public Share createSharing(Share share, String address) {
98115
// 发送邮件
99116
emailService.sendMail(toAddressList, emailTitle, emailContent, null);
100117

118+
119+
101120
return share;
102121
}
103122

@@ -123,11 +142,20 @@ private void publishShareCreationEvent(Member creatorInfo, Share share, String f
123142
}
124143

125144
private String createEmailContent(Share share, Member creatorInfo) {
145+
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
146+
String shareTime = formatter.format(share.getDate()) + "-" + share.getTime();
147+
String shareLanguage = share.getLanguage() == 0 ? "Chinese" : "English";
126148
// 构造邮件内容
127149
return String.format(
128-
"Have a new sharing\n👉👉👉Theme: %s👈👈👈\nCreator: %s",
150+
"Have a new sharing\n👉👉👉Theme: %s👈👈👈\nOutLine: %s\nCreator: %s\nlanguage: "
151+
+ "%s\nsharingDoc: %s\nShareTime: %s\nOrg: %s\n",
129152
share.getTheme(),
130-
creatorInfo.getNickName()
153+
share.getOutline(),
154+
creatorInfo.getNickName(),
155+
shareLanguage,
156+
share.getSharingDoc(),
157+
shareTime,
158+
share.getOrg()
131159
);
132160
}
133161

@@ -162,6 +190,7 @@ public void updateSharing(UpdateSharingReq req, String address) {
162190
sharing.setTag(req.getTag());
163191
sharing.setCourseId(req.getCourseId());
164192
sharing.setOutline(req.getOutline());
193+
sharing.setWishId(req.getWishId());
165194

166195
this.sharingRepository.save(sharing);
167196
} else {
@@ -204,6 +233,10 @@ public Share querySharing(long shareId) {
204233
return sharingEntity.get();
205234
}
206235

236+
public Optional<Share> querySharingByWishId(Long wishId) {
237+
return this.sharingRepository.findByWishId(wishId);
238+
}
239+
207240

208241
public PagedList loadSharingByUser(String memberAddress, int pageNo, int pageSize) {
209242
int offset = (pageNo - 1) * pageSize;

src/main/java/com/dl/officialsite/sharing/model/req/UpdateSharingReq.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,6 @@ public class UpdateSharingReq {
8686

8787
@ApiModelProperty("课程大纲")
8888
private String outline;
89+
90+
private Long wishId;
8991
}

src/main/java/com/dl/officialsite/wish/WishController.java

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,23 @@
11
package com.dl.officialsite.wish;
22

33
import com.dl.officialsite.common.base.BaseResponse;
4+
import com.dl.officialsite.wish.domain.Wish;
45
import com.dl.officialsite.wish.params.AddWishParam;
6+
import com.dl.officialsite.wish.params.ApplyWishParam;
7+
import com.dl.officialsite.wish.params.DonationWishParam;
8+
import com.dl.officialsite.wish.params.EditWishParam;
9+
import com.dl.officialsite.wish.params.QueryWishParam;
10+
import com.dl.officialsite.wish.params.SettleWishParam;
11+
import com.dl.officialsite.wish.result.WishDetailResult;
512
import javax.annotation.Resource;
613
import lombok.extern.slf4j.Slf4j;
14+
import org.springframework.data.domain.Page;
15+
import org.springframework.data.domain.PageRequest;
16+
import org.springframework.data.domain.Pageable;
17+
import org.springframework.web.bind.annotation.DeleteMapping;
18+
import org.springframework.web.bind.annotation.GetMapping;
719
import org.springframework.web.bind.annotation.PostMapping;
20+
import org.springframework.web.bind.annotation.PutMapping;
821
import org.springframework.web.bind.annotation.RequestBody;
922
import org.springframework.web.bind.annotation.RequestMapping;
1023
import org.springframework.web.bind.annotation.RequestParam;
@@ -30,5 +43,66 @@ public BaseResponse add(@RequestBody AddWishParam addWishParam, @RequestParam St
3043
return BaseResponse.successWithData(wishService.add(addWishParam, address));
3144
}
3245

46+
//edit wish
47+
@PutMapping
48+
public BaseResponse edit(@RequestBody EditWishParam editWishParam, @RequestParam String address) {
49+
wishService.edit(editWishParam, address);
50+
return BaseResponse.success();
51+
}
52+
53+
//delete wish
54+
@DeleteMapping
55+
public BaseResponse delete(@RequestParam Long id, @RequestParam String address) {
56+
wishService.delete(id, address);
57+
return BaseResponse.success();
58+
}
59+
60+
//list wish
61+
@PostMapping("/list")
62+
public BaseResponse list(@RequestBody QueryWishParam queryWishParam,
63+
@RequestParam(value = "pageNo",defaultValue = "1") int pageNumber,
64+
@RequestParam(value = "pageSize",defaultValue = "20") int pageSize,
65+
@RequestParam String address) {
66+
Pageable pageable = PageRequest.of(pageNumber - 1, pageSize);
67+
Page<Wish> page = wishService.list(queryWishParam, pageable);
68+
return BaseResponse.successWithData(page);
69+
}
70+
71+
//get wish
72+
@GetMapping
73+
public BaseResponse<WishDetailResult> get(@RequestParam Long id, @RequestParam String address) {
74+
return BaseResponse.successWithData(wishService.get(id, address));
75+
}
76+
77+
//like wish
78+
@PostMapping("/like")
79+
public BaseResponse like(@RequestParam Long wishId, @RequestParam String address) {
80+
wishService.like(wishId, address);
81+
return BaseResponse.success();
82+
}
83+
84+
//donation wish
85+
@PostMapping("/donation")
86+
public BaseResponse apply(@RequestParam String address,
87+
@RequestBody DonationWishParam donationWishParam) {
88+
wishService.donation(address, donationWishParam);
89+
return BaseResponse.success();
90+
}
91+
92+
//settle wish
93+
@PostMapping("/settle")
94+
public BaseResponse apply(@RequestParam String address,
95+
@RequestBody SettleWishParam settleWishParam) {
96+
wishService.settle(address, settleWishParam);
97+
return BaseResponse.success();
98+
}
99+
100+
101+
@GetMapping("test")
102+
public void test() {
103+
wishService.updateWishTokenAmount();
104+
}
105+
106+
33107

34108
}

src/main/java/com/dl/officialsite/wish/WishRepository.java

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)