Ver Fonte

fix:app优惠卷弹窗,领取优惠卷

wrj há 8 meses atrás
pai
commit
6d28be7f18

+ 14 - 0
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/CouponReceiveController.java

@@ -3,9 +3,11 @@ package com.ylx.web.controller.massage;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ylx.massage.domain.Coupon;
 import com.ylx.massage.domain.CouponReceive;
 import com.ylx.common.core.domain.R;
 import com.ylx.massage.domain.vo.CouponReceiveVo;
+import com.ylx.massage.domain.vo.CouponReceivesVO;
 import com.ylx.massage.service.CouponReceiveService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -69,6 +71,12 @@ public class CouponReceiveController {
         return R.ok(this.couponReceiveService.submit(couponReceive));
     }
 
+    @PostMapping("submits")
+    @ApiOperation("首页领取优惠卷")
+    public R insert(@RequestBody CouponReceivesVO couponReceive) {
+        return R.ok(this.couponReceiveService.submits(couponReceive));
+    }
+
     @PostMapping("myCoupon")
     @ApiOperation("我的优惠卷")
     public R<List<CouponReceiveVo>> myCoupon(@RequestBody CouponReceive couponReceive) {
@@ -85,5 +93,11 @@ public class CouponReceiveController {
     public R delete(@RequestParam("idList") List<Long> idList) {
         return R.ok(this.couponReceiveService.removeByIds(idList));
     }
+
+    @PostMapping("windows")
+    @ApiOperation("优惠卷弹出")
+    public R<List<Coupon>> couponWindows(@RequestBody CouponReceive couponReceive) {
+        return R.ok(this.couponReceiveService.couponWindows(couponReceive));
+    }
 }
 

+ 1 - 1
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/WeChatController.java

@@ -317,7 +317,7 @@ public class WeChatController extends BaseController {
                 user.setcOpenid(openid);
                 TWxUser finalUser = user;
                 //异步 添加新人优惠卷
-                threadPoolTaskExecutor.submit(() -> couponReceiveService.submit(new CouponReceive().setOpenid(finalUser.getcOpenid()).setCouponId("1")));
+//                threadPoolTaskExecutor.submit(() -> couponReceiveService.submit(new CouponReceive().setOpenid(finalUser.getcOpenid()).setCouponId("1")));
             }
             user.setcOpenid(openid);
             user.setcNickName(jsonObject.get("nickname").toString());

+ 1 - 1
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/WeSqController.java

@@ -91,7 +91,7 @@ public class WeSqController extends BaseController {
                 user.setcOpenid(openid);
                 TWxUser finalUser = user;
                 //异步 添加新人优惠卷
-                threadPoolTaskExecutor.submit(() -> couponReceiveService.submit(new CouponReceive().setOpenid(finalUser.getcOpenid()).setCouponId("1")));
+//                threadPoolTaskExecutor.submit(() -> couponReceiveService.submit(new CouponReceive().setOpenid(finalUser.getcOpenid()).setCouponId("1")));
             }
             user.setcOpenid(openid);
             user.setcNickName(jsonObject.get("nickname").toString());

+ 1 - 1
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/WxController.java

@@ -274,7 +274,7 @@ public class WxController extends BaseController {
                 wxUserService.save(user);
                 //异步 添加新人优惠卷
                 TWxUser finalUser = user;
-                threadPoolTaskExecutor.submit(() -> couponReceiveService.submit(new CouponReceive().setOpenid(finalUser.getcOpenid()).setCouponId("1")));
+//                threadPoolTaskExecutor.submit(() -> couponReceiveService.submit(new CouponReceive().setOpenid(finalUser.getcOpenid()).setCouponId("1")));
                 user.setId(user.getId());
             }
 

+ 6 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/domain/CouponReceive.java

@@ -54,6 +54,12 @@ public class CouponReceive extends Model<CouponReceive> {
     @ApiModelProperty("修改时间")
     private Date updateTime;
 
+    @ApiModelProperty("部门id")
+    private String deptId;
+
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
     //是否删除0否1是
     @ApiModelProperty("是否删除0否1是")
     @TableLogic

+ 24 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/domain/vo/CouponReceivesVO.java

@@ -0,0 +1,24 @@
+package com.ylx.massage.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author jianlong
+ * @date 2024-09-11 15:40
+ */
+
+@Data
+@ApiModel(value = "CouponReceivesVO" ,description = "弹窗领取优惠卷")
+public class CouponReceivesVO {
+
+    @ApiModelProperty("用户openId")
+    private String openId;
+
+    @ApiModelProperty("优惠卷id")
+    private List<String> couponIds;
+
+}

+ 6 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/service/CouponReceiveService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ylx.massage.domain.Coupon;
 import com.ylx.massage.domain.CouponReceive;
 import com.ylx.massage.domain.vo.CouponReceiveVo;
+import com.ylx.massage.domain.vo.CouponReceivesVO;
 
 import java.util.List;
 
@@ -24,5 +25,10 @@ public interface CouponReceiveService extends IService<CouponReceive> {
     List<CouponReceiveVo> getByOpenId(String openid);
 
     void removeCoupons(List<CouponReceiveVo> coupons);
+
+
+    List<Coupon> couponWindows(CouponReceive couponReceive);
+
+    Integer submits(CouponReceivesVO couponReceive);
 }
 

+ 48 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/CouponReceiveServiceImpl.java

@@ -1,19 +1,24 @@
 package com.ylx.massage.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ylx.massage.domain.Coupon;
 import com.ylx.massage.domain.vo.CouponReceiveVo;
+import com.ylx.massage.domain.vo.CouponReceivesVO;
 import com.ylx.massage.mapper.CouponReceiveMapper;
 import com.ylx.massage.domain.CouponReceive;
 import com.ylx.massage.service.CouponReceiveService;
 import com.ylx.massage.service.CouponService;
 import com.ylx.massage.utils.DateTimeUtils;
+import org.apache.commons.compress.utils.Lists;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -51,6 +56,31 @@ public class CouponReceiveServiceImpl extends ServiceImpl<CouponReceiveMapper, C
         return coupon;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Integer submits(CouponReceivesVO couponReceive) {
+
+        LambdaQueryWrapper<Coupon> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(Coupon::getId, couponReceive.getCouponIds());
+
+        List<Coupon> list = couponService.list(queryWrapper);
+        if (CollectionUtil.isEmpty(list)) {
+            return null;
+        }
+        ArrayList<CouponReceive> couponReceives = Lists.newArrayList();
+        list.forEach(coupon -> {
+            CouponReceive couponRec= new CouponReceive();
+            couponRec.setCouponId(coupon.getId());
+            couponRec.setOpenid(couponReceive.getOpenId());
+            couponRec.setDeptId(coupon.getDeptId());
+            couponRec.setDeptName(coupon.getDeptName());
+            couponRec.setUseState(0);
+            couponRec.setExpirationTime(DateTimeUtils.addDays(new Date(), coupon.getTermDays()));
+            couponReceives.add(couponRec);
+        });
+        return couponReceiveMapper.insertBatch(couponReceives);
+    }
+
     @Override
     public List<CouponReceiveVo> getByOpenId(String openid) {
         List<CouponReceiveVo> CouponReceiveVos = couponReceiveMapper.getByOpenId(openid);
@@ -74,5 +104,23 @@ public class CouponReceiveServiceImpl extends ServiceImpl<CouponReceiveMapper, C
         });
     }
 
+    @Override
+    public List<Coupon> couponWindows(CouponReceive couponReceive) {
+        //判断是否领过优惠卷
+        //查询领取优惠卷
+        List<CouponReceiveVo> CouponReceiveVos = couponReceiveMapper.getByOpenId(couponReceive.getOpenid());
+        //如果没有领取优惠卷
+        if (CollectionUtil.isEmpty(CouponReceiveVos)) {
+            //查询优惠卷
+            LambdaQueryWrapper<Coupon> couponLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            couponLambdaQueryWrapper.eq(Coupon::getStatus, 1).like(Coupon::getDeptName, couponReceive.getDeptName());
+            //返回新人优惠卷列表
+            return couponService.list(couponLambdaQueryWrapper);
+        } else {
+            return Collections.emptyList();
+        }
+    }
+
+
 }
 

+ 12 - 6
nightFragrance-massage/src/main/resources/mapper/massage/CouponReceiveMapper.xml

@@ -43,22 +43,28 @@
     </sql>
     <!-- 批量插入 -->
     <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
-        insert into ry-vue.coupon_receive(openidcoupon_idexpiration_timecreate_timeupdate_timeis_delete)
+        insert into coupon_receive(openid,coupon_id,expiration_time,dept_id,dept_name,create_time,update_time,is_delete)
         values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.openid}#{entity.couponId}#{entity.expirationTime}#{entity.createTime}#{entity.updateTime}#{entity.isDelete})
+            (#{entity.openid},#{entity.couponId},#{entity.expirationTime},#{entity.deptId},#{entity.deptName},#{entity.createTime},#{entity.updateTime},#{entity.isDelete})
         </foreach>
     </insert>
     <!-- 批量插入或按主键更新 -->
     <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
-        insert into ry-vue.coupon_receive(openidcoupon_idexpiration_timecreate_timeupdate_timeis_delete)
+        insert into coupon_receive(openid,coupon_id,expiration_time,dept_id,dept_name,create_time,update_time,is_delete)
         values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.openid}#{entity.couponId}#{entity.expirationTime}#{entity.createTime}#{entity.updateTime}#{entity.isDelete})
+            (#{entity.openid},#{entity.couponId},#{entity.expirationTime},#{entity.deptId},#{entity.deptName},#{entity.createTime},#{entity.updateTime},#{entity.isDelete})
         </foreach>
         on duplicate key update
-        openid = values(openid) coupon_id = values(coupon_id) expiration_time = values(expiration_time) create_time =
-        values(create_time) update_time = values(update_time) is_delete = values(is_delete)
+        openid = values(openid),
+        coupon_id = values(coupon_id),
+        expiration_time = values(expiration_time),
+        dept_id = values(dept_id),
+        dept_name = values(dept_name),
+        create_time = values(create_time),
+        update_time = values(update_time),
+        is_delete = values(is_delete)
     </insert>
 
     <select id="getByOpenId" resultMap="CouponReceiveVoMap">