From ef68186f52f3d66ce9b32fda24cc9e9f04d20bb9 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 8 Apr 2023 13:29:51 +0800 Subject: [PATCH] //personMould --- .../controller/PersonMouldController.java | 66 +++++++++ .../iformall/domain/po/sm/MouldPatchSign.java | 3 + .../iformall/domain/po/sm/PersonMould.java | 134 +++++++++++++++++ .../iformall/enums/EnumMouldPatchType.java | 10 +- .../com/iformall/enums/EnumMouldSendType.java | 1 + .../com/iformall/enums/EnumVideoType.java | 51 +++++++ .../iformall/mapper/PersonMouldMapper.java | 23 +++ .../service/sm/PersonMouldService.java | 46 ++++++ .../sm/impl/PersonMouldServiceImpl.java | 121 ++++++++++++++++ .../resources/mapper/MouldPatchSignMapper.xml | 11 +- .../resources/mapper/PersonMouldMapper.xml | 136 ++++++++++++++++++ 11 files changed, 594 insertions(+), 8 deletions(-) create mode 100644 suimangCApi/src/main/java/com/iformall/controller/PersonMouldController.java create mode 100644 suimangService/src/main/java/com/iformall/domain/po/sm/PersonMould.java create mode 100644 suimangService/src/main/java/com/iformall/enums/EnumVideoType.java create mode 100644 suimangService/src/main/java/com/iformall/mapper/PersonMouldMapper.java create mode 100644 suimangService/src/main/java/com/iformall/service/sm/PersonMouldService.java create mode 100644 suimangService/src/main/java/com/iformall/service/sm/impl/PersonMouldServiceImpl.java create mode 100644 suimangService/src/main/resources/mapper/PersonMouldMapper.xml diff --git a/suimangCApi/src/main/java/com/iformall/controller/PersonMouldController.java b/suimangCApi/src/main/java/com/iformall/controller/PersonMouldController.java new file mode 100644 index 0000000..db1d352 --- /dev/null +++ b/suimangCApi/src/main/java/com/iformall/controller/PersonMouldController.java @@ -0,0 +1,66 @@ +package com.iformall.controller; + +import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; +import com.iformall.common.ResultData; +import com.iformall.domain.po.base.BaseEntity; +import com.iformall.domain.po.sm.MouldPatch; +import com.iformall.domain.po.sm.PersonMould; +import com.iformall.domain.po.sm.UserMouldVideo; +import com.iformall.enums.EnumLanguages; +import com.iformall.enums.EnumMouldPatchType; +import com.iformall.enums.EnumMouldSendType; +import com.iformall.enums.EnumaMouldPatchStatus; +import com.iformall.language.LanguageDetect; +import com.iformall.service.sm.MouldPatchService; +import com.iformall.service.sm.MouldPatchSignService; +import com.iformall.service.sm.PersonMouldService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + + +@RestController +@RequestMapping("/api/personPatch") +@Api(description = "模板接口") +public class PersonMouldController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private PersonMouldService personMouldService; + + @Autowired + private MouldPatchSignService mouldPatchSignService; + + @ApiOperation("分页列表接口") + @GetMapping("list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData list(@ModelAttribute PersonMould record, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] MouldPatchController::list"); + if (record == null) record = new PersonMould(); + record.setSendType(EnumMouldSendType.auto.getCode()); + record.setStatus(EnumaMouldPatchStatus.put_on.getCode()); + record.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); + final PageInfo page = personMouldService.cListAsPage(record, pageNum, pageSize); + return new ResultData(page); + } + + @ApiOperation("根据id查询接口") + @GetMapping("/findById") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + public ResultData findById(Long id) { + logger.debug("[" + getIpAddr() + "] MouldPatchController::findById"); + PersonMould personMould = personMouldService.getDetailById(id); + + return new ResultData(personMould); + } + +} diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/MouldPatchSign.java b/suimangService/src/main/java/com/iformall/domain/po/sm/MouldPatchSign.java index 863ac45..adfa21d 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/sm/MouldPatchSign.java +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/MouldPatchSign.java @@ -20,6 +20,9 @@ public class MouldPatchSign extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="",name="title") private String title; + @io.swagger.annotations.ApiModelProperty(value="EnumMouldPatchType",name="type") + private String type; + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") private Date createDate; @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/PersonMould.java b/suimangService/src/main/java/com/iformall/domain/po/sm/PersonMould.java new file mode 100644 index 0000000..4e87009 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/PersonMould.java @@ -0,0 +1,134 @@ +package com.iformall.domain.po.sm; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.common.SortColumn; +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.apache.commons.lang3.StringUtils; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@TableName(value = "person_mould") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class PersonMould extends TenantEntity { + + protected Long id; + + @TableField(exist = false) + @SortColumn(column = "sale_price") + private String salePriceStr; + + @TableField(exist = false) + @SortColumn(column = "price") + private String priceStr; + + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="查询-起始时间",name="startDate") + private Date startDate; + + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="查询-结束时间",name="endDate") + private Date endDate; + + @io.swagger.annotations.ApiModelProperty(value="EnumVideoType",name="videotType") + private Integer videotType; + @io.swagger.annotations.ApiModelProperty(value="封面图",name="coverImg") + private String coverImg; + @io.swagger.annotations.ApiModelProperty(value="多封面图",name="coverPicture") + private String coverPicture; + @io.swagger.annotations.ApiModelProperty(value="详情多图",name="detailPicture") + private String detailPicture; + @io.swagger.annotations.ApiModelProperty(value="名称",name="title") + @Excel(name="名称",width = 20,orderNum = "1") + private String title; + @io.swagger.annotations.ApiModelProperty(value="副标题",name="subTitle") + private String subTitle; + + @io.swagger.annotations.ApiModelProperty(value="EnumSex",name="sex") + private Integer sex; + @io.swagger.annotations.ApiModelProperty(value="年龄",name="age") + private Integer age; + @io.swagger.annotations.ApiModelProperty(value="EnumColour",name="colour") + private Integer colour; + + @TableField(exist = false) + private String colourStr; + + @io.swagger.annotations.ApiModelProperty(value="标签",name="sceneSign") + private String sceneSign; + + @TableField(exist = false) + private List sceneSignList; + + public List getSceneSignList(){ + if(StringUtils.isNotBlank(this.getSceneSign())){ + try{ + List longs = JSONObject.parseArray(this.getSceneSign(), Long.class); + if(longs != null && longs.size() > 0){ + return longs; + } + }catch(Exception e){ + } + } + return null; + } + + @TableField(exist = false) + private List mouldPatchSign; + + @io.swagger.annotations.ApiModelProperty(value="售价",name="salePrice") + @Excel(name="售价(分)",width = 20,orderNum = "3") + private Integer salePrice; + + @io.swagger.annotations.ApiModelProperty(value="须知",name="detail") + private String detail; + @io.swagger.annotations.ApiModelProperty(value="原价",name="price") + @Excel(name="原价(分)",width = 20,orderNum = "2") + private Integer price; + + @io.swagger.annotations.ApiModelProperty(value="EnumMouldSendType 1.系统模板",name="sendType") + private Integer sendType; + + @io.swagger.annotations.ApiModelProperty(value="购买须知",name="remark") + private String remark; + + @io.swagger.annotations.ApiModelProperty(value="模板第三方Id",name="mouldSmId") + private String mouldSmId; + @io.swagger.annotations.ApiModelProperty(value="素材",name="material") + private String material; + + @io.swagger.annotations.ApiModelProperty(value="EnumaMouldPatchStatus 状态(-1:全部,0:草稿/待生效,1:已生效,2:已失效,3:已作废)",name="status") + private Integer status; + @io.swagger.annotations.ApiModelProperty(value="上架时间",name="putonDate") + private Date putonDate; + + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") + private Date createDate; + @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") + private Date updateDate; + + + public String getSalePriceStr() { + if(salePrice!=null) { + salePriceStr = new BigDecimal(salePrice).divide(new BigDecimal(100)).toString(); + } + return salePriceStr; + } + + public String getPriceStr() { + if(price!=null) { + priceStr = new BigDecimal(price).divide(new BigDecimal(100)).toString(); + } + return priceStr; + } + +} diff --git a/suimangService/src/main/java/com/iformall/enums/EnumMouldPatchType.java b/suimangService/src/main/java/com/iformall/enums/EnumMouldPatchType.java index 1805ddc..70b0fca 100644 --- a/suimangService/src/main/java/com/iformall/enums/EnumMouldPatchType.java +++ b/suimangService/src/main/java/com/iformall/enums/EnumMouldPatchType.java @@ -10,11 +10,11 @@ public enum EnumMouldPatchType { // 1:人物模板,2:声音模板,3:身体模板,4:背景模板 - person_mould(1, "人物模板"), - voice_mould(2, "声音模板"), - body_mould(3, "身体模板"), - background_mould(4, "背景模板"), - material_mould(5, "素材模板"), + person_mould(1, "数字人"), + voice_mould(2, "声音"), +// body_mould(3, "身体模板"), + background_mould(4, "背景"), + material_mould(5, "素材"), ; public static EnumMouldPatchType getEnum(Integer code) { diff --git a/suimangService/src/main/java/com/iformall/enums/EnumMouldSendType.java b/suimangService/src/main/java/com/iformall/enums/EnumMouldSendType.java index 0c58693..7c78a44 100644 --- a/suimangService/src/main/java/com/iformall/enums/EnumMouldSendType.java +++ b/suimangService/src/main/java/com/iformall/enums/EnumMouldSendType.java @@ -7,6 +7,7 @@ public enum EnumMouldSendType { auto(1,"系统模板"), buy(2, "收费模板"), + build(3, "自建模板"), ; public static EnumMouldSendType getEnum(Integer code) { diff --git a/suimangService/src/main/java/com/iformall/enums/EnumVideoType.java b/suimangService/src/main/java/com/iformall/enums/EnumVideoType.java new file mode 100644 index 0000000..990471d --- /dev/null +++ b/suimangService/src/main/java/com/iformall/enums/EnumVideoType.java @@ -0,0 +1,51 @@ +package com.iformall.enums; + +import java.util.ArrayList; +import java.util.List; + +/** + * + */ +public enum EnumVideoType { + + // 1:竖版 + // 2:横版 + + VERTICAL_PLATE(1, "竖版"), + HORIZONTAL_PLATE(2, "横版"), + ; + + public static EnumVideoType getEnum(Integer code) { + for (EnumVideoType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + public static List getAllCodes(){ + List codes = new ArrayList<>(); + for (EnumVideoType value : values()) { + codes.add(value.getCode()); + } + return codes; + } + + private Integer code; + private String message; + + EnumVideoType(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } + +} diff --git a/suimangService/src/main/java/com/iformall/mapper/PersonMouldMapper.java b/suimangService/src/main/java/com/iformall/mapper/PersonMouldMapper.java new file mode 100644 index 0000000..f279f8a --- /dev/null +++ b/suimangService/src/main/java/com/iformall/mapper/PersonMouldMapper.java @@ -0,0 +1,23 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.sm.MouldPatch; +import com.iformall.domain.po.sm.PersonMould; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface PersonMouldMapper extends CommonMapper { + + List findList(PersonMould record); + + int deleteById(@Param("id")Long id); + + /** + * c端列表查询,尽量减少字段 + * @param record + * @return + */ + List findCList(PersonMould record); + +} diff --git a/suimangService/src/main/java/com/iformall/service/sm/PersonMouldService.java b/suimangService/src/main/java/com/iformall/service/sm/PersonMouldService.java new file mode 100644 index 0000000..c48d90c --- /dev/null +++ b/suimangService/src/main/java/com/iformall/service/sm/PersonMouldService.java @@ -0,0 +1,46 @@ +package com.iformall.service.sm; + +import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; +import com.iformall.domain.po.sm.MouldPatch; +import com.iformall.domain.po.sm.PersonMould; + +public interface PersonMouldService { + + /** + * 根据实体查询分页列表 + * + * @param record + * @param pageIndex + * @param pageSize + * @return + */ + PageInfo listAsPage(PersonMould record, Integer pageIndex, Integer pageSize); + PageInfo cListAsPage(PersonMould record, Integer pageIndex, Integer pageSize); + + /** + * 根据Id获得实体 + * + * @param id + * @return + */ + PersonMould getById(Long id); + PersonMould getDetailById(Long id); + + /** + * 保存或更新实体 + * + * @param record + */ + ResultData saveOrUpdate(PersonMould record); + + /** + * 根据Id删除实体 + * + * @param id + */ + void deleteById(Long id); + + void updateOnline(PersonMould record); + +} diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/PersonMouldServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/PersonMouldServiceImpl.java new file mode 100644 index 0000000..4c8f97f --- /dev/null +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/PersonMouldServiceImpl.java @@ -0,0 +1,121 @@ +package com.iformall.service.sm.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.iformall.common.IdWorker; +import com.iformall.common.ResultData; +import com.iformall.domain.po.sm.MouldPatch; +import com.iformall.domain.po.sm.MouldPatchSign; +import com.iformall.domain.po.sm.PersonMould; +import com.iformall.enums.EnumColour; +import com.iformall.enums.EnumMouldSendType; +import com.iformall.enums.EnumaMouldPatchStatus; +import com.iformall.mapper.MouldPatchMapper; +import com.iformall.mapper.PersonMouldMapper; +import com.iformall.service.sm.MouldPatchService; +import com.iformall.service.sm.MouldPatchSignService; +import com.iformall.service.sm.PersonMouldService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + + +@Service +public class PersonMouldServiceImpl implements PersonMouldService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + PersonMouldMapper personMouldMapper; + + @Autowired + MouldPatchSignService mouldPatchSignService; + + + @Override + public PageInfo listAsPage(PersonMould record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> personMouldMapper.findList(record)); + } + + @Override + public PageInfo cListAsPage(PersonMould record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> personMouldMapper.findCList(record)); + } + + @Override + public PersonMould getById(Long id) { + return personMouldMapper.selectById(id); + } + + @Override + public PersonMould getDetailById(Long id) { + PersonMould personMould = getById(id); + if(personMould.getSceneSignList() != null && !personMould.getSceneSignList().isEmpty()){ + MouldPatchSign signQ = new MouldPatchSign(); + signQ.setIds(personMould.getSceneSignList()); + List signList = mouldPatchSignService.getList(signQ); + personMould.setMouldPatchSign(signList); + } + if(personMould.getColour() != null){ + personMould.setColourStr(EnumColour.getEnum(personMould.getColour()).getMessage()); + } + return personMould; + } + + @Override + public ResultData saveOrUpdate(PersonMould record) { + //金额处理 + if (StringUtils.isNotEmpty(record.getSalePriceStr())) { + record.setSalePrice(new BigDecimal(record.getSalePriceStr()).multiply(new BigDecimal(100)).intValue()); + } + if(record.getSalePrice() > 0){ + record.setSendType(EnumMouldSendType.buy.getCode()); + }else{ + record.setSendType(EnumMouldSendType.auto.getCode()); + } + if (StringUtils.isNotEmpty(record.getPriceStr())) { + record.setPrice(new BigDecimal(record.getPriceStr()).multiply(new BigDecimal(100)).intValue()); + } + + Date now = new Date(); + if (record.getId() == null) { + //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + if(record.getStatus() == null){ + record.setStatus(EnumaMouldPatchStatus.draft.getCode()); + } + record.setCreateDate(now); + record.setUpdateDate(now); + personMouldMapper.insert(record); + } else { + record.setUpdateDate(now); + personMouldMapper.updateById(record); + } + return new ResultData(); + } + + @Override + public void deleteById(Long id) { + personMouldMapper.deleteById(id); + } + + @Override + public void updateOnline(PersonMould record) { + Date now = new Date(); + PersonMould personMouldUpd = new PersonMould(); + personMouldUpd.setId(record.getId()); + personMouldUpd.setStatus(record.getStatus()); + if(EnumaMouldPatchStatus.put_on.getCode().equals(personMouldUpd.getStatus())){ + personMouldUpd.setPutonDate(now); + } + personMouldUpd.setUpdateDate(now); + personMouldMapper.updateById(personMouldUpd); + } + +} diff --git a/suimangService/src/main/resources/mapper/MouldPatchSignMapper.xml b/suimangService/src/main/resources/mapper/MouldPatchSignMapper.xml index 515da2b..e1218bc 100644 --- a/suimangService/src/main/resources/mapper/MouldPatchSignMapper.xml +++ b/suimangService/src/main/resources/mapper/MouldPatchSignMapper.xml @@ -3,11 +3,12 @@ + - `id`,`title` + `id`,`type` ,`title` @@ -16,8 +17,12 @@ and `id` = #{id} - - + + + and `type` = #{type} + + + and `title` like concat('%', #{title},'%') diff --git a/suimangService/src/main/resources/mapper/PersonMouldMapper.xml b/suimangService/src/main/resources/mapper/PersonMouldMapper.xml new file mode 100644 index 0000000..2199efa --- /dev/null +++ b/suimangService/src/main/resources/mapper/PersonMouldMapper.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `id`, `tenant_id`, `parent_tenant_id`, `video_type`, `cover_img`, `cover_picture`, `detail_picture`, + `title`, `sub_title`, `sex`, `age`, `colour`, `languages`, `scene_sign`, `sale_price`, `price`, + `send_type`, `detail`, `remark`, `mould_sm_id`,`material`, `status`, `puton_date`, `create_date`, `update_date` + + + + where `is_del` = 0 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `video_type` = #{videoType} + + + + and `title` like concat('%', #{title},'%') + + + + and `sub_title` like concat('%', #{subTitle},'%') + + + + and `sex` = #{sex} + + + + and `age` = #{age} + + + + and `colour` = #{colour} + + + + and `languages` = #{languages} + + + + and JSON_CONTAINS(scene_sign,json_array(#{sceneSign})) + + + + and `sale_price` = #{salePrice} + + + + and `send_type` = #{sendType} + + + + and `price` = #{price} + + + + and `status` = #{status} + + + + and create_date >= #{startDate} + + + and create_date < #{endDate} + + + + and id in + + #{idItem} + + + + order by ${sortColumns} + + + + + + update person_mould set is_del = 1,update_date = now() where id = #{id} + + + + +