Commit 84544f04 by 田超

Merge branch 'feature/1004906' into 'master'

feat:[1004906]宠物小睿

See merge request rays/pcloud-book!1368
parents a6127327 7e40f5ec
......@@ -6,6 +6,7 @@ import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.channelcenter.base.exceptions.ChannelBizException;
import com.pcloud.readercenter.applet.entity.AppletQuestion;
import com.pcloud.readercenter.applet.service.AppletUserService;
import com.pcloud.readercenter.rmall.dto.RmallUserBookMoneyDTO;
import com.pcloud.readercenter.rmall.entity.RmallBookMoneyRecord;
import com.pcloud.readercenter.rmall.service.RmallBookMoneyRecordService;
import com.pcloud.readercenter.unionuser.service.RaysUnionUserService;
......@@ -467,6 +468,15 @@ public class ReaderConsr {
}
return list;
}
public RmallUserBookMoneyDTO getBookMoneyCount(Long wechatUserId) {
try {
return ResponseHandleUtil.parseResponse(rmallBookMoneyRecordService.getBookMoneyCount(wechatUserId), RmallUserBookMoneyDTO.class);
} catch (Exception e) {
LOGGER.error("调用rmallBookMoneyRecordService.getBookMoneyCount失败" +e.getMessage());
}
return null;
}
}
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.CultivateDTO;
import com.pcloud.book.cultivate.dto.EnergyConsumptionDTO;
import com.pcloud.book.cultivate.dto.FishBallConversionDTO;
import com.pcloud.book.cultivate.dto.FishBallPickDTO;
import com.pcloud.book.cultivate.dto.FriendDTO;
import com.pcloud.book.cultivate.dto.GiveEnergyDTO;
import com.pcloud.book.cultivate.dto.HoldSeatDTO;
import com.pcloud.book.cultivate.dto.SkillUseDTO;
import com.pcloud.book.cultivate.entity.Cultivate;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.book.cultivate.entity.CultivateRecord;
import com.pcloud.book.cultivate.entity.CultivateRobotClassify;
import com.pcloud.book.personal.dto.PersonalMedalRecordDto;
import com.pcloud.common.core.mq.DelayQueueDTO;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
package com.pcloud.book.cultivate.biz;
public interface CultivateBiz {
Long createCultivate(CreateCultivateDTO createCultivateDTO);
/* Long createCultivate(CreateCultivateDTO createCultivateDTO);
Cultivate getCultivate(Long wechatUserId);
......@@ -82,4 +63,6 @@ public interface CultivateBiz {
Boolean beforeHoldSeat(Long cultivateId);
CultivateDTO getCultivateBaseInfo(Long cultivateId);
*/
}
package com.pcloud.book.cultivate.biz;
import com.pcloud.book.cultivate.dto.CultivateRaysConversionDTO;
import com.pcloud.book.cultivate.dto.CultivateRaysDTO;
import com.pcloud.common.core.mq.DelayQueueDTO;
public interface CultivateRaysBiz {
/**
* 新增养成
* @author:zhuyajie
* @date:2021/7/16 14:13
* * @param null
*/
Long createCultivate(Long wechatUserId, Long officialAccountsId);
/**
* 获取养成
* @author:zhuyajie
* @date:2021/7/16 14:14
* * @param null
*/
CultivateRaysDTO getCultivate(Long wechatUserId, Long officialAccountsId);
/**
* 书币兑换
* @author:zhuyajie
* @date:2021/7/16 14:14
* * @param null
*/
void rmallMoneyConversion(CultivateRaysConversionDTO cultivateRaysConversionDTO);
/**
* 投喂兑换时间
* @author:zhuyajie
* @date:2021/7/16 14:14
* * @param null
*/
void gainsConversion(CultivateRaysConversionDTO cultivateRaysConversionDTO);
/**
* 时间消耗完
* @author:zhuyajie
* @date:2021/7/16 18:29
* * @param null
*/
void dealHoursConsumption(DelayQueueDTO delayQueueDTO);
}
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.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;
import com.pcloud.book.cultivate.dao.CultivateDao;
import com.pcloud.book.cultivate.dao.CultivateHoldSeatDao;
import com.pcloud.book.cultivate.dao.CultivateRecordDao;
import com.pcloud.book.cultivate.dao.CultivateRobotClassifyDao;
import com.pcloud.book.cultivate.dto.CreateCultivateDTO;
import com.pcloud.book.cultivate.dto.CultivateDTO;
import com.pcloud.book.cultivate.dto.DealHoldSeatFriendFishBallDTO;
import com.pcloud.book.cultivate.dto.EnergyConsumptionDTO;
import com.pcloud.book.cultivate.dto.EnergyConsumptionDelayDTO;
import com.pcloud.book.cultivate.dto.FishBallConversionDTO;
import com.pcloud.book.cultivate.dto.FishBallPickDTO;
import com.pcloud.book.cultivate.dto.FriendDTO;
import com.pcloud.book.cultivate.dto.GiveEnergyDTO;
import com.pcloud.book.cultivate.dto.HoldSeatDTO;
import com.pcloud.book.cultivate.dto.HoldTimeDTO;
import com.pcloud.book.cultivate.dto.SkillUseDTO;
import com.pcloud.book.cultivate.entity.Cultivate;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.book.cultivate.entity.CultivateHoldSeat;
import com.pcloud.book.cultivate.entity.CultivateRecord;
import com.pcloud.book.cultivate.entity.CultivateRobotClassify;
import com.pcloud.book.cultivate.enums.CultivateChangeTypeEnum;
import com.pcloud.book.cultivate.enums.CultivateSkillTypeEnum;
import com.pcloud.book.cultivate.enums.FishBallChangeTypeEnum;
import com.pcloud.book.mq.delay.DelayMessageSender;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotClassifyBiz;
import com.pcloud.book.personal.biz.PersonalMedalBiz;
import com.pcloud.book.personal.dao.PersonalMedalDao;
import com.pcloud.book.personal.dao.PersonalMedalRecordDao;
import com.pcloud.book.personal.dto.PersonalMedalRecordDto;
import com.pcloud.book.personal.entity.PersonalMedal;
import com.pcloud.book.personal.entity.PersonalMedalRecord;
import com.pcloud.book.personal.entity.PersonalShareTemplate;
import com.pcloud.book.personal.mapper.PersonalShareTemplateMapper;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.book.util.common.YesOrNoEnums;
import com.pcloud.common.constant.CacheConstant;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.mq.DelayQueueDTO;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
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.apache.commons.collections.MapUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
@Component("cultivateBiz")
public class CultivateBizImpl implements CultivateBiz {
/*
@Autowired
private CultivateDao cultivateDao;
@Autowired
......@@ -1411,5 +1338,6 @@ public class CultivateBizImpl implements CultivateBiz {
WechatUser wechatUser = readerConsr.getWechatUser(cultivate.getWechatUserId());
cultivateDTO.setPicUrl(null!=wechatUser?wechatUser.getWechatUserHeadurl():null);
return cultivateDTO;
}
}*/
}
package com.pcloud.book.cultivate.constant;
/**
* @ClassName com.pcloud.book.cultivate.constant.CultivateRaysConstants
* @Author zhuyajie
* @Description 新版宠物小睿
* @Date 2021/7/16 14:22
* @Version 1.0
**/
public class CultivateRaysConstants {
/**
* 宠物状态 0饥饿1进食
* @author:zhuyajie
* @date:2021/7/16 14:24
* * @param null
*/
public enum CultivateRaysState{
HUNGRY(0),
EATING(1);
private Integer code;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
CultivateRaysState(Integer code) {
this.code = code;
}
}
/**
* 收入类型及兑换
* @author:zhuyajie
* @date:2021/7/16 14:40
* * @param null
*/
public enum GainsConversionEnum {
/**
* 类型,名称,可兑换x时长,x书币兑换1个
*/
GAINS1(1,"小鱼干", 5,3),
GAINS2(2,"面包",10,5),
GAINS3(3,"大餐",24,10);
private Integer type;
private String typeName;
private Integer hours;
private Integer cost;
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public Integer getHours() {
return hours;
}
public void setHours(Integer hours) {
this.hours = hours;
}
public Integer getCost() {
return cost;
}
public void setCost(Integer cost) {
this.cost = cost;
}
GainsConversionEnum(Integer type, String typeName, Integer hours, Integer cost) {
this.type = type;
this.typeName = typeName;
this.hours = hours;
this.cost = cost;
}
public static Integer getHoursByType(Integer type) {
for (GainsConversionEnum conversionEnum:GainsConversionEnum.values()) {
if (conversionEnum.type.equals(type)){
return conversionEnum.hours;
}
}
return null;
}
public static Integer getCostByType(Integer type) {
for (GainsConversionEnum conversionEnum:GainsConversionEnum.values()) {
if (conversionEnum.type.equals(type)){
return conversionEnum.cost;
}
}
return null;
}
public static String getNameByType(Integer type) {
for (GainsConversionEnum conversionEnum:GainsConversionEnum.values()) {
if (conversionEnum.type.equals(type)){
return conversionEnum.typeName;
}
}
return null;
}
}
/**
* 变化类型
* @author:zhuyajie
* @date:2021/7/16 18:15
* * @param null
*/
public enum ChangeTypeEnum{
RMALL_MONEY_CONVERSION(1),
GAINS_CONVERSION(2);
private Integer code;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
ChangeTypeEnum(Integer code) {
this.code = code;
}
}
//延时队列-时间消耗
public static final String HOURS_CONSUMPTION_DELAY="HOURS_CONSUMPTION_DELAY";
//缓存-指引
public static final String GUIDE_REDIS ="book:cultivate_guide";
}
package com.pcloud.book.cultivate.dao;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.common.core.dao.BaseDao;
public interface CultivateBookUserDao extends BaseDao<CultivateBookUser> {
CultivateBookUser getLastCultivateBookUser(Long wechatUserId);
}
package com.pcloud.book.cultivate.dao;
import com.pcloud.book.cultivate.entity.CultivateHoldSeat;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface CultivateHoldSeatDao extends BaseDao<CultivateHoldSeat> {
void deleteById(Long cultivateId,Long friendCultivateId);
List<Long> getCultivateIdByFriendId(Long friendCultivateId);
Long getFriendCultivateIdById(Long cultivateId);
CultivateHoldSeat getById(Long cultivateId,Long friendCultivateId);
}
package com.pcloud.book.cultivate.dao;
import com.pcloud.book.cultivate.entity.CultivateRays;
import com.pcloud.common.core.dao.BaseDao;
/**
* 宠物小睿基本信息(CultivateRays)表数据库访问层
*
* @author makejava
* @since 2021-07-16 13:52:47
*/
public interface CultivateRaysDao extends BaseDao <CultivateRays>{
CultivateRays getByWechatUserId(Long wechatUserId);
}
\ No newline at end of file
package com.pcloud.book.cultivate.dao;
import com.pcloud.book.cultivate.entity.CultivateRaysRecord;
import com.pcloud.common.core.dao.BaseDao;
/**
* 宠物小睿喂养记录(CultivateRaysRecord)表数据库访问层
*
* @author makejava
* @since 2021-07-16 13:53:12
*/
public interface CultivateRaysRecordDao extends BaseDao<CultivateRaysRecord>{
CultivateRaysRecord getLastRecord(Long cultivateId, Integer changeType);
}
\ No newline at end of file
package com.pcloud.book.cultivate.dao;
import com.pcloud.book.cultivate.entity.CultivateRobotClassify;
import com.pcloud.common.core.dao.BaseDao;
public interface CultivateRobotClassifyDao extends BaseDao<CultivateRobotClassify> {
CultivateRobotClassify getByCondition(Long wechatUserId, Long cultivateId, Long robotClassifyId);
}
package com.pcloud.book.cultivate.dao.impl;
import com.pcloud.book.cultivate.dao.CultivateBookUserDao;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
@Component("cultivateBookUserDao")
public class CultivateBookUserDaoImpl extends BaseDaoImpl<CultivateBookUser> implements CultivateBookUserDao {
@Override
public CultivateBookUser getLastCultivateBookUser(Long wechatUserId) {
return super.getSqlSession().selectOne(getStatement("getLastCultivateBookUser"),wechatUserId);
}
}
package com.pcloud.book.cultivate.dao.impl;
import com.pcloud.book.cultivate.dao.CultivateHoldSeatDao;
import com.pcloud.book.cultivate.entity.CultivateHoldSeat;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component("cultivateHoldSeatDao")
public class CultivateHoldSeatDaoImpl extends BaseDaoImpl<CultivateHoldSeat> implements CultivateHoldSeatDao {
@Override
public void deleteById(Long cultivateId,Long friendCultivateId) {
Map<String,Object> map=new HashMap<>();
map.put("cultivateId",cultivateId);
map.put("friendCultivateId",friendCultivateId);
super.getSqlSession().update(getStatement("deleteById"), map);
}
@Override
public List<Long> getCultivateIdByFriendId(Long friendCultivateId) {
Map<String,Object> map=new HashMap<>();
map.put("friendCultivateId",friendCultivateId);
return super.getSqlSession().selectList(getStatement("getCultivateIdByFriendId"), map);
}
@Override
public Long getFriendCultivateIdById(Long cultivateId) {
Map<String,Object> map=new HashMap<>();
map.put("cultivateId",cultivateId);
return super.getSqlSession().selectOne(getStatement("getFriendCultivateIdById"), map);
}
@Override
public CultivateHoldSeat getById(Long cultivateId, Long friendCultivateId) {
Map<String,Object> map=new HashMap<>();
map.put("cultivateId",cultivateId);
map.put("friendCultivateId",friendCultivateId);
return super.getSqlSession().selectOne(getStatement("getById"), map);
}
}
package com.pcloud.book.cultivate.dao.impl;
import com.pcloud.book.cultivate.dao.CultivateRaysDao;
import com.pcloud.book.cultivate.entity.CultivateRays;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
/**
* @ClassName com.pcloud.book.cultivate.dao.impl.CultivateRaysDaoImpl
* @Author zhuyajie
* @Description 宠物小睿
* @Date 2021/7/16 13:56
* @Version 1.0
**/
@Component
public class CultivateRaysDaoImpl extends BaseDaoImpl<CultivateRays> implements CultivateRaysDao {
@Override
public CultivateRays getByWechatUserId(Long wechatUserId) {
return getSessionTemplate().selectOne(getStatement("getByWechatUserId"), wechatUserId);
}
}
package com.pcloud.book.cultivate.dao.impl;
import com.pcloud.book.cultivate.dao.CultivateRaysRecordDao;
import com.pcloud.book.cultivate.entity.CultivateRaysRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* @ClassName com.pcloud.book.cultivate.dao.impl.CultivateRaysRecordDaoImpl
* @Author zhuyajie
* @Description 记录
* @Date 2021/7/16 13:58
* @Version 1.0
**/
@Component
public class CultivateRaysRecordDaoImpl extends BaseDaoImpl<CultivateRaysRecord> implements CultivateRaysRecordDao {
@Override
public CultivateRaysRecord getLastRecord(Long cultivateId, Integer changeType) {
Map<String,Object> map = new HashMap<>();
map.put("cultivateId", cultivateId);
map.put("changeType", changeType);
return getSessionTemplate().selectOne(getStatement("getLastRecord"), map);
}
}
package com.pcloud.book.cultivate.dao.impl;
import com.pcloud.book.cultivate.dao.CultivateRobotClassifyDao;
import com.pcloud.book.cultivate.entity.CultivateRobotClassify;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
@Component("cultivateRobotClassifyDao")
public class CultivateRobotClassifyDaoImpl extends BaseDaoImpl<CultivateRobotClassify> implements CultivateRobotClassifyDao {
@Override
public CultivateRobotClassify getByCondition(Long wechatUserId, Long cultivateId, Long robotClassifyId) {
Map<String,Object> map=new HashMap<>();
map.put("wechatUserId",wechatUserId);
map.put("cultivateId",cultivateId);
map.put("robotClassifyId",robotClassifyId);
return super.getSqlSession().selectOne(getStatement("getByCondition"), map);
}
}
package com.pcloud.book.cultivate.dto;
import lombok.Data;
/**
* @ClassName com.pcloud.book.cultivate.dto.CultivateRaysConversionDTO
* @Author zhuyajie
* @Description 兑换
* @Date 2021/7/16 14:12
* @Version 1.0
**/
@Data
public class CultivateRaysConversionDTO {
private Long wechatUserId;
private Integer gainsType;
}
package com.pcloud.book.cultivate.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 宠物小睿基本信息(CultivateRays)实体类
*
* @author makejava
* @since 2021-07-16 13:52:47
*/
@Data
public class CultivateRaysDTO extends BaseDto {
private static final long serialVersionUID = 703145616367143769L;
/**
* 主键
*/
private Long id;
/**
* 用户id
*/
private Long wechatUserId;
/**
* 公众号id
*/
private Long officialAccountsId;
/**
* 收入1数量
*/
private Integer gains1;
/**
* 收入2数量
*/
private Integer gains2;
/**
* 收入3数量
*/
private Integer gains3;
/**
* 当前状态(0饥饿1进食)
*/
private Integer state;
@ApiModelProperty("头像")
private String headPic;
@ApiModelProperty("昵称")
private String nickName;
@ApiModelProperty("上次食物兑换时间")
private String lastConversionTime;
@ApiModelProperty("兑换时长")
private Integer hours;
/**
* 进食结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
@ApiModelProperty("是否有宠物")
private Boolean hasPet;
}
\ No newline at end of file
package com.pcloud.book.cultivate.dto;
import java.io.Serializable;
import lombok.Data;
/**
* @ClassName com.pcloud.book.cultivate.dto.CultivateRaysDelayDTO
* @Author zhuyajie
* @Description 小睿耗时
* @Date 2021/7/16 18:25
* @Version 1.0
**/
@Data
public class CultivateRaysDelayDTO implements Serializable {
private Long cultivateId;
}
package com.pcloud.book.cultivate.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class HoldSeatDTO {
@ApiModelProperty("占座人Id")
private Long cultivateId;
@ApiModelProperty("被占座人Id")
private Long friendCultivateId;
}
package com.pcloud.book.cultivate.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class HoldTimeDTO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("开始占座时间")
private Date startHold;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("结束占座时间")
private Date endHold;
@ApiModelProperty("好友id")
private Long friendCultivateId;
@ApiModelProperty("是否还在")
private Boolean stay;
}
package com.pcloud.book.cultivate.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小睿养成读者喜好书籍")
public class CultivateBookUser extends BaseEntity {
@ApiModelProperty("用户id")
private Long wechatUserId;
@ApiModelProperty("书名")
private String bookName;
@ApiModelProperty("阅读类型:1轻松阅读,2高效阅读,3深度阅读")
private Integer readType;
}
package com.pcloud.book.cultivate.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("占座")
public class CultivateHoldSeat extends BaseEntity {
@ApiModelProperty("占座人Id")
private Long cultivateId;
@ApiModelProperty("被占座人Id")
private Long friendCultivateId;
}
package com.pcloud.book.cultivate.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import lombok.Data;
/**
* 宠物小睿基本信息(CultivateRays)实体类
*
* @author makejava
* @since 2021-07-16 13:52:47
*/
@Data
public class CultivateRays extends BaseEntity {
private static final long serialVersionUID = 703145616367143769L;
/**
* 主键
*/
private Long id;
/**
* 用户id
*/
private Long wechatUserId;
/**
* 公众号id
*/
private Long officialAccountsId;
/**
* 收入1数量
*/
private Integer gains1;
/**
* 收入2数量
*/
private Integer gains2;
/**
* 收入3数量
*/
private Integer gains3;
/**
* 当前状态(0饥饿1进食)
*/
private Integer state;
/**
* 进食结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
}
\ No newline at end of file
package com.pcloud.book.cultivate.entity;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import lombok.Data;
/**
* 宠物小睿喂养记录(CultivateRaysRecord)实体类
*
* @author makejava
* @since 2021-07-16 13:53:12
*/
@Data
public class CultivateRaysRecord extends BaseEntity {
private static final long serialVersionUID = -82039530991699748L;
private Long id;
/**
* 宠物小睿id
*/
private Long cultivateId;
/**
* 变化类型(1书币兑换2投喂)
*/
private Integer changeType;
/**
* 兑换方式1/2/3
*/
private Integer gainsType;
/**
* 备注
*/
private String remark;
/**
* 小时
*/
private Integer hours;
}
\ No newline at end of file
package com.pcloud.book.cultivate.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小睿养成")
public class CultivateRobotClassify extends BaseEntity {
@ApiModelProperty("用户id")
private Long wechatUserId;
@ApiModelProperty("养成id")
private Long cultivateId;
@ApiModelProperty("机器人分类id")
private Long robotClassifyId;
}
package com.pcloud.book.cultivate.facade;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.cultivate.biz.CultivateBiz;
import com.pcloud.book.cultivate.dto.CreateCultivateDTO;
import com.pcloud.book.cultivate.dto.EnergyConsumptionDTO;
import com.pcloud.book.cultivate.dto.FishBallConversionDTO;
import com.pcloud.book.cultivate.dto.FishBallPickDTO;
import com.pcloud.book.cultivate.dto.GiveEnergyDTO;
import com.pcloud.book.cultivate.dto.HoldSeatDTO;
import com.pcloud.book.cultivate.dto.SkillUseDTO;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.book.cultivate.entity.CultivateRobotClassify;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.NumberUtil;
import com.pcloud.common.utils.cookie.Cookie;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
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")
public class CultivateFacade {
@Autowired
/*@Autowired
private CultivateBiz cultivateBiz;
......@@ -271,6 +245,6 @@ public class CultivateFacade {
@RequestParam("cultivateId") @ApiParam("养成id") Long cultivateId
) throws BizException, PermissionException {
return new ResponseDto<>(cultivateBiz.getCultivateBaseInfo(cultivateId));
}
}*/
}
package com.pcloud.book.cultivate.facade;
import com.pcloud.book.cultivate.biz.CultivateRaysBiz;
import com.pcloud.book.cultivate.constant.CultivateRaysConstants;
import com.pcloud.book.cultivate.dto.CultivateRaysConversionDTO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.cookie.Cookie;
import com.pcloud.common.utils.string.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api(description = "宠物小睿养成")
@RestController
@RequestMapping("cultivateRays")
public class CultivateRaysFacade {
@Autowired
private CultivateRaysBiz cultivateRaysBiz;
@ApiOperation("新增养成")
@PostMapping("/createCultivate")
public ResponseDto<?> createCultivate(
@CookieValue(value = "userInfo") String userInfo
) throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
Long officialAccountsId = Cookie.getId(userInfo, Cookie._OFFICIAL_ACCOUNTS_ID);
return new ResponseDto<>(cultivateRaysBiz.createCultivate(wechatUserId, officialAccountsId));
}
@ApiOperation("获取养成")
@GetMapping("/getCultivate")
public ResponseDto<?> getCultivate(
@CookieValue(value = "userInfo") String userInfo
) throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
Long officialAccountsId = Cookie.getId(userInfo, Cookie._OFFICIAL_ACCOUNTS_ID);
return new ResponseDto<>(cultivateRaysBiz.getCultivate(wechatUserId, officialAccountsId));
}
@ApiOperation("书币兑换")
@PostMapping("/rmallMoneyConversion")
public ResponseDto<?> rmallMoneyConversion(
@CookieValue(value = "userInfo") String userInfo,
@RequestBody CultivateRaysConversionDTO cultivateRaysConversionDTO
) throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
cultivateRaysConversionDTO.setWechatUserId(wechatUserId);
cultivateRaysBiz.rmallMoneyConversion(cultivateRaysConversionDTO);
return new ResponseDto<>();
}
@ApiOperation("投喂兑换时间")
@PostMapping("/gainsConversion")
public ResponseDto<?> gainsConversion(
@CookieValue(value = "userInfo") String userInfo,
@RequestBody CultivateRaysConversionDTO cultivateRaysConversionDTO
) throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
cultivateRaysConversionDTO.setWechatUserId(wechatUserId);
cultivateRaysBiz.gainsConversion(cultivateRaysConversionDTO);
return new ResponseDto<>();
}
@ApiOperation("加指引记录")
@GetMapping("addGuide")
public ResponseDto<?> addGuide(@CookieValue(value = "userInfo") String userInfo) {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
JedisClusterUtils.hset2Json(CultivateRaysConstants.GUIDE_REDIS, wechatUserId.toString(), 1);
return new ResponseDto<>();
}
@ApiOperation("指引记录")
@GetMapping("getGuide")
public ResponseDto<?> getGuide(@CookieValue(value = "userInfo") String userInfo) {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
String record = JedisClusterUtils.hget(CultivateRaysConstants.GUIDE_REDIS, wechatUserId.toString());
return new ResponseDto<>(StringUtil.isEmpty(record) ? false : true);
}
}
package com.pcloud.book.giftcoupon.facade;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.cultivate.biz.CultivateBiz;
import com.pcloud.book.cultivate.dto.CreateCultivateDTO;
import com.pcloud.book.cultivate.dto.EnergyConsumptionDTO;
import com.pcloud.book.cultivate.dto.FishBallConversionDTO;
import com.pcloud.book.cultivate.dto.FishBallPickDTO;
import com.pcloud.book.cultivate.dto.GiveEnergyDTO;
import com.pcloud.book.cultivate.dto.HoldSeatDTO;
import com.pcloud.book.cultivate.dto.SkillUseDTO;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.book.cultivate.entity.CultivateRobotClassify;
import com.pcloud.book.giftcoupon.biz.GiftCouponPackageBiz;
import com.pcloud.book.giftcoupon.dto.BatchReceiveDTO;
import com.pcloud.book.giftcoupon.dto.BatchUpdateDTO;
import com.pcloud.book.giftcoupon.dto.ExceptionDTO;
import com.pcloud.book.giftcoupon.dto.GiftPackageDTO;
import com.pcloud.book.giftcoupon.dto.GiftReceiveDTO;
import com.pcloud.book.giftcoupon.dto.MyGiftPackageDTO;
import com.pcloud.book.giftcoupon.entity.GiftCouponPackage;
import com.pcloud.book.giftcoupon.entity.GiftReceive;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.NumberUtil;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie;
......@@ -42,8 +28,6 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
import javax.ws.rs.POST;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
......
package com.pcloud.book.mq.delay;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.pcloud.book.cultivate.biz.CultivateBiz;
import com.pcloud.book.cultivate.constant.CultivateConstant;
import com.pcloud.book.cultivate.biz.CultivateRaysBiz;
import com.pcloud.book.cultivate.constant.CultivateRaysConstants;
import com.pcloud.book.personalstage.biz.PersonalStageBiz;
import com.pcloud.book.personalstage.biz.PersonalStageJumpBiz;
import com.pcloud.book.personalstage.constant.PersonalStageConstant;
......@@ -31,8 +29,10 @@ public class DelayReceiver {
private PersonalStageBiz personalStageBiz;
@Autowired
private PersonalStageJumpBiz personalStageJumpBiz;
// @Autowired
// private CultivateBiz cultivateBiz;
@Autowired
private CultivateBiz cultivateBiz;
private CultivateRaysBiz cultivateRaysBiz;
@RabbitHandler
public void onMessage(DelayQueueDTO dto) {
......@@ -52,10 +52,12 @@ public class DelayReceiver {
personalStageJumpBiz.delayProgress(dto);
} else if (PersonalStageConstant.PERSONALSTAGE_DELAY_PAPER.equalsIgnoreCase(dto.getType())) {
personalStageJumpBiz.delayPaper(dto);
} else if (CultivateConstant.ENERGY_CONSUMPTION_DELAY.equals(dto.getType())) {
cultivateBiz.dealDelayEnergyConsumption(dto);
// } else if (CultivateConstant.ENERGY_CONSUMPTION_DELAY.equals(dto.getType())) {
// cultivateBiz.dealDelayEnergyConsumption(dto);
} else if (PersonalStageConstant.PERSONALSTAGE_DELAY_TIME_JUMP.equals(dto.getType())){
personalStageJumpBiz.dealDelayTimeJump(dto);
} else if (CultivateRaysConstants.HOURS_CONSUMPTION_DELAY.equals(dto.getType())) {
cultivateRaysBiz.dealHoursConsumption(dto);
}
}
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.cultivate.dao.impl.CultivateBookUserDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.cultivate.entity.CultivateBookUser" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="wechat_user_id" property="wechatUserId" jdbcType="BIGINT" />
<result column="book_name" property="bookName" jdbcType="VARCHAR" />
<result column="read_type" property="readType" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, wechat_user_id, book_name, read_type, create_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.cultivate.entity.CultivateBookUser" useGeneratedKeys="true" keyProperty="id">
insert into cultivate_book_user
(
wechat_user_id,
book_name,
read_type,
create_time
)
values (
#{wechatUserId},
#{bookName},
#{readType},
NOW()
)
</insert>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from
cultivate_book_user
where id=#{id}
</select>
<select id="getLastCultivateBookUser" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from
cultivate_book_user
where wechat_user_id=#{wechatUserId}
order by create_time desc limit 1
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.cultivate.dao.impl.CultivateHoldSeatDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.cultivate.entity.CultivateHoldSeat" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="cultivate_id" property="cultivateId" jdbcType="BIGINT" />
<result column="friend_cultivate_id" property="friendCultivateId" jdbcType="BIGINT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, cultivate_id, friend_cultivate_id, create_time,update_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.cultivate.entity.CultivateHoldSeat" useGeneratedKeys="true" keyProperty="id">
insert into cultivate_hold_seat
(
cultivate_id,
friend_cultivate_id,
create_time,
update_time
)
values (
#{cultivateId},
#{friendCultivateId},
NOW(),
NOW()
)
</insert>
<select id="deleteById" parameterType="map">
DELETE from cultivate_hold_seat
WHERE cultivate_id=#{cultivateId}
and friend_cultivate_id=#{friendCultivateId}
</select>
<select id="getCultivateIdByFriendId" parameterType="map" resultType="long">
SELECT DISTINCT cultivate_id
FROM cultivate_hold_seat
where friend_cultivate_id=#{friendCultivateId}
</select>
<select id="getFriendCultivateIdById" parameterType="map" resultType="long">
select friend_cultivate_id from cultivate_hold_seat
where cultivate_id=#{cultivateId}
limit 1
</select>
<select id="getById" parameterType="map" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from cultivate_hold_seat
where cultivate_id=#{cultivateId}
and friend_cultivate_id=#{friendCultivateId}
limit 1
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pcloud.book.cultivate.dao.impl.CultivateRaysDaoImpl">
<resultMap type="com.pcloud.book.cultivate.entity.CultivateRays" id="CultivateRaysMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="wechatUserId" column="wechat_user_id" jdbcType="INTEGER"/>
<result property="officialAccountsId" column="official_accounts_id" jdbcType="INTEGER"/>
<result property="gains1" column="gains1" jdbcType="INTEGER"/>
<result property="gains2" column="gains2" jdbcType="INTEGER"/>
<result property="gains3" column="gains3" jdbcType="INTEGER"/>
<result property="state" column="state" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="endTime" column="end_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List" >
id, wechat_user_id, official_accounts_id, gains1, gains2, gains3, state, end_time
</sql>
<!--查询单个-->
<select id="getById" resultMap="CultivateRaysMap">
select
<include refid="Base_Column_List"/>
from book.cultivate_rays
where id = #{id}
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into book.cultivate_rays(wechat_user_id, official_accounts_id, gains1, gains2, gains3, state, create_time, update_time, end_time)
values (#{wechatUserId}, #{officialAccountsId}, 0, 0, 0, #{state}, now(), now(), now())
</insert>
<!--通过主键修改数据-->
<update id="update">
update book.cultivate_rays
<set>
<if test="gains1 != null">
gains1 = #{gains1},
</if>
<if test="gains2 != null">
gains2 = #{gains2},
</if>
<if test="gains3 != null">
gains3 = #{gains3},
</if>
<if test="state != null">
state = #{state},
</if>
<if test="endTime != null">
end_time = #{endTime},
</if>
update_time = now(),
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from book.cultivate_rays where id = #{id}
</delete>
<select id="getByWechatUserId" resultMap="CultivateRaysMap" parameterType="long">
select
<include refid="Base_Column_List"/>
from book.cultivate_rays
where wechat_user_id = #{wechatUserId}
limit 1
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pcloud.book.cultivate.dao.impl.CultivateRaysRecordDaoImpl">
<resultMap type="com.pcloud.book.cultivate.entity.CultivateRaysRecord" id="CultivateRaysRecordMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="cultivateId" column="cultivate_id" jdbcType="INTEGER"/>
<result property="changeType" column="change_type" jdbcType="INTEGER"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
<result property="gainsType" column="gains_type" jdbcType="INTEGER"/>
<result property="hours" column="hours" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List" >
id, cultivate_id, change_type, remark, gains_type, create_time, hours
</sql>
<!--查询单个-->
<select id="getById" resultMap="CultivateRaysRecordMap">
select
<include refid="Base_Column_List"/>
from book.cultivate_rays_record
where id = #{id}
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into book.cultivate_rays_record(cultivate_id, change_type, remark, gains_type, create_time, hours)
values (#{cultivateId}, #{changeType}, #{remark}, #{gainsType}, now(), #{hours})
</insert>
<!--通过主键修改数据-->
<update id="update">
update book.cultivate_rays_record
<set>
<if test="cultivateId != null">
cultivate_id = #{cultivateId},
</if>
<if test="changeType != null">
change_type = #{changeType},
</if>
<if test="remark != null and remark != ''">
remark = #{remark},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from book.cultivate_rays_record where id = #{id}
</delete>
<select id="getLastRecord" parameterType="map" resultMap="CultivateRaysRecordMap">
SELECT
<include refid="Base_Column_List"/>
FROM
cultivate_rays_record
WHERE
cultivate_id = #{cultivateId}
AND change_type = #{changeType}
ORDER BY
create_time DESC
LIMIT 1
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.cultivate.dao.impl.CultivateRobotClassifyDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.cultivate.entity.CultivateRobotClassify" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="wechat_user_id" property="wechatUserId" jdbcType="BIGINT" />
<result column="cultivate_id" property="cultivateId" jdbcType="BIGINT" />
<result column="robot_classify_id" property="robotClassifyId" jdbcType="BIGINT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, wechat_user_id, cultivate_id, robot_classify_id, create_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.cultivate.entity.CultivateRobotClassify" useGeneratedKeys="true" keyProperty="id">
insert into cultivate_robot_classify
(
wechat_user_id,
cultivate_id,
robot_classify_id,
create_time
)
values (
#{wechatUserId},
#{cultivateId},
#{robotClassifyId},
NOW()
)
</insert>
<select id="getByCondition" parameterType="map" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from cultivate_robot_classify
where 1=1
<if test="wechatUserId!=null">
and wechat_user_id=#{wechatUserId}
</if>
<if test="cultivateId!=null">
and cultivate_id=#{cultivateId}
</if>
<if test="robotClassifyId!=null">
and robot_classify_id=#{robotClassifyId}
</if>
</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