Commit 2d760cbf by zhiwj

问题咨询

parent 756293e1
package com.gic.evaluate.constant;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 15:25
*/
public enum ReplyEnum {
//
WAIT(0),
//,
REPLIED(1),
//
HAS_NEW(2)
;
private Integer code;
ReplyEnum(Integer code) {
this.code = code;
}
public Integer getCode() {
return code;
}
}
package com.gic.evaluate.dto;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 10:34
*/
public class ProblemDTO implements Serializable {
private static final long serialVersionUID = -7669213242276410474L;
/**
* 投诉与建议
*/
private Integer problemId;
/**
* 商户id
*/
private Integer enterpriseId;
/**
* 门店id
*/
private Integer storeId;
/**
* 门店名称
*/
private String storeName;
/**
* 会员id
*/
private Long memberId;
/**
* 会员名
*/
private String memberName;
/**
* 会员手机
*/
private String memberPhone;
/**
* 评论内容
*/
private String problemContent;
/**
* 冗余的评论首图
*/
private String imageUrl;
/**
* 是否有其他图片
*/
private Integer hasOtherImage;
/**
* 0:待处理 1:已回复 2:有更新
*/
private Integer problemStatus;
/**
* 是否是恶意评论
*/
private Integer maliciousStatus;
/**
* 是否展示
*/
private Integer showStatus;
/**
*
*/
private Integer status;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
private List<String> imgUrlList;
private List<ProblemImgDTO> imgList;
private List<ProblemReplyDTO> replyList;
public Integer getProblemId() {
return problemId;
}
public void setProblemId(Integer problemId) {
this.problemId = problemId;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getStoreId() {
return storeId;
}
public void setStoreId(Integer storeId) {
this.storeId = storeId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public Long getMemberId() {
return memberId;
}
public void setMemberId(Long memberId) {
this.memberId = memberId;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getMemberPhone() {
return memberPhone;
}
public void setMemberPhone(String memberPhone) {
this.memberPhone = memberPhone;
}
public String getProblemContent() {
return problemContent;
}
public void setProblemContent(String problemContent) {
this.problemContent = problemContent;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public Integer getHasOtherImage() {
return hasOtherImage;
}
public void setHasOtherImage(Integer hasOtherImage) {
this.hasOtherImage = hasOtherImage;
}
public Integer getProblemStatus() {
return problemStatus;
}
public void setProblemStatus(Integer problemStatus) {
this.problemStatus = problemStatus;
}
public Integer getMaliciousStatus() {
return maliciousStatus;
}
public void setMaliciousStatus(Integer maliciousStatus) {
this.maliciousStatus = maliciousStatus;
}
public Integer getShowStatus() {
return showStatus;
}
public void setShowStatus(Integer showStatus) {
this.showStatus = showStatus;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public void setImgList(List<ProblemImgDTO> imgList) {
this.imgList = imgList;
}
public List<ProblemImgDTO> getImgList() {
return imgList;
}
public void setReplyList(List<ProblemReplyDTO> replyList) {
this.replyList = replyList;
}
public List<ProblemReplyDTO> getReplyList() {
return replyList;
}
public List<String> getImgUrlList() {
return imgUrlList;
}
public void setImgUrlList(List<String> imgUrlList) {
this.imgUrlList = imgUrlList;
}
}
package com.gic.evaluate.dto;
import java.io.Serializable;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 10:48
*/
public class ProblemImgDTO implements Serializable {
private static final long serialVersionUID = 8641519372108017377L;
}
package com.gic.evaluate.dto;
import java.io.Serializable;
import java.util.List;
/**
* 管理员回复
* @Description:
* @author zhiwj
* @date 2019-12-26 18:32
*/
public class ProblemMemberReplyDTO implements Serializable {
private static final long serialVersionUID = -7855916448409509250L;
/**
*
*/
private Integer evaluateReplyId;
/**
* 商户id
*/
private Integer enterpriseId;
/**
* 评论id
*/
private Integer problemId;
/**
* 回复内容
*/
private String replyContent;
/**
*
*/
private Long memberId;
/**
*
*/
private String memberName;
private List<String> imgUrlList;
public Integer getEvaluateReplyId() {
return evaluateReplyId;
}
public void setEvaluateReplyId(Integer evaluateReplyId) {
this.evaluateReplyId = evaluateReplyId;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getProblemId() {
return problemId;
}
public void setProblemId(Integer problemId) {
this.problemId = problemId;
}
public String getReplyContent() {
return replyContent;
}
public void setReplyContent(String replyContent) {
this.replyContent = replyContent;
}
public Long getMemberId() {
return memberId;
}
public void setMemberId(Long memberId) {
this.memberId = memberId;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public List<String> getImgUrlList() {
return imgUrlList;
}
public void setImgUrlList(List<String> imgUrlList) {
this.imgUrlList = imgUrlList;
}
}
package com.gic.evaluate.dto;
import java.io.Serializable;
import java.util.Date;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 10:48
*/
public class ProblemReplyDTO implements Serializable {
private static final long serialVersionUID = 6022427014367317704L;
/**
*
*/
private Integer problemReplyId;
/**
*
*/
private Integer enterpriseId;
/**
*
*/
private Integer problemId;
/**
* 1:会员 2:店员
*/
private Integer replyerType;
/**
* 回复内容
*/
private String replyContent;
/**
*
*/
private Integer memberId;
/**
*
*/
private String memberName;
/**
*
*/
private Integer userId;
/**
*
*/
private String userName;
/**
*
*/
private Integer status;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
public Integer getProblemReplyId() {
return problemReplyId;
}
public void setProblemReplyId(Integer problemReplyId) {
this.problemReplyId = problemReplyId;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getProblemId() {
return problemId;
}
public void setProblemId(Integer problemId) {
this.problemId = problemId;
}
public Integer getReplyerType() {
return replyerType;
}
public void setReplyerType(Integer replyerType) {
this.replyerType = replyerType;
}
public String getReplyContent() {
return replyContent;
}
public void setReplyContent(String replyContent) {
this.replyContent = replyContent;
}
public Integer getMemberId() {
return memberId;
}
public void setMemberId(Integer memberId) {
this.memberId = memberId;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
package com.gic.evaluate.dto;
import java.io.Serializable;
/**
* 管理员回复
* @Description:
* @author zhiwj
* @date 2019-12-26 18:32
*/
public class ProblemUserReplyDTO implements Serializable {
private static final long serialVersionUID = -7855916448409509250L;
/**
*
*/
private Integer evaluateReplyId;
/**
* 商户id
*/
private Integer enterpriseId;
/**
* 评论id
*/
private Integer problemId;
/**
* 回复内容
*/
private String replyContent;
/**
*
*/
private Integer userId;
/**
*
*/
private String userName;
public Integer getEvaluateReplyId() {
return evaluateReplyId;
}
public void setEvaluateReplyId(Integer evaluateReplyId) {
this.evaluateReplyId = evaluateReplyId;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getProblemId() {
return problemId;
}
public void setProblemId(Integer problemId) {
this.problemId = problemId;
}
public String getReplyContent() {
return replyContent;
}
public void setReplyContent(String replyContent) {
this.replyContent = replyContent;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
package com.gic.evaluate.qo;
import com.gic.enterprise.qo.PageQO;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 10:38
*/
public class ProblemQO extends PageQO {
private static final long serialVersionUID = 5170848364807420051L;
private String search;
private String startTime;
private String endTime;
private Integer problemStatus;
private Integer sortColumn;
private Integer sortType;
public String getSearch() {
return search;
}
public void setSearch(String search) {
this.search = search;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public Integer getProblemStatus() {
return problemStatus;
}
public void setProblemStatus(Integer problemStatus) {
this.problemStatus = problemStatus;
}
public Integer getSortColumn() {
return sortColumn;
}
public void setSortColumn(Integer sortColumn) {
this.sortColumn = sortColumn;
}
public Integer getSortType() {
return sortType;
}
public void setSortType(Integer sortType) {
this.sortType = sortType;
}
}
package com.gic.evaluate.service;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.evaluate.dto.ProblemDTO;
import com.gic.evaluate.dto.ProblemMemberReplyDTO;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 10:31
*/
public interface ProblemHaobanApiService {
/**
* 保存投诉
* @Title: saveProblem
* @Description:
* @author zhiwj
* @param problemDTO
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse<Void> saveProblem(ProblemDTO problemDTO);
/**
*
* @Title: saveProblem
* @Description:
* @author zhiwj
* @param problemMemberReplyDTO
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse<Void> saveProblemReply(ProblemMemberReplyDTO problemMemberReplyDTO);
}
package com.gic.evaluate.service;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.evaluate.dto.ProblemDTO;
import com.gic.evaluate.dto.ProblemUserReplyDTO;
import com.gic.evaluate.qo.ProblemQO;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 10:32
*/
public interface ProblemManageApiService {
/**
* 查询列表
* @Title: listProblem
* @Description:
* @author zhiwj
* @param problemQO
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse<List<ProblemDTO>> listProblem(ProblemQO problemQO);
/**
* 查详情
* @Title: getProblem
* @Description:
* @author zhiwj
* @param problemId
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse<ProblemDTO> getProblem(Integer problemId);
/**
* 回复
* @Title: replyProblem
* @Description:
* @author zhiwj
* @param problemUserReplyDTO
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse<Void> replyProblem(ProblemUserReplyDTO problemUserReplyDTO);
/**
* @Title: replyProblem
* @Description:
* @author zhiwj
* @param problemIdList
* @param problemUserReplyDTO
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse<Void> replyProblem(List<Integer> problemIdList, ProblemUserReplyDTO problemUserReplyDTO);
/**
* 更新恶评
* @Title: updateMaliciousStatus
* @Description:
* @author zhiwj
* @param problemId
* @param maliciousStatus
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse<Void> updateMaliciousStatus(Integer problemId, Integer maliciousStatus);
/**
* 删除回复
* @Title: deleteReply
* @Description:
* @author zhiwj
* @param problemReplyId
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse<Void> deleteReply(Integer problemReplyId);
}
......@@ -2,6 +2,8 @@ package com.gic.evaluate.dao.mapper;
import com.gic.evaluate.entity.TabProblemImg;
import java.util.List;
public interface TabProblemImgMapper {
/**
* 根据主键删除
......@@ -50,4 +52,6 @@ public interface TabProblemImgMapper {
* @return 更新条目数
*/
int updateByPrimaryKey(TabProblemImg record);
List<TabProblemImg> listImage(Integer problemId);
}
\ No newline at end of file
package com.gic.evaluate.dao.mapper;
import com.gic.evaluate.entity.TabProblem;
import com.gic.evaluate.qo.ProblemQO;
import java.util.List;
public interface TabProblemMapper {
/**
......@@ -50,4 +53,6 @@ public interface TabProblemMapper {
* @return 更新条目数
*/
int updateByPrimaryKey(TabProblem record);
List<TabProblem> listProblem(ProblemQO problemQO);
}
\ No newline at end of file
......@@ -2,6 +2,8 @@ package com.gic.evaluate.dao.mapper;
import com.gic.evaluate.entity.TabProblemReply;
import java.util.List;
public interface TabProblemReplyMapper {
/**
* 根据主键删除
......@@ -50,4 +52,6 @@ public interface TabProblemReplyMapper {
* @return 更新条目数
*/
int updateByPrimaryKey(TabProblemReply record);
List<TabProblemReply> listReply(Integer problemId);
}
\ No newline at end of file
......@@ -62,6 +62,16 @@ public class TabProblem {
private Integer problemStatus;
/**
* 是否是恶意评论
*/
private Integer maliciousStatus;
/**
* 是否展示
*/
private Integer showStatus;
/**
*
*/
private Integer status;
......@@ -164,6 +174,22 @@ public class TabProblem {
this.problemStatus = problemStatus;
}
public Integer getMaliciousStatus() {
return maliciousStatus;
}
public void setMaliciousStatus(Integer maliciousStatus) {
this.maliciousStatus = maliciousStatus;
}
public Integer getShowStatus() {
return showStatus;
}
public void setShowStatus(Integer showStatus) {
this.showStatus = showStatus;
}
public Integer getStatus() {
return status;
}
......
......@@ -34,7 +34,7 @@ public class TabProblemReply {
/**
*
*/
private Integer memberId;
private Long memberId;
/**
*
......@@ -52,16 +52,6 @@ public class TabProblemReply {
private String userName;
/**
* 恶意评论
*/
private Integer maliciousStatus;
/**
* 是否展示
*/
private Integer showStatus;
/**
*
*/
private Integer status;
......@@ -116,11 +106,11 @@ public class TabProblemReply {
this.replyContent = replyContent;
}
public Integer getMemberId() {
public Long getMemberId() {
return memberId;
}
public void setMemberId(Integer memberId) {
public void setMemberId(Long memberId) {
this.memberId = memberId;
}
......@@ -148,22 +138,6 @@ public class TabProblemReply {
this.userName = userName;
}
public Integer getMaliciousStatus() {
return maliciousStatus;
}
public void setMaliciousStatus(Integer maliciousStatus) {
this.maliciousStatus = maliciousStatus;
}
public Integer getShowStatus() {
return showStatus;
}
public void setShowStatus(Integer showStatus) {
this.showStatus = showStatus;
}
public Integer getStatus() {
return status;
}
......
package com.gic.evaluate.service;
import com.gic.evaluate.entity.TabProblemImg;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 11:10
*/
public interface ProblemImgService {
List<TabProblemImg> listImage(Integer problemId);
void saveList(Integer enterpriseId, Integer problemId, List<String> imgUrlList);
void saveList(Integer enterpriseId, Integer problemId, Integer problemReplyId, List<String> imgUrlList);
}
package com.gic.evaluate.service;
import com.gic.evaluate.dto.ProblemMemberReplyDTO;
import com.gic.evaluate.dto.ProblemReplyDTO;
import com.gic.evaluate.dto.ProblemUserReplyDTO;
import com.gic.evaluate.entity.TabProblemReply;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 11:10
*/
public interface ProblemReplyService {
List<TabProblemReply> listReply(Integer problemId);
void save(ProblemUserReplyDTO problemUserReplyDTO);
int save(ProblemMemberReplyDTO problemMemberReplyDTO);
void update(ProblemReplyDTO problemReplyDTO);
}
package com.gic.evaluate.service;
import com.gic.evaluate.dto.ProblemDTO;
import com.gic.evaluate.entity.TabProblem;
import com.gic.evaluate.qo.ProblemQO;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 11:10
*/
public interface ProblemService {
List<TabProblem> listProblem(ProblemQO problemQO);
TabProblem getProblem(Integer problemId);
void updateProblem(ProblemDTO problemDTO);
Integer save(ProblemDTO problemDTO);
}
package com.gic.evaluate.service.impl;
import com.gic.evaluate.constant.Constants;
import com.gic.evaluate.dao.mapper.TabProblemImgMapper;
import com.gic.evaluate.entity.TabProblemImg;
import com.gic.evaluate.service.ProblemImgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 11:35
*/
@Service
public class ProblemImgServiceImpl implements ProblemImgService {
@Autowired
private TabProblemImgMapper tabProblemImgMapper;
@Override
public List<TabProblemImg> listImage(Integer problemId) {
return tabProblemImgMapper.listImage(problemId);
}
@Override
public void saveList(Integer enterpriseId, Integer problemId, List<String> imgUrlList) {
this.saveList(enterpriseId, problemId, null, imgUrlList);
}
@Override
public void saveList(Integer enterpriseId, Integer problemId, Integer problemReplyId, List<String> imgUrlList) {
for (int i = 0; i < imgUrlList.size(); i++) {
TabProblemImg tabProblemImg = new TabProblemImg();
tabProblemImg.setEnterpriseId(enterpriseId);
tabProblemImg.setProblemId(problemId);
tabProblemImg.setProblemReplyId(problemReplyId);
tabProblemImg.setSortNum(i);
tabProblemImg.setImgUrl(imgUrlList.get(i));
tabProblemImg.setStatus(Constants.OPEN);
tabProblemImg.setCreateTime(new Date());
tabProblemImgMapper.insertSelective(tabProblemImg);
}
}
}
package com.gic.evaluate.service.impl;
import com.gic.commons.util.EntityUtil;
import com.gic.evaluate.constant.Constants;
import com.gic.evaluate.constant.ReplyerTypeEnum;
import com.gic.evaluate.dao.mapper.TabProblemReplyMapper;
import com.gic.evaluate.dto.ProblemMemberReplyDTO;
import com.gic.evaluate.dto.ProblemReplyDTO;
import com.gic.evaluate.dto.ProblemUserReplyDTO;
import com.gic.evaluate.entity.TabProblemReply;
import com.gic.evaluate.service.ProblemReplyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 11:37
*/
@Service
public class ProblemReplyServiceImpl implements ProblemReplyService {
@Autowired
private TabProblemReplyMapper tabProblemReplyMapper;
@Override
public List<TabProblemReply> listReply(Integer problemId) {
return tabProblemReplyMapper.listReply(problemId);
}
@Override
public void save(ProblemUserReplyDTO problemUserReplyDTO) {
TabProblemReply tabProblemReply = new TabProblemReply();
tabProblemReply.setEnterpriseId(problemUserReplyDTO.getEnterpriseId());
tabProblemReply.setProblemId(problemUserReplyDTO.getProblemId());
tabProblemReply.setReplyerType(ReplyerTypeEnum.USER.getCode());
tabProblemReply.setReplyContent(problemUserReplyDTO.getReplyContent());
tabProblemReply.setUserId(problemUserReplyDTO.getUserId());
tabProblemReply.setUserName(problemUserReplyDTO.getUserName());
tabProblemReply.setStatus(Constants.OPEN);
tabProblemReply.setCreateTime(new Date());
tabProblemReplyMapper.insertSelective(tabProblemReply);
}
@Override
public int save(ProblemMemberReplyDTO problemMemberReplyDTO) {
TabProblemReply problemReply = new TabProblemReply();
problemReply.setEnterpriseId(problemMemberReplyDTO.getEnterpriseId());
problemReply.setProblemId(problemMemberReplyDTO.getProblemId());
problemReply.setReplyerType(ReplyerTypeEnum.MEMBER.getCode());
problemReply.setReplyContent(problemMemberReplyDTO.getReplyContent());
problemReply.setMemberId(problemMemberReplyDTO.getMemberId());
problemReply.setMemberName(problemMemberReplyDTO.getMemberName());
problemReply.setStatus(Constants.OPEN);
problemReply.setCreateTime(new Date());
return tabProblemReplyMapper.insertSelective(problemReply);
}
@Override
public void update(ProblemReplyDTO problemReplyDTO) {
TabProblemReply tabProblemReply = EntityUtil.changeEntityByJSON(TabProblemReply.class, problemReplyDTO);
tabProblemReplyMapper.insertSelective(tabProblemReply);
}
}
package com.gic.evaluate.service.impl;
import com.gic.commons.util.EntityUtil;
import com.gic.evaluate.constant.Constants;
import com.gic.evaluate.constant.ReplyEnum;
import com.gic.evaluate.dao.mapper.TabProblemMapper;
import com.gic.evaluate.dto.ProblemDTO;
import com.gic.evaluate.entity.TabProblem;
import com.gic.evaluate.qo.ProblemQO;
import com.gic.evaluate.service.ProblemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 11:17
*/
@Service
public class ProblemServiceImpl implements ProblemService {
@Autowired
private TabProblemMapper tabProblemMapper;
@Override
public List<TabProblem> listProblem(ProblemQO problemQO) {
return tabProblemMapper.listProblem(problemQO);
}
@Override
public TabProblem getProblem(Integer problemId) {
return tabProblemMapper.selectByPrimaryKey(problemId);
}
@Override
public void updateProblem(ProblemDTO problemDTO) {
TabProblem problem = EntityUtil.changeEntityByJSON(TabProblem.class, problemDTO);
tabProblemMapper.updateByPrimaryKeySelective(problem);
}
@Override
public Integer save(ProblemDTO problemDTO) {
TabProblem problem = new TabProblem();
problem.setEnterpriseId(problemDTO.getEnterpriseId());
problem.setStoreId(problemDTO.getStoreId());
problem.setStoreName(problemDTO.getStoreName());
problem.setMemberId(problemDTO.getMemberId());
problem.setMemberName(problemDTO.getMemberName());
problem.setMemberPhone(problemDTO.getMemberPhone());
problem.setProblemContent(problemDTO.getProblemContent());
problem.setImageUrl(problemDTO.getImageUrl());
problem.setHasOtherImage(problemDTO.getHasOtherImage());
problem.setProblemStatus(ReplyEnum.WAIT.getCode());
problem.setMaliciousStatus(Constants.CLOSE);
problem.setShowStatus(Constants.OPEN);
problem.setStatus(Constants.OPEN);
problem.setCreateTime(new Date());
return tabProblemMapper.insertSelective(problem);
}
}
package com.gic.evaluate.service.outer.impl;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.response.EnterpriseServiceResponse;
import com.gic.evaluate.constant.Constants;
import com.gic.evaluate.dto.ProblemDTO;
import com.gic.evaluate.dto.ProblemMemberReplyDTO;
import com.gic.evaluate.service.ProblemHaobanApiService;
import com.gic.evaluate.service.ProblemImgService;
import com.gic.evaluate.service.ProblemReplyService;
import com.gic.evaluate.service.ProblemService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 14:31
*/
@Service("problemHaobanApiService")
public class ProblemHaobanApiServiceImpl implements ProblemHaobanApiService {
@Autowired
private ProblemService problemService;
@Autowired
private ProblemReplyService problemReplyService;
@Autowired
private ProblemImgService problemImgService;
@Override
@Transactional(rollbackFor = Exception.class)
public ServiceResponse<Void> saveProblem(ProblemDTO problemDTO) {
List<String> imgUrlList = problemDTO.getImgUrlList();
if (CollectionUtils.isNotEmpty(imgUrlList)) {
problemDTO.setImageUrl(imgUrlList.get(0));
problemDTO.setHasOtherImage(imgUrlList.size() > 1 ? Constants.OPEN : Constants.CLOSE);
}
Integer problemId = problemService.save(problemDTO);
if (CollectionUtils.isNotEmpty(imgUrlList)) {
problemImgService.saveList(problemDTO.getEnterpriseId(), problemId, imgUrlList);
}
return EnterpriseServiceResponse.success();
}
@Override
public ServiceResponse<Void> saveProblemReply(ProblemMemberReplyDTO problemMemberReplyDTO) {
List<String> imgUrlList = problemMemberReplyDTO.getImgUrlList();
Integer problemReplyId = problemReplyService.save(problemMemberReplyDTO);
if (CollectionUtils.isNotEmpty(imgUrlList)) {
problemImgService.saveList(problemMemberReplyDTO.getEnterpriseId(), problemMemberReplyDTO.getProblemId(), problemReplyId, imgUrlList);
}
return EnterpriseServiceResponse.success();
}
}
\ No newline at end of file
package com.gic.evaluate.service.outer.impl;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.response.EnterpriseServiceResponse;
import com.gic.evaluate.constant.Constants;
import com.gic.evaluate.dto.ProblemDTO;
import com.gic.evaluate.dto.ProblemImgDTO;
import com.gic.evaluate.dto.ProblemReplyDTO;
import com.gic.evaluate.dto.ProblemUserReplyDTO;
import com.gic.evaluate.entity.TabProblem;
import com.gic.evaluate.entity.TabProblemImg;
import com.gic.evaluate.entity.TabProblemReply;
import com.gic.evaluate.qo.ProblemQO;
import com.gic.evaluate.service.ProblemImgService;
import com.gic.evaluate.service.ProblemManageApiService;
import com.gic.evaluate.service.ProblemReplyService;
import com.gic.evaluate.service.ProblemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 11:08
*/
@Service("problemManageApiService")
public class ProblemManageApiServiceImpl implements ProblemManageApiService {
@Autowired
private ProblemService problemService;
@Autowired
private ProblemImgService problemImgService;
@Autowired
private ProblemReplyService problemReplyService;
@Override
public ServiceResponse<List<ProblemDTO>> listProblem(ProblemQO problemQO) {
List<TabProblem> problemList = problemService.listProblem(problemQO);
List<ProblemDTO> dtoList = EntityUtil.changeEntityListByJSON(ProblemDTO.class, problemList);
return EnterpriseServiceResponse.success(dtoList);
}
@Override
public ServiceResponse<ProblemDTO> getProblem(Integer problemId) {
TabProblem tabProblem = problemService.getProblem(problemId);
if (tabProblem == null) {
return EnterpriseServiceResponse.failure(ErrorCode.DATA_EXISTS);
}
ProblemDTO problemDTO = EntityUtil.changeEntityByJSON(ProblemDTO.class, tabProblem);
if (Constants.OPEN.equals(problemDTO.getHasOtherImage())) {
List<TabProblemImg> tabImgList = problemImgService.listImage(problemId);
List<ProblemImgDTO> list = EntityUtil.changeEntityListByJSON(ProblemImgDTO.class, tabImgList);
problemDTO.setImgList(list);
}
List<TabProblemReply> tabReplyList = problemReplyService.listReply(problemId);
List<ProblemReplyDTO> replyList = EntityUtil.changeEntityListByJSON(ProblemReplyDTO.class, tabReplyList);
problemDTO.setReplyList(replyList);
return EnterpriseServiceResponse.success(problemDTO);
}
@Override
public ServiceResponse<Void> replyProblem(ProblemUserReplyDTO problemUserReplyDTO) {
this.problemReplyService.save(problemUserReplyDTO);
return EnterpriseServiceResponse.success();
}
@Override
public ServiceResponse<Void> replyProblem(List<Integer> problemIdList, ProblemUserReplyDTO problemUserReplyDTO) {
for (Integer problemId : problemIdList) {
problemUserReplyDTO.setProblemId(problemId);
this.replyProblem(problemUserReplyDTO);
}
return EnterpriseServiceResponse.success();
}
@Override
public ServiceResponse<Void> updateMaliciousStatus(Integer problemId, Integer maliciousStatus) {
ProblemDTO problemDTO = new ProblemDTO();
problemDTO.setProblemId(problemId);
problemDTO.setMaliciousStatus(maliciousStatus);
if (Constants.OPEN.equals(maliciousStatus)) {
problemDTO.setShowStatus(Constants.CLOSE);
} else if (Constants.CLOSE.equals(maliciousStatus)) {
problemDTO.setShowStatus(Constants.OPEN);
}
problemService.updateProblem(problemDTO);
return EnterpriseServiceResponse.success();
}
@Override
public ServiceResponse<Void> deleteReply(Integer problemReplyId) {
ProblemReplyDTO problemReplyDTO = new ProblemReplyDTO();
problemReplyDTO.setProblemReplyId(problemReplyId);
problemReplyDTO.setStatus(Constants.CLOSE);
problemReplyService.update(problemReplyDTO);
return EnterpriseServiceResponse.success();
}
}
......@@ -14,11 +14,13 @@
<dubbo:application name="gic-evaluate-service"/>
<dubbo:protocol name="dubbo" port="20350"/>
<!--门店域-->
<dubbo:service interface="com.gic.evaluate.service.EvaluateConfigApiService" ref="evaluateConfigApiService" timeout="6000" />
<dubbo:service interface="com.gic.evaluate.service.EvaluateHaobanApiService" ref="evaluateHaobanApiService" timeout="6000" />
<dubbo:service interface="com.gic.evaluate.service.EvaluateOverviewApiService" ref="evaluateOverviewApiService" timeout="6000" />
<dubbo:service interface="com.gic.evaluate.service.EvaluateManageApiService" ref="evaluateManageApiService" timeout="6000" />
<dubbo:service interface="com.gic.evaluate.service.ProblemHaobanApiService" ref="problemHaobanApiService" timeout="6000" />
<dubbo:service interface="com.gic.evaluate.service.ProblemManageApiService" ref="problemManageApiService" timeout="6000" />
<!-- <dubbo:reference interface="com.gic.log.api.service.LogApiService" id="logApiService" timeout="6000" />-->
</beans>
......@@ -150,4 +150,11 @@
update_time = #{updateTime,jdbcType=TIMESTAMP}
where problem_img_id = #{problemImgId,jdbcType=INTEGER}
</update>
<select id="listImage" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_problem_img
where problem_id = #{problemId}
and status = 1
</select>
</mapper>
\ No newline at end of file
......@@ -13,14 +13,16 @@
<result column="image_url" jdbcType="VARCHAR" property="imageUrl" />
<result column="has_other_image" jdbcType="INTEGER" property="hasOtherImage" />
<result column="problem_status" jdbcType="INTEGER" property="problemStatus" />
<result column="malicious_status" jdbcType="INTEGER" property="maliciousStatus" />
<result column="show_status" jdbcType="INTEGER" property="showStatus" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
problem_id, enterprise_id, store_id, store_name, member_id, member_name, member_phone,
problem_content, image_url, has_other_image, problem_status, status, create_time,
update_time
problem_content, image_url, has_other_image, problem_status, malicious_status, show_status,
status, create_time, update_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
......@@ -36,15 +38,20 @@
insert into tab_problem (problem_id, enterprise_id, store_id,
store_name, member_id, member_name,
member_phone, problem_content, image_url,
has_other_image, problem_status, status,
create_time, update_time)
has_other_image, problem_status, malicious_status,
show_status, status, create_time,
update_time)
values (#{problemId,jdbcType=INTEGER}, #{enterpriseId,jdbcType=INTEGER}, #{storeId,jdbcType=INTEGER},
#{storeName,jdbcType=VARCHAR}, #{memberId,jdbcType=BIGINT}, #{memberName,jdbcType=VARCHAR},
#{memberPhone,jdbcType=VARCHAR}, #{problemContent,jdbcType=VARCHAR}, #{imageUrl,jdbcType=VARCHAR},
#{hasOtherImage,jdbcType=INTEGER}, #{problemStatus,jdbcType=INTEGER}, #{status,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
#{hasOtherImage,jdbcType=INTEGER}, #{problemStatus,jdbcType=INTEGER}, #{maliciousStatus,jdbcType=INTEGER},
#{showStatus,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.gic.evaluate.entity.TabProblem">
<selectKey keyProperty="problemId" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into tab_problem
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="problemId != null">
......@@ -80,6 +87,12 @@
<if test="problemStatus != null">
problem_status,
</if>
<if test="maliciousStatus != null">
malicious_status,
</if>
<if test="showStatus != null">
show_status,
</if>
<if test="status != null">
status,
</if>
......@@ -124,6 +137,12 @@
<if test="problemStatus != null">
#{problemStatus,jdbcType=INTEGER},
</if>
<if test="maliciousStatus != null">
#{maliciousStatus,jdbcType=INTEGER},
</if>
<if test="showStatus != null">
#{showStatus,jdbcType=INTEGER},
</if>
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
......@@ -168,6 +187,12 @@
<if test="problemStatus != null">
problem_status = #{problemStatus,jdbcType=INTEGER},
</if>
<if test="maliciousStatus != null">
malicious_status = #{maliciousStatus,jdbcType=INTEGER},
</if>
<if test="showStatus != null">
show_status = #{showStatus,jdbcType=INTEGER},
</if>
<if test="status != null">
status = #{status,jdbcType=INTEGER},
</if>
......@@ -192,9 +217,36 @@
image_url = #{imageUrl,jdbcType=VARCHAR},
has_other_image = #{hasOtherImage,jdbcType=INTEGER},
problem_status = #{problemStatus,jdbcType=INTEGER},
malicious_status = #{maliciousStatus,jdbcType=INTEGER},
show_status = #{showStatus,jdbcType=INTEGER},
status = #{status,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where problem_id = #{problemId,jdbcType=INTEGER}
</update>
<select id="listProblem" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_problem
<where>
<if test="search != null and search != '' ">
and (
member_name like concat('%', #{search}, '%')
or member_phone like concat('%', #{search}, '%')
or store_name like concat('%', #{search}, '%')
or problem_content like concat('%', #{search}, '%')
)
</if>
<if test="problemStatus != null ">
and problem_status = #{problemStatus}
</if>
<if test="startTime != null and startTime != '' ">
and create_time &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != '' ">
and create_time &lt;= #{endTime}
</if>
</where>
order by create_time desc
</select>
</mapper>
\ No newline at end of file
......@@ -11,16 +11,13 @@
<result column="member_name" jdbcType="VARCHAR" property="memberName" />
<result column="user_id" jdbcType="INTEGER" property="userId" />
<result column="user_name" jdbcType="VARCHAR" property="userName" />
<result column="malicious_status" jdbcType="INTEGER" property="maliciousStatus" />
<result column="show_status" jdbcType="INTEGER" property="showStatus" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
problem_reply_id, enterprise_id, problem_id, replyer_type, reply_content, member_id,
member_name, user_id, user_name, malicious_status, show_status, status, create_time,
update_time
member_name, user_id, user_name, status, create_time, update_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
......@@ -36,15 +33,18 @@
insert into tab_problem_reply (problem_reply_id, enterprise_id, problem_id,
replyer_type, reply_content, member_id,
member_name, user_id, user_name,
malicious_status, show_status, status,
create_time, update_time)
status, create_time, update_time
)
values (#{problemReplyId,jdbcType=INTEGER}, #{enterpriseId,jdbcType=INTEGER}, #{problemId,jdbcType=INTEGER},
#{replyerType,jdbcType=INTEGER}, #{replyContent,jdbcType=VARCHAR}, #{memberId,jdbcType=INTEGER},
#{memberName,jdbcType=VARCHAR}, #{userId,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR},
#{maliciousStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{status,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
#{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
)
</insert>
<insert id="insertSelective" parameterType="com.gic.evaluate.entity.TabProblemReply">
<selectKey keyProperty="problemReplyId" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into tab_problem_reply
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="problemReplyId != null">
......@@ -74,12 +74,6 @@
<if test="userName != null">
user_name,
</if>
<if test="maliciousStatus != null">
malicious_status,
</if>
<if test="showStatus != null">
show_status,
</if>
<if test="status != null">
status,
</if>
......@@ -118,12 +112,6 @@
<if test="userName != null">
#{userName,jdbcType=VARCHAR},
</if>
<if test="maliciousStatus != null">
#{maliciousStatus,jdbcType=INTEGER},
</if>
<if test="showStatus != null">
#{showStatus,jdbcType=INTEGER},
</if>
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
......@@ -162,12 +150,6 @@
<if test="userName != null">
user_name = #{userName,jdbcType=VARCHAR},
</if>
<if test="maliciousStatus != null">
malicious_status = #{maliciousStatus,jdbcType=INTEGER},
</if>
<if test="showStatus != null">
show_status = #{showStatus,jdbcType=INTEGER},
</if>
<if test="status != null">
status = #{status,jdbcType=INTEGER},
</if>
......@@ -190,11 +172,16 @@
member_name = #{memberName,jdbcType=VARCHAR},
user_id = #{userId,jdbcType=INTEGER},
user_name = #{userName,jdbcType=VARCHAR},
malicious_status = #{maliciousStatus,jdbcType=INTEGER},
show_status = #{showStatus,jdbcType=INTEGER},
status = #{status,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where problem_reply_id = #{problemReplyId,jdbcType=INTEGER}
</update>
<select id="listReply" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_problem_reply
where problem_id = #{problemId}
and status = 1
</select>
</mapper>
\ No newline at end of file
package com.gic.evaluate.web.controller;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.utils.ResultControllerUtils;
import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.evaluate.dto.ProblemDTO;
import com.gic.evaluate.dto.ProblemUserReplyDTO;
import com.gic.evaluate.qo.ProblemQO;
import com.gic.evaluate.service.ProblemManageApiService;
import com.gic.evaluate.web.vo.ProblemUserReplyVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-01-02 16:05
*/
@RestController
public class ProblemController {
@Autowired
private ProblemManageApiService problemManageApiService;
@RequestMapping("/list-problem")
public RestResponse listProblem(ProblemQO problemQO) {
ServiceResponse<List<ProblemDTO>> serviceResponse = problemManageApiService.listProblem(problemQO);
return ResultControllerUtils.commonResult(serviceResponse);
}
@RequestMapping("/get-problem")
public RestResponse getProblem(Integer problemId) {
ServiceResponse<ProblemDTO> serviceResponse = problemManageApiService.getProblem(problemId);
return ResultControllerUtils.commonResult(serviceResponse);
}
@RequestMapping("/reply-problem")
public RestResponse replyProblem(ProblemUserReplyVO problemUserReplyVO) {
problemUserReplyVO.setEnterpriseId(UserDetailUtils.getUserDetail().getEnterpriseId());
problemUserReplyVO.setUserId(UserDetailUtils.getUserDetail().getUserId());
problemUserReplyVO.setUserName(UserDetailUtils.getUserDetail().getUserInfo().getUserName());
ServiceResponse<Void> serviceResponse = problemManageApiService.replyProblem(Arrays.asList(problemUserReplyVO.getProblemIds()), EntityUtil.changeEntityByJSON(ProblemUserReplyDTO.class, problemUserReplyVO));
return ResultControllerUtils.commonResult(serviceResponse);
}
}
package com.gic.evaluate.web.vo;
import java.io.Serializable;
/**
* 管理员回复
* @Description:
* @author zhiwj
* @date 2019-12-26 18:32
*/
public class ProblemUserReplyVO implements Serializable {
private static final long serialVersionUID = -7855916448409509250L;
/**
*
*/
private Integer evaluateReplyId;
private Integer[] problemIds;
/**
* 商户id
*/
private Integer enterpriseId;
/**
* 评论id
*/
private Integer problemId;
/**
* 回复内容
*/
private String replyContent;
/**
*
*/
private Integer userId;
/**
*
*/
private String userName;
public Integer[] getProblemIds() {
return problemIds;
}
public void setProblemIds(Integer[] problemIds) {
this.problemIds = problemIds;
}
public Integer getEvaluateReplyId() {
return evaluateReplyId;
}
public void setEvaluateReplyId(Integer evaluateReplyId) {
this.evaluateReplyId = evaluateReplyId;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getProblemId() {
return problemId;
}
public void setProblemId(Integer problemId) {
this.problemId = problemId;
}
public String getReplyContent() {
return replyContent;
}
public void setReplyContent(String replyContent) {
this.replyContent = replyContent;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
......@@ -18,6 +18,9 @@
<dubbo:reference interface="com.gic.evaluate.service.EvaluateHaobanApiService" id="evaluateHaobanApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.evaluate.service.EvaluateOverviewApiService" id="evaluateOverviewApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.evaluate.service.EvaluateManageApiService" id="evaluateManageApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.evaluate.service.ProblemHaobanApiService" id="problemHaobanApiService" timeout="6000" />
<dubbo:reference interface="com.gic.evaluate.service.ProblemManageApiService" id="problemManageApiService" timeout="6000" />
<dubbo:reference interface="com.gic.log.api.service.LogApiService" id="logApiService" timeout="6000" />
<dubbo:reference interface="com.gic.enterprise.service.DownloadReportApiService" id="downloadReportApiService" timeout="6000" retries="0"/>
</beans>
\ 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