Commit 2903d895 by 田超

feat:[none]优化接口getBookBase4Applet

parent b8ad72f2
......@@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
import javax.validation.constraints.NotNull;
import jdk.nashorn.internal.objects.annotations.Property;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
......
......@@ -5646,20 +5646,26 @@ public class BookGroupBizImpl implements BookGroupBiz {
if (CollUtil.toList(RightsSettingConstant.K12_TEMPLET_ID_NEW).contains(adviserDto.getTempletId())) {
map.put("isK12", Boolean.TRUE);
}
map.put("templetId", adviserDto.getTempletId());
AssistTempletDTO templetDTO = assistTempletConsr.getTempletById(adviserDto.getTempletId());
if (Objects.nonNull(templetDTO)) map.put("templateName", templetDTO.getTempletName());
if (Objects.nonNull(adviserDto.getSecondTempletId())) {
List<Long>idList = new ArrayList<>();
idList.add(adviserDto.getTempletId());
idList.add(adviserDto.getSecondTempletId());
idList.add(adviserDto.getThirdTempletId());
Map<Long, AssistTempletDTO> longAssistTempletDTOMap = assistTempletConsr.mapByIds(idList);
AssistTempletDTO first = longAssistTempletDTOMap.get(adviserDto.getTempletId());
AssistTempletDTO second = longAssistTempletDTOMap.get(adviserDto.getSecondTempletId());
AssistTempletDTO third = longAssistTempletDTOMap.get(adviserDto.getThirdTempletId());
if(first!=null && first.getTempletName()!=null){
map.put("templetId", adviserDto.getTempletId());
map.put("templateName", first.getTempletName());
}
if(second!=null && second.getTempletName()!=null){
map.put("secondTempletId", adviserDto.getSecondTempletId());
AssistTempletDTO secondTempletDTO = assistTempletConsr.getTempletById(adviserDto.getSecondTempletId());
if (Objects.nonNull(secondTempletDTO)) map.put("secondTempletName", secondTempletDTO.getTempletName());
map.put("secondTempletName", second.getTempletName());
}
if (Objects.nonNull(adviserDto.getThirdTempletId())) {
if(third!=null && third.getTempletName()!=null){
map.put("thirdTempletId", adviserDto.getThirdTempletId());
AssistTempletDTO thirdTempletDTO = assistTempletConsr.getTempletById(adviserDto.getThirdTempletId());
if (Objects.nonNull(thirdTempletDTO)) map.put("thirdTempletName", thirdTempletDTO.getTempletName());
map.put("thirdTempletName", third.getTempletName());
}
}
Long raysClassifyId = bookRaysClassifyDao.getClassifyIdByBookTemplateId(adviserDto.getTempletId());
......@@ -6190,7 +6196,14 @@ public class BookGroupBizImpl implements BookGroupBiz {
adviserId = bookGroupDTO.getCreateUser();
}
} else {
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId);
String qrcodeKey = "qrcodeSceneConsr.getById:"+sceneId;
QrcodeSceneDto qrcodeSceneDto = JedisClusterUtils.getJson(qrcodeKey, QrcodeSceneDto.class);
if(qrcodeSceneDto==null) {
qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId);
if(qrcodeSceneDto!=null){
JedisClusterUtils.setJson(qrcodeKey,qrcodeSceneDto,3600*2);
}
}
if (null != qrcodeSceneDto) {
bookId = qrcodeSceneDto.getAdviserBookId();
channelId = qrcodeSceneDto.getChannelPartyId();
......@@ -6198,16 +6211,27 @@ public class BookGroupBizImpl implements BookGroupBiz {
}
}
Map<String, Object> map = this.getBookBaseInfo4Applet(adviserId, channelId, bookId);
String agentNameKey="adviserConsr.getAdviserId2AdviserInfoDtoMap"+adviserId;
String agentName = JedisClusterUtils.getJson(agentNameKey, String.class);
if(agentName==null) {
Map<Long, AdviserBaseInfoDto> adviserInfoDtoMap = adviserConsr.getAdviserId2AdviserInfoDtoMap(Lists.newArrayList(adviserId));
if (MapUtils.isNotEmpty(adviserInfoDtoMap) && null != adviserInfoDtoMap.get(adviserId)) {
map.put("agentName", adviserInfoDtoMap.get(adviserId).getAgentName());
JedisClusterUtils.setJson(agentNameKey,adviserInfoDtoMap.get(adviserId).getAgentName(),3600*2);
}
}else{
map.put("agentName", agentName);
}
map.put("bookId", bookId);
map.put("adviserId", adviserId);
map.put("channelId", channelId);
return map;
}
@Override
public BookGroupSceneDTO getSceneQrcodeByBookGroupId(Long bookGroupId) {
BookGroupSceneDTO bookGroupSceneDTO = new BookGroupSceneDTO();
......
......@@ -73,7 +73,7 @@ public interface BookGroupDao extends BaseDao<BookGroup> {
* @param adviserId 编辑ID
* @return
*/
long deleteByBookId(Long bookId, Long channelId, Long adviserId);
void deleteByBookId(Long bookId, Long channelId, Long adviserId);
/**
* 根据书刊ID恢复
......@@ -82,7 +82,7 @@ public interface BookGroupDao extends BaseDao<BookGroup> {
* @param adviserId 编辑ID
* @return
*/
long recoverByBookId(Long bookId, Long channelId, Long adviserId);
void recoverByBookId(Long bookId, Long channelId, Long adviserId);
/**
* 关联社群码和社群书
......
......@@ -18,6 +18,7 @@ import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import com.pcloud.common.utils.ListForInSQL;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
......@@ -32,12 +33,62 @@ import java.util.Map;
@Repository("bookGroupDao")
public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGroupDao {
private BookGroupDTO getById4Redis(Long bookGroupId){
if(bookGroupId!=null && bookGroupId>0){
String key = "bookGroupDao:getById4Redis"+bookGroupId;
return JedisClusterUtils.getJson(key, BookGroupDTO.class);
}
return null;
}
private void setById4Redis(Long bookGroupId,BookGroupDTO bookGroupDTO){
if(bookGroupId!=null && bookGroupId>0 && bookGroupDTO!=null) {
String key = "bookGroupDao:getById4Redis" + bookGroupId;
JedisClusterUtils.setJson(key, bookGroupDTO,3600*2);
String bookKey = "bookGroupDao:books"+bookGroupDTO.getBookId();
List<String> keyList = JedisClusterUtils.getJsonList(bookKey, String.class);
if(keyList==null){
keyList = new ArrayList<>();
}
keyList.add(key);
JedisClusterUtils.setJsonList(bookKey,keyList,3600*3);
}
}
private void clearById4Redis(Long bookGroupId){
if(bookGroupId!=null && bookGroupId>0 ) {
String key = "bookGroupDao:getById4Redis" + bookGroupId;
JedisClusterUtils.del(key);
}
}
private void clearByBookId(Long bookId){
String bookKey = "bookGroupDao:books"+bookId;
List<String> keyList = JedisClusterUtils.getJsonList(bookKey, String.class);
if(keyList!=null){
for (String s : keyList) {
JedisClusterUtils.del(s);
}
}
JedisClusterUtils.del(bookKey);
}
/**
* 获取DTO信息
*/
@Override
public BookGroupDTO getDTOById(Long bookGroupId) {
return super.getSqlSession().selectOne(getStatement("getDTOById"), bookGroupId);
BookGroupDTO bookGroupDTO = getById4Redis(bookGroupId);
if(bookGroupDTO==null) {
bookGroupDTO = super.getSqlSession().selectOne(getStatement("getDTOById"), bookGroupId);
if(bookGroupDTO!=null) {
setById4Redis(bookGroupId, bookGroupDTO);
}
}
return bookGroupDTO;
}
/**
......@@ -104,24 +155,26 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
* 根据书刊ID删除
*/
@Override
public long deleteByBookId(Long bookId, Long channelId, Long adviserId) {
public void deleteByBookId(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
return super.getSqlSession().update(getStatement("deleteByBookId"), paramMap);
super.getSqlSession().update(getStatement("deleteByBookId"), paramMap);
clearByBookId(bookId);
}
/**
* 根据书刊ID恢复
*/
@Override
public long recoverByBookId(Long bookId, Long channelId, Long adviserId) {
public void recoverByBookId(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
return super.getSqlSession().update(getStatement("recoverByBookId"), paramMap);
super.getSqlSession().update(getStatement("recoverByBookId"), paramMap);
clearByBookId(bookId);
}
/**
......@@ -129,6 +182,9 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
*/
@Override
public long linkBookGroup(BookGroup bookGroup) {
if(bookGroup!=null && bookGroup.getId()!=0) {
clearById4Redis(bookGroup.getId());
}
return super.getSqlSession().update(getStatement("linkBookGroup"), bookGroup);
}
......@@ -156,6 +212,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
paramMap.put("bookGroupId", bookGroupId);
paramMap.put("rankType", rankType);
super.getSqlSession().update(getStatement("updateRankType"), paramMap);
clearById4Redis(bookGroupId);
}
@Override
......@@ -180,11 +237,22 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
@Override
public void updatePersonQrcode(PersonalQrcodeDTO personalQrcodeDTO) {
Map<String,Object> map = new HashMap<>();
map.put("newQrcodeUrl",personalQrcodeDTO.getNewQrcodeUrl());
map.put("oldQrcodeUrl",personalQrcodeDTO.getOldQrcodeUrl());
List<Long> idByPersonQrcode = getIdByPersonQrcode(personalQrcodeDTO.getOldQrcodeUrl());
if(idByPersonQrcode!=null && idByPersonQrcode.size()>0) {
for (Long id : idByPersonQrcode) {
clearById4Redis(id);
}
Map<String, Object> map = new HashMap<>();
map.put("newQrcodeUrl", personalQrcodeDTO.getNewQrcodeUrl());
map.put("oldQrcodeUrl", personalQrcodeDTO.getOldQrcodeUrl());
this.getSqlSession().update(this.getStatement("updatePersonQrcode"), map);
}
}
public List<Long> getIdByPersonQrcode(String qrcodeUrl){
return this.getSqlSession().selectList(this.getStatement("getIdByPersonQrcode"), qrcodeUrl);
}
@Override
public List<BookGroupDTO> getBookInfoByIdsWithBookClockInfoId(Map<String,Object> paramMap) {
......@@ -209,6 +277,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookGroupId", bookGroupId);
super.getSqlSession().update(getStatement("deleteByBookGroupId"), paramMap);
clearById4Redis(bookGroupId);
}
@Override
......@@ -242,6 +311,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
paramMap.put("id", id);
paramMap.put("bookGroupCipher", bookGroupCipher);
super.getSqlSession().update(getStatement("updateCipher"), paramMap);
clearById4Redis(id);
}
@Override
......@@ -250,6 +320,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
paramMap.put("id", id);
paramMap.put("joinGroupType", joinGroupType);
super.getSqlSession().update(getStatement("updateJoinGroupType"), paramMap);
clearById4Redis(id);
}
@Override
......@@ -263,6 +334,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
paramMap.put("id", id);
paramMap.put("isInviteGroup", isInviteGroup);
super.getSqlSession().update(getStatement("updateIsInviteGroup"), paramMap);
clearById4Redis(id);
}
@Override
......@@ -271,6 +343,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
paramMap.put("id", id);
paramMap.put("isSomeUpdate", isSomeUpdate);
super.getSqlSession().update(getStatement("updateIsSomeUpdate"), paramMap);
clearById4Redis(id);
}
@Override
......@@ -278,6 +351,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookGroupId", bookGroupId);
super.getSqlSession().update(getStatement("updateLastPushUpdateTime"), paramMap);
clearById4Redis(bookGroupId);
}
@Override
......@@ -360,6 +434,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
paramMap.put("id", id);
paramMap.put("belongSpecialAgent", belongSpecialAgent);
getSessionTemplate().update(getStatement("updateSpecialState"), paramMap);
clearById4Redis(id);
}
@Override
......@@ -430,6 +505,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
map.put("id", bookGroupId);
map.put("openWeapp", openWeapp);
getSessionTemplate().update(getStatement("updateBookGroupOpenWeapp"), map);
clearById4Redis(bookGroupId);
}
@Override
......@@ -438,6 +514,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
map.put("relatedBookGroupId", relatedBookGroupId);
map.put("id", bookGroupId);
getSessionTemplate().update(getStatement("updateRelatedBookGroup"),map);
clearById4Redis(bookGroupId);
}
@Override
......@@ -566,6 +643,7 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
paramMap.put("id", bookGroupId);
paramMap.put("seq", seq);
getSessionTemplate().update(getStatement("updateBookGroupSeq"), paramMap);
clearById4Redis(bookGroupId);
}
@Override
......@@ -595,5 +673,6 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
paramMap.put("bookId", bookId);
paramMap.put("id", bookGroupId);
getSessionTemplate().update(getStatement("updateBookIdById"), paramMap);
clearById4Redis(bookGroupId);
}
}
##Test Environment
eureka:
client:
register-with-eureka: false
......@@ -505,6 +505,10 @@
update book_group set personal_qrcode_url = #{newQrcodeUrl}, update_time = NOW() where personal_qrcode_url = #{oldQrcodeUrl}
</update>
<select id="getIdByPersonQrcode" resultType="long">
select id from book_group where personal_qrcode_url = #{getIdByPersonQrcode}
</select>
<!--获取社群码基本信息(包括书籍信息,及BookClockInfoId)-->
<select id="getBookInfoByIdsWithBookClockInfoId" parameterType="map" resultMap="BookGroupDTO">
SELECT
......
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