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