Commit 557f4d40 by 郑江涛

feat: [1004094] 丢失页面购书申请指引用户路径优化

parent 38490458
package com.pcloud.book.applet.biz; package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.BuyBookRequestDTO;
import com.pcloud.book.applet.dto.BuyBookRequetUserDTO; import com.pcloud.book.applet.dto.BuyBookRequetUserDTO;
import com.pcloud.book.applet.entity.BuyBookRequest; import com.pcloud.book.applet.entity.BuyBookRequest;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import java.util.List;
/** /**
* (BuyBookRequest)表服务接口 * (BuyBookRequest)表服务接口
* *
...@@ -18,7 +21,7 @@ public interface BuyBookRequestBiz { ...@@ -18,7 +21,7 @@ public interface BuyBookRequestBiz {
* @param id 主键 * @param id 主键
* @return 实例对象 * @return 实例对象
*/ */
BuyBookRequest getById(Long id); BuyBookRequestDTO getById(Long id);
/** /**
* 分页查询 * 分页查询
...@@ -31,7 +34,7 @@ public interface BuyBookRequestBiz { ...@@ -31,7 +34,7 @@ public interface BuyBookRequestBiz {
* @param buyBookRequest 实例对象 * @param buyBookRequest 实例对象
* @return 主键 * @return 主键
*/ */
Long insert(BuyBookRequest buyBookRequest); Long insert(BuyBookRequest buyBookRequest,Long officialAccountId);
/** /**
* 修改数据 * 修改数据
...@@ -63,4 +66,37 @@ public interface BuyBookRequestBiz { ...@@ -63,4 +66,37 @@ public interface BuyBookRequestBiz {
* @param partyId * @param partyId
*/ */
void exportRequestList(Long agentId, Integer currentPage, Integer numPerPage, Long partyId); void exportRequestList(Long agentId, Integer currentPage, Integer numPerPage, Long partyId);
/**
* 查询用户不同状态记录
* @param wechatUserId
* @param state
* @return
*/
PageBeanNew getByState(Integer currentPage,Integer numPerPage,Long wechatUserId,Integer state,Integer requestEvn);
/**
* 假删除数据
* @param requestId
*/
void fakeDelete(Long requestId);
/**
* 根据微信UserId获取记录id列表
* @param wechatUserId
* @return
*/
List<Long> listIdsByWeChatUserId(Long wechatUserId);
/**
* 获取所有的用户wechatId
* @return
*/
List<Long> listAllWeChatUserId();
/**
* 处理数据:根据wechatId填充mini_wechat_user_id,wechat_nick_name,mini_open_id
* reply_state,is_delete
*/
void processingData(Integer open);
} }
\ No newline at end of file
package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.BuyBookRequestReplyDTO;
import com.pcloud.book.applet.entity.BuyBookRequestReply;
import com.pcloud.common.exceptions.BizException;
import java.util.List;
/**
* (BuyBookRequest)表服务接口
*
* @author Dominic_Z
* @since 2020年12月25日 16:02:04
*/
public interface BuyBookRequestReplyBiz {
/**
* 新增回复记录
*
* @param buyBookRequestReply
* @return
*/
Long insert(BuyBookRequestReply buyBookRequestReply);
List<BuyBookRequestReplyDTO> getByRequestId(Long requestId);
void deleteById(Long id);
List<BuyBookRequestReplyDTO> getListByIds(List<Long> requestIds) throws BizException;
}
package com.pcloud.book.applet.biz.impl; package com.pcloud.book.applet.biz.impl;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.pcloud.book.applet.biz.BuyBookRequestBiz; import com.pcloud.book.applet.biz.BuyBookRequestBiz;
import com.pcloud.book.applet.dao.BuyBookRequestDao; import com.pcloud.book.applet.dao.BuyBookRequestDao;
import com.pcloud.book.applet.dao.BuyBookRequestReplyDao;
import com.pcloud.book.applet.dto.BuyBookRequestDTO; import com.pcloud.book.applet.dto.BuyBookRequestDTO;
import com.pcloud.book.applet.dto.BuyBookRequestReplyDTO;
import com.pcloud.book.applet.dto.BuyBookRequetUserDTO; import com.pcloud.book.applet.dto.BuyBookRequetUserDTO;
import com.pcloud.book.applet.entity.BuyBookRequest; import com.pcloud.book.applet.entity.BuyBookRequest;
import com.pcloud.book.book.biz.BookBiz; import com.pcloud.book.book.biz.BookBiz;
...@@ -14,15 +22,18 @@ import com.pcloud.book.consumer.reader.ReaderConsr; ...@@ -14,15 +22,18 @@ import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.consumer.user.AdviserConsr; import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.user.AgentConsr; import com.pcloud.book.consumer.user.AgentConsr;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.book.util.common.YesOrNoEnums;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.SystemCode; import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.BeanUtils;
import com.pcloud.common.utils.DateUtils; import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.NumberUtil; import com.pcloud.common.utils.NumberUtil;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.readercenter.wechat.dto.BuyBookProcessingDataDTO;
import com.pcloud.readercenter.wechat.entity.WechatUser; import com.pcloud.readercenter.wechat.entity.WechatUser;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -31,11 +42,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -31,11 +42,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -49,6 +56,8 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -49,6 +56,8 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
private static final Logger LOGGER = LoggerFactory.getLogger(BuyBookRequestBizImpl.class); private static final Logger LOGGER = LoggerFactory.getLogger(BuyBookRequestBizImpl.class);
private static final String GetReaderCenterDataUrl = "https://adviser.raysgo.com/readercenter/v1.0/wechatUser/getBuyBookProcessingData";
@Autowired @Autowired
private BuyBookRequestDao buyBookRequestDao; private BuyBookRequestDao buyBookRequestDao;
@Autowired @Autowired
...@@ -63,11 +72,19 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -63,11 +72,19 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
private ExportConsr exportConsr; private ExportConsr exportConsr;
@Autowired @Autowired
private MessageConsr messageConsr; private MessageConsr messageConsr;
@Autowired
private BuyBookRequestReplyDao buyBookRequestReplyDao;
@Override @Override
@ParamLog("通过ID查询单条数据") @ParamLog("通过ID查询单条数据")
public BuyBookRequest getById(Long id) { public BuyBookRequestDTO getById(Long id) {
return buyBookRequestDao.getById(id); List<BuyBookRequestDTO> recordList = new ArrayList<>();
BuyBookRequest byId = buyBookRequestDao.getById(id);
BuyBookRequestDTO buyBookRequestDTO = new BuyBookRequestDTO();
BeanUtils.copyProperties(byId,buyBookRequestDTO);
recordList.add(buyBookRequestDTO);
fillAgentInfo(recordList);
return buyBookRequestDTO;
} }
@Override @Override
...@@ -75,6 +92,7 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -75,6 +92,7 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
public PageBeanNew getList(Integer currentPage, Integer numPerPage, Long agentId) { public PageBeanNew getList(Integer currentPage, Integer numPerPage, Long agentId) {
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("agentId" , agentId); paramMap.put("agentId" , agentId);
paramMap.put("isDelete", 0);
PageBeanNew pageBeanNew = buyBookRequestDao.listPageNew(new PageParam(currentPage, numPerPage), paramMap, "getList"); PageBeanNew pageBeanNew = buyBookRequestDao.listPageNew(new PageParam(currentPage, numPerPage), paramMap, "getList");
List<BuyBookRequestDTO> recordList = pageBeanNew.getRecordList(); List<BuyBookRequestDTO> recordList = pageBeanNew.getRecordList();
if (ListUtils.isEmpty(recordList)) { if (ListUtils.isEmpty(recordList)) {
...@@ -89,9 +107,11 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -89,9 +107,11 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
List<Long> bookIds = recordList.stream().map(e -> e.getBookId()).collect(Collectors.toList()); List<Long> bookIds = recordList.stream().map(e -> e.getBookId()).collect(Collectors.toList());
List<Long> agentIds = recordList.stream().map(e -> e.getAgentId()).collect(Collectors.toList()); List<Long> agentIds = recordList.stream().map(e -> e.getAgentId()).collect(Collectors.toList());
List<Long> adviserIds = recordList.stream().map(e -> e.getAdviserId()).collect(Collectors.toList()); List<Long> adviserIds = recordList.stream().map(e -> e.getAdviserId()).collect(Collectors.toList());
List<Long> requestIds = recordList.stream().map(e -> e.getId()).collect(Collectors.toList());
Map<Long, BookDto> bookDtoMap = new HashMap<>(); Map<Long, BookDto> bookDtoMap = new HashMap<>();
Map<Long, String> agentNameMap = new HashMap<>(); Map<Long, String> agentNameMap = new HashMap<>();
Map<Long, String> adviserNameMap = new HashMap<>(); Map<Long, String> adviserNameMap = new HashMap<>();
List<BuyBookRequestReplyDTO> requestReplyDTOS = new ArrayList<>();
if (!ListUtils.isEmpty(bookIds)) { if (!ListUtils.isEmpty(bookIds)) {
bookDtoMap = bookBiz.getListByIds(bookIds); bookDtoMap = bookBiz.getListByIds(bookIds);
} }
...@@ -101,6 +121,9 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -101,6 +121,9 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
if (!ListUtils.isEmpty(agentIds)) { if (!ListUtils.isEmpty(agentIds)) {
adviserNameMap = adviserConsr.getNames(adviserIds); adviserNameMap = adviserConsr.getNames(adviserIds);
} }
if (!ListUtils.isEmpty(requestIds)){
requestReplyDTOS = buyBookRequestReplyDao.getListByIds(requestIds);
}
for (BuyBookRequestDTO buyBookRequestDTO : recordList) { for (BuyBookRequestDTO buyBookRequestDTO : recordList) {
if (null == buyBookRequestDTO) { if (null == buyBookRequestDTO) {
continue; continue;
...@@ -108,6 +131,7 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -108,6 +131,7 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
if (MapUtils.isNotEmpty(bookDtoMap) && null != bookDtoMap.get(buyBookRequestDTO.getBookId())) { if (MapUtils.isNotEmpty(bookDtoMap) && null != bookDtoMap.get(buyBookRequestDTO.getBookId())) {
buyBookRequestDTO.setBookName(bookDtoMap.get(buyBookRequestDTO.getBookId()).getBookName()); buyBookRequestDTO.setBookName(bookDtoMap.get(buyBookRequestDTO.getBookId()).getBookName());
buyBookRequestDTO.setCoverImg(bookDtoMap.get(buyBookRequestDTO.getBookId()).getCoverImg()); buyBookRequestDTO.setCoverImg(bookDtoMap.get(buyBookRequestDTO.getBookId()).getCoverImg());
buyBookRequestDTO.setIsbn(bookDtoMap.get(buyBookRequestDTO.getBookId()).getIsbn());
} }
if (MapUtils.isNotEmpty(agentNameMap) && null != agentNameMap.get(buyBookRequestDTO.getAgentId())) { if (MapUtils.isNotEmpty(agentNameMap) && null != agentNameMap.get(buyBookRequestDTO.getAgentId())) {
buyBookRequestDTO.setAgentName(agentNameMap.get(buyBookRequestDTO.getAgentId())); buyBookRequestDTO.setAgentName(agentNameMap.get(buyBookRequestDTO.getAgentId()));
...@@ -115,6 +139,17 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -115,6 +139,17 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
if (MapUtils.isNotEmpty(adviserNameMap) && null != adviserNameMap.get(buyBookRequestDTO.getAdviserId())) { if (MapUtils.isNotEmpty(adviserNameMap) && null != adviserNameMap.get(buyBookRequestDTO.getAdviserId())) {
buyBookRequestDTO.setAdviserName(adviserNameMap.get(buyBookRequestDTO.getAdviserId())); buyBookRequestDTO.setAdviserName(adviserNameMap.get(buyBookRequestDTO.getAdviserId()));
} }
//填充回复
if ( !ListUtils.isEmpty(requestReplyDTOS) ){
Long requestId = buyBookRequestDTO.getId();
List<BuyBookRequestReplyDTO> replyList = new ArrayList<>();
for (BuyBookRequestReplyDTO requestReplyDTO : requestReplyDTOS) {
if (requestReplyDTO.getRequestId() == requestId){
replyList.add(requestReplyDTO);
}
}
buyBookRequestDTO.setReplyList(replyList == null? new ArrayList<>() : replyList);
}
} }
...@@ -122,7 +157,23 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -122,7 +157,23 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
@Override @Override
@ParamLog("新增") @ParamLog("新增")
public Long insert(BuyBookRequest buyBookRequest) { public Long insert(BuyBookRequest buyBookRequest,Long officialAccountId) {
Long wechatUserId = buyBookRequest.getWechatUserId();
//根据公众号Id与微信Id,获取小程序openId和用户昵称。
List<Long> idList = new ArrayList<>();
idList.add(wechatUserId);
List<BuyBookProcessingDataDTO> processingData = readerConsr.getProcessingData(idList);
if (null == processingData && processingData.size() == 0 ){
LOGGER.error("[BuyBookRequestBizImpl.insert]: 获取openId和用户昵称失败 wechatUserId:{}",wechatUserId);
return null;
}
//只会返回一个,列表中只有一个元素
for (BuyBookProcessingDataDTO processingDatum : processingData) {
buyBookRequest.setMiniOpenId(processingDatum.getMiniOpenId());
buyBookRequest.setNickName(processingDatum.getNickName());
}
buyBookRequest.setReplyState(0);
buyBookRequest.setIsDelete(0);
buyBookRequestDao.insert(buyBookRequest); buyBookRequestDao.insert(buyBookRequest);
return buyBookRequest.getId(); return buyBookRequest.getId();
} }
...@@ -177,7 +228,7 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -177,7 +228,7 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
return ; return ;
} }
// 字段名 // 字段名
String[] rowsName = {"书籍id", "书籍名称", "编辑名称", "出版社名称", "用户姓名", "手机号码", "收货地址", "申请时间"}; String[] rowsName = {"书籍id", "书籍名称", "编辑名称", "出版社名称", "用户姓名", "手机号码", "收货地址", "申请时间", "小程序id", "微信昵称", "小程序openid"};
List<Object[]> dataList = new ArrayList<>(); List<Object[]> dataList = new ArrayList<>();
Object[] objs; Object[] objs;
for (int i = 0; i < recordList.size(); i++) { for (int i = 0; i < recordList.size(); i++) {
...@@ -192,6 +243,9 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -192,6 +243,9 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
objs[6] = buyBookRequestDTO.getAddress(); objs[6] = buyBookRequestDTO.getAddress();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
objs[7] = null == buyBookRequestDTO.getCreateTime() ? "": simpleDateFormat.format(buyBookRequestDTO.getCreateTime()); objs[7] = null == buyBookRequestDTO.getCreateTime() ? "": simpleDateFormat.format(buyBookRequestDTO.getCreateTime());
objs[8] = buyBookRequestDTO.getMiniWechatUserId();
objs[9] = buyBookRequestDTO.getNickName();
objs[10] = buyBookRequestDTO.getMiniOpenId();
dataList.add(objs); dataList.add(objs);
} }
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
...@@ -207,5 +261,79 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz { ...@@ -207,5 +261,79 @@ public class BuyBookRequestBizImpl implements BuyBookRequestBiz {
}); });
} }
@Override
public PageBeanNew getByState(Integer currentPage,Integer numPerPage,Long wechatUserId, Integer state,Integer requestEnv) {
if ( null == wechatUserId ){
LOGGER.warn("[BuyBookRequestBizImpl.getByState] 请求参数为空");
return new PageBeanNew();
}
Map<String,Object> param = new HashMap<>();
param.put("replyState",state);
param.put("isDelete",0);
param.put("requestEvn",requestEnv);
if (YesOrNoEnums.YES.getValue().equals(requestEnv)) {
param.put("wechatUserId",wechatUserId);
} else {
param.put("miniWechatUserId",wechatUserId);
}
PageBeanNew pageBeanNew = buyBookRequestDao.getRequestByWechatUserIdAndState(currentPage, numPerPage, param);
List<BuyBookRequestDTO> recordList = pageBeanNew.getRecordList();
//填充其他消息
fillAgentInfo(recordList);
return pageBeanNew;
}
@Override
public void fakeDelete(Long requestId) {
if (requestId == null) {
LOGGER.warn("[BuyBookRequestBizImpl.fakeDelete]记录假删除失败,记录Id为空");
return;
}
BuyBookRequest buyBookRequest = new BuyBookRequest();
buyBookRequest.setId(requestId);
buyBookRequest.setIsDelete(1);
buyBookRequest.setUpdateTime(new Date());
buyBookRequestDao.update(buyBookRequest);
}
@Override
public List<Long> listIdsByWeChatUserId(Long wechatUserId) {
if (null == wechatUserId){
throw BizException.PARAM_IS_NULL;
}
return buyBookRequestDao.listIdsByWeChatUserId(wechatUserId);
}
@Override
public List<Long> listAllWeChatUserId() {
return buyBookRequestDao.listAllWeChatUserId();
}
@Override
public void processingData(Integer open) {
List<Long> weChatUserIds = listAllWeChatUserId();
if (ListUtils.isEmpty(weChatUserIds)){
LOGGER.error("[BuyBookRequestBiz.processingData] 处理数据失败,获取wechatUserId列表失败");
return;
}
String response = HttpUtil.post(GetReaderCenterDataUrl, JSONObject.toJSONString(weChatUserIds));
LOGGER.info("[BuyBookRequestBizImpl.processingData]请求的填充数据为:{}" ,response);
JSONObject jsonObject = JSONObject.parseObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("data");
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject dataObj = jsonArray.getJSONObject(i);
Map<String, Object> param = new HashMap<>();
param.put("wechatUserId", dataObj.get("wechatUserId"));
param.put("miniWechatUserId", dataObj.get("miniWechatUserId"));
param.put("miniOpenId", dataObj.get("miniOpenId"));
param.put("nickName", dataObj.get("nickName"));
if (open == 1) {
param.put("isDelete", "0");
param.put("replyState", "0");
}
buyBookRequestDao.update2ProcessingData(param);
}
}
} }
\ No newline at end of file
package com.pcloud.book.applet.biz.impl;
import com.pcloud.book.applet.biz.BuyBookRequestReplyBiz;
import com.pcloud.book.applet.dao.BuyBookRequestDao;
import com.pcloud.book.applet.dao.BuyBookRequestReplyDao;
import com.pcloud.book.applet.dto.BuyBookRequestReplyDTO;
import com.pcloud.book.applet.entity.BuyBookRequest;
import com.pcloud.book.applet.entity.BuyBookRequestReply;
import com.pcloud.common.exceptions.BizException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("buyBookRequestReplyBiz")
public class BuyBookRequestReplyBizImpl implements BuyBookRequestReplyBiz {
@Autowired
private BuyBookRequestReplyDao buyBookRequestReplyDao;
@Autowired
private BuyBookRequestDao buyBookRequestDao;
@Override
public Long insert(BuyBookRequestReply buyBookRequestReply) {
//回复消息后,将购书记录更改为已回复状态.
Long requestId = buyBookRequestReply.getRequestId();
BuyBookRequest buyBookRequest = new BuyBookRequest();
buyBookRequest.setId(requestId);
buyBookRequest.setReplyState(1);
buyBookRequestDao.update(buyBookRequest);
return buyBookRequestReplyDao.insert(buyBookRequestReply);
}
@Override
public List<BuyBookRequestReplyDTO> getByRequestId(Long requestId) {
return buyBookRequestReplyDao.getByRequestId(requestId);
}
@Override
public void deleteById(Long id) {
if (null == id ){
throw BizException.PARAM_IS_NULL;
}
buyBookRequestReplyDao.deleteById(id);
}
@Override
public List<BuyBookRequestReplyDTO> getListByIds(List<Long> requestIds) throws BizException {
return buyBookRequestReplyDao.getListByIds(requestIds);
}
}
package com.pcloud.book.applet.dao; package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.dto.BuyBookRequestDTO;
import com.pcloud.book.applet.entity.BuyBookRequest; import com.pcloud.book.applet.entity.BuyBookRequest;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import com.pcloud.common.page.PageBeanNew;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* (BuyBookRequest)表数据库访问层 * (BuyBookRequest)表数据库访问层
...@@ -14,4 +17,12 @@ import java.util.List; ...@@ -14,4 +17,12 @@ import java.util.List;
public interface BuyBookRequestDao extends BaseDao<BuyBookRequest> { public interface BuyBookRequestDao extends BaseDao<BuyBookRequest> {
List<BuyBookRequest> getUserCount(); List<BuyBookRequest> getUserCount();
PageBeanNew getRequestByWechatUserIdAndState(Integer currentPage, Integer numPerPage, Map<String,Object> param);
List<Long> listIdsByWeChatUserId(Long wechatUserId);
List<Long> listAllWeChatUserId();
void update2ProcessingData(Map<String,Object> param);
} }
\ No newline at end of file
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.dto.BuyBookRequestReplyDTO;
import com.pcloud.book.applet.entity.BuyBookRequestReply;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* (BuyBookRequestReply)表数据库访问层
*
* @author dominic_Z
* @since 2020年12月25日 14:43:22
*/
public interface BuyBookRequestReplyDao extends BaseDao<BuyBookRequestReply> {
List<BuyBookRequestReplyDTO> getByRequestId(Long requestId);
List<BuyBookRequestReplyDTO> getListByIds(List<Long> requestIds);
}
package com.pcloud.book.applet.dao.impl; package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.BuyBookRequestDao; import com.pcloud.book.applet.dao.BuyBookRequestDao;
import com.pcloud.book.applet.dto.BuyBookRequestDTO;
import com.pcloud.book.applet.entity.BuyBookRequest; import com.pcloud.book.applet.entity.BuyBookRequest;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* (BuyBookRequest)表数据库访问层 * (BuyBookRequest)表数据库访问层
...@@ -20,4 +25,24 @@ public class BuyBookRequestDaoImpl extends BaseDaoImpl<BuyBookRequest> implement ...@@ -20,4 +25,24 @@ public class BuyBookRequestDaoImpl extends BaseDaoImpl<BuyBookRequest> implement
public List<BuyBookRequest> getUserCount() { public List<BuyBookRequest> getUserCount() {
return getSessionTemplate().selectList(getStatement("getUserCount")); return getSessionTemplate().selectList(getStatement("getUserCount"));
} }
@Override
public PageBeanNew getRequestByWechatUserIdAndState(Integer currentPage, Integer numPerPage, Map<String,Object> param) {
return this.listPageNew(new PageParam(currentPage, numPerPage), param, "getRequestByWechatUserIdAndState");
}
@Override
public List<Long> listIdsByWeChatUserId(Long wechatUserId) {
return getSessionTemplate().selectList(getStatement("listIdsByWeChatUserId"));
}
@Override
public List<Long> listAllWeChatUserId() {
return getSessionTemplate().selectList(getStatement("listAllWeChatUserId"));
}
@Override
public void update2ProcessingData(Map<String, Object> param) {
this.getSessionTemplate().update(getStatement("update2ProcessingData"),param);
}
} }
\ No newline at end of file
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.BuyBookRequestReplyDao;
import com.pcloud.book.applet.dto.BuyBookRequestReplyDTO;
import com.pcloud.book.applet.entity.BuyBookRequestReply;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* (BuyBookRequestReply)表数据库访问层
*
* @author dominic_Z
* @since 2020年12月25日 14:51:00
*/
@Repository("buyBookRequestReplyDaoImpl")
public class BuyBookRequestReplyDaoImpl extends BaseDaoImpl<BuyBookRequestReply> implements BuyBookRequestReplyDao {
@Override
public List<BuyBookRequestReplyDTO> getByRequestId(Long requestId) {
return getSessionTemplate().selectList("getByRequestId", requestId);
}
@Override
public List<BuyBookRequestReplyDTO> getListByIds(List<Long> requestIds) {
return getSessionTemplate().selectList(getStatement("listBaseMapByIds"),requestIds);
}
}
package com.pcloud.book.applet.dto; package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
@Data @Data
public class BuyBookRequestDTO { public class BuyBookRequestDTO {
...@@ -34,9 +36,28 @@ public class BuyBookRequestDTO { ...@@ -34,9 +36,28 @@ public class BuyBookRequestDTO {
private String address; private String address;
private List<BuyBookRequestReplyDTO> replyList;
@ApiModelProperty("小程序id")
private Long miniWechatUserId;
@ApiModelProperty("小程序openId")
private String miniOpenId;
@ApiModelProperty("微信昵称")
private String nickName;
@ApiModelProperty("是否回复")
private Integer replyState;
@ApiModelProperty("是否删除")
private Integer isDelete;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private Date updateTime;
private String isbn;
} }
package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class BuyBookRequestReplyDTO {
private Long id;
private Long requestId;
private String replyMessage;
private Long channelId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
}
...@@ -2,6 +2,7 @@ package com.pcloud.book.applet.entity; ...@@ -2,6 +2,7 @@ package com.pcloud.book.applet.entity;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity; import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
...@@ -35,6 +36,21 @@ public class BuyBookRequest extends BaseEntity { ...@@ -35,6 +36,21 @@ public class BuyBookRequest extends BaseEntity {
private String address; private String address;
@ApiModelProperty("小程序id")
private Long miniWechatUserId;
@ApiModelProperty("小程序openId")
private String miniOpenId;
@ApiModelProperty("微信昵称")
private String nickName;
@ApiModelProperty("是否回复")
private Integer replyState;
@ApiModelProperty("是否删除")
private Integer isDelete;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private Date createTime;
......
package com.pcloud.book.applet.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import lombok.Data;
import java.util.Date;
@Data
public class BuyBookRequestReply extends BaseEntity {
private static final long serialVersionUID = 3897370077390347467L;
private Long id;
private Long requestId;
private String replyMessage;
private Long channelId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
}
package com.pcloud.book.applet.facade; package com.pcloud.book.applet.facade;
import com.pcloud.book.applet.biz.BuyBookRequestBiz; import com.pcloud.book.applet.biz.BuyBookRequestBiz;
import com.pcloud.book.applet.dto.BuyBookRequestDTO;
import com.pcloud.book.applet.dto.BuyBookRequetUserDTO; import com.pcloud.book.applet.dto.BuyBookRequetUserDTO;
import com.pcloud.book.applet.entity.BuyBookRequest; import com.pcloud.book.applet.entity.BuyBookRequest;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
...@@ -21,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -21,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -39,8 +41,7 @@ public class BuyBookRequestFacade { ...@@ -39,8 +41,7 @@ public class BuyBookRequestFacade {
@ApiOperation("通过主键查询单条数据") @ApiOperation("通过主键查询单条数据")
@GetMapping("getById") @GetMapping("getById")
public ResponseDto<?> getById(@RequestHeader("token") String token, @RequestParam Long id) throws BizException, PermissionException { public ResponseDto<?> getById(@CookieValue("userInfo") String userInfo, @RequestParam Long id) throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(buyBookRequestBiz.getById(id)); return new ResponseDto<>(buyBookRequestBiz.getById(id));
} }
...@@ -59,15 +60,17 @@ public class BuyBookRequestFacade { ...@@ -59,15 +60,17 @@ public class BuyBookRequestFacade {
@PostMapping("insert") @PostMapping("insert")
public ResponseDto<?> insert(@CookieValue("userInfo") String userInfo, @RequestBody BuyBookRequest buyBookRequest) public ResponseDto<?> insert(@CookieValue("userInfo") String userInfo, @RequestBody BuyBookRequest buyBookRequest)
throws BizException, PermissionException { throws BizException, PermissionException {
Long miniWechatUserId = Cookie.getId(userInfo,"miniWechatUserId");
Long officialAccountId = Cookie.getId(userInfo,Cookie._OFFICIAL_ACCOUNTS_ID);
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID); Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
buyBookRequest.setWechatUserId(wechatUserId); buyBookRequest.setWechatUserId(wechatUserId);
return new ResponseDto<>(buyBookRequestBiz.insert(buyBookRequest)); buyBookRequest.setMiniWechatUserId(miniWechatUserId);
return new ResponseDto<>(buyBookRequestBiz.insert(buyBookRequest,officialAccountId));
} }
@ApiOperation("更新") @ApiOperation("更新")
@PostMapping("update") @PostMapping("update")
public ResponseDto<?> update(@RequestHeader("token") String token, @RequestBody BuyBookRequest buyBookRequest) throws BizException, PermissionException { public ResponseDto<?> update(@CookieValue("userInfo") String userInfo, @RequestBody BuyBookRequest buyBookRequest) throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
buyBookRequestBiz.update(buyBookRequest); buyBookRequestBiz.update(buyBookRequest);
return new ResponseDto<>(); return new ResponseDto<>();
} }
...@@ -107,4 +110,42 @@ public class BuyBookRequestFacade { ...@@ -107,4 +110,42 @@ public class BuyBookRequestFacade {
return new ResponseDto<>(); return new ResponseDto<>();
} }
@ApiOperation("获取不同回复状态购书申请记录")
@GetMapping("getByState")
public ResponseDto<?> getByState(@CookieValue("userInfo") String userInfo,
@RequestParam(value = "currentPage", defaultValue = "0") Integer currentPage,
@RequestParam(value = "numPerPage", defaultValue = "10") Integer numPerPage,
@RequestParam(value = "state",required = false) Integer state,
@RequestParam(value = "requestEnv") Integer requestEvn){
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
return new ResponseDto<>(buyBookRequestBiz.getByState(currentPage,numPerPage,wechatUserId,state,requestEvn));
}
@ApiOperation("假删除数据")
@GetMapping("fakeDelete")
public ResponseDto<?> fakeDelete(@CookieValue("userInfo") String userInfo,
@RequestParam("requestId") Long requestId){
if (null == requestId) {
throw BookBizException.PARAM_DELETION;
}
buyBookRequestBiz.fakeDelete(requestId);
return new ResponseDto<>();
}
/**
* 处理数据
* @param token
* @param open 为 1 更新删除状态为未删除
* 和回复状态为未回复状态
* 为 0 不更新着两个状态
* @return
*/
@ApiOperation("处理数据")
@GetMapping("processingData")
public ResponseDto<?> processingData(@RequestHeader("token")String token,
@RequestParam(value = "open",required = false)int open){
SessionUtil.getToken4Redis(token);
buyBookRequestBiz.processingData(open);
return new ResponseDto<>();
}
} }
\ No newline at end of file
package com.pcloud.book.applet.facade;
import com.pcloud.book.applet.biz.BuyBookRequestReplyBiz;
import com.pcloud.book.applet.dto.BuyBookRequestReplyDTO;
import com.pcloud.book.applet.entity.BuyBookRequestReply;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.SessionUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* (BuyBookRequestReply)表控制层
*
* @author dominic_z
* @since 2020年12月25日 16:25:37
*/
@RestController("buyBookRequestReplyFacade")
@RequestMapping("buyBookRequestReply")
public class BuyBookRequestReplyFacade {
@Autowired
private BuyBookRequestReplyBiz buyBookRequestReplyBiz;
@ApiOperation("新增")
@PostMapping("insert")
public ResponseDto<?> insert(@RequestHeader("token") String token,
@RequestBody() BuyBookRequestReply buyBookRequestReply) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(buyBookRequestReplyBiz.insert(buyBookRequestReply));
}
@ApiOperation("通过购书记录Id获取回复消息")
@GetMapping("getByRequestId")
public ResponseDto<List<BuyBookRequestReplyDTO>> getByRequestId(@RequestHeader("token") String token,
@RequestParam("requestId") Long requestId) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(buyBookRequestReplyBiz.getByRequestId(requestId));
}
@ApiOperation("删除回复记录")
@GetMapping("deleteById")
public ResponseDto<?> deleteById(@RequestHeader("token") String token,
@RequestParam("id") Long id){
SessionUtil.getToken4Redis(token);
buyBookRequestReplyBiz.deleteById(id);
return new ResponseDto<>();
}
}
...@@ -18,6 +18,7 @@ import com.pcloud.common.dto.ResponseDto; ...@@ -18,6 +18,7 @@ import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.readercenter.wechat.dto.SpecialBookDTO4Reader; import com.pcloud.readercenter.wechat.dto.SpecialBookDTO4Reader;
import com.pcloud.readercenter.wechat.dto.SpecialBookQueryDTO4Reader; import com.pcloud.readercenter.wechat.dto.SpecialBookQueryDTO4Reader;
import com.pcloud.readercenter.wechat.dto.BuyBookProcessingDataDTO;
import com.pcloud.readercenter.wechat.dto.Wechat; import com.pcloud.readercenter.wechat.dto.Wechat;
import com.pcloud.usercenter.party.agent.dto.AgentCity; import com.pcloud.usercenter.party.agent.dto.AgentCity;
import com.pcloud.usercenter.party.agent.service.AgentService; import com.pcloud.usercenter.party.agent.service.AgentService;
...@@ -346,6 +347,20 @@ public class ReaderConsr { ...@@ -346,6 +347,20 @@ public class ReaderConsr {
} }
return taskCount; return taskCount;
} }
public List<BuyBookProcessingDataDTO> getProcessingData(List<Long> idList){
if (CollUtil.isEmpty(idList)){
return null;
}
List<BuyBookProcessingDataDTO> result=new ArrayList<>();
try {
ResponseEntity<ResponseDto<List<BuyBookProcessingDataDTO>>> sendUserRobotInfo = wechatUserService.getBuyBookProcessingData(idList);
result=ResponseHandleUtil.parseList(sendUserRobotInfo,BuyBookProcessingDataDTO.class);
} catch (Exception e) {
LOGGER.error("获取处理数据失败:" + e.getMessage(), e);
}
return result;
}
} }
...@@ -12,6 +12,11 @@ ...@@ -12,6 +12,11 @@
<result column="user_name" property="userName" jdbcType="VARCHAR"/> <result column="user_name" property="userName" jdbcType="VARCHAR"/>
<result column="phone" property="phone" jdbcType="VARCHAR"/> <result column="phone" property="phone" jdbcType="VARCHAR"/>
<result column="address" property="address" jdbcType="VARCHAR"/> <result column="address" property="address" jdbcType="VARCHAR"/>
<result column="mini_wechat_user_id" property="miniWechatUserId" jdbcType="BIGINT"/>
<result column="wechat_nick_name" property="nickName" jdbcType="VARCHAR"/>
<result column="mini_open_id" property="miniOpenId" jdbcType="VARCHAR"/>
<result column="reply_state" property="replyState" jdbcType="BIGINT"/>
<result column="is_delete" property="isDelete" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>
...@@ -27,11 +32,16 @@ ...@@ -27,11 +32,16 @@
<result column="user_name" property="userName" jdbcType="VARCHAR"/> <result column="user_name" property="userName" jdbcType="VARCHAR"/>
<result column="phone" property="phone" jdbcType="VARCHAR"/> <result column="phone" property="phone" jdbcType="VARCHAR"/>
<result column="address" property="address" jdbcType="VARCHAR"/> <result column="address" property="address" jdbcType="VARCHAR"/>
<result column="mini_wechat_user_id" property="miniWechatUserId" jdbcType="BIGINT"/>
<result column="wechat_nick_name" property="nickName" jdbcType="VARCHAR"/>
<result column="mini_open_id" property="miniOpenId" jdbcType="VARCHAR"/>
<result column="reply_state" property="replyState" jdbcType="BIGINT"/>
<result column="is_delete" property="isDelete" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, book_id, adviser_id, channel_id, agent_id, wechat_user_id, user_name, phone, address, create_time, update_time id, book_id, adviser_id, channel_id, agent_id, wechat_user_id, user_name, phone, address, mini_wechat_user_id, wechat_nick_name, mini_open_id, reply_state, is_delete, create_time, update_time
</sql> </sql>
<select id="getById" resultMap="BaseResultMap"> <select id="getById" resultMap="BaseResultMap">
...@@ -49,6 +59,7 @@ ...@@ -49,6 +59,7 @@
<if test="agentId != null"> <if test="agentId != null">
agent_id = #{agentId} agent_id = #{agentId}
</if> </if>
and is_delete= #{isDelete}
</where> </where>
order by create_time desc order by create_time desc
</select> </select>
...@@ -63,6 +74,11 @@ ...@@ -63,6 +74,11 @@
user_name, user_name,
phone, phone,
address, address,
mini_wechat_user_id,
wechat_nick_name,
mini_open_id,
reply_state,
is_delete,
create_time, create_time,
update_time update_time
) VALUES ( ) VALUES (
...@@ -74,6 +90,11 @@ ...@@ -74,6 +90,11 @@
#{userName, jdbcType=VARCHAR}, #{userName, jdbcType=VARCHAR},
#{phone, jdbcType=VARCHAR}, #{phone, jdbcType=VARCHAR},
#{address, jdbcType=VARCHAR}, #{address, jdbcType=VARCHAR},
#{miniWechatUserId, jdbcType=BIGINT},
#{nickName, jdbcType=VARCHAR},
#{miniOpenId, jdbcType=VARCHAR},
#{replyState, jdbcType=BIGINT},
#{isDelete, jdbcType=BIGINT},
now(), now(),
now() now()
) )
...@@ -89,6 +110,11 @@ ...@@ -89,6 +110,11 @@
user_name, user_name,
phone, phone,
address, address,
mini_wechat_user_id,
wechat_nick_name,
mini_open_id,
reply_state,
is_delete,
create_time, create_time,
update_time update_time
) VALUES ) VALUES
...@@ -102,6 +128,11 @@ ...@@ -102,6 +128,11 @@
#{item.userName, jdbcType=VARCHAR}, #{item.userName, jdbcType=VARCHAR},
#{item.phone, jdbcType=VARCHAR}, #{item.phone, jdbcType=VARCHAR},
#{item.address, jdbcType=VARCHAR}, #{item.address, jdbcType=VARCHAR},
#{miniWechatUserId, jdbcType=BIGINT},
#{nickName, jdbcType=VARCHAR},
#{miniOpenId, jdbcType=VARCHAR},
#{replyState, jdbcType=BIGINT},
#{isDelete, jdbcType=BIGINT},
#{item.createTime, jdbcType=TIMESTAMP}, #{item.createTime, jdbcType=TIMESTAMP},
#{item.updateTime, jdbcType=TIMESTAMP} #{item.updateTime, jdbcType=TIMESTAMP}
) )
...@@ -136,6 +167,21 @@ ...@@ -136,6 +167,21 @@
<if test="address != null and address != ''"> <if test="address != null and address != ''">
address = #{address}, address = #{address},
</if> </if>
<if test="miniWechatUserId != null and miniWechatUserId != ''">
mini_wechat_user_id = #{miniWechatUserId},
</if>
<if test="nickName != null and nickName != ''">
wechat_nick_name = #{nickName},
</if>
<if test="miniOpenId != null and miniOpenId != ''">
mini_open_id = #{miniOpenId},
</if>
<if test="replyState != null and replyState != ''">
reply_state = #{replyState},
</if>
<if test="isDelete != null and isDelete != ''">
is_delete = #{isDelete},
</if>
<if test="createTime != null"> <if test="createTime != null">
create_time = #{createTime}, create_time = #{createTime},
</if> </if>
...@@ -161,4 +207,65 @@ ...@@ -161,4 +207,65 @@
create_time desc create_time desc
</select> </select>
<select id="getRequestByWechatUserIdAndState" resultMap="BaseResultMap4DTO" parameterType="map">
select
<include refid="Base_Column_List"/>
from
buy_book_request
<where>
<if test="wechatUserId != null">
wechat_user_id = #{wechatUserId, jdbcType=BIGINT}
</if>
<if test="miniWechatUserId != null">
mini_wechat_user_id = #{miniWechatUserId, jdbcType=BIGINT}
</if>
<if test="replyState != null ">
And
reply_state = #{replyState, jdbcType=BIGINT}
</if>
And
is_delete = #{isDelete, jdbcType=BIGINT}
</where>
order by
create_time desc
</select>
<select id="listIdsByWeChatUserId" parameterType="long" resultType="long">
select
id
from
buy_book_request
where
wechat_user_id = #{wechatUserId, jdbcType=BIGINT}
</select>
<select id="listAllWeChatUserId" resultType="long">
select
distinct wechat_user_id
FROM
buy_book_request
</select>
<update id="update2ProcessingData" parameterType="map">
update buy_book_request
<set>
<if test="miniWechatUserId != null and miniWechatUserId != ''">
mini_wechat_user_id = #{miniWechatUserId},
</if>
<if test="nickName != null and nickName != ''">
wechat_nick_name = #{nickName},
</if>
<if test="miniOpenId != null and miniOpenId != ''">
mini_open_id = #{miniOpenId},
</if>
<if test="replyState != null and replyState != ''">
reply_state = #{replyState},
</if>
<if test="isDelete != null and isDelete != ''">
is_delete = #{isDelete},
</if>
</set>
where wechat_user_id = #{wechatUserId, jdbcType=BIGINT}
</update>
</mapper> </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.applet.dao.impl.BuyBookRequestReplyDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.BuyBookRequestReply">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="request_id" property="requestId" jdbcType="BIGINT"/>
<result column="reply_message" property="replyMessage" jdbcType="VARCHAR"/>
<result column="channel_id" property="channelId" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<resultMap id="BaseResultMap4DTO" type="com.pcloud.book.applet.dto.BuyBookRequestReplyDTO">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="request_id" property="requestId" jdbcType="BIGINT"/>
<result column="reply_message" property="replyMessage" jdbcType="VARCHAR"/>
<result column="channel_id" property="channelId" 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, request_id, reply_message, channel_id, create_time, update_time
</sql>
<insert id="insert" keyProperty="id" useGeneratedKeys="true" >
INSERT INTO buy_book_request_reply(
request_id,
reply_message,
channel_id,
create_time,
update_time
) VALUES (
#{requestId, jdbcType=BIGINT},
#{replyMessage, jdbcType=VARCHAR},
#{channelId, jdbcType=BIGINT},
now(),
now()
)
</insert>
<select id="getByRequestId" resultMap="BaseResultMap4DTO" parameterType="long">
SELECT
<include refid="Base_Column_List"/>
FROM
buy_book_request_reply
where
request_id = #{requestId, jdbcType=BIGINT}
</select>
<delete id="deleteById" parameterType="long">
Delete
FROM
buy_book_request_reply
where
id=#{id, jdbcType=BIGINT}
</delete>
<!-- 批量获取回复信息 -->
<select id="listBaseMapByIds" resultMap="BaseResultMap4DTO" parameterType="list">
SELECT
<include refid="Base_Column_List"/>
FROM
buy_book_request_reply
WHERE
request_id IN
<foreach collection="list" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
</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