From 8d230f41c87aa5c2befa3f0688d9dd53c9e33190 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 28 Dec 2020 15:42:55 +0800
Subject: [PATCH] modify

---
 zq-erp/src/main/java/com/matrix/system/app/vo/QuestionVo.java             |   75 +++++++++++++++
 zq-erp/src/main/java/com/matrix/system/app/dto/QuestionAnswerDto.java     |   38 +++++++
 zq-erp/src/main/java/com/matrix/system/app/mapper/QuestionMapper.java     |   31 ++++++
 zq-erp/src/main/java/com/matrix/system/app/dto/QuestionAnswerItemDto.java |   56 +++++++++++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java   |   49 ++++++++-
 5 files changed, 241 insertions(+), 8 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java
index 411293c..0a52155 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiVipInfoAction.java
@@ -6,22 +6,22 @@
 import com.matrix.core.tools.WebUtil;
 import com.matrix.system.app.dto.AddVipDto;
 import com.matrix.system.app.dto.ModifyVipDto;
+import com.matrix.system.app.dto.QuestionAnswerDto;
 import com.matrix.system.app.dto.VipInfoListDto;
 import com.matrix.system.app.mapper.MoneyCardUseMapper;
-import com.matrix.system.app.vo.VipCardListVo;
-import com.matrix.system.app.vo.VipInfoDetailVo;
-import com.matrix.system.app.vo.VipInfoListVo;
-import com.matrix.system.app.vo.VipInfoVo;
+import com.matrix.system.app.mapper.QuestionMapper;
+import com.matrix.system.app.vo.*;
 import com.matrix.system.common.bean.CustomerDataDictionary;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.CustomerDataDictionaryDao;
 import com.matrix.system.common.tools.DataAuthUtil;
 import com.matrix.system.hive.action.BaseController;
-import com.matrix.system.hive.bean.MoneyCardUse;
-import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.system.hive.bean.SysVipLevel;
+import com.matrix.system.hive.bean.*;
 import com.matrix.system.hive.dao.MoneyCardUseDao;
+import com.matrix.system.hive.dao.VipAnswerDao;
+import com.matrix.system.hive.plugin.util.CollectionUtils;
 import com.matrix.system.hive.service.MoneyCardUseService;
+import com.matrix.system.hive.service.QuestionSerivce;
 import com.matrix.system.hive.service.SysVipInfoService;
 import com.matrix.system.hive.service.SysVipLevelService;
 import io.swagger.annotations.Api;
@@ -54,6 +54,12 @@
 
     @Autowired
     private MoneyCardUseService moneyCardUseService;
+
+    @Autowired
+    private QuestionSerivce questionSerivce;
+
+    @Autowired
+    private VipAnswerDao vipAnswerDao;
 
     @ApiOperation(value = "获取会员通讯录列表", notes = "获取会员通讯录列表")
     @ApiResponses({
@@ -153,7 +159,7 @@
         return AjaxResult.buildSuccessInstance(sysVipInfoService.findAll(sysVipInfo));
     }
 
-    @ApiOperation(value = "获取会员卡项列表")
+    @ApiOperation(value = "卡项 - 获取会员卡项列表", notes = "卡项 - 获取会员卡项列表")
     @ApiResponses({
             @ApiResponse(code = 200, message = "ok", response = VipCardListVo.class)
     })
@@ -166,4 +172,31 @@
         List<VipCardListVo> dataList = MoneyCardUseMapper.INSTANCE.entitiesToCardListVos(list);
         return AjaxResult.buildSuccessInstance(dataList);
     }
+
+    @ApiOperation(value = "会员档案 - 获取客户档案问题", notes = "会员档案 - 获取客户档案问题")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = QuestionVo.class)
+    })
+    @GetMapping(value = "/findVipQuestions/{vipId}")
+    public AjaxResult findVipQuestions(@PathVariable("vipId") Long vipId) {
+        // 获取会员所有的答案,分类型
+        List<Question> questions = questionSerivce.findByVipId(vipId);
+        AjaxResult result = AjaxResult.buildSuccessInstance("获取成功");
+        List<QuestionVo> list = QuestionMapper.INSTANCE.entitiesToVos(questions);
+        result.putInMap("questions", list);
+        return result;
+    }
+
+    @ApiOperation(value = "会员档案 - 提交会员档案", notes = "会员档案 - 提交会员档案")
+    @PostMapping(value = "/saveVipQuestionsAnswer")
+    public AjaxResult saveVipQuestionsAnswer(@RequestBody QuestionAnswerDto questionAnswerDto) {
+        VipAnswer delAnswer = new VipAnswer();
+        delAnswer.setVipId(questionAnswerDto.getVipId());
+        vipAnswerDao.deleteByModel(delAnswer);
+        if (CollectionUtils.isNotEmpty(questionAnswerDto.getItems())) {
+            List<VipAnswer> vipAnswers = QuestionMapper.INSTANCE.dtosToVipAnswers(questionAnswerDto.getItems());
+            vipAnswerDao.batchInsert(vipAnswers);
+        }
+        return AjaxResult.buildSuccessInstance("档案更新成功");
+    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/QuestionAnswerDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/QuestionAnswerDto.java
new file mode 100644
index 0000000..37df68b
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/QuestionAnswerDto.java
@@ -0,0 +1,38 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2020-12-28
+ **/
+@ApiModel(value = "QuestionAnswerDto", description = "提交客户档案接口参数接收类")
+public class QuestionAnswerDto {
+
+    @NotNull(message = "参数错误")
+    @ApiModelProperty(value = "会员ID")
+    private Long vipId;
+
+    @ApiModelProperty(value = "题目答案列表")
+    private List<QuestionAnswerItemDto> items;
+
+    public Long getVipId() {
+        return vipId;
+    }
+
+    public void setVipId(Long vipId) {
+        this.vipId = vipId;
+    }
+
+    public List<QuestionAnswerItemDto> getItems() {
+        return items;
+    }
+
+    public void setItems(List<QuestionAnswerItemDto> items) {
+        this.items = items;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/QuestionAnswerItemDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/QuestionAnswerItemDto.java
new file mode 100644
index 0000000..9d3c49a
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/QuestionAnswerItemDto.java
@@ -0,0 +1,56 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @author wzy
+ * @date 2020-12-28
+ **/
+@ApiModel(value = "QuestionAnswerItemDto", description = "问题答案接收类")
+public class QuestionAnswerItemDto {
+
+    @ApiModelProperty(value = "问题ID")
+    private Long questionId;
+
+    @ApiModelProperty(value = "会员ID")
+    private Long vipId;
+
+    @ApiModelProperty(value = "答案Ids,逗号隔开")
+    private String answerId;
+
+    @ApiModelProperty(value = "文本答案")
+    private String answerText;
+
+    public Long getVipId() {
+        return vipId;
+    }
+
+    public void setVipId(Long vipId) {
+        this.vipId = vipId;
+    }
+
+    public Long getQuestionId() {
+        return questionId;
+    }
+
+    public void setQuestionId(Long questionId) {
+        this.questionId = questionId;
+    }
+
+    public String getAnswerId() {
+        return answerId;
+    }
+
+    public void setAnswerId(String answerId) {
+        this.answerId = answerId;
+    }
+
+    public String getAnswerText() {
+        return answerText;
+    }
+
+    public void setAnswerText(String answerText) {
+        this.answerText = answerText;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/mapper/QuestionMapper.java b/zq-erp/src/main/java/com/matrix/system/app/mapper/QuestionMapper.java
new file mode 100644
index 0000000..c16b5d8
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/mapper/QuestionMapper.java
@@ -0,0 +1,31 @@
+package com.matrix.system.app.mapper;
+
+import com.matrix.system.app.dto.QuestionAnswerDto;
+import com.matrix.system.app.dto.QuestionAnswerItemDto;
+import com.matrix.system.app.vo.QuestionVo;
+import com.matrix.system.hive.bean.Question;
+import com.matrix.system.hive.bean.VipAnswer;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2020-12-28
+ **/
+@Mapper
+public abstract class QuestionMapper {
+    public static final QuestionMapper INSTANCE = Mappers.getMapper(QuestionMapper.class);
+
+    public abstract QuestionVo entityToVo(Question question);
+
+    public abstract List<QuestionVo> entitiesToVos(List<Question> list);
+
+    @Mapping(source = "questionId", target = "quesionId")
+    public abstract VipAnswer dtoToVipAnswer(QuestionAnswerItemDto questionAnswerDto);
+
+    public abstract List<VipAnswer> dtosToVipAnswers(List<QuestionAnswerItemDto> list);
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/QuestionVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/QuestionVo.java
new file mode 100644
index 0000000..646b368
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/QuestionVo.java
@@ -0,0 +1,75 @@
+package com.matrix.system.app.vo;
+
+import com.matrix.core.tools.StringUtils;
+import com.matrix.system.hive.bean.Answer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2020-12-28
+ **/
+@ApiModel(value = "QuestionVo", description = "会员档案返回参数类")
+public class QuestionVo {
+
+    @ApiModelProperty(value = "问题ID")
+    private Long id;
+
+    @ApiModelProperty(value = "问题")
+    private String question;
+
+    @ApiModelProperty(value = "类型 1-文本 输入框 2-单选 下拉框 3-多选 多选框 4-长文本 文本域 5-标题 只显示即可")
+    private String type;
+
+    private List<Answer> answers;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getQuestion() {
+        return question;
+    }
+
+    public void setQuestion(String question) {
+        this.question = question;
+    }
+
+    public String getType() {
+        if (StringUtils.isNotBlank(type)) {
+            switch (type) {
+                case "文本" :
+                    return "1";
+                case "单选" :
+                    return "2";
+                case "多选" :
+                    return "3";
+                case "长文本" :
+                    return "4";
+                case "标题" :
+                    return "5";
+                default:
+                    return "6";
+            }
+        }
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public List<Answer> getAnswers() {
+        return answers;
+    }
+
+    public void setAnswers(List<Answer> answers) {
+        this.answers = answers;
+    }
+}

--
Gitblit v1.9.1