ソースを参照

Merge remote-tracking branch 'origin/equipment_distribute' into equipment_distribute

zoujiajian 3 年 前
コミット
456df63996

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/EquipmentUserChanceRecord.java

@@ -1,5 +1,6 @@
 package com.cyksj.model.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ejlchina.searcher.bean.DbField;
 import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
@@ -37,9 +38,11 @@ public class EquipmentUserChanceRecord extends BaseEntity{
 	private Status status;
 
 	@DbIgnore
+	@TableField(exist = false)
 	private String nickname;
 
 	@DbIgnore
+	@TableField(exist = false)
 	private Date payTime;
 
 	@DbIgnore

+ 0 - 1
netflix-dao/src/main/java/com/cyksj/model/request/ReceiveBenefitsReq.java

@@ -20,6 +20,5 @@ public class ReceiveBenefitsReq {
 	@NotNull
 	private Long skuId;
 
-	@NotNull
 	private Long relationId;
 }

+ 24 - 0
netflix-dao/src/main/java/com/cyksj/model/views/EquipmentCouponView.java

@@ -0,0 +1,24 @@
+package com.cyksj.model.views;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/*
+ *项目名: netflix
+ *文件名: EquipmentCouponView
+ *创建者: JavaZou
+ *创建时间:2023/3/2 11:31
+ */
+@Getter
+@Setter
+public class EquipmentCouponView {
+	private Long userId;
+
+	private String nickname;
+
+	private String headImg;
+
+	private List<CouponUserView> couponList;
+}

+ 13 - 5
netflix-service/src/main/java/com/cyksj/service/distribute/equipment/impl/EquipmentDistributeServiceImpl.java

@@ -24,6 +24,7 @@ import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
+import java.util.Optional;
 
 /*
  *项目名: netflix
@@ -74,6 +75,7 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 				}
 			} catch (DuplicateKeyException e) {
 				log.info("实物分销被邀请人id:{}重复插入", userId);
+			} catch (Exception e) {
 			}
 		}
 	}
@@ -176,13 +178,19 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 		equipmentUserReceiveBenefitsRecordMapper.updateById(receiveBenefitsRecord);
 	}
 
-	public void sendInvitedUserEquipmentCoupon(Long userId) {
+	public void sendInvitedUserEquipmentCoupon(Long userId) throws Exception {
 		SysConfig config = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class)
 				.eq(SysConfig::getSysKey, Constant.EQUIPMENT_DISTRIBUTE_KEY).last("limit 1"));
-		EquipmentConfigDto equipmentConfigDto = Jsons.parseObject(config, EquipmentConfigDto.class);
-		equipmentConfigDto.getCouponIds().forEach(couponId->{
-			couponCommonService.sendCouponToUser(userId, couponId, null, null, null, CouponUser.Channel.equipment);
+		Optional.ofNullable(config).ifPresent(cf->{
+			EquipmentConfigDto equipmentConfigDto = null;
+			try {
+				equipmentConfigDto = Jsons.parseObject(config.getSysValue(), EquipmentConfigDto.class);
+				equipmentConfigDto.getCouponIds().forEach(couponId->{
+					couponCommonService.sendCouponToUser(userId, couponId, null, null, null, CouponUser.Channel.equipment);
+				});
+				redisService.set(RedisService.key.EQUIPMENT_DISTRIBUTE_COUPON_KEY.getNameFormat(userId), userId, RedisService.key.EQUIPMENT_DISTRIBUTE_COUPON_KEY.getTimeout());
+			} catch (Exception e) {
+			}
 		});
-		redisService.set(RedisService.key.EQUIPMENT_DISTRIBUTE_COUPON_KEY.getNameFormat(userId), userId, RedisService.key.EQUIPMENT_DISTRIBUTE_COUPON_KEY.getTimeout());
 	}
 }

+ 22 - 4
netflix-web/src/main/java/com/cyksj/web/controller/distribute/EquipmentDistributeController.java

@@ -13,12 +13,14 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserChanceMapper;
+import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserDistributeInviteRecordMapper;
 import com.cyksj.model.dto.EquipmentConfigDto;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.GroupsRelationView;
 import com.cyksj.model.request.LoginPhoneReq;
 import com.cyksj.model.request.ReceiveBenefitsReq;
 import com.cyksj.model.views.CouponUserView;
+import com.cyksj.model.views.EquipmentCouponView;
 import com.cyksj.model.views.EquipmentDistributeView;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.distribute.equipment.EquipmentDistributeFrontService;
@@ -69,6 +71,8 @@ public class EquipmentDistributeController {
 
 	private final EquipmentDistributeService equipDistributeService;
 
+	private final EquipmentUserDistributeInviteRecordMapper inviteRecordMapper;
+
 	/**
 	 * 个人实物分销详情
 	 */
@@ -167,16 +171,28 @@ public class EquipmentDistributeController {
 	 * 新用户领取后分销优惠券后弹窗
 	 */
 	@GetMapping("/get/couponList")
-	public Result<List<CouponUserView>> getEquipmentCouponList() {
+	public Result<EquipmentCouponView> getEquipmentCouponList() {
 		Long userId = StpUserUtil.getLoginIdAsLong();
 		Object value = redisService.get(RedisService.key.EQUIPMENT_DISTRIBUTE_COUPON_KEY.getNameFormat(userId));
 		if (value != null) {
+			EquipmentCouponView equipmentCouponView = new EquipmentCouponView();
 			List<CouponUserView> couponUserViews = beanSearcher.searchAll(CouponUserView.class, MapUtils.builder()
 					.field(CouponUserView::getUserId, userId)
 					.field(CouponUserView::getChannel, CouponUser.Channel.equipment.name())
 					.orderBy(CouponUserView::getOrderBy).asc()
 					.build());
-			return GatewayResponse.SUCCESS.newBuilder().toResult(couponUserViews);
+			EquipmentUserDistributeInviteRecord record = inviteRecordMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserDistributeInviteRecord.class)
+					.eq(EquipmentUserDistributeInviteRecord::getUserId, userId).last("limit 1"));
+			if (record != null) {
+				User user = userMapper.selectById(record.getShareId());
+				Optional.ofNullable(user).ifPresent(u->{
+					equipmentCouponView.setNickname(u.getNickname());
+					equipmentCouponView.setUserId(u.getId());
+					equipmentCouponView.setHeadImg(u.getHeadimgurl());
+				});
+			}
+			equipmentCouponView.setCouponList(couponUserViews);
+			return GatewayResponse.SUCCESS.newBuilder().toResult(equipmentCouponView);
 		}
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
@@ -187,8 +203,10 @@ public class EquipmentDistributeController {
 	@PostMapping("/hasLogged")
 	public Result<String> hasLogged(@RequestBody LoginPhoneReq req) {
 		Long userId = StpUserUtil.getLoginIdAsLong();
-		User user = userMapper.selectById(userId);
-		Boolean isNewUser = user != null ? false : true;
+		DateTime now = DateTime.now();
+		User user = userMapper.selectOne(Wrappers.lambdaQuery(User.class).eq(User::getId, userId)
+				.between(User::getCreatedTime, DateUtil.beginOfDay(now), DateUtil.endOfDay(now)).last("limit 1"));
+		Boolean isNewUser = user != null ? true : false;
 		Long sharedId = req.getSharedId();
 		Integer dsType = req.getDsType();
 		//新旧用户都可实物分销