guomengjiao недель назад: 3
Родитель
Сommit
e6d749602d

+ 16 - 25
renren-admin/src/main/java/io/renren/modules/listener/MeetExpirationListener.java

@@ -1,29 +1,15 @@
 package io.renren.modules.listener;
 
-import java.io.IOException;
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.amqp.core.Message;
-import org.springframework.amqp.rabbit.annotation.RabbitListener;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import com.alibaba.fastjson.JSONObject;
-import com.rabbitmq.client.Channel;
-
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.rabbitmq.client.Channel;
 import io.renren.common.canstant.QueueConstant;
 import io.renren.common.enums.MeetProcessEnum;
 import io.renren.common.enums.MeetTypeEnum;
-import io.renren.common.enums.OrderBusinessTypeEnum;
 import io.renren.common.enums.TaskConfigEnum;
-import io.renren.modules.qmgj.entity.MemberInfoEntity;
 import io.renren.modules.qmgj.service.MemberInfoService;
-import io.renren.modules.qmjz.entity.WxConsumeInfoEntity;
 import io.renren.modules.qmjz.service.WxConsumeInfoService;
 import io.renren.modules.qyh.entity.MeetEntity;
 import io.renren.modules.qyh.entity.MeetPeopleEntity;
@@ -31,6 +17,14 @@ import io.renren.modules.qyh.service.MeetPeopleService;
 import io.renren.modules.qyh.service.MeetService;
 import io.renren.modules.qyh.service.OrderService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * 青雲慧约见拼团到期 消费
@@ -71,16 +65,13 @@ public class MeetExpirationListener {
                 if (CollectionUtil.isNotEmpty(meetPeopleEntities)) {
                     TaskConfigEnum meet = TaskConfigEnum.MEET;
                     for (MeetPeopleEntity meetPeopleEntity : meetPeopleEntities) {
-                        Long memberId = meetPeopleEntity.getMemberId();
-                        WxConsumeInfoEntity wxConsumeInfoEntity = wxConsumeInfoService.getByWxConsumeInfo(memberId, meetId, meet.code());
-                        MemberInfoEntity memberInfoEntity = memberInfoService.memberById(memberId);
+//                        Long memberId = meetPeopleEntity.getMemberId();
+//                        WxConsumeInfoEntity wxConsumeInfoEntity = wxConsumeInfoService.getByWxConsumeInfo(memberId, meetId, meet.code());
+//                        MemberInfoEntity memberInfoEntity = memberInfoService.memberById(memberId);
                         try {
-                            // 退款
-                            Map<String,
-                                String> map = orderService.wxPayRefund(memberInfoEntity.getOpenid(),
-                                    memberInfoEntity.getId(), meetId, OrderBusinessTypeEnum.REFUND.value(), meet.desc(),
-                                    wxConsumeInfoEntity.getWxOrderNo(), wxConsumeInfoEntity.getMoney());
-                            log.info("约见拼团到期退款 {}", map);
+                            //退还积分
+                            meetService.refundScore(meetPeopleEntity);
+                            log.info("约见拼团到期退款 {}", meetPeopleEntity.getId());
                         } catch (Exception e) {
                             e.printStackTrace();
                             log.info("约见拼团到期退款报错", e);

+ 4 - 0
renren-admin/src/main/java/io/renren/modules/qmgj/entity/ActivityStuEntity.java

@@ -87,6 +87,10 @@ public class ActivityStuEntity implements Serializable {
 	 * 修改人
 	 */
 	private Long updateId;
+	/**
+	 * 扣除积分记录ID
+	 */
+	private Long scoreRecordId;
 	/**
 	 * 是否删除
 	 */

+ 4 - 0
renren-admin/src/main/java/io/renren/modules/qmgj/entity/WorkStuEntity.java

@@ -83,6 +83,10 @@ public class WorkStuEntity implements Serializable {
 	 * 签到状态
 	 */
 	private String signStatus;
+	/**
+	 * 扣除积分记录ID
+	 */
+	private Long scoreRecordId;
 	/**
 	 * 签到时间
 	 */

+ 19 - 2
renren-admin/src/main/java/io/renren/modules/qmgj/service/impl/ActivityServiceImpl.java

@@ -744,7 +744,11 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityDao, ActivityEntity
         //TODO 更新用户活动次数
         memberInfoDao.updateActivityFrequency(activityStu.getStuId(), 1, true);
 
-        return R.ok();
+        HashMap<String, String> resultMap = new HashMap<>();
+        resultMap.put("type", "points");
+        resultMap.put("activityStuId", activityStu.getId().toString());
+        resultMap.put("code", "0");
+        return R.ok().put("map", resultMap);
     }
 
     @Override
@@ -880,6 +884,14 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityDao, ActivityEntity
                 if (0 == code) {
                     member.setActFree("0");
                     memberInfoDao.updateById(member);
+                    String activityStuId = (String) register.getOrDefault("activityStuId", null);
+                    if (StrUtil.isNotEmpty(activityStuId)) {
+                        //更新会员报名抵扣积分ID
+                        activityStuDao.update(null,
+                                new LambdaUpdateWrapper<ActivityStuEntity>()
+                                        .set(ActivityStuEntity::getScoreRecordId, add.getId())
+                                        .eq(ActivityStuEntity::getId, Long.valueOf(activityStuId)));
+                    }
                 }
                 return register;
             } else {
@@ -1022,7 +1034,7 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityDao, ActivityEntity
             //scoreStuService.deleteRecord(stuId, actId);
             //如果是小程序报名退还积分
             if (activityStu.getFromTo().equals("1")) {
-                ScoreStu scoreStu = scoreStuService.getOneByStuIdActId(stuId, actId);
+                ScoreStu scoreStu = scoreStuService.getById(activityStu.getScoreRecordId());
                 //退还积分记录
                 if (scoreStu != null) {
                     ScoreStu add = new ScoreStu();
@@ -1411,6 +1423,11 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityDao, ActivityEntity
                     add.setCreateTime(new Date());
                     add.setSurplusScore(NumberUtil.sub(BigDecimal.ZERO, usePointsDecimal).intValue() + this.scoreStuService.getTotalScore(orderEntity.getMemberId()));
                     scoreStuMapper.insert(add);
+                    //更新会员报名抵扣积分ID
+                    activityStuDao.update(null,
+                            new LambdaUpdateWrapper<ActivityStuEntity>()
+                                    .set(ActivityStuEntity::getScoreRecordId, add.getId())
+                                    .eq(ActivityStuEntity::getId, activityStu.getId()));
                 }
 
                 ActivityEntity courseEntity = activityService.getById(activityId);

+ 4 - 2
renren-admin/src/main/java/io/renren/modules/qmgj/service/impl/WorkServiceImpl.java

@@ -614,6 +614,7 @@ public class WorkServiceImpl extends ServiceImpl<WorkDao, WorkEntity> implements
         if (ObjectUtil.isNull(statusEntity)) {
             return R.error(503, "请完善学籍认证后进行报名操作");
         }
+        Long scoreRecordId = null;
         if (workEntity.getIsNeedVip()) {
             Integer memberState = member.getMemberState();
             if (NumberUtil.equals(memberState, 0)) {
@@ -635,6 +636,7 @@ public class WorkServiceImpl extends ServiceImpl<WorkDao, WorkEntity> implements
                     add.setCreateTime(new Date());
                     add.setSurplusScore(NumberUtil.sub(BigDecimal.ZERO, workEntity.getNeedPoints()).intValue() + this.scoreStuService.getTotalScore(stuId));
                     scoreStuMapper.insert(add);
+                    scoreRecordId = add.getId();
                 }
             }
         }
@@ -813,7 +815,7 @@ public class WorkServiceImpl extends ServiceImpl<WorkDao, WorkEntity> implements
         workStu.setFromTo("1");
         workStu.setCreateTime(DateFormatUtils.format(now, "yyyy-MM-dd HH:mm:ss"));
         workStu.setCreateId((long) 0);
-
+        workStu.setScoreRecordId(scoreRecordId);
         workStuDao.insert(workStu);
 
         Integer count = workStuDao
@@ -889,7 +891,7 @@ public class WorkServiceImpl extends ServiceImpl<WorkDao, WorkEntity> implements
 
         //如果是小程序报名退还积分
         if (workStu.getFromTo().equals("1")){
-            ScoreStu scoreStu = scoreStuService.getOneByStuIdActId(stuId, workId);
+            ScoreStu scoreStu = scoreStuService.getById(workStu.getScoreRecordId());
             //退还积分记录
             if (scoreStu != null){
                 ScoreStu add = new ScoreStu();

+ 4 - 1
renren-admin/src/main/java/io/renren/modules/qmjz/enums/TaskType.java

@@ -18,7 +18,10 @@ public enum TaskType {
     WATCH_ADS(13L,"观看广告"),
     ACTIVITY_CANCEL(14L,"取消活动返还积分"),
     WORK_CANCEL(15L,"取消兼职返还积分"),
-    ACTIVITY(16L,"参加活动");
+    ACTIVITY(16L,"参加活动"),
+    MEET_APPLY_DEDUCT(17L,"约见报名抵扣的积分"),
+    MEET_CANCEL(18L,"取消约见返还积分"),
+    ;
     private final Long code;
     private final String info;
 

+ 4 - 0
renren-admin/src/main/java/io/renren/modules/qyh/entity/MeetPeopleEntity.java

@@ -39,6 +39,10 @@ public class MeetPeopleEntity implements Serializable {
      * 行家id
      */
     private Long expertId;
+    /**
+     * 扣除积分记录ID
+     */
+    private Long scoreRecordId;
     /**
      * 是否是团长 1是 0否
      */

+ 6 - 6
renren-admin/src/main/java/io/renren/modules/qyh/service/MeetService.java

@@ -1,18 +1,13 @@
 package io.renren.modules.qyh.service;
 
-import java.util.List;
-import java.util.Map;
-
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-
 import io.renren.common.utils.PageUtils;
 import io.renren.common.utils.R;
-import io.renren.modules.qmgj.entity.MemberInfoEntity;
 import io.renren.modules.qyh.entity.ExpertEntity;
 import io.renren.modules.qyh.entity.MeetEntity;
-import io.renren.modules.qyh.entity.OrderEntity;
+import io.renren.modules.qyh.entity.MeetPeopleEntity;
 import io.renren.modules.qyh.model.dto.JoinTheGroupDTO;
 import io.renren.modules.qyh.model.dto.MeetDTO;
 import io.renren.modules.qyh.model.dto.MyAppointmentDTO;
@@ -21,6 +16,8 @@ import io.renren.modules.qyh.model.vo.MyAppointmentInfoVO;
 import io.renren.modules.qyh.model.vo.MyServicePageVO;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 青雲慧-约见
@@ -54,4 +51,7 @@ public interface MeetService extends IService<MeetEntity> {
     void deleteByIds(Long[] ids);
 
     Integer myServiceStatistics(Long expertId, List<Integer> newArrayList);
+
+    void refundScore(MeetPeopleEntity meetPeopleEntity);
+
 }

+ 17 - 15
renren-admin/src/main/java/io/renren/modules/qyh/service/impl/ApiExpertWorkbenchServiceImpl.java

@@ -198,21 +198,23 @@ public class ApiExpertWorkbenchServiceImpl implements ApiExpertWorkbenchService
             try {
                 resultList = CollectionUtil.newArrayList();
                 for (MeetPeopleEntity meetPeopleEntity : meetPeopleEntities) {
-                    Long memberId = meetPeopleEntity.getMemberId();
-                    TaskConfigEnum meet = TaskConfigEnum.MEET;
-                    WxConsumeInfoEntity wxConsumeInfoEntity = wxConsumeInfoService.getByWxConsumeInfo(memberId, meetId, meet.code());
-                    if (ObjectUtil.isNull(wxConsumeInfoEntity)) {
-                        return R.error("没有当前约见订单");
-                    }
-                    String wxOrderNo = wxConsumeInfoEntity.getWxOrderNo();
-
-                    MemberInfoEntity memberInfoEntity = memberInfoService.memberById(memberId);
-                    // 退款
-                    Map<String,
-                        String> map = orderService.wxPayRefund(memberInfoEntity.getOpenid(), memberInfoEntity.getId(),
-                            meetId, OrderBusinessTypeEnum.REFUND.value(), meet.desc(), wxOrderNo,
-                            wxConsumeInfoEntity.getMoney());
-                    resultList.add(map);
+                    //退还积分
+                    meetService.refundScore(meetPeopleEntity);
+//                    Long memberId = meetPeopleEntity.getMemberId();
+//                    TaskConfigEnum meet = TaskConfigEnum.MEET;
+//                    WxConsumeInfoEntity wxConsumeInfoEntity = wxConsumeInfoService.getByWxConsumeInfo(memberId, meetId, meet.code());
+//                    if (ObjectUtil.isNull(wxConsumeInfoEntity)) {
+//                        return R.error("没有当前约见订单");
+//                    }
+//                    String wxOrderNo = wxConsumeInfoEntity.getWxOrderNo();
+//
+//                    MemberInfoEntity memberInfoEntity = memberInfoService.memberById(memberId);
+//                    // 退款
+//                    Map<String,
+//                        String> map = orderService.wxPayRefund(memberInfoEntity.getOpenid(), memberInfoEntity.getId(),
+//                            meetId, OrderBusinessTypeEnum.REFUND.value(), meet.desc(), wxOrderNo,
+//                            wxConsumeInfoEntity.getMoney());
+//                    resultList.add(map);
                 }
                 // for (MeetPeopleEntity meetPeopleEntity : meetPeopleEntities) {
                 // meetPeopleEntity.setIsDelete("1");

+ 42 - 14
renren-admin/src/main/java/io/renren/modules/qyh/service/impl/MeetServiceImpl.java

@@ -321,9 +321,9 @@ public class MeetServiceImpl extends ServiceImpl<MeetMapper, MeetEntity> impleme
         add.setDay(DateForStr.getInfoDateStr(new Date()));
         add.setStuId(memberInfoEntity.getId());
         add.setScoreType(ScoreType.STORE_SCORE.getCode());
-        add.setTaskId(TaskType.WORK_APPLY_DEDUCT.getCode());
-        add.setBusinessId(TaskType.WORK_APPLY_DEDUCT.getCode());
-        add.setScoreEvent(TaskType.WORK_APPLY_DEDUCT.getInfo());
+        add.setTaskId(TaskType.MEET_APPLY_DEDUCT.getCode());
+        add.setBusinessId(meetEntity.getId());
+        add.setScoreEvent(TaskType.MEET_APPLY_DEDUCT.getInfo());
         add.setScoreValue(NumberUtil.sub(BigDecimal.ZERO, usePoints).intValue());
         add.setCreateTime(new Date());
         add.setSurplusScore(NumberUtil.sub(BigDecimal.ZERO, usePoints).intValue() + this.scoreStuService.getTotalScore(memberInfoEntity.getId()));
@@ -349,6 +349,7 @@ public class MeetServiceImpl extends ServiceImpl<MeetMapper, MeetEntity> impleme
             peopleEntity.setCreateTime(now);
             peopleEntity.setUpdateTime(now);
             peopleEntity.setIsDelete(IsDeleteEnum.NORMAL.value());
+            peopleEntity.setScoreRecordId(add.getId());
             meetPeopleService.save(peopleEntity);
             meetEntity.setProcess(MeetProcessEnum.RESERVE.value());
             meetEntity.setMeetType(MeetTypeEnum.IN_A_GROUP.value());
@@ -377,6 +378,7 @@ public class MeetServiceImpl extends ServiceImpl<MeetMapper, MeetEntity> impleme
                     .selectOne(new LambdaQueryWrapper<MeetPeopleEntity>().eq(MeetPeopleEntity::getMeetId, meetId)
                             .orderByDesc(MeetPeopleEntity::getCreateTime).last("limit 1"));
             if(ObjectUtil.isNotNull(meetPeopleEntity)) {
+                meetPeopleEntity.setScoreRecordId(add.getId());
                 meetPeopleEntity.setIsDelete(IsDeleteEnum.NORMAL.value());
                 meetPeopleService.save(meetPeopleEntity);
             }
@@ -384,7 +386,10 @@ public class MeetServiceImpl extends ServiceImpl<MeetMapper, MeetEntity> impleme
         meetEntity.setUpdateTime(now);
         meetEntity.setIsDelete(IsDeleteEnum.NORMAL.value());
         updateById(meetEntity);
-        return new HashMap<>();
+        HashMap<String, String> resultMap = new HashMap<>();
+        resultMap.put("businessId", meetId.toString());
+        resultMap.put("type", "points");
+        return resultMap;
     }
 
     @Override
@@ -584,16 +589,19 @@ public class MeetServiceImpl extends ServiceImpl<MeetMapper, MeetEntity> impleme
         }
 
         try {
-            TaskConfigEnum meet = TaskConfigEnum.MEET;
-            WxConsumeInfoEntity wxConsumeInfoEntity = wxConsumeInfoService.getByBusinessIdAndCode(meetId, meet.code());
-            if (ObjectUtil.isNotNull(wxConsumeInfoEntity)) {
-                String wxOrderNo = wxConsumeInfoEntity.getWxOrderNo();
-                Map<String, String> value = orderService.wxPayRefund(openid, userId, meetId,
-                    OrderBusinessTypeEnum.REFUND.value(), meet.desc(), wxOrderNo, wxConsumeInfoEntity.getMoney());
-                return R.ok().put("200", value);
-            } else {
-                return R.ok();
-            }
+//            TaskConfigEnum meet = TaskConfigEnum.MEET;
+//            WxConsumeInfoEntity wxConsumeInfoEntity = wxConsumeInfoService.getByBusinessIdAndCode(meetId, meet.code());
+//            if (ObjectUtil.isNotNull(wxConsumeInfoEntity)) {
+//                String wxOrderNo = wxConsumeInfoEntity.getWxOrderNo();
+//                Map<String, String> value = orderService.wxPayRefund(openid, userId, meetId,
+//                    OrderBusinessTypeEnum.REFUND.value(), meet.desc(), wxOrderNo, wxConsumeInfoEntity.getMoney());
+//                return R.ok().put("200", value);
+//            } else {
+//                return R.ok();
+//            }
+            //退还积分
+            refundScore(meetPeopleEntity);
+            return R.ok();
         } catch (Exception e) {
             e.printStackTrace();
             return R.error("微信退款异常!");
@@ -703,6 +711,26 @@ public class MeetServiceImpl extends ServiceImpl<MeetMapper, MeetEntity> impleme
         return baseMapper.selectMyServiceStatistics(expertId, meetProcessList);
     }
 
+    @Override
+    public void refundScore(MeetPeopleEntity meetPeopleEntity) {
+        // 退款
+        ScoreStu scoreStu = scoreStuService.getById(meetPeopleEntity.getScoreRecordId());
+        //退还积分记录
+        if (scoreStu != null){
+            ScoreStu add = new ScoreStu();
+            add.setDay(DateForStr.getInfoDateStr(new Date()));
+            add.setStuId(meetPeopleEntity.getMemberId());
+            add.setScoreType(ScoreType.STORE_SCORE.getCode());
+            add.setTaskId(TaskType.MEET_CANCEL.getCode());
+            add.setBusinessId(meetPeopleEntity.getMeetId());
+            add.setScoreEvent(TaskType.MEET_CANCEL.getInfo());
+            add.setScoreValue(Math.abs(scoreStu.getScoreValue()));
+            add.setCreateTime(new Date());
+            add.setSurplusScore(Math.abs(scoreStu.getScoreValue())+ this.scoreStuService.getTotalScore(meetPeopleEntity.getMemberId()));
+            scoreStuMapper.insert(add);
+        }
+    }
+
     private void verifyMeetPeople(Long userId, Long expertId, Long topicId) {
         ExpertEntity expertEntity = expertService.loadByMemberId(userId, false);
         if (ObjectUtil.isNotNull(expertEntity)) {

+ 2 - 2
renren-admin/src/main/resources/application.yml

@@ -84,8 +84,8 @@ mybatis-plus:
 wx:
   miniapp:
     configs:
-      - appid:  wxd15dbb580e6f1cd3
-        secret: 394255a31fabcd3736a2c102cd54560c
+      - appid:  wx0ca047da2ecada85
+        secret: 2134098db435a367a3bc4541a293bda1
         token: #微信小程序消息服务器配置的token
         aesKey: #微信小程序消息服务器配置的EncodingAESKey
         msgDataFormat: JSON

+ 1 - 0
renren-admin/src/main/resources/mapper/qmgj/ActivityStuDao.xml

@@ -29,6 +29,7 @@
         <result property="vipName" column="vip_name"/>
         <result property="inputTime" column="input_time"/>
         <result property="memberPhoto" column="member_photo"/>
+        <result property="scoreRecordId" column="score_record_id"/>
         <association property="activity" javaType="io.renren.modules.qmgj.entity.ActivityEntity">
             <result property="id" column="id"/>
             <result property="activityNo" column="activity_no"/>

+ 1 - 0
renren-admin/src/main/resources/mapper/qmgj/WorkStuDao.xml

@@ -29,6 +29,7 @@
         <result property="fromTo" column="from_to"/>
         <result property="isSynchronization" column="is_synchronization"/>
         <result property="freeze" column="freeze"/>
+        <result property="scoreRecordId" column="score_record_id"/>
         <association property="work" javaType="io.renren.modules.qmgj.entity.WorkEntity">
             <result property="clientId" column="client_id"/>
             <result property="workNo" column="work_no"/>

+ 1 - 0
renren-admin/src/main/resources/mapper/qyh/MeetPeopleDao.xml

@@ -17,6 +17,7 @@
         <result property="updateId" column="update_id"/>
         <result property="updateTime" column="update_time"/>
         <result property="isDelete" column="is_delete"/>
+        <result property="scoreRecordId" column="score_record_id"/>
     </resultMap>
     <select id="myAppointmentPage" resultType="io.renren.modules.qyh.model.vo.MyAppointmentPageVO">
         SELECT