From 8a58ae03919ae18cf56980f9d6ba8b0a1a82b3cf Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Sun, 27 Dec 2020 23:01:48 +0800
Subject: [PATCH] modify

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopProductDao.java          |    2 
 zq-erp/src/main/java/com/matrix/system/app/mapper/SysSkinCheckRecordMapper.java |   38 +++++
 zq-erp/src/main/resources/mybatis/mapper/hive/SysSkinCheckRecordDao.xml         |    9 +
 zq-erp/src/main/java/com/matrix/system/app/dto/SkinCheckListDto.java            |   22 +++
 zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml             |   10 +
 zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckListVo.java              |   58 ++++++++
 zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDetailVo.java            |   80 +++++++++++
 zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDiagnoseItemVo.java      |   31 ++++
 zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckAnalysisItems.java       |   77 +++++++++++
 zq-erp/src/main/java/com/matrix/system/hive/bean/SysSkinCheckRecord.java        |   11 +
 zq-erp/src/main/java/com/matrix/system/app/action/ApiSkinCheckAction.java       |   80 +++++++++++
 11 files changed, 414 insertions(+), 4 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiSkinCheckAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiSkinCheckAction.java
index 78dbbc9..1763057 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiSkinCheckAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiSkinCheckAction.java
@@ -1,8 +1,28 @@
 package com.matrix.system.app.action;
 
+import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.pojo.PaginationVO;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.system.app.dto.SkinCheckListDto;
+import com.matrix.system.app.mapper.SysSkinCheckRecordMapper;
+import com.matrix.system.app.vo.SkinCheckAnalysisItems;
+import com.matrix.system.app.vo.SkinCheckDetailVo;
+import com.matrix.system.app.vo.SkinCheckDiagnoseItemVo;
+import com.matrix.system.app.vo.SkinCheckListVo;
+import com.matrix.system.hive.bean.SysSkinCheckRecord;
+import com.matrix.system.hive.dao.SysSkinCheckRecordDao;
+import com.matrix.system.hive.plugin.util.CollectionUtils;
+import com.matrix.system.shopXcx.bean.ShopProduct;
+import com.matrix.system.shopXcx.dao.ShopProductDao;
 import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * @author wzy
@@ -13,4 +33,60 @@
 @RequestMapping(value = "/api/skinCheck")
 public class ApiSkinCheckAction {
 
+    @Autowired
+    private SysSkinCheckRecordDao sysSkinCheckRecordDao;
+
+    @Autowired
+    private ShopProductDao shopProductDao;
+
+    @ApiOperation(value = "获取皮肤检测列表", notes = "获取皮肤检测列表")
+    @PostMapping(value = "/findSkinCheckList")
+    public AjaxResult findSkinCheckList(@RequestBody @Validated SkinCheckListDto skinCheckListDto) {
+        SysSkinCheckRecord sysSkinCheckRecord = new SysSkinCheckRecord();
+        sysSkinCheckRecord.setUserId(skinCheckListDto.getVipId());
+
+        PaginationVO pageVo = new PaginationVO();
+        pageVo.setOffset((skinCheckListDto.getPageNum() - 1) * skinCheckListDto.getPageSize());
+        pageVo.setLimit(skinCheckListDto.getPageSize());
+        pageVo.setSort("t1.create_time");
+        pageVo.setOrder("desc");
+
+        List<SysSkinCheckRecord> dataList = sysSkinCheckRecordDao.selectInPage(sysSkinCheckRecord, pageVo);
+        List<SkinCheckListVo> list = SysSkinCheckRecordMapper.INSTANCE.entitiesToListVos(dataList);
+        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, list,
+                sysSkinCheckRecordDao.selectTotalRecord(sysSkinCheckRecord));
+        return result;
+    }
+
+
+    @ApiOperation(value = "获取皮肤检测详情", notes = "获取皮肤检测详情")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = SkinCheckDetailVo.class)
+    })
+    @GetMapping(value = "/findSkinCheckDetail/{id}")
+    public AjaxResult findSkinCheckDetail(@PathVariable("id") Long id) {
+
+        SysSkinCheckRecord sysSkinCheckRecord = sysSkinCheckRecordDao.selectById(id);
+
+        SysSkinCheckRecordMapper instance = SysSkinCheckRecordMapper.INSTANCE;
+        SkinCheckDetailVo detail = instance.entityToDetailVo(sysSkinCheckRecord);
+        detail.setSex(sysSkinCheckRecord.getSex());
+        List<SkinCheckDiagnoseItemVo> diagnoseItems = instance.entitiesToDiagnoseItems(sysSkinCheckRecord.getAnalysisDetail());
+        List<SkinCheckAnalysisItems> analysisItems = instance.entitiesToAnalysisItems(sysSkinCheckRecord.getSkinDetails());
+
+        analysisItems.forEach(item -> {
+            List<Integer> ids = StringUtils.strToCollToInteger(item.getProductIds(), ",");
+            if(CollectionUtils.isNotEmpty(ids)){
+                List<String> shopProducts = shopProductDao.selectProductNameByIds(ids);
+                item.setProducts(shopProducts);
+            }
+        });
+
+        detail.setDiagnoseItems(diagnoseItems);
+        detail.setAnalysisItems(analysisItems);
+
+        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
+        ajaxResult.putInMap("detail", detail);
+        return ajaxResult;
+    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/SkinCheckListDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/SkinCheckListDto.java
new file mode 100644
index 0000000..5540113
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/SkinCheckListDto.java
@@ -0,0 +1,22 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+@ApiModel(value = "SkinCheckListDto", description = "皮肤检测列表接收参数类")
+public class SkinCheckListDto  extends BasePageDto{
+
+    @NotNull(message = "参数错误")
+    @ApiModelProperty(value = "会员ID", example = "361")
+    private Long vipId;
+
+    public Long getVipId() {
+        return vipId;
+    }
+
+    public void setVipId(Long vipId) {
+        this.vipId = vipId;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/mapper/SysSkinCheckRecordMapper.java b/zq-erp/src/main/java/com/matrix/system/app/mapper/SysSkinCheckRecordMapper.java
new file mode 100644
index 0000000..411a311
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/mapper/SysSkinCheckRecordMapper.java
@@ -0,0 +1,38 @@
+package com.matrix.system.app.mapper;
+
+import com.matrix.system.app.vo.SkinCheckAnalysisItems;
+import com.matrix.system.app.vo.SkinCheckDetailVo;
+import com.matrix.system.app.vo.SkinCheckDiagnoseItemVo;
+import com.matrix.system.app.vo.SkinCheckListVo;
+import com.matrix.system.hive.bean.SysSkinCheckRecord;
+import com.matrix.system.hive.bean.SysSkinDetail;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+@Mapper
+public abstract class SysSkinCheckRecordMapper {
+    public static final SysSkinCheckRecordMapper INSTANCE = Mappers.getMapper(SysSkinCheckRecordMapper.class);
+
+    public abstract SkinCheckListVo entityToSkinCheckListVo(SysSkinCheckRecord sysSkinCheckRecord);
+
+    public abstract List<SkinCheckListVo> entitiesToListVos(List<SysSkinCheckRecord> list);
+
+    @Mapping(target = "sex", source = "ext2")
+    @Mapping(target = "vipName", source = "userName")
+    public abstract SkinCheckDetailVo entityToDetailVo(SysSkinCheckRecord sysSkinCheckRecord);
+
+    @Mapping(target = "title", source = "symptom")
+    public abstract SkinCheckDiagnoseItemVo entityToDiagnoseItem(SysSkinDetail sysSkinDetail);
+
+    public abstract List<SkinCheckDiagnoseItemVo> entitiesToDiagnoseItems(List<SysSkinDetail> list);
+
+    @Mapping(target = "title", source = "symptom")
+    public abstract SkinCheckAnalysisItems entityToAnalysisItem(SysSkinDetail sysSkinDetail);
+
+    public abstract List<SkinCheckAnalysisItems> entitiesToAnalysisItems(List<SysSkinDetail> list);
+
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckAnalysisItems.java b/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckAnalysisItems.java
new file mode 100644
index 0000000..2f1806f
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckAnalysisItems.java
@@ -0,0 +1,77 @@
+package com.matrix.system.app.vo;
+
+import com.matrix.system.shopXcx.bean.ShopProduct;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+@ApiModel(value = "SkinCheckAnalysisItems", description = "问题分析返回接口类")
+public class SkinCheckAnalysisItems {
+
+    @ApiModelProperty(value = "图片")
+    private String img;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "问题分析")
+    private String analysis;
+
+    @ApiModelProperty(value = "解决办法")
+    private String solution;
+
+    @ApiModelProperty(hidden = true)
+    private String productIds;
+
+    @ApiModelProperty(value = "产品列表")
+    private List<String> products;
+
+    public String getProductIds() {
+        return productIds;
+    }
+
+    public void setProductIds(String productIds) {
+        this.productIds = productIds;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getAnalysis() {
+        return analysis;
+    }
+
+    public void setAnalysis(String analysis) {
+        this.analysis = analysis;
+    }
+
+    public String getSolution() {
+        return solution;
+    }
+
+    public void setSolution(String solution) {
+        this.solution = solution;
+    }
+
+    public List<String> getProducts() {
+        return products;
+    }
+
+    public void setProducts(List<String> products) {
+        this.products = products;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDetailVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDetailVo.java
new file mode 100644
index 0000000..cec1053
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDetailVo.java
@@ -0,0 +1,80 @@
+package com.matrix.system.app.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.matrix.core.tools.DateUtil;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+import java.util.List;
+
+@ApiModel(value = "SkinCheckDetailVo", description = "皮肤检测详情返回接口类")
+public class SkinCheckDetailVo {
+
+    @ApiModelProperty(value = "会员姓名")
+    private String vipName;
+
+    @ApiModelProperty(value = "头像")
+    private String photo;
+
+    @ApiModelProperty(value = "性别")
+    private String sex;
+
+    @JsonFormat(pattern = DateUtil.DATE_FORMAT_DD, timezone = "GMT+8")
+    @ApiModelProperty(value = "检测时间")
+    private Date checkTime;
+
+    @ApiModelProperty(value = "诊断结果")
+    List<SkinCheckDiagnoseItemVo> diagnoseItems;
+
+    @ApiModelProperty(value = "问题分析")
+    List<SkinCheckAnalysisItems> analysisItems;
+
+    public String getVipName() {
+        return vipName;
+    }
+
+    public void setVipName(String vipName) {
+        this.vipName = vipName;
+    }
+
+    public String getPhoto() {
+        return photo;
+    }
+
+    public void setPhoto(String photo) {
+        this.photo = photo;
+    }
+
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+
+    public Date getCheckTime() {
+        return checkTime;
+    }
+
+    public void setCheckTime(Date checkTime) {
+        this.checkTime = checkTime;
+    }
+
+    public List<SkinCheckDiagnoseItemVo> getDiagnoseItems() {
+        return diagnoseItems;
+    }
+
+    public void setDiagnoseItems(List<SkinCheckDiagnoseItemVo> diagnoseItems) {
+        this.diagnoseItems = diagnoseItems;
+    }
+
+    public List<SkinCheckAnalysisItems> getAnalysisItems() {
+        return analysisItems;
+    }
+
+    public void setAnalysisItems(List<SkinCheckAnalysisItems> analysisItems) {
+        this.analysisItems = analysisItems;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDiagnoseItemVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDiagnoseItemVo.java
new file mode 100644
index 0000000..1f5cbcc
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDiagnoseItemVo.java
@@ -0,0 +1,31 @@
+package com.matrix.system.app.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel(value = "SkinCheckDiagnoseItemVo", description = "诊断结果返回参数类")
+public class SkinCheckDiagnoseItemVo {
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "百分比")
+    private Double percentage;
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+
+    public Double getPercentage() {
+        return percentage;
+    }
+
+    public void setPercentage(Double percentage) {
+        this.percentage = percentage;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckListVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckListVo.java
new file mode 100644
index 0000000..0ef5c5c
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckListVo.java
@@ -0,0 +1,58 @@
+package com.matrix.system.app.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.matrix.core.tools.DateUtil;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+@ApiModel(value = "SkinCheckListVo", description = "皮肤检测列表返回参数类")
+public class SkinCheckListVo {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "检测人员")
+    private String checkUserName;
+
+    @ApiModelProperty(value = "检测门店")
+    private String shopName;
+
+    @JsonFormat(pattern = DateUtil.DATE_FORMAT_DD, timezone = "GMT+8")
+    @ApiModelProperty(value = "检测时间")
+    private Date checkTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+
+    public String getCheckUserName() {
+        return checkUserName;
+    }
+
+    public void setCheckUserName(String checkUserName) {
+        this.checkUserName = checkUserName;
+    }
+
+    public String getShopName() {
+        return shopName;
+    }
+
+    public void setShopName(String shopName) {
+        this.shopName = shopName;
+    }
+
+    public Date getCheckTime() {
+        return checkTime;
+    }
+
+    public void setCheckTime(Date checkTime) {
+        this.checkTime = checkTime;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysSkinCheckRecord.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysSkinCheckRecord.java
index 6fac369..62d9262 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysSkinCheckRecord.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysSkinCheckRecord.java
@@ -98,11 +98,22 @@
 	private String userName;
 
 	@Extend
+	private String sex;
+
+	@Extend
 	private String shopName;
 
 	@Extend
 	private String checkUserName;
 
+	public String getSex() {
+		return sex;
+	}
+
+	public void setSex(String sex) {
+		this.sex = sex;
+	}
+
 	public Date getBeginTime() {
 		return beginTime;
 	}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopProductDao.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopProductDao.java
index 176f9c0..653bfde 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopProductDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopProductDao.java
@@ -53,6 +53,8 @@
 	 */
 	List<ShopProduct> selectByIds(@Param("ids") List<Integer> ids);
 
+	List<String> selectProductNameByIds(@Param("ids") List<Integer> ids);
+
 	List<ShopProduct> selectProductByAttrid(@Param("attrId") String attrId,@Param("shopId") Long shopId);
 
 
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysSkinCheckRecordDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysSkinCheckRecordDao.xml
index 73519e7..cf75379 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysSkinCheckRecordDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysSkinCheckRecordDao.xml
@@ -18,11 +18,13 @@
 		<result property="shopName" column="shopName" />
 		<result property="telphone" column="telphone" />
 		<result property="checkUserName" column="checkUserName" />
+		<result property="userName" column="userName" />
 			<result property="ext1" column="ext1" />
 			<result property="ext2" column="ext2" />
 			<result property="ext3" column="ext3" />
 			<result property="ext4" column="ext4" />
-			<result property="ext5" column="ext5" />
+		<result property="ext5" column="ext5" />
+		<result property="sex" column="sex" />
 		<collection property="skinDetails" ofType="com.matrix.system.hive.bean.SysSkinDetail" column="id">
 			<id property="id" column="detailId" />
 			<result property="checkId" column="check_id" />
@@ -356,10 +358,13 @@
 			t3.symptom analysisSymptom,
 			t3.percentage analysisPercentage,
 			t3.analysis analysisAnalysis,
-			t3.img analysisImg
+			t3.img analysisImg,
+		    t4.vip_name userName,
+		    t4.sex sex
 		from sys_skin_check_record t1
 		left join sys_skin_detail t2 on t1.id=t2.check_id and t2.t1=1
 		left join sys_skin_detail t3 on t1.id=t3.check_id and t3.t1=2
+		left join sys_vip_info t4 on t1.user_id=t4.id
 		where  t1.id=#{id}
 	</select>	
 	
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml
index f12db2c..2c2cf8c 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml
@@ -846,6 +846,16 @@
         </foreach>
     </select>
 
+    <select id="selectProductNameByIds" resultType="java.lang.String">
+        select
+         title
+        from shop_product
+        where id in
+        <foreach collection="ids" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
+
 
     <!-- 根据id 锁表查询-->
     <select id="selectForUpdate" resultMap="ShopProductMap">

--
Gitblit v1.9.1