Browse Source

双十一活动

zouxuan 4 years ago
parent
commit
849310f23c

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LuckDrawCountDao.java

@@ -2,8 +2,13 @@ package com.ym.mec.biz.dal.dao;
 
 
 import com.ym.mec.biz.dal.entity.LuckDrawCount;
 import com.ym.mec.biz.dal.entity.LuckDrawCount;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 
 public interface LuckDrawCountDao extends BaseDAO<Long, LuckDrawCount> {
 public interface LuckDrawCountDao extends BaseDAO<Long, LuckDrawCount> {
 
 
 	public LuckDrawCount getLock(Long userId);
 	public LuckDrawCount getLock(Long userId);
+
+	LuckDrawCount findByIdAndGroupId(@Param("userId") Integer userId, @Param("groupId") int groupId);
+
+	LuckDrawCount findLockByIdAndGroupId(@Param("userId") Integer userId, @Param("groupId") int groupId);
 }
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LuckDrawPrizeDao.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 
 import java.util.List;
 import java.util.List;
 
 
+import com.ym.mec.biz.dal.dto.HorseRaceLampDto;
 import com.ym.mec.biz.dal.entity.LuckDrawPrize;
 import com.ym.mec.biz.dal.entity.LuckDrawPrize;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 
 
@@ -34,4 +35,13 @@ public interface LuckDrawPrizeDao extends BaseDAO<Integer, LuckDrawPrize> {
 	 * @return
 	 * @return
 	 */
 	 */
 	List<LuckDrawPrize> queryDefaultPrize(int group);
 	List<LuckDrawPrize> queryDefaultPrize(int group);
+
+	/**
+	* @description: 获取双十一活动跑马灯
+	 * @param groupId
+	* @return java.util.List<com.ym.mec.biz.dal.dto.HorseRaceLampDto>
+	* @author zx
+	* @date 2021/10/19 15:35
+	*/
+    List<HorseRaceLampDto> queryHorseRaceLampDto(int groupId);
 }
 }

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MarketActivityDao.java

@@ -1,9 +1,20 @@
 package com.ym.mec.biz.dal.dao;
 package com.ym.mec.biz.dal.dao;
 
 
+import com.ym.mec.biz.dal.entity.ActivityDetailDto;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.MarketActivity;
 import com.ym.mec.biz.dal.entity.MarketActivity;
 
 
+import java.util.List;
+
 public interface MarketActivityDao extends BaseDAO<Integer, MarketActivity> {
 public interface MarketActivityDao extends BaseDAO<Integer, MarketActivity> {
 
 
-	
+
+    /**
+    * @description: 根据营销活动编号,获取活动详情列表
+     * @param marketPriceId
+    * @return java.util.List<com.ym.mec.biz.dal.entity.ActivityDetailDto>
+    * @author zx
+    * @date 2021/10/19 15:50
+    */
+    List<ActivityDetailDto> queryActivity(Integer marketPriceId);
 }
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/HorseRaceLampDto.java

@@ -10,6 +10,16 @@ public class HorseRaceLampDto {
 
 
     private String username;
     private String username;
 
 
+    private String prizeName;
+
+    public String getPrizeName() {
+        return prizeName;
+    }
+
+    public void setPrizeName(String prizeName) {
+        this.prizeName = prizeName;
+    }
+
     public Integer getNum() {
     public Integer getNum() {
         return num;
         return num;
     }
     }

+ 66 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ActivityDetailDto.java

@@ -15,5 +15,71 @@ public class ActivityDetailDto {
 
 
 	private String categoryName;
 	private String categoryName;
 
 
+	private Integer categoryId;
 
 
+	private BigDecimal courseNum;
+
+	public BigDecimal getCourseNum() {
+		return courseNum;
+	}
+
+	public void setCourseNum(BigDecimal courseNum) {
+		this.courseNum = courseNum;
+	}
+
+	public Integer getCategoryId() {
+		return categoryId;
+	}
+
+	public void setCategoryId(Integer categoryId) {
+		this.categoryId = categoryId;
+	}
+
+	public Integer getActivityId() {
+		return activityId;
+	}
+
+	public void setActivityId(Integer activityId) {
+		this.activityId = activityId;
+	}
+
+	public String getActivityName() {
+		return activityName;
+	}
+
+	public void setActivityName(String activityName) {
+		this.activityName = activityName;
+	}
+
+	public String getActivityDesc() {
+		return activityDesc;
+	}
+
+	public void setActivityDesc(String activityDesc) {
+		this.activityDesc = activityDesc;
+	}
+
+	public BigDecimal getCurrentPrice() {
+		return currentPrice;
+	}
+
+	public void setCurrentPrice(BigDecimal currentPrice) {
+		this.currentPrice = currentPrice;
+	}
+
+	public BigDecimal getOriginalPrice() {
+		return originalPrice;
+	}
+
+	public void setOriginalPrice(BigDecimal originalPrice) {
+		this.originalPrice = originalPrice;
+	}
+
+	public String getCategoryName() {
+		return categoryName;
+	}
+
+	public void setCategoryName(String categoryName) {
+		this.categoryName = categoryName;
+	}
 }
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LuckDrawCount.java

@@ -14,6 +14,16 @@ public class LuckDrawCount {
 
 
 	private Date modifyOn;
 	private Date modifyOn;
 
 
+	private Integer groupId;
+
+	public Integer getGroupId() {
+		return groupId;
+	}
+
+	public void setGroupId(Integer groupId) {
+		this.groupId = groupId;
+	}
+
 	public Long getUserId() {
 	public Long getUserId() {
 		return userId;
 		return userId;
 	}
 	}

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/LuckDrawCountService.java

@@ -30,4 +30,24 @@ public interface LuckDrawCountService extends BaseService<Long, LuckDrawCount> {
 	 * @return
 	 * @return
 	 */
 	 */
 	public boolean updateAmount(Long userId, Long amount);
 	public boolean updateAmount(Long userId, Long amount);
+
+	/**
+	* @description:
+	 * @param userId
+	 * @param groupId
+	* @return com.ym.mec.biz.dal.entity.LuckDrawCount
+	* @author zx
+	* @date 2021/10/19 16:16
+	*/
+	LuckDrawCount findByIdAndGroupId(Integer userId, int groupId);
+
+	/**
+	* @description:
+	 * @param userId
+	 * @param groupId
+	* @return com.ym.mec.biz.dal.entity.LuckDrawCount
+	* @author zx
+	* @date 2021/10/19 16:16
+	*/
+	LuckDrawCount findLockByIdAndGroupId(Integer userId, int groupId);
 }
 }

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/LuckDrawPrizeService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 
 import java.util.List;
 import java.util.List;
 
 
+import com.ym.mec.biz.dal.dto.HorseRaceLampDto;
 import com.ym.mec.biz.dal.entity.LuckDrawPrize;
 import com.ym.mec.biz.dal.entity.LuckDrawPrize;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.common.service.BaseService;
 
 
@@ -20,5 +21,14 @@ public interface LuckDrawPrizeService extends BaseService<Integer, LuckDrawPrize
 	 * @param group 奖品组
 	 * @param group 奖品组
 	 * @return
 	 * @return
 	 */
 	 */
-	public LuckDrawPrize draw(Long userId, int group);
+	LuckDrawPrize draw(Long userId, int group);
+
+	/**
+	* @description: 获取双十一活动跑马灯
+	 * @param groupId
+	* @return java.util.List<com.ym.mec.biz.dal.dto.HorseRaceLampDto>
+	* @author zx
+	* @date 2021/10/19 15:33
+	*/
+    List<HorseRaceLampDto> queryHorseRaceLampDto(int groupId);
 }
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MarketActivityService.java

@@ -1,8 +1,19 @@
 package com.ym.mec.biz.service;
 package com.ym.mec.biz.service;
 
 
+import com.ym.mec.biz.dal.entity.ActivityDetailDto;
 import com.ym.mec.biz.dal.entity.MarketActivity;
 import com.ym.mec.biz.dal.entity.MarketActivity;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.common.service.BaseService;
 
 
+import java.util.List;
+
 public interface MarketActivityService extends BaseService<Integer, MarketActivity> {
 public interface MarketActivityService extends BaseService<Integer, MarketActivity> {
 
 
+    /**
+    * @description: 根据营销活动编号,获取活动详情列表
+     * @param marketPriceId
+    * @return java.util.List<com.ym.mec.biz.dal.entity.ActivityDetailDto>
+    * @author zx
+    * @date 2021/10/19 15:40
+    */
+    List<ActivityDetailDto> queryActivity(Integer marketPriceId,Integer organId);
 }
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LuckDrawCountServiceImpl.java

@@ -79,4 +79,14 @@ public class LuckDrawCountServiceImpl extends BaseServiceImpl<Long, LuckDrawCoun
 		return isInsert ? insert(luckDrawCount) > 0 : update(luckDrawCount) > 0;
 		return isInsert ? insert(luckDrawCount) > 0 : update(luckDrawCount) > 0;
 	}
 	}
 
 
+	@Override
+	public LuckDrawCount findByIdAndGroupId(Integer userId, int groupId) {
+		return luckDrawCountDao.findByIdAndGroupId(userId,groupId);
+	}
+
+	@Override
+	public LuckDrawCount findLockByIdAndGroupId(Integer userId, int groupId) {
+		return luckDrawCountDao.findLockByIdAndGroupId(userId,groupId);
+	}
+
 }
 }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LuckDrawPrizeServiceImpl.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
+import com.ym.mec.biz.dal.dto.HorseRaceLampDto;
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -135,4 +136,8 @@ public class LuckDrawPrizeServiceImpl extends BaseServiceImpl<Integer, LuckDrawP
 		return null;
 		return null;
 	}
 	}
 
 
+    @Override
+    public List<HorseRaceLampDto> queryHorseRaceLampDto(int groupId) {
+        return luckDrawPrizeDao.queryHorseRaceLampDto(groupId);
+    }
 }
 }

+ 18 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MarketActivityServiceImpl.java

@@ -1,22 +1,39 @@
 package com.ym.mec.biz.service.impl;
 package com.ym.mec.biz.service.impl;
 
 
 import com.ym.mec.biz.dal.dao.MarketActivityDao;
 import com.ym.mec.biz.dal.dao.MarketActivityDao;
+import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
+import com.ym.mec.biz.dal.entity.ActivityDetailDto;
 import com.ym.mec.biz.dal.entity.MarketActivity;
 import com.ym.mec.biz.dal.entity.MarketActivity;
+import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice;
 import com.ym.mec.biz.service.MarketActivityService;
 import com.ym.mec.biz.service.MarketActivityService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.math.BigDecimal;
+import java.util.List;
+
 @Service
 @Service
 public class MarketActivityServiceImpl extends BaseServiceImpl<Integer, MarketActivity>  implements MarketActivityService {
 public class MarketActivityServiceImpl extends BaseServiceImpl<Integer, MarketActivity>  implements MarketActivityService {
 	
 	
 	@Autowired
 	@Autowired
 	private MarketActivityDao marketActivityDao;
 	private MarketActivityDao marketActivityDao;
+	@Autowired
+	private VipGroupDefaultClassesUnitPriceDao vipGroupDefaultClassesUnitPriceDao;
 
 
 	@Override
 	@Override
 	public BaseDAO<Integer, MarketActivity> getDAO() {
 	public BaseDAO<Integer, MarketActivity> getDAO() {
 		return marketActivityDao;
 		return marketActivityDao;
 	}
 	}
-	
+
+    @Override
+    public List<ActivityDetailDto> queryActivity(Integer marketPriceId,Integer organId) {
+		List<ActivityDetailDto> activityDetailDtos = marketActivityDao.queryActivity(marketPriceId);
+		for (ActivityDetailDto activityDetailDto : activityDetailDtos) {
+			VipGroupDefaultClassesUnitPrice category = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(activityDetailDto.getCategoryId(), organId);
+			activityDetailDto.setOriginalPrice(activityDetailDto.getCourseNum().multiply(category.getOnlineClassesUnitPrice()).setScale(0, BigDecimal.ROUND_CEILING));
+		}
+		return activityDetailDtos;
+    }
 }
 }

+ 8 - 1
mec-biz/src/main/resources/config/mybatis/LuckDrawCountMapper.xml

@@ -7,6 +7,7 @@
     <result column="available_count_" property="availableCount" jdbcType="INTEGER" />
     <result column="available_count_" property="availableCount" jdbcType="INTEGER" />
     <result column="available_amount_" property="availableAmount" jdbcType="BIGINT" />
     <result column="available_amount_" property="availableAmount" jdbcType="BIGINT" />
     <result column="modify_on_" property="modifyOn" jdbcType="TIMESTAMP" />
     <result column="modify_on_" property="modifyOn" jdbcType="TIMESTAMP" />
+    <result column="group_id_" property="groupId"/>
   </resultMap>
   </resultMap>
   <sql id="Base_Column_List" >
   <sql id="Base_Column_List" >
     user_id_, used_count_, available_count_, available_amount_, modify_on_
     user_id_, used_count_, available_count_, available_amount_, modify_on_
@@ -29,7 +30,13 @@
   <select id="findAll" resultMap="BaseResultMap">
   <select id="findAll" resultMap="BaseResultMap">
     select * from luck_draw_count
     select * from luck_draw_count
   </select>
   </select>
-  
+  <select id="findByIdAndGroupId" resultMap="BaseResultMap">
+    SELECT * FROM luck_draw_count WHERE user_id_ = #{userId} AND group_id_ = #{groupId}
+  </select>
+  <select id="findLockByIdAndGroupId" resultMap="BaseResultMap">
+    SELECT * FROM luck_draw_count WHERE user_id_ = #{userId} AND group_id_ = #{groupId} FOR UPDATE
+  </select>
+
   <delete id="delete" parameterType="java.lang.Long" >
   <delete id="delete" parameterType="java.lang.Long" >
     delete from luck_draw_count
     delete from luck_draw_count
     where user_id_ = #{userId,jdbcType=BIGINT}
     where user_id_ = #{userId,jdbcType=BIGINT}

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/LuckDrawPrizeMapper.xml

@@ -141,4 +141,10 @@
 		from luck_draw_prize
 		from luck_draw_prize
 		where enabled_ = 1 and group_id_ = #{group} and is_default_ = 1 order by id_ asc
 		where enabled_ = 1 and group_id_ = #{group} and is_default_ = 1 order by id_ asc
 	</select>
 	</select>
+    <select id="queryHorseRaceLampDto" resultMap="com.ym.mec.biz.dal.dao.SysCouponCodeDao.HorseRaceLampDto">
+		SELECT su.username_,ldp.name_ prize_name_ FROM luck_draw_log ldl
+		LEFT JOIN sys_user su ON su.id_ = ldl.user_id_
+		LEFT JOIN luck_draw_prize ldp ON ldp.id_ = ldl.prize_id_
+		WHERE ldl.group_id_ = #{groupId} AND ldl.prize_id_ != 8
+	</select>
 </mapper>
 </mapper>

+ 17 - 0
mec-biz/src/main/resources/config/mybatis/MarketActivityMapper.xml

@@ -68,4 +68,21 @@
 		SELECT COUNT(*) FROM market_activity
 		SELECT COUNT(*) FROM market_activity
 		<include refid="queryPageSql"/>
 		<include refid="queryPageSql"/>
 	</select>
 	</select>
+	<resultMap id="ActivityDetailDto" type="com.ym.mec.biz.dal.entity.ActivityDetailDto">
+		<result property="activityId" column="id_"/>
+		<result property="activityName" column="name_"/>
+		<result property="currentPrice" column="market_price_"/>
+		<result property="originalPrice" column="original_price_"/>
+		<result property="activityDesc" column="description_"/>
+		<result property="categoryName" column="category_name_"/>
+		<result property="categoryId" column="category_id_"/>
+		<result property="courseNum" column="course_num_"/>
+	</resultMap>
+    <select id="queryActivity" resultMap="ActivityDetailDto">
+		SELECT vga.id_,vga.name_,vga.description_,vga.market_price_,vgc.name_ category_name_,vgc.id_ category_id_,vga.min_course_num_ course_num_
+		FROM market_activity ma
+		LEFT JOIN vip_group_activity vga ON FIND_IN_SET(vga.id_,ma.activity_ids_)
+		LEFT JOIN vip_group_category vgc ON vgc.id_ = vga.vip_group_category_id_list_
+		WHERE ma.id_ = #{marketPriceId}
+	</select>
 </mapper>
 </mapper>

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/SysCouponCodeMapper.xml

@@ -210,6 +210,7 @@
 		<result property="username" column="username_"/>
 		<result property="username" column="username_"/>
 		<result property="num" column="num_"/>
 		<result property="num" column="num_"/>
 		<result property="faceValue" column="face_value_"/>
 		<result property="faceValue" column="face_value_"/>
+		<result property="prizeName" column="prize_name_"/>
 	</resultMap>
 	</resultMap>
 	<select id="queryHorseRaceLampDtoList" resultMap="HorseRaceLampDto">
 	<select id="queryHorseRaceLampDtoList" resultMap="HorseRaceLampDto">
 		SELECT COUNT(suc.coupon_id_) num_,sc.face_value_,su.username_ FROM sys_coupon_code suc
 		SELECT COUNT(suc.coupon_id_) num_,sc.face_value_,su.username_ FROM sys_coupon_code suc

+ 33 - 15
mec-student/src/main/java/com/ym/mec/student/controller/ActivityController.java

@@ -2,7 +2,12 @@ package com.ym.mec.student.controller;
 
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.HorseRaceLampDto;
+import com.ym.mec.biz.dal.entity.ActivityDetailDto;
+import com.ym.mec.biz.dal.entity.LuckDrawCount;
 import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
 import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
+import com.ym.mec.biz.service.LuckDrawCountService;
+import com.ym.mec.biz.service.LuckDrawPrizeService;
 import com.ym.mec.biz.service.MarketActivityService;
 import com.ym.mec.biz.service.MarketActivityService;
 import com.ym.mec.biz.service.SporadicChargeInfoService;
 import com.ym.mec.biz.service.SporadicChargeInfoService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
@@ -14,7 +19,10 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 import java.util.Comparator;
 import java.util.Comparator;
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
+import java.util.logging.Handler;
 
 
 @RequestMapping("activity")
 @RequestMapping("activity")
 @Api(tags = "活动")
 @Api(tags = "活动")
@@ -26,6 +34,10 @@ public class ActivityController extends BaseController {
     private SporadicChargeInfoService sporadicChargeInfoService;
     private SporadicChargeInfoService sporadicChargeInfoService;
     @Autowired
     @Autowired
     private MarketActivityService marketActivityService;
     private MarketActivityService marketActivityService;
+    @Autowired
+    private LuckDrawPrizeService luckDrawPrizeService;
+    @Autowired
+    private LuckDrawCountService luckDrawCountService;
 
 
     @ApiOperation(value = "分部双11活动信息")
     @ApiOperation(value = "分部双11活动信息")
     @GetMapping("/doubleEleven2020")
     @GetMapping("/doubleEleven2020")
@@ -47,19 +59,25 @@ public class ActivityController extends BaseController {
         return succeed(activeInfos);
         return succeed(activeInfos);
     }
     }
 
 
-//    @ApiOperation(value = "分部双11活动信息")
-//    @GetMapping("/doubleEleven2021")
-//    public HttpResponseResult<List<SporadicChargeInfo>> doubleEleven2021() throws Exception {
-//        SysUser sysUser = sysUserFeignService.queryUserInfo();
-//    ActivityDetailDto
-//        if (sysUser == null || sysUser.getId() == null) {
-//            return failed("请先登录");
-//        }
-//        if (sysUser.getOrganId() == null) {
-//            return failed("用户信息有误,没有分部信息");
-//        }
-//        Integer organId = sysUser.getOrganId();
-//        marketActivityService.queryActivity(12);
-//        return succeed(activeInfos);
-//    }
+    @ApiOperation(value = "分部双11活动信息")
+    @RequestMapping("/doubleEleven2021")
+    public HttpResponseResult doubleEleven2021(){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null || sysUser.getId() == null) {
+            return failed("请先登录");
+        }
+        if (sysUser.getOrganId() == null) {
+            return failed("用户信息有误,没有分部信息");
+        }
+        Map<String,Object> resultMap = new HashMap<>(3);
+        resultMap.put("activityDetailList",marketActivityService.queryActivity(12,sysUser.getOrganId()));
+        resultMap.put("horseRaceLampList",luckDrawPrizeService.queryHorseRaceLampDto(3));
+        LuckDrawCount luckDrawCount = luckDrawCountService.findByIdAndGroupId(sysUser.getId(),3);
+        if(luckDrawCount != null){
+            resultMap.put("drawNum",luckDrawCount.getAvailableCount());
+        }else {
+            resultMap.put("drawNum",0);
+        }
+        return succeed(resultMap);
+    }
 }
 }