From 8d966ffd9941026f9b3b1a876de9990da1ca6aea Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期三, 14 五月 2025 09:28:04 +0800
Subject: [PATCH] 片场管理
---
src/main/java/com/mzl/flower/web/content/FilmsetController.java | 90 ++++++++++++
src/main/resources/keystore.p12 | 0
src/main/resources/application-prod.yml | 6
src/main/resources/application-test.yml | 2
src/main/java/com/mzl/flower/dto/request/content/QueryFilmsetDTO.java | 33 ++++
src/main/java/com/mzl/flower/mapper/content/FilmsetMapper.java | 19 ++
src/main/java/com/mzl/flower/config/ResourceServerConfig.java | 2
src/main/resources/mapper/content/FilmsetMapper.xml | 51 +++++++
src/main/java/com/mzl/flower/dto/response/content/FilmsetDTO.java | 46 ++++++
src/main/java/com/mzl/flower/entity/content/Filmset.java | 33 ++++
src/main/java/com/mzl/flower/service/content/FilmsetService.java | 119 +++++++++++++++++
src/main/java/com/mzl/flower/config/PyamentV3Configurer.java | 4
src/main/java/com/mzl/flower/service/register/SmsService.java | 10 +
13 files changed, 407 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/mzl/flower/config/PyamentV3Configurer.java b/src/main/java/com/mzl/flower/config/PyamentV3Configurer.java
index 7442d02..03c5c94 100644
--- a/src/main/java/com/mzl/flower/config/PyamentV3Configurer.java
+++ b/src/main/java/com/mzl/flower/config/PyamentV3Configurer.java
@@ -20,8 +20,8 @@
public static String merchantId = "1661512517";
/** 商户API私钥路径 */
- //public static String privateKeyPath = "/opt/pay/wx/v3/apiclient_key.pem";
- public static String privateKeyPath = "D://Soft//apiclient_key.pem";
+ public static String privateKeyPath = "/opt/pay/wx/v3/apiclient_key.pem";
+ //public static String privateKeyPath = "E://huamanyuan/apiclient_key.pem";
/** 商户证书序列号 */
public static String merchantSerialNumber = "37A08A552943EF34883614DBC8DE281598148757";
diff --git a/src/main/java/com/mzl/flower/config/ResourceServerConfig.java b/src/main/java/com/mzl/flower/config/ResourceServerConfig.java
index 6869517..249e5d4 100644
--- a/src/main/java/com/mzl/flower/config/ResourceServerConfig.java
+++ b/src/main/java/com/mzl/flower/config/ResourceServerConfig.java
@@ -54,7 +54,7 @@
.antMatchers("/api/customer/flower/list").permitAll()
.antMatchers("/api/customer/flower/list/view").permitAll()
.antMatchers("/api/customer/flower/up/stock").permitAll()
-// .antMatchers("/api/customer/info/**").permitAll()
+ .antMatchers("/api/filmset/**").permitAll()
.antMatchers("api/pub/customer/home/**").permitAll()
.antMatchers("/api/customer/point/goods/**").permitAll()
.antMatchers("/api/upload/oss/file").permitAll()
diff --git a/src/main/java/com/mzl/flower/dto/request/content/QueryFilmsetDTO.java b/src/main/java/com/mzl/flower/dto/request/content/QueryFilmsetDTO.java
new file mode 100644
index 0000000..e9f4de4
--- /dev/null
+++ b/src/main/java/com/mzl/flower/dto/request/content/QueryFilmsetDTO.java
@@ -0,0 +1,33 @@
+package com.mzl.flower.dto.request.content;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class QueryFilmsetDTO {
+
+
+ @ApiModelProperty("标题")
+ private String title;
+
+ @ApiModelProperty("片场类型(FILMSET_TYPE)")
+ private String type;
+
+
+ @ApiModelProperty("发布状态(COMMON_PUBLISH_STATUS)")
+ private String status;
+
+ @ApiModelProperty("创建日期(yyyy-mm-dd)")
+ private String createDateBeginStr;
+
+ @ApiModelProperty("创建日期(yyyy-mm-dd)")
+ private String createDateEndStr;
+
+ @ApiModelProperty(value = "创建日期(yyyy-mm-dd)",hidden = true)
+ private LocalDateTime createDateBegin;
+
+ @ApiModelProperty(value = "创建日期(yyyy-mm-dd)", hidden = true)
+ private LocalDateTime createDateEnd;
+}
diff --git a/src/main/java/com/mzl/flower/dto/response/content/FilmsetDTO.java b/src/main/java/com/mzl/flower/dto/response/content/FilmsetDTO.java
new file mode 100644
index 0000000..bac7a5e
--- /dev/null
+++ b/src/main/java/com/mzl/flower/dto/response/content/FilmsetDTO.java
@@ -0,0 +1,46 @@
+package com.mzl.flower.dto.response.content;
+
+import com.mzl.flower.base.AbstractTransDTO;
+import com.mzl.flower.base.annotation.DictTrans;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+public class FilmsetDTO extends AbstractTransDTO {
+
+ private Long id;
+
+ @ApiModelProperty("标题")
+ private String title;
+
+ @ApiModelProperty("封面")
+ private String cover;
+
+ @ApiModelProperty("内容")
+ private String content;
+
+ @ApiModelProperty("发布状态(COMMON_PUBLISH_STATUS)")
+ @DictTrans(target = "statusStr", codeType = "COMMON_PUBLISH_STATUS")
+ private String status;
+
+ @ApiModelProperty("发布状态(COMMON_PUBLISH_STATUS)")
+ private String statusStr;
+
+ @ApiModelProperty("发布日期")
+ private LocalDate publishDate;
+
+ @ApiModelProperty("创建日期")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("修改日期")
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("公告类型(ANNOUNCEMENT_TYPE)")
+ @DictTrans(target = "typeStr", codeType = "ANNOUNCEMENT_TYPE")
+ private String type;
+
+ private String typeStr;
+}
diff --git a/src/main/java/com/mzl/flower/entity/content/Filmset.java b/src/main/java/com/mzl/flower/entity/content/Filmset.java
new file mode 100644
index 0000000..98a6423
--- /dev/null
+++ b/src/main/java/com/mzl/flower/entity/content/Filmset.java
@@ -0,0 +1,33 @@
+package com.mzl.flower.entity.content;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.mzl.flower.base.BaseAutoEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+@TableName("t_filmset")
+public class Filmset extends BaseAutoEntity {
+
+ @ApiModelProperty("标题")
+ private String title;
+
+ @ApiModelProperty("封面")
+ private String cover;
+
+ @ApiModelProperty("内容")
+ private String content;
+
+ @ApiModelProperty("发布状态(COMMON_PUBLISH_STATUS)")
+ private String status;
+
+ @ApiModelProperty("发布日期")
+ private LocalDate publishDate;
+
+ @ApiModelProperty("公告类型(FILMSET_TYPE)")
+ private String type;
+
+}
diff --git a/src/main/java/com/mzl/flower/mapper/content/FilmsetMapper.java b/src/main/java/com/mzl/flower/mapper/content/FilmsetMapper.java
new file mode 100644
index 0000000..b1849c5
--- /dev/null
+++ b/src/main/java/com/mzl/flower/mapper/content/FilmsetMapper.java
@@ -0,0 +1,19 @@
+package com.mzl.flower.mapper.content;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mzl.flower.dto.request.content.QueryFilmsetDTO;
+import com.mzl.flower.dto.response.content.FilmsetDTO;
+import com.mzl.flower.entity.content.Filmset;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface FilmsetMapper extends BaseMapper<Filmset> {
+
+ List<FilmsetDTO> queryPage(@Param("dto") QueryFilmsetDTO dto, Page page);
+
+ List<FilmsetDTO> queryList(@Param("dto") QueryFilmsetDTO dto);
+}
diff --git a/src/main/java/com/mzl/flower/service/content/FilmsetService.java b/src/main/java/com/mzl/flower/service/content/FilmsetService.java
new file mode 100644
index 0000000..902432f
--- /dev/null
+++ b/src/main/java/com/mzl/flower/service/content/FilmsetService.java
@@ -0,0 +1,119 @@
+package com.mzl.flower.service.content;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mzl.flower.config.exception.ValidationException;
+import com.mzl.flower.config.security.SecurityUtils;
+import com.mzl.flower.constant.Constants;
+import com.mzl.flower.dto.BatchDTO;
+import com.mzl.flower.dto.request.content.QueryFilmsetDTO;
+import com.mzl.flower.dto.response.content.FilmsetDTO;
+import com.mzl.flower.entity.content.Filmset;
+import com.mzl.flower.mapper.content.FilmsetMapper;
+import com.mzl.flower.utils.DateUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.util.List;
+
+@Service
+@Transactional
+public class FilmsetService {
+
+ private final FilmsetMapper filmsetMapper;
+
+ public FilmsetService(FilmsetMapper filmsetMapper) {
+ this.filmsetMapper = filmsetMapper;
+ }
+
+ public void add(Filmset dto) {
+ if(dto.getId()!=null){
+ throw new ValidationException("id必须为空");
+ }
+ dto.setStatus(Constants.COMMON_PUBLISH_STATUS.unpublished.name());
+ dto.create(SecurityUtils.getUserId());
+ filmsetMapper.insert(dto);
+ }
+
+ public void update(Filmset dto) {
+ if(dto.getId()==null || dto.getId()==0){
+ throw new ValidationException("id不能为空");
+ }
+ Filmset filmset = filmsetMapper.selectById(dto.getId());
+ if(filmset==null){
+ throw new ValidationException("找不到id为"+dto.getId()+"的公告");
+ }
+ BeanUtils.copyProperties(dto, filmset, "id", "createTime", "createBy","deleted","status","publishDate");
+ filmset.update(SecurityUtils.getUserId());
+ filmsetMapper.updateById(filmset);
+ }
+
+ public void delete(Long id) {
+ Filmset filmset = filmsetMapper.selectById(id);
+ if(filmset==null){
+ throw new ValidationException("找不到id为"+id+"的公告");
+ }
+ filmsetMapper.deleteById(id);
+ }
+
+ public FilmsetDTO detail(Long id) {
+ Filmset filmset = filmsetMapper.selectById(id);
+ if(filmset==null){
+ return null;
+ }
+ FilmsetDTO dto = new FilmsetDTO();
+ BeanUtils.copyProperties(filmset,dto);
+ return dto;
+ }
+
+ public Page<FilmsetDTO> queryPage(QueryFilmsetDTO dto, Page page) {
+ if(StringUtils.isNotBlank(dto.getCreateDateBeginStr())){
+ dto.setCreateDateBegin(DateUtils.dateToLocalDateTime(dto.getCreateDateBeginStr(),true));
+ }
+ if(StringUtils.isNotBlank(dto.getCreateDateEndStr())){
+ dto.setCreateDateEnd(DateUtils.dateToLocalDateTime(dto.getCreateDateEndStr(),false));
+ }
+ List<FilmsetDTO> list = filmsetMapper.queryPage(dto,page);
+ page.setRecords(list);
+ return page;
+
+ }
+
+ public void changeStatus(Long id) {
+ Filmset filmset = filmsetMapper.selectById(id);
+ if(filmset==null){
+ throw new ValidationException("找不到id为"+id+"的公告");
+ }
+ if(Constants.COMMON_PUBLISH_STATUS.published.name().equals(filmset.getStatus())){
+ filmset.setStatus(Constants.COMMON_PUBLISH_STATUS.unpublished.name());
+ }else{
+ filmset.setStatus(Constants.COMMON_PUBLISH_STATUS.published.name());
+ filmset.setPublishDate(LocalDate.now());
+ }
+ filmsetMapper.updateById(filmset);
+ }
+
+ public void batchDelete(BatchDTO dto) {
+ filmsetMapper.deleteBatchIds(dto.getIds());
+ }
+
+ public void batchPublish(BatchDTO dto) {
+ List<Filmset> list = filmsetMapper.selectList(new LambdaQueryWrapper<Filmset>().in(Filmset::getId, dto.getIds()));
+ for (Filmset filmset : list) {
+ filmset.setStatus(Constants.COMMON_PUBLISH_STATUS.published.name());
+ filmset.setPublishDate(LocalDate.now());
+ filmsetMapper.updateById(filmset);
+ }
+ }
+
+ public List<FilmsetDTO> queryList(String type) {
+ QueryFilmsetDTO dto = new QueryFilmsetDTO();
+ dto.setType(type);
+ dto.setStatus(Constants.COMMON_PUBLISH_STATUS.published.name());
+ List<FilmsetDTO> list = filmsetMapper.queryList(dto);
+ return list;
+ }
+}
diff --git a/src/main/java/com/mzl/flower/service/register/SmsService.java b/src/main/java/com/mzl/flower/service/register/SmsService.java
index 3ac2b11..b2a0902 100644
--- a/src/main/java/com/mzl/flower/service/register/SmsService.java
+++ b/src/main/java/com/mzl/flower/service/register/SmsService.java
@@ -57,6 +57,10 @@
throw new ValidationException("短信验证码已发送,请勿频繁发送");
}
String smsCode = generateSmsCode();
+ // 测试vivo时使用
+ if(dto.getTel().equals("15239257323")){
+ smsCode ="888888";
+ }
// String smsCode ="888888";
String key;
if(Constants.USER_TYPE.admin.name().equals(dto.getUserType())){
@@ -76,7 +80,11 @@
try {
//暂时不实际发送验证码
// SmsUtil.sendSms(dto.getTel(),smsProperties.getVerificationCode(),paramMap);
- tosSmsService.sendSms(dto.getTel(),paramMap);
+ // 测试vivo时使用
+ if (!dto.getTel().equals("15239257323")) {
+ tosSmsService.sendSms(dto.getTel(), paramMap);
+ }
+// tosSmsService.sendSms(dto.getTel(),paramMap);
stringCacheClient.set(SMS_CODE_KEY + SEPARATOR + SEPARATOR + dto.getTel(),smsCode,60);
stringCacheClient.set(key,smsCode,600);
} catch (Exception e) {
diff --git a/src/main/java/com/mzl/flower/web/content/FilmsetController.java b/src/main/java/com/mzl/flower/web/content/FilmsetController.java
new file mode 100644
index 0000000..70150f8
--- /dev/null
+++ b/src/main/java/com/mzl/flower/web/content/FilmsetController.java
@@ -0,0 +1,90 @@
+package com.mzl.flower.web.content;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mzl.flower.base.BaseController;
+import com.mzl.flower.base.R;
+import com.mzl.flower.base.ReturnDataDTO;
+import com.mzl.flower.dto.BatchDTO;
+import com.mzl.flower.dto.request.content.QueryFilmsetDTO;
+import com.mzl.flower.dto.response.content.FilmsetDTO;
+import com.mzl.flower.entity.content.Filmset;
+import com.mzl.flower.service.content.FilmsetService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotNull;
+
+@RestController
+@RequestMapping("/api/filmset")
+@Api(value = "运营-片场管理", tags = "运营-片场管理")
+@Validated
+@Slf4j
+public class FilmsetController extends BaseController {
+
+
+ private final FilmsetService filmsetService;
+
+ public FilmsetController(FilmsetService filmsetService) {
+ this.filmsetService = filmsetService;
+ }
+
+
+ @PostMapping("/page/new")
+ @ApiOperation(value = "新增", notes = "新增")
+ public ResponseEntity<ReturnDataDTO> add(@Validated @RequestBody Filmset dto) {
+ filmsetService.add(dto);
+ return returnData(R.SUCCESS.getCode(),null);
+ }
+
+ @PostMapping("/page/edit")
+ @ApiOperation(value = "修改", notes = "修改")
+ public ResponseEntity<ReturnDataDTO> update(@Validated @RequestBody Filmset dto) {
+ filmsetService.update(dto);
+ return returnData(R.SUCCESS.getCode(),null);
+ }
+
+ @PostMapping("/page/delete/batch")
+ @ApiOperation(value = "批量删除", notes = "批量删除")
+ public ResponseEntity<ReturnDataDTO> batchDelete(@Validated @RequestBody BatchDTO dto) {
+ filmsetService.batchDelete(dto);
+ return returnData(R.SUCCESS.getCode(),null);
+ }
+
+ @PostMapping("/page/publish/batch")
+ @ApiOperation(value = "批量发布", notes = "批量发布")
+ public ResponseEntity<ReturnDataDTO> batchPublish(@Validated @RequestBody BatchDTO dto) {
+ filmsetService.batchPublish(dto);
+ return returnData(R.SUCCESS.getCode(),null);
+ }
+
+
+ @GetMapping("/page/delete")
+ @ApiOperation(value = "删除", notes = "删除")
+ public ResponseEntity<ReturnDataDTO> delete(@NotNull(message = "id不能为空") Long id) {
+ filmsetService.delete(id);
+ return returnData(R.SUCCESS.getCode(),null);
+ }
+
+ @GetMapping("/page/view")
+ @ApiOperation(value = "详情", notes = "详情")
+ public ResponseEntity<ReturnDataDTO<FilmsetDTO>> detail(@NotNull(message = "id不能为空") Long id) {
+ return returnData(R.SUCCESS.getCode(),filmsetService.detail(id));
+ }
+
+ @GetMapping("/page")
+ @ApiOperation(value = "查询-分页", notes = "查询-分页")
+ public ResponseEntity<ReturnDataDTO<Page<FilmsetDTO>>> queryPage(QueryFilmsetDTO dto, Page page) {
+ return returnData(R.SUCCESS.getCode(), filmsetService.queryPage(dto,page));
+ }
+
+ @GetMapping("/page/changeStatus")
+ @ApiOperation(value = "修改状态", notes = "修改状态")
+ public ResponseEntity<ReturnDataDTO> changeStatus(@NotNull(message = "id不能为空") Long id) {
+ filmsetService.changeStatus(id);
+ return returnData(R.SUCCESS.getCode(), null);
+ }
+}
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index ba36519..fc09ed8 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -3,9 +3,9 @@
active: prod
datasource:
type: com.alibaba.druid.pool.DruidDataSource
- url: jdbc:mysql://127.0.0.1:3306/flower-prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8&allowMultiQueries=true
+ url: jdbc:mysql://47.96.225.205:3306/smart_message?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8&allowMultiQueries=true&connectionCollation=utf8mb4_unicode_ci
username: root
- password: Hmy@2024!*@&&
+ password: CloudRoam
druid:
initial-size: 20
max-active: 100
@@ -39,7 +39,7 @@
redis:
database: 1
host: 127.0.0.1
- password: Hmy@2024
+ password: Cloudroam!@#123
port: 6379
jedis:
pool:
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index a6bb438..50cf388 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -3,7 +3,7 @@
active: test,swagger
datasource:
type: com.alibaba.druid.pool.DruidDataSource
- url: jdbc:mysql://47.96.225.205:3306/smart_message?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8&allowMultiQueries=true
+ url: jdbc:mysql://47.96.225.205:3306/smart_message?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8&allowMultiQueries=true&connectionCollation=utf8mb4_unicode_ci
username: root
password: CloudRoam
druid:
diff --git a/src/main/resources/keystore.p12 b/src/main/resources/keystore.p12
new file mode 100644
index 0000000..fb64ea5
--- /dev/null
+++ b/src/main/resources/keystore.p12
Binary files differ
diff --git a/src/main/resources/mapper/content/FilmsetMapper.xml b/src/main/resources/mapper/content/FilmsetMapper.xml
new file mode 100644
index 0000000..ff0bf71
--- /dev/null
+++ b/src/main/resources/mapper/content/FilmsetMapper.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mzl.flower.mapper.content.FilmsetMapper">
+ <select id="queryPage" resultType="com.mzl.flower.dto.response.content.FilmsetDTO">
+ select t.id,t.title,t.cover,t.content,t.publish_date,t.status,t.create_time,t.update_time,t.type from t_filmset t where t.deleted= 0
+ <if test="dto.title != null and dto.title != ''">
+ and t.title like concat('%', #{dto.title}, '%')
+ </if>
+ <if test="dto.status != null and dto.status != ''">
+ and t.status = #{dto.status}
+ </if>
+ <if test="dto.type != null and dto.type != ''">
+ and t.type = #{dto.type}
+ </if>
+ <if test="dto.createDateBegin!=null ">
+ <![CDATA[
+ AND t.create_time >= #{dto.createDateBegin}
+ ]]>
+ </if>
+ <if test="dto.createDateEnd!=null ">
+ <![CDATA[
+ AND t.create_time <= #{dto.createDateEnd}
+ ]]>
+ </if>
+ order by t.update_time desc
+ </select>
+ <select id="queryList" resultType="com.mzl.flower.dto.response.content.FilmsetDTO"
+ parameterType="com.mzl.flower.dto.request.content.QueryFilmsetDTO">
+ select t.id,t.title,t.cover,t.publish_date,t.content,t.status,t.create_time,t.update_time,t.type from t_filmset t where t.deleted= 0
+ <if test="dto.title != null and dto.title != ''">
+ and t.title like concat('%', #{dto.title}, '%')
+ </if>
+ <if test="dto.status != null and dto.status != ''">
+ and t.status = #{dto.status}
+ </if>
+ <if test="dto.type != null and dto.type != ''">
+ and (t.type = #{dto.type} or t.type = 'platform')
+ </if>
+ <if test="dto.createDateBegin!=null ">
+ <![CDATA[
+ AND t.create_time >= #{dto.createDateBegin}
+ ]]>
+ </if>
+ <if test="dto.createDateEnd!=null ">
+ <![CDATA[
+ AND t.create_time <= #{dto.createDateEnd}
+ ]]>
+ </if>
+ order by t.update_time desc
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3