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"; 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() 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; } 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; } 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; } 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); } 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; } } 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) { 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); } } 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: 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: src/main/resources/keystore.p12Binary files differ
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>