admin
2020-12-16 e0d4647635dd7ca974e2f147da254e8cefe6821a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
package com.ks.daylucky.controller.api.client;
 
import com.ks.daylucky.pojo.DO.UserInfo;
import com.ks.daylucky.pojo.VO.*;
import com.ks.daylucky.service.UserInfoService;
import com.ks.daylucky.util.Constant;
import com.ks.daylucky.util.UserInfoUtil;
import com.ks.lucky.exception.LuckyActivityException;
import com.ks.lucky.exception.LuckyActivityJoinAssistException;
import com.ks.lucky.pojo.DO.ActivityJoinAssistEvent;
import com.ks.lucky.pojo.DO.LuckyActivityJoinAssist;
import com.ks.lucky.pojo.DO.LuckyActivityJoinRecord;
import com.ks.lucky.pojo.DTO.ActivityAssistFriend;
import com.ks.lucky.pojo.DTO.ActivityFriendAssistInfo;
import com.ks.lucky.remote.service.LuckyActivityJoinAssistService;
import com.ks.lucky.remote.service.LuckyActivityJoinService;
import net.sf.json.JSONObject;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.StringUtil;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
@Controller
@RequestMapping("api/client/activity/assist")
public class ActivityAssistController {
 
    @Reference
    private LuckyActivityJoinAssistService luckyActivityJoinAssistService;
 
    @Resource
    private LuckyActivityJoinService luckyActivityJoinService;
 
    @Resource
    private UserInfoService userInfoService;
 
 
    @ResponseBody
    @RequestMapping("assist")
    public String assist(AcceptData acceptData, Long activityId, Long joinId, int page) {
        LuckyActivityJoinRecord record = luckyActivityJoinService.getJoinRecord(joinId);
        //不存在助力
        if (record == null) {
            return JsonUtil.loadFalseResult("");
        }
 
        try {
            luckyActivityJoinAssistService.assist(activityId, acceptData.getApp().getId(), acceptData.getUid() + "", record.getUid(), ActivityJoinAssistEvent.assist, 1);
 
 
            UserInfo user = userInfoService.getUserDetail(Long.parseLong(record.getUid()));
            JSONObject data = new JSONObject();
            if (user != null) {
                //助力成功
                data.put("invite", new AssistResultInfoVO(new SimpleUser(user.getId(), user.getNickName(), user.getPortrait()), "邀请你助力拼手气抽奖"));
            }
            return JsonUtil.loadTrueResult(data);
        } catch (LuckyActivityException e) {
            e.printStackTrace();
        } catch (LuckyActivityJoinAssistException e) {
            e.printStackTrace();
        }
 
        return JsonUtil.loadFalseResult("助力失败");
    }
 
 
    @ResponseBody
    @RequestMapping("getAssistFriendsList")
    public String getAssistFriendsList(AcceptData acceptData, int page) {
        List<AssistFriendVO> list = new ArrayList<>();
        List<ActivityAssistFriend> recordList = luckyActivityJoinAssistService.getAssistFriendsList(acceptData.getApp().getId(), acceptData.getUid() + "", page, Constant.PAGE_SIZE);
        long count = luckyActivityJoinAssistService.countAssistFriends(acceptData.getApp().getId(), acceptData.getUid() + "");
        List<Long> uidList = new ArrayList<>();
        if (recordList != null) {
            for (ActivityAssistFriend assist : recordList) {
                uidList.add(Long.parseLong(assist.getUid()));
            }
            //填充用户信息
            if (uidList.size() > 0) {
                Map<Long, UserInfo> userInfoMap = userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(recordList));
                for (ActivityAssistFriend assistFriend : recordList) {
                    list.add(new AssistFriendVO(userInfoMap.get(Long.parseLong(assistFriend.getUid())), assistFriend.getAssistCount()));
                }
            }
        }
        JSONObject data = new JSONObject();
        data.put("data", JsonUtil.getApiCommonGson().toJson(list));
        data.put("count", count);
        return JsonUtil.loadTrueResult(data);
    }
 
 
    /**
     * 活动助力列表
     *
     * @param acceptData
     * @param page
     * @return
     */
    @ResponseBody
    @RequestMapping("getActivityAssistCouponList")
    public String getActivityAssistCouponList(AcceptData acceptData, Long activityId, int page) {
        List<ActivityFriendAssistInfo> list = luckyActivityJoinAssistService.getActivityFriendAssistInfoList(activityId, acceptData.getApp().getId(), acceptData.getUid() + "", page, Constant.PAGE_SIZE);
        List<ActivityFriendAssistInfoVO> voList = new ArrayList<>();
        if (list != null) {
            Map<Long, UserInfo> userMap = userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(list));
            for (ActivityFriendAssistInfo info : list) {
                UserInfo user = userMap.get(Long.parseLong(info.getUid()));
                if (user != null) {
                    List<String> eventList = new ArrayList<>();
                    if (info.getEventList() != null) {
                        for (ActivityJoinAssistEvent event : info.getEventList()) {
                            eventList.add(event.getName());
                        }
                    }
                    voList.add(new ActivityFriendAssistInfoVO(new SimpleUser(user.getId(), user.getNickName(), user.getPortrait()), StringUtil.concat(eventList, "\n且"), info.getWeight()));
                }
            }
        }
 
 
        long count = luckyActivityJoinAssistService.countyActivityFriendAssistInfo(activityId, acceptData.getApp().getId(), acceptData.getUid() + "");
 
        JSONObject data = new JSONObject();
        data.put("data", voList);
        data.put("count", count);
        return JsonUtil.loadTrueResult(data);
    }
 
 
}