Commit 3f9ccd44 3f9ccd447d145f6b2c46e1748845994fbcf6e237 by xianghan

1.添加中奖人联系方式接口

1 parent 6149fc4c
package com.topdraw.business.module.contact.vis.domain;
import lombok.Data;
import lombok.experimental.Accessors;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.persistence.*;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author XiangHan
* @date 2022-04-24
*/
@Entity
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="x_activity_address")
public class ActivityAddress implements Serializable {
// id
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
// vis的用户id
@Column(name = "user_id", nullable = false)
private Long userId;
// 大屏账号
@Column(name = "platform_account")
private String platformAccount;
// 活动id
@Column(name = "activity_id", nullable = false)
private Long activityId;
// 应用id
@Column(name = "app_id")
private Long appId;
// 收货人名称
@Column(name = "name")
private String name;
// 收货人地址
@Column(name = "address")
private String address;
// 收获人手机号
@Column(name = "cellphone")
private String cellphone;
// 创建时间
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
// 更新时间
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
public void copy(ActivityAddress source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}
package com.topdraw.business.module.contact.vis.repository;
import com.topdraw.business.module.contact.vis.domain.ActivityAddress;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.Optional;
/**
* @author XiangHan
* @date 2022-04-24
*/
public interface ActivityAddressRepository extends JpaRepository<ActivityAddress, Long>, JpaSpecificationExecutor<ActivityAddress> {
Optional<ActivityAddress> findByPlatformAccount(String platformAccount);
}
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;
import com.topdraw.business.module.contact.vis.service.ActivityAddressService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
/**
* @author XiangHan
* @date 2022-04-24
*/
@Api(tags = "中奖人联系方式管理")
@RestController
@RequestMapping("/uce/activityAddress")
public class ActivityAddressController {
@Autowired
private ActivityAddressService activityAddressService;
@GetMapping(value = "/findByPlatformAccount")
@ApiOperation("查询所有ActivityAddress")
@AnonymousAccess
public ResultInfo findByPlatformAccount(@RequestParam(value = "platformAccount") String platformAccount) {
ActivityAddressDTO activityAddressDTO = this.activityAddressService.findByPlatformAccount(platformAccount);
return ResultInfo.success(activityAddressDTO);
}
@Log
@PostMapping(value = "/createOrUpdateActivityAddress")
@ApiOperation("新增ActivityAddress")
@AnonymousAccess
public ResultInfo createOrUpdateActivityAddress(@Validated @RequestBody ActivityAddress resources) {
ActivityAddressDTO activityAddressDTO = this.activityAddressService.createOrUpdateActivityAddress(resources);
return ResultInfo.success(activityAddressDTO);
}
@Log
@PostMapping(value = "/create")
@ApiOperation("新增ActivityAddress")
@AnonymousAccess
public ResultInfo create(@Validated @RequestBody ActivityAddress resources) {
this.activityAddressService.create(resources);
return ResultInfo.success();
}
@Log
@PutMapping(value = "/update")
@ApiOperation("修改ActivityAddress")
@AnonymousAccess
public ResultInfo update(@Validated @RequestBody ActivityAddress resources) {
this.activityAddressService.update(resources);
return ResultInfo.success();
}
@Log
@DeleteMapping(value = "/{id}")
@ApiOperation("删除ActivityAddress")
public ResultInfo delete(@PathVariable Long id) {
this.activityAddressService.delete(id);
return ResultInfo.success();
}
}
package com.topdraw.business.module.contact.vis.service;
import com.topdraw.business.module.contact.vis.domain.ActivityAddress;
import com.topdraw.business.module.contact.vis.service.dto.ActivityAddressDTO;
/**
* @author XiangHan
* @date 2022-04-24
*/
public interface ActivityAddressService {
/**
* 根据ID查询
* @param id ID
* @return ActivityAddressDTO
*/
ActivityAddressDTO findById(Long id);
/**
*
* @param resources
*/
ActivityAddressDTO create(ActivityAddress resources);
/**
*
* @param resources
*/
ActivityAddressDTO update(ActivityAddress resources);
/**
*
* @param id
*/
void delete(Long id);
/**
*
* @param platformAccount
* @return
*/
ActivityAddressDTO findByPlatformAccount(String platformAccount);
/**
*
* @param resources
* @return
*/
ActivityAddressDTO createOrUpdateActivityAddress(ActivityAddress resources);
}
package com.topdraw.business.module.contact.vis.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author XiangHan
* @date 2022-04-24
*/
@Data
public class ActivityAddressDTO implements Serializable {
// id
private Long id;
// vis的用户id
private Long userId;
// 大屏账号
private String platformAccount;
// 活动id
private Long activityId;
// 应用id
private Long appId;
// 收货人名称
private String name;
// 收货人地址
private String address;
// 收获人手机号
private String cellphone;
// 创建时间
private Timestamp createTime;
// 更新时间
private Timestamp updateTime;
}
package com.topdraw.business.module.contact.vis.service.impl;
import com.topdraw.business.module.contact.vis.domain.ActivityAddress;
import com.topdraw.util.TimestampUtil;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.business.module.contact.vis.repository.ActivityAddressRepository;
import com.topdraw.business.module.contact.vis.service.ActivityAddressService;
import com.topdraw.business.module.contact.vis.service.dto.ActivityAddressDTO;
import com.topdraw.business.module.contact.vis.service.mapper.ActivityAddressMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.util.Assert;
import java.util.Objects;
/**
* @author XiangHan
* @date 2022-04-24
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class ActivityAddressServiceImpl implements ActivityAddressService {
@Autowired
private ActivityAddressRepository activityAddressRepository;
@Autowired
private ActivityAddressMapper activityAddressMapper;
@Override
// @Cacheable(cacheNames = "uce::activityAddress::platformAccount", key = "#platformAccount")
public ActivityAddressDTO findByPlatformAccount(String platformAccount) {
ActivityAddress activityAddress = activityAddressRepository.findByPlatformAccount(platformAccount).orElseGet(ActivityAddress::new);
return this.activityAddressMapper.toDto(activityAddress);
}
@Override
public ActivityAddressDTO createOrUpdateActivityAddress(ActivityAddress resources) {
String platformAccount = resources.getPlatformAccount();
ActivityAddressDTO activityAddressDTO = this.findByPlatformAccount(platformAccount);
if (Objects.isNull(activityAddressDTO.getId())) {
activityAddressDTO = this.create(resources);
} else {
resources.setId(activityAddressDTO.getId());
resources.setUpdateTime(TimestampUtil.now());
activityAddressDTO = this.update(resources);
}
return activityAddressDTO;
}
@Override
public ActivityAddressDTO findById(Long id) {
ActivityAddress ActivityAddress = activityAddressRepository.findById(id).orElseGet(ActivityAddress::new);
ValidationUtil.isNull(ActivityAddress.getId(),"ActivityAddress","id",id);
return this.activityAddressMapper.toDto(ActivityAddress);
}
@Override
@Transactional(rollbackFor = Exception.class)
// @CachePut(cacheNames = "uce::activityAddress::platformAccount", key = "#resources.platformAccount")
public ActivityAddressDTO create(ActivityAddress resources) {
ActivityAddress activityAddress = activityAddressRepository.save(resources);
return this.activityAddressMapper.toDto(activityAddress);
}
@Override
@Transactional(rollbackFor = Exception.class)
// @CachePut(cacheNames = "uce::activityAddress::platformAccount", key = "#resources.platformAccount")
public ActivityAddressDTO update(ActivityAddress resources) {
ActivityAddress activityAddress = activityAddressRepository.findById(resources.getId()).orElseGet(ActivityAddress::new);
ValidationUtil.isNull( activityAddress.getId(),"ActivityAddress","id",resources.getId());
activityAddress.copy(resources);
ActivityAddress save = activityAddressRepository.save(activityAddress);
return this.activityAddressMapper.toDto(save);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long id) {
Assert.notNull(id, "The given id must not be null!");
ActivityAddress ActivityAddress = activityAddressRepository.findById(id).orElseThrow(
() -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", ActivityAddress.class, id), 1));
activityAddressRepository.delete(ActivityAddress);
}
}
package com.topdraw.business.module.contact.vis.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.module.contact.vis.domain.ActivityAddress;
import com.topdraw.business.module.contact.vis.service.dto.ActivityAddressDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author XiangHan
* @date 2022-04-24
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ActivityAddressMapper extends BaseMapper<ActivityAddressDTO, ActivityAddress> {
}
......@@ -374,10 +374,14 @@ public class PointsOperationServiceImpl implements PointsOperationService {
* @param currentPoints
*/
private void doUpdateMemberPoints(Long memberId, long currentPoints, long soonExpirePoints) {
MemberDTO memberDTO = this.memberService.findById(memberId);
Member member = new Member();
member.setId(memberId);
BeanUtils.copyProperties(memberDTO, member);
member.setPoints(currentPoints);
member.setDuePoints(soonExpirePoints);
// this.memberOperationService.update(member);
this.memberOperationService.doUpdateMemberPoints(member);
}
......
......@@ -39,16 +39,16 @@ public class GeneratorCode extends BaseTest {
@Rollback(value = false)
@Transactional(rollbackFor = Exception.class)
public void generator() {
var dbName = "tr_task_attr";
var dbName = "x_activity_address";
// 表名称,支持多表
var tableNames = Arrays.asList(dbName);
String[] s = dbName.split("_");
var pre = s[0];
var target1 = s[s.length-1];
var preRoute = "com.topdraw.business.module.task.";
var preRoute = "com.topdraw.business.module.contact.";
StringBuilder builder = new StringBuilder(preRoute);
builder.append("attribute");
builder.append("vis");
// builder.append(target);
tableNames.forEach(tableName -> {
......