Prechádzať zdrojové kódy

add 增加车票有效期

zoujiajian 3 rokov pred
rodič
commit
81d638dfae

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/statistics/IncrExpiryTimeRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper.manage.statistics;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.IncrExpiryTimeRecord;
+
+/*
+ *项目名: netflix
+ *文件名: IncrExpiryTimeRecordMapper
+ *创建者: JavaZou
+ *创建时间:2022/11/16 10:30
+ */
+public interface IncrExpiryTimeRecordMapper extends BaseMapper<IncrExpiryTimeRecord> {
+}

+ 28 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/IncrExpiryTimeRecord.java

@@ -0,0 +1,28 @@
+package com.cyksj.model.entity;
+
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/*
+ *项目名: netflix
+ *文件名: IncrExpiryTimeRecord
+ *创建者: JavaZou
+ *创建时间:2022/11/16 10:30
+ */
+@Getter
+@Setter
+@SearchBean(tables = "incr_expiry_time_record")
+public class IncrExpiryTimeRecord extends BaseEntity{
+	private Long userId;
+
+	private Long relationId;
+
+	private Date expiryTimeInitial;
+
+	private Integer incrExpiryDays;
+
+	private String remark;
+}

+ 35 - 0
netflix-dao/src/main/java/com/cyksj/model/request/RenewTimeUpReq.java

@@ -0,0 +1,35 @@
+package com.cyksj.model.request;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+/*
+ *项目名: netflix
+ *文件名: RenewTimeReq
+ *创建者: JavaZou
+ *创建时间:2022/11/16 10:20
+ */
+@Getter
+@Setter
+public class RenewTimeUpReq {
+	/**
+	 * 座位号
+	 */
+	@NotNull(message = "座位关联id不为空")
+	private Long relationId;
+
+	/**
+	 * 增加天数
+	 */
+	@NotNull(message = "天数不为空")
+	@Min(value = 1)
+	private Integer days;
+
+	/**
+	 * 备注
+	 */
+	private String remark;
+}

+ 57 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/statistics/StatisticsDataController.java

@@ -1,15 +1,28 @@
 package com.cyksj.web.controller.manage.statistics;
 
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.GroupsRelationMapper;
+import com.cyksj.mapper.manage.statistics.IncrExpiryTimeRecordMapper;
+import com.cyksj.model.entity.GroupsRelation;
+import com.cyksj.model.entity.IncrExpiryTimeRecord;
+import com.cyksj.model.request.RenewTimeUpReq;
 import com.cyksj.model.views.BackgroundDataView;
 import com.cyksj.model.views.ExpiredAccountDataView;
 import com.cyksj.service.mange.statistics.StatisticsDataService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
+
 /*
  *项目名: netflix
  *文件名: StatisticsDataController
@@ -24,6 +37,12 @@ public class StatisticsDataController {
 
 	private final StatisticsDataService statisticsDataService;
 
+	private final GroupsRelationMapper groupsRelationMapper;
+
+	private final IncrExpiryTimeRecordMapper incrExpiryTimeRecordMapper;
+
+	private final BeanSearcher beanSearcher;
+
 	/**
 	 * 查询统计数据
 	 */
@@ -62,4 +81,42 @@ public class StatisticsDataController {
 		}
 		return statisticsDataService.updateHandleStatus(relationId);
 	}
+
+
+	/**
+	 * 增加续费时长
+	 */
+	@PutMapping("/renewTime/up")
+	@Transactional(rollbackFor = Throwable.class)
+	public Result<String> addRenewTime(@RequestBody @Validated RenewTimeUpReq renewTimeUpReq) {
+		GroupsRelation relation = groupsRelationMapper.selectById(renewTimeUpReq.getRelationId());
+		if (relation == null) {
+			throw BusinessRuntimeException.getInstance("该车票已不存在");
+		}
+		if (relation.getStatus() != GroupsRelation.Status.validity) {
+			throw BusinessRuntimeException.getInstance("该车票无效");
+		}
+		if (relation.getExpiryTime() == null) {
+			throw BusinessRuntimeException.getInstance("车票已过期");
+		}
+		IncrExpiryTimeRecord incrExpiryTimeRecord = new IncrExpiryTimeRecord();
+		incrExpiryTimeRecord.setExpiryTimeInitial(relation.getExpiryTime());
+		incrExpiryTimeRecord.setIncrExpiryDays(renewTimeUpReq.getDays());
+		incrExpiryTimeRecord.setRemark(renewTimeUpReq.getRemark());
+		relation.setExpiryTime(DateUtil.offsetDay(relation.getExpiryTime(), renewTimeUpReq.getDays()));
+		groupsRelationMapper.updateById(relation);
+		//记录操作日志
+		incrExpiryTimeRecord.setUserId(relation.getUserId());
+		incrExpiryTimeRecord.setRelationId(relation.getId());
+		incrExpiryTimeRecordMapper.insert(incrExpiryTimeRecord);
+		return GatewayResponse.SUCCESS.newBuilder().toResult("增加车票有效期成功");
+	}
+
+	/**
+	 * 增加续费操作记录
+	 */
+	@GetMapping("/get/operation/record")
+	public Result<SearchResult<IncrExpiryTimeRecord>> getOpRecord(HttpServletRequest request) {
+		return GatewayResponse.SUCCESS.newBuilder().toResult(beanSearcher.search(IncrExpiryTimeRecord.class, MapUtils.flatBuilder(request.getParameterMap()).build()));
+	}
 }