wzy
2020-12-27 8a58ae03919ae18cf56980f9d6ba8b0a1a82b3cf
modify
6 files added
5 files modified
418 ■■■■■ changed files
zq-erp/src/main/java/com/matrix/system/app/action/ApiSkinCheckAction.java 80 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/dto/SkinCheckListDto.java 22 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/mapper/SysSkinCheckRecordMapper.java 38 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckAnalysisItems.java 77 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDetailVo.java 80 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckDiagnoseItemVo.java 31 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/vo/SkinCheckListVo.java 58 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysSkinCheckRecord.java 11 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopProductDao.java 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysSkinCheckRecordDao.xml 9 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml 10 ●●●●● patch | view | raw | blame | history
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="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">