zoujiajian 10 місяців тому
батько
коміт
e2c5fe9630

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/VipUserOperateLog.java

@@ -17,4 +17,9 @@ public class VipUserOperateLog extends BaseEntity{
 	private String operator;
 
 	private Integer days;
+
+	/**
+	 * 备注
+	 */
+	private String remark;
 }

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/vip/CmsVipUserService.java

@@ -10,4 +10,6 @@ import com.cyksj.model.request.OpenVipReq;
  */
 public interface CmsVipUserService {
 	void openVip(OpenVipReq openVipReq);
+
+	void updateVipUserDays(OpenVipReq openVipReq);
 }

+ 33 - 0
netflix-service/src/main/java/com/cyksj/service/vip/impl/CmsVipUserServiceImpl.java

@@ -86,4 +86,37 @@ public class CmsVipUserServiceImpl implements CmsVipUserService {
 		vipUserOperateLog.setDays(days);
 		vipUserOperateLogMapper.insert(vipUserOperateLog);
 	}
+
+	@Override
+	public void updateVipUserDays(OpenVipReq openVipReq) {
+		Long userId = openVipReq.getUserId();
+		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		VipUser vipUser = vipUserMapper.selectOne(Wrappers.lambdaQuery(VipUser.class)
+				.in(VipUser::getUserId, userIdList).last("limit 1"));
+		if (vipUser == null) {
+			throw BusinessRuntimeException.getInstance("用户不是会员");
+		}
+		DateTime now = DateTime.now();
+		Integer days = openVipReq.getDays();
+		vipUser.setUserId(userId);
+		vipUser.setStartTime(now);
+		vipUser.setExpiryTime(DateUtil.offsetDay(now, days));
+		vipUserMapper.updateById(vipUser);
+
+		//同步时间
+		groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
+				.set(GroupsRelation::getExpiryTime, vipUser.getExpiryTime())
+				.in(GroupsRelation::getUserId, userIdList)
+				.eq(GroupsRelation::getIsVip, Boolean.TRUE));
+
+		//操作记录
+		VipUserOperateLog vipUserOperateLog = new VipUserOperateLog();
+		vipUserOperateLog.setUserId(userId);
+
+		CmsUser cmsUser = cmsUserMapper.selectById(openVipReq.getAdminId());
+		vipUserOperateLog.setOperator(cmsUser != null ? cmsUser.getNickname() : StrUtil.EMPTY);
+		vipUserOperateLog.setDays(days);
+		vipUserOperateLog.setRemark("变更用户会员天数");
+		vipUserOperateLogMapper.insert(vipUserOperateLog);
+	}
 }

+ 11 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsUserController.java

@@ -616,4 +616,15 @@ public class CmsUserController{
         cmsVipUserService.openVip(openVipReq);
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }
+
+    /**
+     * 会员 变更天数
+     */
+    @PutMapping("/update/vip/days")
+    public Result<String> updateVipUserDays(@RequestBody OpenVipReq openVipReq) {
+        long adminId = StpUtil.getLoginIdAsLong();
+        openVipReq.setAdminId(adminId);
+        cmsVipUserService.updateVipUserDays(openVipReq);
+        return GatewayResponse.SUCCESS.newBuilder().toResult();
+    }
 }