Commit facad29b facad29bd7ec40f5596bdf972895b95d48f9f844 by xianghan

1.优化

1 parent 530a9a13
Showing 40 changed files with 466 additions and 103 deletions
......@@ -17,17 +17,18 @@
<dependencies>
<!--系统-->
<dependency>
<!--<dependency>
<groupId>com.topdraw</groupId>
<artifactId>cronos-system</artifactId>
<version>${cronos.version}</version>
</dependency>
</dependency>-->
<!--代码生成器-->
<dependency>
<!--<dependency>
<groupId>com.topdraw</groupId>
<artifactId>cronos-generator</artifactId>
<version>${cronos.version}</version>
</dependency>
</dependency>-->
</dependencies>
</project>
\ No newline at end of file
......
......@@ -15,11 +15,24 @@
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<jjwt.version>0.9.1</jjwt.version>
<cronos.version>1.1.0</cronos.version>
</properties>
<dependencies>
<!--<dependency>
<groupId>com.topdraw</groupId>
<artifactId>cronos-system</artifactId>
<version>${cronos.version}</version>
</dependency>-->
<dependency>
<groupId>com.topdraw</groupId>
<artifactId>code-generator</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
......
package com.topdraw.business.module.contact.vis.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.contact.vis.service.dto.ActivityAddressDTO;
import com.topdraw.common.ResultInfo;
import com.topdraw.business.module.contact.vis.domain.ActivityAddress;
......@@ -62,7 +61,6 @@ public class ActivityAddressController {
return ResultInfo.success(activityAddressDTO);
}
@Log
@PostMapping(value = "/createOrUpdateActivityAddress")
@ApiOperation("新增ActivityAddress")
@AnonymousAccess
......@@ -100,7 +98,7 @@ public class ActivityAddressController {
return ResultInfo.success(activityAddressDTO);
}
@Log
// @Log
@PostMapping(value = "/create")
@ApiOperation("新增ActivityAddress")
@AnonymousAccess
......@@ -109,7 +107,7 @@ public class ActivityAddressController {
return ResultInfo.success();
}
@Log
// @Log
@PutMapping(value = "/update")
@ApiOperation("修改ActivityAddress")
@AnonymousAccess
......@@ -119,7 +117,7 @@ public class ActivityAddressController {
}
@Log
// @Log
@DeleteMapping(value = "/{id}")
@ApiOperation("删除ActivityAddress")
public ResultInfo delete(@PathVariable Long id) {
......
package com.topdraw.business.module.member.address.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.common.validated.CreateGroup;
import com.topdraw.business.module.common.validated.UpdateGroup;
import com.topdraw.business.module.member.address.service.dto.BasicMemberAddressDTO;
......@@ -29,7 +28,6 @@ public class MemberAddressController {
@Autowired
private MemberAddressOperationService memberAddressOperationService;
@Log("新增会员地址")
@RequestMapping(value = "/create")
@ApiOperation("新增会员地址")
@AnonymousAccess
......@@ -40,7 +38,6 @@ public class MemberAddressController {
return ResultInfo.success(memberAddressDTO);
}
@Log("修改会员地址")
@RequestMapping(value = "/update")
@ApiOperation("修改会员地址")
@AnonymousAccess
......@@ -51,7 +48,6 @@ public class MemberAddressController {
return ResultInfo.success(memberAddressDTO);
}
@Log("删除会员地址")
@RequestMapping(value = "/delete")
@ApiOperation("删除会员地址")
@AnonymousAccess
......
package com.topdraw.business.module.member.profile.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.common.validated.CreateGroup;
import com.topdraw.business.module.common.validated.UpdateGroup;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
......@@ -15,7 +14,6 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import javax.validation.constraints.NotNull;
/**
* @author XiangHan
......@@ -31,7 +29,6 @@ public class MemberProfileController {
@Autowired
private MemberProfileOperationService memberProfileOperationService;
@Log("修改会员属性")
@RequestMapping(value = "/update")
@ApiOperation("修改会员属性")
@AnonymousAccess
......@@ -45,7 +42,6 @@ public class MemberProfileController {
return ResultInfo.success(memberProfileDTO);
}
@Log("修改会员属性并同步会员信息")
@PutMapping(value = "/updateMemberProfileAndMember")
@ApiOperation("修改会员属性并同步会员信息")
@AnonymousAccess
......@@ -55,8 +51,6 @@ public class MemberProfileController {
return ResultInfo.success(memberProfileDTO);
}
@Log("新增会员属性")
@RequestMapping(value = "/create")
@ApiOperation("新增会员属性")
@AnonymousAccess
......
package com.topdraw.business.module.member.relatedinfo.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.common.validated.CreateGroup;
import com.topdraw.business.module.common.validated.UpdateGroup;
import com.topdraw.business.module.member.relatedinfo.service.dto.BasicMemberRelatedInfoDTO;
import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
import com.topdraw.business.process.service.member.MemberRelatedInfoOperationService;
import com.topdraw.common.ResultInfo;
import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
......@@ -29,7 +27,6 @@ public class MemberRelatedInfoController {
@Autowired
private MemberRelatedInfoOperationService memberRelatedInfoOperationService;
@Log("新增相关人员")
@RequestMapping(value = "/create")
@ApiOperation("新增相关人员")
@AnonymousAccess
......@@ -41,7 +38,6 @@ public class MemberRelatedInfoController {
return ResultInfo.success(memberRelatedInfoDTO);
}
@Log("修改相关人员")
@RequestMapping(value = "/update")
@ApiOperation("修改相关人员")
@AnonymousAccess
......@@ -54,7 +50,6 @@ public class MemberRelatedInfoController {
}
@Log("删除相关人员")
@RequestMapping(value = "/delete")
@ApiOperation("删除相关人员")
@AnonymousAccess
......
package com.topdraw.business.module.member.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.common.validated.CreateGroup;
import com.topdraw.business.module.common.validated.UpdateGroup;
import com.topdraw.business.module.member.domain.Member;
......@@ -14,7 +13,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -37,7 +35,6 @@ public class MemberController {
private UserOperationService userOperationService;
@Log("为大屏账户创建会员")
@RequestMapping(value = "/createMemberByUserTv")
@ApiOperation("为大屏账户创建会员")
@AnonymousAccess
......@@ -49,7 +46,6 @@ public class MemberController {
return ResultInfo.success();
}
@Log("手动修改vip")
@RequestMapping(value = "/doUpdateVipByCode")
@AnonymousAccess
@ApiOperation("手动修改vip")
......@@ -59,7 +55,6 @@ public class MemberController {
return ResultInfo.success();
}
@Log("修改会员信息")
@PutMapping(value = "/update")
@ApiOperation("修改会员信息")
@AnonymousAccess
......
package com.topdraw.business.process.rest;
import com.topdraw.aop.log.Log;
import com.topdraw.business.process.domian.TempCoupon;
import com.topdraw.business.process.service.CouponOperationService;
import com.topdraw.common.ResultInfo;
......@@ -23,7 +22,6 @@ public class CouponOperationController {
@Autowired
private CouponOperationService couponOperationService;
@Log("手动发放优惠券")
@PostMapping(value = "/grantCouponByManual")
@ApiOperation("手动发放优惠券")
public ResultInfo grantCouponByManual(List<TempCoupon> tempCouponList) {
......
package com.topdraw.business.process.rest;
import com.topdraw.aop.log.Log;
import com.topdraw.business.process.domian.TempExp;
import com.topdraw.business.process.service.ExpOperationService;
import com.topdraw.common.ResultInfo;
......@@ -28,7 +27,6 @@ public class ExpOperationController {
@Autowired
private ExpOperationService expOperationService;
@Log("手动发放成长值")
@PostMapping(value = "/grantExpByManual")
@ApiOperation("手动发放成长值")
public ResultInfo grantExpByManual(@Validated @RequestBody TempExp tempExp) {
......
package com.topdraw.business.process.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.common.validated.UpdateGroup;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.profile.domain.MemberProfile;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.process.domian.member.MemberOperationBean;
import com.topdraw.business.process.domian.weixin.BuyVipBean;
import com.topdraw.business.process.service.member.MemberOperationService;
import com.topdraw.business.process.service.member.MemberProfileOperationService;
import com.topdraw.common.IResultInfo;
import com.topdraw.common.ResultInfo;
import com.topdraw.exception.BadRequestException;
......@@ -23,7 +20,6 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.Objects;
@Api("会员处理")
......@@ -36,8 +32,6 @@ public class MemberOperationController {
@Autowired
private MemberOperationService memberOperationService;
@Log("手动修改vip")
@RequestMapping(value = "/updateVipByMemberId")
@ApiOperation("手动修改vip")
@AnonymousAccess
......
package com.topdraw.business.process.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.module.user.iptv.service.UserTvService;
......@@ -46,7 +45,7 @@ public class PointsOperationController {
@Autowired
private PointsOperationService pointsOperationService;
@Log("清除过期积分并计算总积分,供客户端会员查询积分时调用")
// @Log("清除过期积分并计算总积分,供客户端会员查询积分时调用")
@GetMapping(value = "/cleanInvalidPointsAndCalculateCurrentPoints/{id}")
@ApiOperation("清除过期积分并计算总积分,供客户端会员查询积分时调用")
@AnonymousAccess
......@@ -55,7 +54,7 @@ public class PointsOperationController {
return ResultInfo.success(Objects.isNull(aLong) ? 0L : aLong);
}
@Log("手动发放积分")
// @Log("手动发放积分")
@PostMapping(value = "/addPoints")
@ApiOperation("手动发放积分")
@AnonymousAccess
......@@ -96,12 +95,14 @@ public class PointsOperationController {
if (Objects.nonNull(userTvDTO)) {
Long memberId = userTvDTO.getMemberId();
if (Objects.isNull(memberId)) {
return ResultInfo.failed("会员信息不存在");
// return ResultInfo.failed("会员信息不存在");
return ResultInfo.failure("会员信息不存在");
}
MemberDTO memberDTO = this.memberService.findById(memberId);
tempPoints.setMemberCode(memberDTO.getCode());
tempPoints.setMemberId(memberId);
}
tempPoints.setPoints(points);
tempPoints.setDeviceType(deviceType);
tempPoints.setAppCode(LocalConstants.APP_CODE_CHONGQING_CHONGSHU_VIS);
......@@ -132,7 +133,8 @@ public class PointsOperationController {
memberId = this.getMemberIdByWeiXinUserId(userId);
}
if (Objects.isNull(memberId)) {
return ResultInfo.failed("会员信息不存在");
// return ResultInfo.failed("会员信息不存在");
return ResultInfo.failure("会员信息不存在");
}
tempPoints.setMemberId(memberId);
return this.customPoints(tempPoints);
......@@ -174,7 +176,7 @@ public class PointsOperationController {
return ResultInfo.success(Arrays.asList(b),description);
}
@Log("积分兑换商品")
// @Log("积分兑换商品")
@PostMapping(value = "/consumeItemPoints")
@ApiOperation("积分兑换商品")
@AnonymousAccess
......
package com.topdraw.business.process.rest;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.rights.history.domain.RightsHistory;
import com.topdraw.business.process.service.RightsOperationService;
import com.topdraw.common.ResultInfo;
......@@ -30,7 +29,6 @@ public class RightsOperationController {
* @param rightsHistory
* @return
*/
@Log("手动发放优惠券")
@PostMapping(value = "/grantRightsByManual")
@ApiOperation("手动发放优惠券")
public ResultInfo grantRightsByManual(@Validated @RequestBody RightsHistory rightsHistory) {
......
......@@ -5,7 +5,6 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.common.validated.CreateGroup;
import com.topdraw.business.module.common.validated.UpdateGroup;
import com.topdraw.business.module.member.service.MemberService;
......@@ -58,7 +57,6 @@ public class UserOperationController {
private static final String UNSUBSCRIBE = "unsubscribe";
private static final Integer SUBSCRIBE_STATUS = 1;
@Log("新增小屏账户同时创建会员信息")
@PostMapping(value = "/createWeixinUserAndCreateMember")
@ApiOperation("新增小屏账户同时创建会员信息")
@AnonymousAccess
......@@ -69,7 +67,6 @@ public class UserOperationController {
return ResultInfo.success(result);
}
@Log("微信服务号(H5)登录")
@PostMapping("/serviceLogin")
@ApiOperation("微信服务号(H5)登录")
@AnonymousAccess
......@@ -80,7 +77,6 @@ public class UserOperationController {
return ResultInfo.success(result);
}
@Log("微信小程序登录")
@PostMapping("/appletLogin")
@ApiOperation("微信小程序登录")
@AnonymousAccess
......@@ -91,7 +87,6 @@ public class UserOperationController {
return ResultInfo.success(result);
}
@Log("微信公众号关注")
@PostMapping("/subscribe")
@ApiOperation("微信公众号关注")
@AnonymousAccess
......@@ -163,7 +158,6 @@ public class UserOperationController {
}
}
@Log("微信公众号取关")
@PostMapping("/unsubscribe")
@ApiOperation("微信公众号取关")
@AnonymousAccess
......@@ -185,7 +179,6 @@ public class UserOperationController {
return ResultInfo.success(result);
}
@Log("微信小程序绑定大屏")
@PostMapping("/minaBind")
@ApiOperation("微信小程序绑定大屏")
@AnonymousAccess
......@@ -196,7 +189,6 @@ public class UserOperationController {
return ResultInfo.success(result);
}
@Log("小屏解绑")
@PostMapping("/minaUnbind")
@ApiOperation("小屏解绑")
@AnonymousAccess
......@@ -207,7 +199,6 @@ public class UserOperationController {
return ResultInfo.success();
}
@Log("暂存大小屏信息并检查关注与绑定状态")
@PostMapping(value = "/memberPreprocess")
@ApiOperation("暂存大小屏信息并检查关注与绑定状态")
@AnonymousAccess
......@@ -325,7 +316,6 @@ public class UserOperationController {
/******************************************************* IPTV ************************************/
@Log("保存大屏账户同时创建会员")
@PostMapping(value = "/createTvUserAndMember")
@ApiOperation("保存大屏账户同时创建会员信息")
@AnonymousAccess
......@@ -336,7 +326,6 @@ public class UserOperationController {
return ResultInfo.success(result);
}
@Log("大屏解绑")
@RequestMapping(value = "/tvUnbind")
@ApiOperation("大屏解绑")
@AnonymousAccess
......@@ -347,7 +336,6 @@ public class UserOperationController {
return ResultInfo.success();
}
@Log("大屏更换主账号")
@RequestMapping(value = "/changeMainAccount")
@ApiOperation("大屏更换主账号")
@AnonymousAccess
......@@ -366,7 +354,6 @@ public class UserOperationController {
return ResultInfo.success();
}
@Log("删除全部收藏")
@PostMapping(value = "/deleteAllCollection")
@ApiOperation("删除全部收藏")
@AnonymousAccess
......@@ -377,7 +364,6 @@ public class UserOperationController {
return ResultInfo.success(result);
}
@Log("删除收藏")
@PostMapping(value = "/deleteCollection")
@ApiOperation("删除收藏")
@AnonymousAccess
......@@ -388,7 +374,6 @@ public class UserOperationController {
return ResultInfo.success(result);
}
@Log("添加收藏")
@PostMapping(value = "/addCollection")
@ApiOperation("添加收藏")
@AnonymousAccess
......
......@@ -37,7 +37,7 @@ import com.topdraw.business.process.domian.*;
import com.topdraw.business.process.service.UserOperationService;
import com.topdraw.common.ResultInfo;
import com.topdraw.exception.BadRequestException;
import com.topdraw.module.mq.DataSyncMsg;
import com.topdraw.mq.module.mq.DataSyncMsg;
import com.topdraw.util.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
......@@ -49,7 +49,6 @@ import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.LocalDateTime;
......
......@@ -40,7 +40,6 @@ import com.topdraw.util.TimestampUtil;
import com.topdraw.utils.QueryHelp;
import com.topdraw.utils.RedisUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.BeanUtils;
......@@ -52,9 +51,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
......@@ -952,7 +950,7 @@ public class UserOperationServiceImpl implements UserOperationService {
// 有其他绑定的小程序会员
List<MemberDTO> memberDTOList = this.memberService.findByUserIptvId(id);
if (CollectionUtils.isNotEmpty(memberDTOList)) {
if (!CollectionUtils.isEmpty(memberDTOList)) {
// 按绑定时间倒排
memberDTOList.sort(new Comparator<MemberDTO>() {
......
package com.topdraw.module.mq;
package com.topdraw.mq.module.mq;
import lombok.AllArgsConstructor;
import lombok.Data;
......
package com.topdraw.module.mq;
import javax.annotation.Resource;
package com.topdraw.mq.module.mq;
// 关注的事件
public enum EventType {
......
package com.topdraw.weixin.domain;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Entity
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="uc_user_weixin__weixin_message_template")
public class UserWeixinWeixinMessageTemplate implements Serializable {
// ID
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
// 用户id
@Column(name = "user_weixin_id", nullable = false)
private Long userWeixinId;
// 微信消息模板id
@Column(name = "weixin_message_template_id", nullable = false)
private Long weixinMessageTemplateId;
// 用户是否订阅: 0-否, 1-是
@Column(name = "status", nullable = false)
private Integer status;
// 创建时间
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
// 更新时间
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
public void copy(UserWeixinWeixinMessageTemplate source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}
package com.topdraw.weixin.domain;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Entity
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="uc_weixin_message_template")
public class WeixinMessageTemplate implements Serializable {
// ID
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
// 标识 order-下单成功通知,cancellation-核销成功通知
@Column(name = "code", nullable = false)
private String code;
// 微信appid
@Column(name = "appid", nullable = false)
private String appid;
// 微信模板id
@Column(name = "template_id", nullable = false)
private String templateId;
// 状态:0-无效,1-有效
@Column(name = "status", nullable = false)
private Integer status;
// 描述
@Column(name = "description")
private String description;
// 创建时间
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
// 更新时间
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
public void copy(WeixinMessageTemplate source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}
package com.topdraw.weixin.repository;
import com.topdraw.weixin.domain.UserWeixinWeixinMessageTemplate;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author pengmengqing
* @date 2021-01-28
*/
public interface UserWeixinWeixinMessageTemplateRepository extends JpaRepository<UserWeixinWeixinMessageTemplate, Long>, JpaSpecificationExecutor<UserWeixinWeixinMessageTemplate> {
}
package com.topdraw.weixin.repository;
import com.topdraw.weixin.domain.WeixinMessageTemplate;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.Optional;
/**
* @author pengmengqing
* @date 2021-01-28
*/
public interface WeixinMessageTemplateRepository extends JpaRepository<WeixinMessageTemplate, Long>, JpaSpecificationExecutor<WeixinMessageTemplate> {
Optional<WeixinMessageTemplate> findFirstByCode(String code);
Optional<WeixinMessageTemplate> findFirstByCodeAndAppid(String code, String appid);
Optional<WeixinMessageTemplate> findFirstByTemplateId(String templateId);
}
package com.topdraw.weixin.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.common.ResultInfo;
import com.topdraw.weixin.service.UserWeixinWeixinMessageTemplateService;
import com.topdraw.weixin.service.dto.UpdateUserWeixinWeixinMessageTemplateQueryCriteria;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Api(tags = "UserWeixinWeixinMessageTemplate管理")
@RestController
@RequestMapping("/uce/UserWeixinWeixinMessageTemplate")
public class UserWeixinWeixinMessageTemplateController {
@Autowired
private UserWeixinWeixinMessageTemplateService userWeixinWeixinMessageTemplateService;
@AnonymousAccess
@PostMapping
@ApiOperation("新增或修改MemberWeixinMessageTemplate")
public ResultInfo createOrUpdate(@RequestBody UpdateUserWeixinWeixinMessageTemplateQueryCriteria criteria) {
userWeixinWeixinMessageTemplateService.createOrUpdate(criteria);
return ResultInfo.success(new ArrayList<>());
}
}
package com.topdraw.weixin.service;
import com.topdraw.weixin.service.dto.UpdateUserWeixinWeixinMessageTemplateQueryCriteria;
/**
* @author pengmengqing
* @date 2021-01-28
*/
public interface UserWeixinWeixinMessageTemplateService {
void createOrUpdate(UpdateUserWeixinWeixinMessageTemplateQueryCriteria criteria);
}
package com.topdraw.weixin.service.dto;
import lombok.Data;
import java.util.List;
@Data
public class UpdateUserWeixinWeixinMessageTemplateQueryCriteria {
private Long memberId;
private List<UserWeixinWeixinMessageTemplateQueryCriteria> templateList;
}
package com.topdraw.weixin.service.dto;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Data
public class UserWeixinWeixinMessageTemplateDTO implements Serializable {
// ID
private Long id;
// 用户id
private Long userWeixinId;
// 微信消息模板id
private Long weixinMessageTemplateId;
// 用户是否订阅: 0-否, 1-是
private Integer status;
// 创建时间
private Timestamp createTime;
// 更新时间
private Timestamp updateTime;
}
package com.topdraw.weixin.service.dto;
import com.topdraw.annotation.Query;
import lombok.Data;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Data
public class UserWeixinWeixinMessageTemplateQueryCriteria {
// 用户id
@Query(propName = "userWeixinId")
private Long memberId;
// 微信消息模板id
@Query
private Long weixinMessageTemplateId;
// 用户是否订阅: 0-否, 1-是
@Query
private Integer status = 1;
private String templateId;
}
package com.topdraw.weixin.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Data
public class WeixinMessageTemplateDTO implements Serializable {
// ID
private Long id;
// 标识 order-下单成功通知,cancellation-核销成功通知
private String code;
// 微信模板id
private String templateId;
// 描述
private String description;
}
package com.topdraw.weixin.service.dto;
import com.topdraw.annotation.Query;
import lombok.Data;
import java.util.List;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Data
public class WeixinMessageTemplateQueryCriteria{
private String codes;
@Query(propName = "code", type = Query.Type.IN)
private List<String> codeList;
@Query
private String appid;
@Query
private Integer status = 1;
}
package com.topdraw.weixin.service.impl;
import com.topdraw.utils.QueryHelp;
import com.topdraw.weixin.domain.UserWeixinWeixinMessageTemplate;
import com.topdraw.weixin.domain.WeixinMessageTemplate;
import com.topdraw.weixin.repository.UserWeixinWeixinMessageTemplateRepository;
import com.topdraw.weixin.repository.WeixinMessageTemplateRepository;
import com.topdraw.weixin.service.UserWeixinWeixinMessageTemplateService;
import com.topdraw.weixin.service.dto.UpdateUserWeixinWeixinMessageTemplateQueryCriteria;
import com.topdraw.weixin.service.dto.UserWeixinWeixinMessageTemplateQueryCriteria;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Service
@Slf4j
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class UserWeixinWeixinMessageTemplateServiceImpl implements UserWeixinWeixinMessageTemplateService {
@Autowired
private UserWeixinWeixinMessageTemplateRepository userWeixinWeixinMessageTemplateRepository;
@Autowired
private WeixinMessageTemplateRepository weixinMessageTemplateRepository;
@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = Exception.class)
public void createOrUpdate(UpdateUserWeixinWeixinMessageTemplateQueryCriteria criteria) {
for (UserWeixinWeixinMessageTemplateQueryCriteria queryCriteria : criteria.getTemplateList()) {
queryCriteria.setMemberId(criteria.getMemberId());
Integer status = queryCriteria.getStatus();
queryCriteria.setStatus(null);
String templateId = queryCriteria.getTemplateId();
Optional<WeixinMessageTemplate> templateOptional = weixinMessageTemplateRepository.findFirstByTemplateId(templateId);
if (!templateOptional.isPresent()) {
log.info("template " + templateId + " not exist");
continue;
}
Long id = templateOptional.get().getId();
queryCriteria.setWeixinMessageTemplateId(id);
Optional<UserWeixinWeixinMessageTemplate> optional = userWeixinWeixinMessageTemplateRepository.findOne(((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, queryCriteria, criteriaBuilder)));
if (!optional.isPresent()) {
UserWeixinWeixinMessageTemplate userWeixinWeixinMessageTemplate = new UserWeixinWeixinMessageTemplate();
userWeixinWeixinMessageTemplate.setUserWeixinId(queryCriteria.getMemberId())
.setWeixinMessageTemplateId(queryCriteria.getWeixinMessageTemplateId())
.setStatus(status);
userWeixinWeixinMessageTemplateRepository.save(userWeixinWeixinMessageTemplate);
} else {
UserWeixinWeixinMessageTemplate UserWeixinWeixinMessageTemplate = optional.get();
if (!status.equals(UserWeixinWeixinMessageTemplate.getStatus())) {
UserWeixinWeixinMessageTemplate.setStatus(status);
userWeixinWeixinMessageTemplateRepository.save(UserWeixinWeixinMessageTemplate);
}
}
}
}
}
\ No newline at end of file
package com.topdraw.weixin.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.weixin.domain.UserWeixinWeixinMessageTemplate;
import com.topdraw.weixin.service.dto.UserWeixinWeixinMessageTemplateDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface UserWeixinWeixinMessageTemplateMapper extends BaseMapper<UserWeixinWeixinMessageTemplateDTO, UserWeixinWeixinMessageTemplate> {
}
package com.topdraw.weixin.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.weixin.domain.WeixinMessageTemplate;
import com.topdraw.weixin.service.dto.WeixinMessageTemplateDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface WeixinMessageTemplateMapper extends BaseMapper<WeixinMessageTemplateDTO, WeixinMessageTemplate> {
}
......@@ -2,17 +2,12 @@ package com.topdraw;
import com.alibaba.fastjson.JSONObject;
import com.topdraw.module.mq.DataSyncMsg;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@SpringBootTest(classes= MemberServiceApplication.class)
......
......@@ -6,8 +6,6 @@ import com.topdraw.business.module.task.service.dto.TaskDTO;
import com.topdraw.business.process.rest.TaskOperationController;
import com.topdraw.business.process.service.TaskOperationService;
import com.topdraw.business.process.service.dto.TaskOperationQueryCriteria;
import com.topdraw.module.mq.DataSyncMsg;
import com.topdraw.module.mq.EventType;
import com.topdraw.BaseTest;
import com.topdraw.util.TimestampUtil;
import org.junit.Test;
......@@ -15,7 +13,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.time.LocalDateTime;
import java.util.concurrent.FutureTask;
public class TaskOperationControllerTest extends BaseTest {
......
package com.topdraw.test.business.process.rest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.topdraw.BaseTest;
import com.topdraw.business.module.user.iptv.domain.UserTv;
......@@ -8,18 +7,12 @@ import com.topdraw.business.module.user.weixin.domain.UserWeixin;
import com.topdraw.business.process.domian.weixin.BindBean;
import com.topdraw.business.process.domian.weixin.TvUnBindBean;
import com.topdraw.business.process.domian.weixin.WeixinUnBindBean;
import com.topdraw.business.process.rest.TaskOperationController;
import com.topdraw.business.process.rest.UserOperationController;
import com.topdraw.business.process.service.dto.TaskOperationQueryCriteria;
import com.topdraw.common.ResultInfo;
import com.topdraw.module.mq.DataSyncMsg;
import com.topdraw.module.mq.EventType;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.sql.Timestamp;
import java.util.concurrent.FutureTask;
public class UserOperationControllerTest extends BaseTest {
......
......@@ -4,10 +4,6 @@ import com.alibaba.fastjson.JSON;
import com.topdraw.BaseTest;
import com.topdraw.business.process.domian.TempPoints;
import com.topdraw.business.process.service.PointsOperationService;
import com.topdraw.business.process.service.TaskOperationService;
import com.topdraw.module.mq.DataSyncMsg;
import com.topdraw.module.mq.EntityType;
import com.topdraw.module.mq.EventType;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
......
......@@ -2,9 +2,8 @@ package com.topdraw.test.business.process.service;
import com.alibaba.fastjson.JSON;
import com.topdraw.business.process.service.TaskOperationService;
import com.topdraw.module.mq.DataSyncMsg;
import com.topdraw.module.mq.EntityType;
import com.topdraw.module.mq.EventType;
import com.topdraw.mq.module.mq.DataSyncMsg;
import com.topdraw.mq.module.mq.EventType;
import com.topdraw.BaseTest;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.topdraw.test.business.process.service;
import com.alibaba.fastjson.JSON;
import com.topdraw.BaseTest;
import com.topdraw.business.module.user.weixin.domain.UserWeixin;
import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
import com.topdraw.business.process.service.UserOperationService;
import com.topdraw.module.mq.DataSyncMsg;
import com.topdraw.module.mq.EventType;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
......
......@@ -2,9 +2,8 @@ package com.topdraw.test.mq;
import com.alibaba.fastjson.JSON;
import com.topdraw.BaseTest;
import com.topdraw.module.mq.DataSyncMsg;
import com.topdraw.module.mq.EventType;
import com.topdraw.mq.config.RabbitMqConfig;
import com.topdraw.mq.module.mq.DataSyncMsg;
import com.topdraw.mq.module.mq.EventType;
import com.topdraw.mq.producer.MessageProducer;
import org.junit.Test;
import org.springframework.amqp.core.AmqpTemplate;
......