Commit 2b38c0e9 by 裴大威

Merge branch 'feat-1002614' into 'master'

1002614小程序游戏养成流程及基础方案调整

See merge request rays/pcloud-book!599
parents c25c406f 4b6fd491
......@@ -14,6 +14,10 @@ public class SearchBookVO {
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("作者")
private String author;
@ApiModelProperty("书id")
private Long bookId;
......@@ -29,4 +33,15 @@ public class SearchBookVO {
@ApiModelProperty("搜索次数")
private Integer searchCount;
private Long adviserId;
@ApiModelProperty("书id")
private Long secondTempletId;
private String secondTempletName;
private String coverImg;
}
package com.pcloud.book.cultivate.biz;
import com.pcloud.book.book.vo.SearchBookVO;
import com.pcloud.book.cultivate.dto.CreateCultivateDTO;
import com.pcloud.book.cultivate.dto.EnergyConsumptionDTO;
import com.pcloud.book.cultivate.dto.FishBallConversionDTO;
......@@ -51,4 +52,6 @@ public interface CultivateBiz {
Long createCultivateBookUser(CultivateBookUser cultivateBookUser);
CultivateBookUser getLastCultivateBookUser(Long wechatUserId);
PageBeanNew<SearchBookVO> getBookSearchRecord(Long wechatUserId, Integer currentPage, Integer numPerPage);
}
package com.pcloud.book.cultivate.biz.impl;
import com.google.common.collect.Lists;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.vo.SearchBookVO;
import com.pcloud.book.consumer.app.AssistTempletConsr;
import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.cultivate.biz.CultivateBiz;
import com.pcloud.book.cultivate.constant.CultivateConstant;
import com.pcloud.book.cultivate.dao.CultivateBookUserDao;
......@@ -44,11 +49,13 @@ import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.facade.shareimage.dto.HtmlDto;
import com.pcloud.facade.shareimage.facade.Htm2ImgService;
import com.pcloud.readercenter.wechat.entity.WechatUser;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
@Component("cultivateBiz")
public class CultivateBizImpl implements CultivateBiz {
......@@ -85,6 +92,15 @@ public class CultivateBizImpl implements CultivateBiz {
@Autowired
private CultivateBookUserDao cultivateBookUserDao;
@Autowired
private AssistTempletConsr assistTempletConsr;
@Autowired
private AdviserConsr adviserConsr;
......@@ -317,14 +333,14 @@ public class CultivateBizImpl implements CultivateBiz {
}
if(cultivateRecord.getChangeType().equals(CultivateChangeTypeEnum.GET_FISH_BALL.code)){
if (cultivateRecord.getFishBallChange()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"鱼丸数为空!");
throw new BookBizException(BookBizException.PARAM_IS_NULL,"银两数为空!");
}
if (cultivateRecord.getFishBallChangeType()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"鱼丸变化类型为空!");
throw new BookBizException(BookBizException.PARAM_IS_NULL,"银两变化类型为空!");
}
cultivateRecord.setRemark("获得了"+cultivateRecord.getFishBallChange()+"个鱼丸");
cultivateRecord.setRemark("获得了"+cultivateRecord.getFishBallChange()+"个银两");
}
if(cultivateRecord.getChangeType().equals(CultivateChangeTypeEnum.LIGHTEN.code)){
......@@ -359,9 +375,9 @@ public class CultivateBizImpl implements CultivateBiz {
if(cultivateRecord.getChangeType().equals(CultivateChangeTypeEnum.FISH_BALL_CONVERT_STAR.code)){
if(cultivateRecord.getStarChange()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"星星数量为空!");
throw new BookBizException(BookBizException.PARAM_IS_NULL,"玉璧数量为空!");
}
cultivateRecord.setRemark("你已将"+cultivateRecord.getStarChange()*100+"个鱼丸兑换了"+cultivateRecord.getStarChange()+"颗星");
cultivateRecord.setRemark("你已将"+cultivateRecord.getStarChange()*100+"个银两兑换了"+cultivateRecord.getStarChange()+"颗玉璧");
}
cultivateRecordDao.insert(cultivateRecord);
if(cultivateRecord.getChangeType().equals(CultivateChangeTypeEnum.FISH_BALL_CONVERT_STAR.code)){
......@@ -403,8 +419,11 @@ public class CultivateBizImpl implements CultivateBiz {
if(CultivateConstant.fifth_MEDAL_STAR<=newStarCount&&newStarCount<CultivateConstant.sixth_MEDAL_STAR) {
upGradeRecord.setRemark("已成功升级LV5学识渊博");
}
if(CultivateConstant.sixth_MEDAL_STAR<=newStarCount) {
upGradeRecord.setRemark("已成功升级LV6学亘古今");
if(CultivateConstant.sixth_MEDAL_STAR<=newStarCount&&newStarCount<CultivateConstant.seventh_MEDAL_STAR) {
upGradeRecord.setRemark("已成功升级LV6学识渊博");
}
if(CultivateConstant.seventh_MEDAL_STAR<=newStarCount) {
upGradeRecord.setRemark("已成功升级LV7学亘古今");
}
cultivateRecordDao.insert(upGradeRecord);
......@@ -604,6 +623,46 @@ public class CultivateBizImpl implements CultivateBiz {
}
@Override
public PageBeanNew<SearchBookVO> getBookSearchRecord(Long wechatUserId, Integer currentPage, Integer numPerPage) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId", wechatUserId);
PageBeanNew<SearchBookVO> pageBeanNew=cultivateRecordDao.listPageNew(new PageParam(currentPage, numPerPage), paramMap, "getBookSearchRecord");
if (pageBeanNew == null || ListUtils.isEmpty(pageBeanNew.getRecordList())) {
return new PageBeanNew<>(currentPage, numPerPage, new ArrayList<>());
}
//填充出版社信息
List<Long> adviserIds=pageBeanNew.getRecordList().stream().filter(s->s.getAdviserId()!=null).map(SearchBookVO::getAdviserId).distinct().collect(Collectors.toList());
Map<Long, AdviserBaseInfoDto> infoDtoMap = adviserConsr.getAdviserId2AdviserInfoDtoMap(adviserIds);
List<Long> templetIds = new ArrayList<>();
pageBeanNew.getRecordList().forEach(searchBookVO -> {
if (Objects.nonNull(searchBookVO.getSecondTempletId())) {
templetIds.add(searchBookVO.getSecondTempletId());
}
});
Map<Long, AssistTempletDTO> assistTempletDTOMap = assistTempletConsr.mapByIds(templetIds);
pageBeanNew.getRecordList().forEach(searchBookVO -> {
Long secondTempletId = searchBookVO.getSecondTempletId();
if (secondTempletId!=null&&assistTempletDTOMap!=null) {
AssistTempletDTO templetDTO = assistTempletDTOMap.get(secondTempletId);
searchBookVO.setSecondTempletName(Optional.ofNullable(templetDTO).map(AssistTempletDTO::getTempletName).orElse(null));
}
Long adviserId=searchBookVO.getAdviserId();
if (infoDtoMap!=null){
AdviserBaseInfoDto infoDto = infoDtoMap.get(adviserId);
if (infoDto!=null){
searchBookVO.setAgentId(infoDto.getAgentId());
searchBookVO.setAgentName(infoDto.getAgentName());
}
}
});
return pageBeanNew;
}
@Override
@ParamLog("分享")
public String shareMedal(Long wechatUserId) {
// 获取用户基本信息
......@@ -648,13 +707,21 @@ public class CultivateBizImpl implements CultivateBiz {
personalMedalRecordDtos.add(personalMedalRecordDto);
}
}
if(CultivateConstant.fifth_MEDAL_STAR<=cultivate.getStar()) {
if(CultivateConstant.sixth_MEDAL_STAR<=cultivate.getStar()&&cultivate.getStar()<CultivateConstant.seventh_MEDAL_STAR){
for (int i=0;i<6 ;i++) {
PersonalMedalRecordDto personalMedalRecordDto=new PersonalMedalRecordDto();
personalMedalRecordDto.setLightImgUrl(baseMedalList.get(i).getLightImgUrl());
personalMedalRecordDtos.add(personalMedalRecordDto);
}
}
if(CultivateConstant.seventh_MEDAL_STAR<=cultivate.getStar()){
for (int i=0;i<7 ;i++) {
PersonalMedalRecordDto personalMedalRecordDto=new PersonalMedalRecordDto();
personalMedalRecordDto.setLightImgUrl(baseMedalList.get(i).getLightImgUrl());
personalMedalRecordDtos.add(personalMedalRecordDto);
}
}
if(wechatUser == null){
throw new BizException(BizException.DB_DML_FAIL.getCode(), "未找到用户信息");
}
......
......@@ -4,21 +4,23 @@ public class CultivateConstant {
public static final Integer INITIAL_ENERGY=800;
public static final Integer INITIAL_STAR=30;
public static final Integer INITIAL_STAR=0;
public static final String ENERGY_CONSUMPTION_DELAY="ENERGY_CONSUMPTION_DELAY";
public static final String USE_SKILL_PRE="使用技能";
public static final Integer FIRST_MEDAL_STAR=30;
public static final Integer FIRST_MEDAL_STAR=0;
public static final Integer second_MEDAL_STAR=90;
public static final Integer second_MEDAL_STAR=30;
public static final Integer third_MEDAL_STAR=180;
public static final Integer third_MEDAL_STAR=90;
public static final Integer fourth_MEDAL_STAR=360;
public static final Integer fourth_MEDAL_STAR=180;
public static final Integer fifth_MEDAL_STAR=500;
public static final Integer fifth_MEDAL_STAR=360;
public static final Integer sixth_MEDAL_STAR=1000;
public static final Integer sixth_MEDAL_STAR=500;
public static final Integer seventh_MEDAL_STAR=1000;
}
......@@ -26,6 +26,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@Api("养成")
@RestController("cultivateFacade")
@RequestMapping("cultivate")
......@@ -173,5 +176,19 @@ public class CultivateFacade {
return new ResponseDto<>(cultivateBiz.getLastCultivateBookUser(wechatUserId));
}
@ApiOperation("获取搜索书籍记录列表")
@GetMapping("/getBookSearchRecord")
public ResponseDto<?> getBookSearchRecord(
@CookieValue(value = "userInfo" ,required = false) String userInfo,@RequestParam(value = "currentPage", required = false) Integer currentPage,
@RequestParam(value = "numPerPage", required = false) Integer numPerPage
) throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
if(!NumberUtil.isNumber(wechatUserId)){
throw new BizException(BizException.PARAM_IS_NULL.getCode(), "wechatUserId 不能为空");
}
return new ResponseDto<>(cultivateBiz.getBookSearchRecord(wechatUserId,currentPage,numPerPage));
}
}
......@@ -107,4 +107,18 @@
limit 1
</select>
<select id="getBookSearchRecord" parameterType="map" resultType="com.pcloud.book.book.vo.SearchBookVO">
select a.id,a.content,a.book_id bookId ,b.book_name bookName,a.agent_id agentId,c.SECOND_TEMPLET_ID secondTempletId,b.publish ,c.ADVISER_ID adviserId
,a.create_time createTime,b.author,b.COVER_IMG coverImg
from search_record a,book b ,book_adviser c
where a.book_id=b.book_id
and a.book_id=c.book_id
and a.user_delete=0
and b.is_delete=0
and c.is_delete=0
and a.wechat_user_id is not null
and a.wechat_user_id=#{wechatUserId}
order by a.create_time desc
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment