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; } } zq-erp/src/main/java/com/matrix/system/app/dto/SkinCheckListDto.java
New file @@ -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; } } zq-erp/src/main/java/com/matrix/system/app/mapper/SysSkinCheckRecordMapper.java
New file @@ -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); } zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckAnalysisItems.java
New file @@ -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; } } zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDetailVo.java
New file @@ -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; } } zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDiagnoseItemVo.java
New file @@ -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; } } zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckListVo.java
New file @@ -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; } } 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; } 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); 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="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> 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">