admin
2020-12-16 e0d4647635dd7ca974e2f147da254e8cefe6821a
商品列表,商品详情接口完善
1 文件已重命名
19个文件已修改
12个文件已添加
1324 ■■■■■ 已修改文件
facade-lucky/src/main/java/com/ks/lucky/pojo/DO/ActivityJoinAssistEvent.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/pojo/DO/LuckyActivityAwardResult.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/pojo/DO/LuckyActivityJoinAssist.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/pojo/DO/LuckySponsorAd.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/pojo/DTO/ActivityFriendAssistInfo.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/pojo/DTO/sponsorad/AlipayLifeAdInfo.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/remote/service/LuckyActivityJoinAssistService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-app/src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityAssistController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityJoinController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/AnouncementController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/DTO/ActivityDetailInfoDTO.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/DTO/ActivityJoinConditionEvent.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityAwardVO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityDetailVO.java 403 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityListItemInfoVO.java 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/LabelVO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/SponsorVO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/common/JumpDetailVO.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/service/ActivityService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/service/impl/ActivityServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/util/activity/ActivityUtil.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/util/factory/vo/ActivityDetailVOFactory.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/util/factory/vo/ActivityListItemInfoVOFactory.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/query/ActivityJoinAssistQuery.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/service/impl/AppManager.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinAssistServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/util/factory/LuckyActivityUserWeightRecordFactory.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/resources/mapper/LuckyActivityJoinAssistMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/test/java/com/ks/lucky/JoinTest.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/pojo/DO/ActivityJoinAssistEvent.java
New file
@@ -0,0 +1,15 @@
package com.ks.lucky.pojo.DO;
public enum ActivityJoinAssistEvent {
    assist("助力"), assistJoin("助力者参加活动");
    private String name;
    private ActivityJoinAssistEvent(String name) {
        this.name = name;
    }
    public String getName() {
        return this.name;
    }
}
facade-lucky/src/main/java/com/ks/lucky/pojo/DO/LuckyActivityAwardResult.java
@@ -29,6 +29,16 @@
    @Transient
    private LuckyActivityAwardResultExtra extra;
    @Transient
    private LuckyActivityAwards award;
    public LuckyActivityAwards getAward() {
        return award;
    }
    public void setAward(LuckyActivityAwards award) {
        this.award = award;
    }
    public LuckyActivityAwardResultExtra getExtra() {
        return extra;
facade-lucky/src/main/java/com/ks/lucky/pojo/DO/LuckyActivityJoinAssist.java
@@ -5,21 +5,6 @@
public class LuckyActivityJoinAssist implements Serializable {
    public enum ActivityJoinAssistEvent {
        assist("助力"), assistJoin("助力者参加活动");
        private String name;
        private ActivityJoinAssistEvent(String name) {
            this.name = name;
        }
        public String getName() {
            return this.name;
        }
    }
    private Long id;
    private Long joinId;
facade-lucky/src/main/java/com/ks/lucky/pojo/DO/LuckySponsorAd.java
@@ -1,5 +1,6 @@
package com.ks.lucky.pojo.DO;
import com.ks.lucky.pojo.DTO.sponsorad.AlipayLifeAdInfo;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.validation.Valid;
@@ -12,7 +13,7 @@
 */
@Valid
@Document(collection = "luckySponsorAd")
public class LuckySponsorAd  implements Serializable {
public class LuckySponsorAd implements Serializable {
    //待审核
    public final static int STATE_WAIT_VERIFY = 0;
@@ -48,6 +49,16 @@
    private Date createTime;
    private Date updateTime;
    //支付宝生活号
    private AlipayLifeAdInfo alipayLifeAdInfo;
    public AlipayLifeAdInfo getAlipayLifeAdInfo() {
        return alipayLifeAdInfo;
    }
    public void setAlipayLifeAdInfo(AlipayLifeAdInfo alipayLifeAdInfo) {
        this.alipayLifeAdInfo = alipayLifeAdInfo;
    }
    public SponsorAdType getAdType() {
        return adType;
facade-lucky/src/main/java/com/ks/lucky/pojo/DTO/ActivityFriendAssistInfo.java
@@ -1,7 +1,7 @@
package com.ks.lucky.pojo.DTO;
import com.ks.lucky.pojo.DO.ActivityJoinAssistEvent;
import com.ks.lucky.pojo.DO.BaseUser;
import com.ks.lucky.pojo.DO.LuckyActivityJoinAssist;
import java.util.List;
@@ -12,7 +12,7 @@
    private Long joinerId;
    private int weight;
    private List<LuckyActivityJoinAssist.ActivityJoinAssistEvent> eventList;
    private List<ActivityJoinAssistEvent> eventList;
    public Long getJoinerId() {
@@ -31,11 +31,11 @@
        this.weight = weight;
    }
    public List<LuckyActivityJoinAssist.ActivityJoinAssistEvent> getEventList() {
    public List<ActivityJoinAssistEvent> getEventList() {
        return eventList;
    }
    public void setEventList(List<LuckyActivityJoinAssist.ActivityJoinAssistEvent> eventList) {
    public void setEventList(List<ActivityJoinAssistEvent> eventList) {
        this.eventList = eventList;
    }
}
facade-lucky/src/main/java/com/ks/lucky/pojo/DTO/sponsorad/AlipayLifeAdInfo.java
New file
@@ -0,0 +1,79 @@
package com.ks.lucky.pojo.DTO.sponsorad;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
public class AlipayLifeAdInfo implements Serializable {
    /**
     * 图标
     */
    @NotEmpty(message = "图标不能为空")
    private String icon;
    //名称
    /**
     * 名称
     */
    @NotEmpty(message = "名称不能为空")
    private String name;
    /**
     * 简介
     */
    @NotEmpty(message = "简介不能为空")
    private String desc;
    /**
     * senceId
     */
    @NotEmpty(message = "sceneId不能为空")
    private String sceneId;
    /**
     * 是否必须关注
     */
    @NotNull(message = "是否必须关注")
    private Boolean mustAttention;
    public Boolean getMustAttention() {
        return mustAttention;
    }
    public void setMustAttention(Boolean mustAttention) {
        this.mustAttention = mustAttention;
    }
    public String getIcon() {
        return icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
    public String getSceneId() {
        return sceneId;
    }
    public void setSceneId(String sceneId) {
        this.sceneId = sceneId;
    }
}
facade-lucky/src/main/java/com/ks/lucky/remote/service/LuckyActivityJoinAssistService.java
@@ -2,6 +2,7 @@
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.DTO.ActivityAssistFriend;
import com.ks.lucky.pojo.DTO.ActivityFriendAssistInfo;
@@ -25,7 +26,7 @@
     * @param targetUid
     * @throws LuckyActivityJoinAssistException
     */
    public void assist(@NotNull Long activityId, @NotEmpty Long appId, @NotEmpty String uid, @NotEmpty String targetUid, @NotNull LuckyActivityJoinAssist.ActivityJoinAssistEvent eventKey, int weight) throws LuckyActivityException, LuckyActivityJoinAssistException;
    public void assist(@NotNull Long activityId, @NotEmpty Long appId, @NotEmpty String uid, @NotEmpty String targetUid, @NotNull ActivityJoinAssistEvent eventKey, int weight) throws LuckyActivityException, LuckyActivityJoinAssistException;
    /**
service-app/src/main/resources/application.yml
@@ -33,7 +33,7 @@
  datasource:
    #172.16.16.17:3306
    url: jdbc:mysql://172.16.16.17:3306/ks_app
    url: jdbc:mysql://gz-cdb-r13d0yi9.sql.tencentcdb.com:62929/ks_app
    username: root
    password: Yeshi2016@
    driver-class-name: com.mysql.jdbc.Driver
@@ -64,7 +64,7 @@
    name: app-provider
  registry:
    protocol: zookeeper
    address: zookeeper://134.175.68.214:2181 # 134.175.68.214   134.175.68.214:2181
    address: zookeeper://192.168.3.253:2181 # 134.175.68.214   134.175.68.214:2181
    client: curator
  protocol:
    name: dubbo
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityAssistController.java
@@ -7,6 +7,7 @@
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;
@@ -50,7 +51,7 @@
        }
        try {
            luckyActivityJoinAssistService.assist(activityId, acceptData.getApp().getId(), acceptData.getUid() + "", record.getUid(), LuckyActivityJoinAssist.ActivityJoinAssistEvent.assist, 1);
            luckyActivityJoinAssistService.assist(activityId, acceptData.getApp().getId(), acceptData.getUid() + "", record.getUid(), ActivityJoinAssistEvent.assist, 1);
            UserInfo user = userInfoService.getUserDetail(Long.parseLong(record.getUid()));
@@ -115,7 +116,7 @@
                if (user != null) {
                    List<String> eventList = new ArrayList<>();
                    if (info.getEventList() != null) {
                        for (LuckyActivityJoinAssist.ActivityJoinAssistEvent event : info.getEventList()) {
                        for (ActivityJoinAssistEvent event : info.getEventList()) {
                            eventList.add(event.getName());
                        }
                    }
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityController.java
@@ -1,18 +1,12 @@
package com.ks.daylucky.controller.api.client;
import com.ks.daylucky.pojo.DO.ActivityTag;
import com.ks.daylucky.pojo.DO.UserInfo;
import com.ks.daylucky.pojo.VO.AcceptData;
import com.ks.daylucky.pojo.VO.ActivityDetailInfoVO;
import com.ks.daylucky.pojo.VO.SimpleUser;
import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO;
import com.ks.daylucky.service.ActivityService;
import com.ks.daylucky.service.ActivityTagService;
import com.ks.daylucky.service.UserInfoService;
import com.ks.daylucky.util.Constant;
import com.ks.daylucky.util.UserInfoUtil;
import com.ks.lucky.pojo.DO.LuckyActivity;
import com.ks.lucky.pojo.DO.LuckyActivityJoinRecord;
import com.ks.lucky.pojo.DTO.ActivitySimpleUser;
import com.ks.lucky.remote.service.LuckyActivityJoinService;
import com.ks.lucky.remote.service.LuckyActivityService;
import net.sf.json.JSONObject;
@@ -24,7 +18,6 @@
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("api/client/activity")
@@ -56,7 +49,7 @@
    @ResponseBody
    @RequestMapping("getActivityDetail")
    public String getActivityDetail(AcceptData acceptData, Long activityId) {
        ActivityDetailInfoVO vo = activityService.getActivityDetail(activityId, acceptData.getApp().getId(), acceptData.getUid(), true, 20, false);
        ActivityDetailInfoDTO vo = activityService.getActivityDetail(activityId, acceptData.getApp().getId(), acceptData.getUid(), true, 20, false);
        if (vo == null) {
            return JsonUtil.loadFalseResult("活动不存在");
        }
@@ -84,7 +77,10 @@
                activityIds.add(activity.getId());
            }
        }
        List<ActivityDetailInfoVO> voList = activityService.getActivityDetail(activityIds, acceptData.getApp().getId(), acceptData.getUid(), false);
        List<ActivityDetailInfoDTO> voList = activityService.getActivityDetail(activityIds, acceptData.getApp().getId(), acceptData.getUid(), false);
        JSONObject data = new JSONObject();
        data.put("data", voList);
        data.put("count", count);
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityJoinController.java
@@ -1,6 +1,7 @@
package com.ks.daylucky.controller.api.client;
import com.ks.daylucky.pojo.DO.UserInfo;
import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO;
import com.ks.daylucky.pojo.VO.*;
import com.ks.daylucky.service.ActivityService;
import com.ks.daylucky.service.UserInfoService;
@@ -198,7 +199,7 @@
                break;
        }
        List<ActivityDetailInfoVO> voList = activityService.getActivityDetail(activityIdList, appId, uid, type == 2 ? true : false);
        List<ActivityDetailInfoDTO> voList = activityService.getActivityDetail(activityIdList, appId, uid, type == 2 ? true : false);
        JSONObject data = new JSONObject();
        data.put("data", JsonUtil.getApiCommonGson().toJson(voList));
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/AnouncementController.java
@@ -2,24 +2,13 @@
import com.ks.daylucky.pojo.DO.Announcement;
import com.ks.daylucky.pojo.VO.AcceptData;
import com.ks.daylucky.pojo.VO.ActivityDetailInfoVO;
import com.ks.daylucky.service.ActivityService;
import com.ks.daylucky.service.ActivityTagService;
import com.ks.daylucky.service.AnnouncementService;
import com.ks.daylucky.service.UserInfoService;
import com.ks.daylucky.util.Constant;
import com.ks.lucky.pojo.DO.LuckyActivity;
import com.ks.lucky.remote.service.LuckyActivityJoinService;
import com.ks.lucky.remote.service.LuckyActivityService;
import net.sf.json.JSONObject;
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 javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Controller
@RequestMapping("api/client/anouncement")
service-daylucky/src/main/java/com/ks/daylucky/pojo/DTO/ActivityDetailInfoDTO.java
File was renamed from service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityDetailInfoVO.java
@@ -1,8 +1,10 @@
package com.ks.daylucky.pojo.VO;
package com.ks.daylucky.pojo.DTO;
import com.google.gson.annotations.Expose;
import com.ks.daylucky.pojo.DO.ActivityTag;
import com.ks.daylucky.pojo.VO.SimpleUser;
import com.ks.lucky.pojo.DO.LuckyActivity;
import com.ks.lucky.pojo.DO.LuckyActivityAwardResult;
import com.ks.lucky.pojo.DO.LuckyActivityAwards;
import java.util.List;
@@ -10,7 +12,7 @@
/**
 * 活动详情
 */
public class ActivityDetailInfoVO {
public class ActivityDetailInfoDTO {
    @Expose
    //活动信息
@@ -32,6 +34,18 @@
    //活动中奖结果
    private LuckyActivityAwards awards;
    //中奖结果
    private LuckyActivityAwardResult awardResult;
    public LuckyActivityAwardResult getAwardResult() {
        return awardResult;
    }
    public void setAwardResult(LuckyActivityAwardResult awardResult) {
        this.awardResult = awardResult;
    }
    public LuckyActivityAwards getAwards() {
        return awards;
    }
service-daylucky/src/main/java/com/ks/daylucky/pojo/DTO/ActivityJoinConditionEvent.java
New file
@@ -0,0 +1,11 @@
package com.ks.daylucky.pojo.DTO;
/**
 * 参与活动的条件事件
 */
public enum ActivityJoinConditionEvent {
    attention("关注");
    private ActivityJoinConditionEvent(String name) {
    }
}
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityAwardVO.java
New file
@@ -0,0 +1,49 @@
package com.ks.daylucky.pojo.VO;
public class ActivityAwardVO {
    /**
     * id : 123
     * typeIcon : 类型图标链接
     * title : 奖品名称
     * link : 详情链接
     */
    private Long id;
    private String typeIcon;
    private String title;
    private String link;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getTypeIcon() {
        return typeIcon;
    }
    public void setTypeIcon(String typeIcon) {
        this.typeIcon = typeIcon;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getLink() {
        return link;
    }
    public void setLink(String link) {
        this.link = link;
    }
}
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityDetailVO.java
New file
@@ -0,0 +1,403 @@
package com.ks.daylucky.pojo.VO;
import com.ks.daylucky.pojo.DTO.ActivityJoinConditionEvent;
import com.ks.daylucky.pojo.VO.common.JumpDetailVO;
import java.util.Date;
import java.util.List;
/**
 * 活动详情
 */
public class ActivityDetailVO {
    /**
     * activity : {"id":123,"name":"测试活动名称","poster":"封面图片链接","leftTime":18584455,"labels":[{"content":"","color":"#ff0000"}],"helpLink":"帮助中心链接","sponsor":{"id":13123,"icon":"赞助商的图标","name":"赞助商的名称"},"awardList":[{"id":123,"typeIcon":"类型图标链接","title":"奖品名称","link":"详情链接"}],"sponsorAd":{"icon":"广告图标","title":"广告名称","label":{},"content":"广告内容","jump":{"jumpType":"lifeFollow","showName":"收藏直播间","jumpParams":{"sceneId":"48a5df949dd5406193dcdba81f0bb9fd"}}}}
     * joinCondition : {"conditionsDesc":["",""],"conditions":[{"eventType":"lifeFollow"}],"marks":"备注"}
     * openConditions : {"conditions":["",""],"marks":"备注"}
     * userList : [{"id":1,"portrait":"头像"}]
     * totalJoinNumerDesc : 参与人数量描述
     * joined : false
     * stateInfo : {"title":"状态信息的标题","subTitle":"状态信息副标题","drawnInfo":{"award":{"id":123,"typeIcon":"类型图标链接","title":"奖品名称","link":"详情链接"},"subTitle":"中奖的副标题"}}
     */
    //活动详情
    private ActivityBean activity;
    //加入条件
    private ActivityBean.JoinConditionBean joinCondition;
    //开奖条件
    private ActivityBean.OpenConditionsBean openConditions;
    //总共参与人员信息
    private String totalJoinNumerDesc;
    //是否参加
    private Boolean joined;
    //状态
    private ActivityBean.StateInfoBean stateInfo;
    //参与者列表
    private List<SimpleUser> userList;
    //帮助链接
    private String helpLink;
    //标签
    private List<LabelVO> labels;
    //助力进度
    private Integer assistCount;
    //开奖时间
    private String actualOpenDate;
    public String getActualOpenDate() {
        return actualOpenDate;
    }
    public void setActualOpenDate(String actualOpenDate) {
        this.actualOpenDate = actualOpenDate;
    }
    public Integer getAssistCount() {
        return assistCount;
    }
    public void setAssistCount(Integer assistCount) {
        this.assistCount = assistCount;
    }
    public List<LabelVO> getLabels() {
        return labels;
    }
    public void setLabels(List<LabelVO> labels) {
        this.labels = labels;
    }
    public Boolean getJoined() {
        return joined;
    }
    public String getHelpLink() {
        return helpLink;
    }
    public void setHelpLink(String helpLink) {
        this.helpLink = helpLink;
    }
    public ActivityBean getActivity() {
        return activity;
    }
    public void setActivity(ActivityBean activity) {
        this.activity = activity;
    }
    public ActivityBean.JoinConditionBean getJoinCondition() {
        return joinCondition;
    }
    public void setJoinCondition(ActivityBean.JoinConditionBean joinCondition) {
        this.joinCondition = joinCondition;
    }
    public ActivityBean.OpenConditionsBean getOpenConditions() {
        return openConditions;
    }
    public void setOpenConditions(ActivityBean.OpenConditionsBean openConditions) {
        this.openConditions = openConditions;
    }
    public String getTotalJoinNumerDesc() {
        return totalJoinNumerDesc;
    }
    public void setTotalJoinNumerDesc(String totalJoinNumerDesc) {
        this.totalJoinNumerDesc = totalJoinNumerDesc;
    }
    public Boolean isJoined() {
        return joined;
    }
    public void setJoined(Boolean joined) {
        this.joined = joined;
    }
    public ActivityBean.StateInfoBean getStateInfo() {
        return stateInfo;
    }
    public void setStateInfo(ActivityBean.StateInfoBean stateInfo) {
        this.stateInfo = stateInfo;
    }
    public List<SimpleUser> getUserList() {
        return userList;
    }
    public void setUserList(List<SimpleUser> userList) {
        this.userList = userList;
    }
    public static class ActivityBean {
        /**
         * id : 123
         * name : 测试活动名称
         * poster : 封面图片链接
         * leftTime : 18584455
         * labels : [{"content":"","color":"#ff0000"}]
         * helpLink : 帮助中心链接
         * sponsor : {"id":13123,"icon":"赞助商的图标","name":"赞助商的名称"}
         * awardList : [{"id":123,"typeIcon":"类型图标链接","title":"奖品名称","link":"详情链接"}]
         * sponsorAd : {"icon":"广告图标","title":"广告名称","label":{},"content":"广告内容","jump":{"jumpType":"lifeFollow","showName":"收藏直播间","jumpParams":{"sceneId":"48a5df949dd5406193dcdba81f0bb9fd"}}}
         */
        private Long id;
        private String name;
        private String poster;
        private Long leftTime;
        private SponsorVO sponsor;
        private SponsorAdBean sponsorAd;
        private List<ActivityAwardVO> awardList;
        public Long getId() {
            return id;
        }
        public void setId(Long id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getPoster() {
            return poster;
        }
        public void setPoster(String poster) {
            this.poster = poster;
        }
        public Long getLeftTime() {
            return leftTime;
        }
        public void setLeftTime(Long leftTime) {
            this.leftTime = leftTime;
        }
        public SponsorVO getSponsor() {
            return sponsor;
        }
        public void setSponsor(SponsorVO sponsor) {
            this.sponsor = sponsor;
        }
        public SponsorAdBean getSponsorAd() {
            return sponsorAd;
        }
        public void setSponsorAd(SponsorAdBean sponsorAd) {
            this.sponsorAd = sponsorAd;
        }
        public List<ActivityAwardVO> getAwardList() {
            return awardList;
        }
        public void setAwardList(List<ActivityAwardVO> awardList) {
            this.awardList = awardList;
        }
        public static class SponsorAdBean {
            /**
             * icon : 广告图标
             * title : 广告名称
             * label : {}
             * content : 广告内容
             * jump : {"jumpType":"lifeFollow","showName":"收藏直播间","jumpParams":{"sceneId":"48a5df949dd5406193dcdba81f0bb9fd"}}
             */
            private String icon;
            private String title;
            private LabelVO label;
            private String content;
            private JumpDetailVO jump;
            public String getIcon() {
                return icon;
            }
            public void setIcon(String icon) {
                this.icon = icon;
            }
            public String getTitle() {
                return title;
            }
            public void setTitle(String title) {
                this.title = title;
            }
            public LabelVO getLabel() {
                return label;
            }
            public void setLabel(LabelVO label) {
                this.label = label;
            }
            public String getContent() {
                return content;
            }
            public void setContent(String content) {
                this.content = content;
            }
            public JumpDetailVO getJump() {
                return jump;
            }
            public void setJump(JumpDetailVO jump) {
                this.jump = jump;
            }
        }
        public static class JoinConditionBean {
            /**
             * conditionsDesc : ["",""]
             * conditions : [{"eventType":"lifeFollow"}]
             * marks : 备注
             */
            private String marks;
            private List<String> conditionsDesc;
            private List<ActivityJoinConditionEvent> conditions;
            public String getMarks() {
                return marks;
            }
            public void setMarks(String marks) {
                this.marks = marks;
            }
            public List<String> getConditionsDesc() {
                return conditionsDesc;
            }
            public void setConditionsDesc(List<String> conditionsDesc) {
                this.conditionsDesc = conditionsDesc;
            }
            public List<ActivityJoinConditionEvent> getConditions() {
                return conditions;
            }
            public void setConditions(List<ActivityJoinConditionEvent> conditions) {
                this.conditions = conditions;
            }
        }
        public static class OpenConditionsBean {
            /**
             * conditions : ["",""]
             * marks : 备注
             */
            private String marks;
            private List<String> conditions;
            public String getMarks() {
                return marks;
            }
            public void setMarks(String marks) {
                this.marks = marks;
            }
            public List<String> getConditions() {
                return conditions;
            }
            public void setConditions(List<String> conditions) {
                this.conditions = conditions;
            }
        }
        public static class StateInfoBean {
            /**
             * title : 状态信息的标题
             * subTitle : 状态信息副标题
             * drawnInfo : {"award":{"id":123,"typeIcon":"类型图标链接","title":"奖品名称","link":"详情链接"},"subTitle":"中奖的副标题"}
             */
            private String title;
            private String subTitle;
            private DrawnInfoBean drawnInfo;
            public String getTitle() {
                return title;
            }
            public void setTitle(String title) {
                this.title = title;
            }
            public String getSubTitle() {
                return subTitle;
            }
            public void setSubTitle(String subTitle) {
                this.subTitle = subTitle;
            }
            public DrawnInfoBean getDrawnInfo() {
                return drawnInfo;
            }
            public void setDrawnInfo(DrawnInfoBean drawnInfo) {
                this.drawnInfo = drawnInfo;
            }
            public static class DrawnInfoBean {
                /**
                 * award : {"id":123,"typeIcon":"类型图标链接","title":"奖品名称","link":"详情链接"}
                 * subTitle : 中奖的副标题
                 */
                private ActivityAwardVO award;
                private String subTitle;
                public ActivityAwardVO getAward() {
                    return award;
                }
                public void setAward(ActivityAwardVO award) {
                    this.award = award;
                }
                public String getSubTitle() {
                    return subTitle;
                }
                public void setSubTitle(String subTitle) {
                    this.subTitle = subTitle;
                }
            }
        }
    }
}
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityListItemInfoVO.java
New file
@@ -0,0 +1,192 @@
package com.ks.daylucky.pojo.VO;
import java.util.List;
/**
 * 活动列表信息
 */
public class ActivityListItemInfoVO {
    /**
     * activity : {"id":123,"name":"测试活动名称","poster":"封面图片链接","sponsor":{"id":13123,"icon":"赞助商的图标","name":"赞助商的名称"},"awardList":[{"id":123,"typeIcon":"类型图标链接","title":"奖品名称","link":"详情链接"}]}
     * openInfoDesc : 开奖信息描述
     * userList : [{"id":1,"portrait":"头像"}]
     * totalJoinNumerDesc : 参与人数量描述
     * joined : false
     * stateInfo : {"title":"状态信息的标题","subTitle":"状态信息副标题","drawnInfo":{"award":{"id":123,"typeIcon":"类型图标链接","title":"奖品名称","link":"详情链接"},"subTitle":"中奖的副标题"}}
     */
    private ActivityBean activity;
    private String openInfoDesc;
    private String totalJoinNumerDesc;
    private boolean joined;
    private StateInfoBean stateInfo;
    private List<SimpleUser> userList;
    public ActivityBean getActivity() {
        return activity;
    }
    public void setActivity(ActivityBean activity) {
        this.activity = activity;
    }
    public String getOpenInfoDesc() {
        return openInfoDesc;
    }
    public void setOpenInfoDesc(String openInfoDesc) {
        this.openInfoDesc = openInfoDesc;
    }
    public String getTotalJoinNumerDesc() {
        return totalJoinNumerDesc;
    }
    public void setTotalJoinNumerDesc(String totalJoinNumerDesc) {
        this.totalJoinNumerDesc = totalJoinNumerDesc;
    }
    public boolean isJoined() {
        return joined;
    }
    public void setJoined(boolean joined) {
        this.joined = joined;
    }
    public StateInfoBean getStateInfo() {
        return stateInfo;
    }
    public void setStateInfo(StateInfoBean stateInfo) {
        this.stateInfo = stateInfo;
    }
    public List<SimpleUser> getUserList() {
        return userList;
    }
    public void setUserList(List<SimpleUser> userList) {
        this.userList = userList;
    }
    public static class ActivityBean {
        /**
         * id : 123
         * name : 测试活动名称
         * poster : 封面图片链接
         * sponsor : {"id":13123,"icon":"赞助商的图标","name":"赞助商的名称"}
         * awardList : [{"id":123,"typeIcon":"类型图标链接","title":"奖品名称","link":"详情链接"}]
         */
        private int id;
        private String name;
        private String poster;
        private SponsorVO sponsor;
        private List<ActivityAwardVO> awardList;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getPoster() {
            return poster;
        }
        public void setPoster(String poster) {
            this.poster = poster;
        }
        public SponsorVO getSponsor() {
            return sponsor;
        }
        public void setSponsor(SponsorVO sponsor) {
            this.sponsor = sponsor;
        }
        public List<ActivityAwardVO> getAwardList() {
            return awardList;
        }
        public void setAwardList(List<ActivityAwardVO> awardList) {
            this.awardList = awardList;
        }
    }
    public static class StateInfoBean {
        /**
         * title : 状态信息的标题
         * subTitle : 状态信息副标题
         * drawnInfo : {"award":{"id":123,"typeIcon":"类型图标链接","title":"奖品名称","link":"详情链接"},"subTitle":"中奖的副标题"}
         */
        private String title;
        private String subTitle;
        private DrawnInfoBean drawnInfo;
        public String getTitle() {
            return title;
        }
        public void setTitle(String title) {
            this.title = title;
        }
        public String getSubTitle() {
            return subTitle;
        }
        public void setSubTitle(String subTitle) {
            this.subTitle = subTitle;
        }
        public DrawnInfoBean getDrawnInfo() {
            return drawnInfo;
        }
        public void setDrawnInfo(DrawnInfoBean drawnInfo) {
            this.drawnInfo = drawnInfo;
        }
        public static class DrawnInfoBean {
            /**
             * award : {"id":123,"typeIcon":"类型图标链接","title":"奖品名称","link":"详情链接"}
             * subTitle : 中奖的副标题
             */
            private ActivityAwardVO award;
            private String subTitle;
            public ActivityAwardVO getAward() {
                return award;
            }
            public void setAward(ActivityAwardVO award) {
                this.award = award;
            }
            public String getSubTitle() {
                return subTitle;
            }
            public void setSubTitle(String subTitle) {
                this.subTitle = subTitle;
            }
        }
    }
}
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/LabelVO.java
New file
@@ -0,0 +1,41 @@
package com.ks.daylucky.pojo.VO;
public class LabelVO {
    private String name;
    private String bgColor;
    private String fontColr;
    public LabelVO(String name, String bgColor, String fontColr) {
        this.name = name;
        this.bgColor = bgColor;
        this.fontColr = fontColr;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getBgColor() {
        return bgColor;
    }
    public void setBgColor(String bgColor) {
        this.bgColor = bgColor;
    }
    public String getFontColr() {
        return fontColr;
    }
    public void setFontColr(String fontColr) {
        this.fontColr = fontColr;
    }
}
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/SponsorVO.java
New file
@@ -0,0 +1,39 @@
package com.ks.daylucky.pojo.VO;
public class SponsorVO {
    /**
     * id : 13123
     * icon : 赞助商的图标
     * name : 赞助商的名称
     */
    private Long id;
    private String icon;
    private String name;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getIcon() {
        return icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/common/JumpDetailVO.java
New file
@@ -0,0 +1,52 @@
package com.ks.daylucky.pojo.VO.common;
import net.sf.json.JSONObject;
public class JumpDetailVO {
    public enum JumpType {
        alipayLife("支付宝生活号");
        private JumpType(String name) {
        }
    }
    //跳转类型
    private JumpType jumpType;
    //展示的名称
    private String showName;
    //跳转参数
    private JSONObject params;
    public JumpDetailVO(JumpType jumpType, String showName, JSONObject params) {
        this.jumpType = jumpType;
        this.showName = showName;
        this.params = params;
    }
    public JumpType getJumpType() {
        return jumpType;
    }
    public void setJumpType(JumpType jumpType) {
        this.jumpType = jumpType;
    }
    public String getShowName() {
        return showName;
    }
    public void setShowName(String showName) {
        this.showName = showName;
    }
    public JSONObject getParams() {
        return params;
    }
    public void setParams(JSONObject params) {
        this.params = params;
    }
}
service-daylucky/src/main/java/com/ks/daylucky/service/ActivityService.java
@@ -1,16 +1,16 @@
package com.ks.daylucky.service;
import com.ks.daylucky.pojo.VO.ActivityDetailInfoVO;
import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO;
import java.util.List;
public interface ActivityService {
    public List<ActivityDetailInfoVO> getActivityDetail(List<Long> activityIds, Long appId, Long uid, Boolean needAwardResult);
    public List<ActivityDetailInfoDTO> getActivityDetail(List<Long> activityIds, Long appId, Long uid, Boolean needAwardResult);
    public ActivityDetailInfoVO getActivityDetail(Long activityId, Long appId, Long uid, Boolean needTag, Integer maxJoinerCount, Boolean needAwardResult);
    public ActivityDetailInfoDTO getActivityDetail(Long activityId, Long appId, Long uid, Boolean needTag, Integer maxJoinerCount, Boolean needAwardResult);
}
service-daylucky/src/main/java/com/ks/daylucky/service/impl/ActivityServiceImpl.java
@@ -2,7 +2,7 @@
import com.ks.daylucky.pojo.DO.ActivityTag;
import com.ks.daylucky.pojo.DO.UserInfo;
import com.ks.daylucky.pojo.VO.ActivityDetailInfoVO;
import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO;
import com.ks.daylucky.pojo.VO.SimpleUser;
import com.ks.daylucky.service.ActivityService;
import com.ks.daylucky.service.ActivityTagService;
@@ -45,8 +45,8 @@
    private UserInfoService userInfoService;
    @Override
    public List<ActivityDetailInfoVO> getActivityDetail(List<Long> activityIds, Long appId, Long uid, Boolean needAwardResult) {
        List<ActivityDetailInfoVO> voList = new ArrayList<>();
    public List<ActivityDetailInfoDTO> getActivityDetail(List<Long> activityIds, Long appId, Long uid, Boolean needAwardResult) {
        List<ActivityDetailInfoDTO> voList = new ArrayList<>();
        if (activityIds != null) {
            for (Long activityId : activityIds) {
                voList.add(getActivityDetail(activityId, appId, uid, false, 3, needAwardResult));
@@ -56,8 +56,8 @@
    }
    @Override
    public ActivityDetailInfoVO getActivityDetail(Long activityId, Long appId, Long uid, Boolean needTag, Integer maxJoinerCount, Boolean needAwardResult) {
        ActivityDetailInfoVO vo = new ActivityDetailInfoVO();
    public ActivityDetailInfoDTO getActivityDetail(Long activityId, Long appId, Long uid, Boolean needTag, Integer maxJoinerCount, Boolean needAwardResult) {
        ActivityDetailInfoDTO vo = new ActivityDetailInfoDTO();
        LuckyActivity activity = luckyActivityService.getActivityDetail(activityId);
        if (needTag) {
service-daylucky/src/main/java/com/ks/daylucky/util/activity/ActivityUtil.java
New file
@@ -0,0 +1,16 @@
package com.ks.daylucky.util.activity;
public class ActivityUtil {
    /**
     * 返回活动期号
     *
     * @param id
     * @return
     */
    public static String getActivityDateNumber(Long id) {
        return String.format("NO.%s", id + "");
    }
}
service-daylucky/src/main/java/com/ks/daylucky/util/factory/vo/ActivityDetailVOFactory.java
New file
@@ -0,0 +1,129 @@
package com.ks.daylucky.util.factory.vo;
import com.ks.daylucky.pojo.DO.ActivityTag;
import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO;
import com.ks.daylucky.pojo.DTO.ActivityJoinConditionEvent;
import com.ks.daylucky.pojo.VO.ActivityAwardVO;
import com.ks.daylucky.pojo.VO.ActivityDetailVO;
import com.ks.daylucky.pojo.VO.LabelVO;
import com.ks.daylucky.pojo.VO.common.JumpDetailVO;
import com.ks.lucky.pojo.DO.*;
import com.ks.lucky.pojo.DTO.sponsorad.AlipayLifeAdInfo;
import net.sf.json.JSONObject;
import org.yeshi.utils.TimeUtil;
import java.util.ArrayList;
import java.util.List;
public class ActivityDetailVOFactory {
    public static ActivityDetailVO create(ActivityDetailInfoDTO dto, String helpLink, Integer assistCount) {
        ActivityDetailVO vo = new ActivityDetailVO();
        vo.setActivity(create(dto.getActivity()));
        vo.setJoined(dto.getJoin());
        vo.setJoinCondition(createJoinCondition(dto.getActivity().getSponsorInfo()));
        //设置开奖信息
        vo.setOpenConditions(create(dto.getActivity().getOpenInfo()));
        //总共的参与人数
        vo.setTotalJoinNumerDesc(String.format("共%s人参与拼手气抽奖", dto.getActivity().getCurrentPersonCount()));
        //设置最近几位的参与者信息
        vo.setUserList(dto.getJoinerList());
        if (dto.getTagList() != null) {
            List<LabelVO> labelVOList = new ArrayList<>();
            for (ActivityTag tag : dto.getTagList()) {
                labelVOList.add(create(tag));
            }
            vo.setLabels(labelVOList);
        }
        vo.setHelpLink(helpLink);
        vo.setAssistCount(assistCount);
        if (dto.getActivity().getActualOpenTime() != null) {
            vo.setActualOpenDate(TimeUtil.getGernalTime(dto.getActivity().getActualOpenTime().getTime(), "yyyy.MM.dd HH:mm"));
        }
        return vo;
    }
    public static LabelVO create(ActivityTag tag) {
        LabelVO vo = new LabelVO(tag.getTagName(), tag.getTagBgColor(), tag.getTagFontColr());
        return vo;
    }
    private static ActivityDetailVO.ActivityBean create(LuckyActivity activity) {
        ActivityDetailVO.ActivityBean bean = new ActivityDetailVO.ActivityBean();
        List<ActivityAwardVO> awardList = new ArrayList<>();
        int p = 0;
        for (LuckyActivityAwards awards : activity.getAwardsList()) {
            awardList.add(ActivityListItemInfoVOFactory.create(awards, p++));
        }
        bean.setAwardList(awardList);
        bean.setId(activity.getId());
        //设置了预计结束时间
        if (activity.getPreFinishTime() != null) {
            long leftTime = activity.getPreFinishTime().getTime() - System.currentTimeMillis();
            if (leftTime < 0) {
                leftTime = 0L;
            }
            bean.setLeftTime(leftTime);
        }
        bean.setName(activity.getName());
        bean.setPoster(activity.getMaterialPoster());
        bean.setSponsor(ActivityListItemInfoVOFactory.create(activity.getSponsorInfo().getSponsors()));
        bean.setSponsorAd(create(activity.getSponsorInfo()));
        return bean;
    }
    private static ActivityDetailVO.ActivityBean.JoinConditionBean createJoinCondition(LuckyActivitySponsorInfo sponsorInfo) {
        ActivityDetailVO.ActivityBean.JoinConditionBean bean = new ActivityDetailVO.ActivityBean.JoinConditionBean();
        if (sponsorInfo.getAd().getAdType() == LuckySponsorAd.SponsorAdType.alipayLife) {
            List<ActivityJoinConditionEvent> conditions = new ArrayList<>();
            if (sponsorInfo.getAd().getAlipayLifeAdInfo().getMustAttention()) {
                conditions.add(ActivityJoinConditionEvent.attention);
            }
            List<String> descList = new ArrayList<>();
            descList.add("关注赞助商生活号。");
            descList.add("点赞赞助商生活号最新发布消息。");
            bean.setConditions(conditions);
            bean.setConditionsDesc(descList);
            bean.setMarks("注:系统将会由\"支付宝首页-服务提醒\"给用户下发是否中奖提醒消息提醒消息提醒消息提醒消息提醒消息提醒消息提醒醒消息提醒醒消息提醒醒消息提醒醒");
        }
        return bean;
    }
    private static ActivityDetailVO.ActivityBean.OpenConditionsBean create(LuckyActivityOpenInfo openInfo) {
        ActivityDetailVO.ActivityBean.OpenConditionsBean bean = new ActivityDetailVO.ActivityBean.OpenConditionsBean();
        List<String> conditions = new ArrayList<>();
        if (openInfo.getOpenType() == LuckyActivityOpenInfo.OPEN_TYPE_PERSON_AND_TIME) {
            conditions.add(String.format("%s自动开奖", TimeUtil.getGernalTime(openInfo.getPreOpenTime().getTime(), "MM月dd日 HH:mm")));
        }
        conditions.add(String.format("参与者到达%s人自动开奖", openInfo.getMinPersonCount()));
        bean.setConditions(conditions);
        bean.setMarks("注:系统将会由\"支付宝首页-服务提醒\"给用户下发是否中奖提醒消息提醒消息提醒消息提醒消息提醒消息提醒消息提醒醒消息提醒醒...\n");
        return bean;
    }
    private static ActivityDetailVO.ActivityBean.SponsorAdBean create(LuckyActivitySponsorInfo sponsorInfo) {
        ActivityDetailVO.ActivityBean.SponsorAdBean bean = new ActivityDetailVO.ActivityBean.SponsorAdBean();
        if (sponsorInfo.getAd().getAdType() == LuckySponsorAd.SponsorAdType.alipayLife) {
            bean.setLabel(new LabelVO("生活号", "#D2E9FF", "#0080FF"));
            AlipayLifeAdInfo ad = sponsorInfo.getAd().getAlipayLifeAdInfo();
            bean.setContent(ad.getDesc());
            bean.setIcon(ad.getIcon());
            JSONObject params = new JSONObject();
            params.put("sceneId", ad.getSceneId());
            bean.setJump(new JumpDetailVO(JumpDetailVO.JumpType.alipayLife, "关注生活号", params));
        } else {
            //其他广告类型的支持
        }
        return bean;
    }
}
service-daylucky/src/main/java/com/ks/daylucky/util/factory/vo/ActivityListItemInfoVOFactory.java
New file
@@ -0,0 +1,145 @@
package com.ks.daylucky.util.factory.vo;
import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO;
import com.ks.daylucky.pojo.VO.ActivityAwardVO;
import com.ks.daylucky.pojo.VO.ActivityListItemInfoVO;
import com.ks.daylucky.pojo.VO.SponsorVO;
import com.ks.daylucky.util.activity.ActivityUtil;
import com.ks.lucky.pojo.DO.*;
import org.yeshi.utils.TimeUtil;
import java.util.ArrayList;
import java.util.List;
public class ActivityListItemInfoVOFactory {
    public static ActivityListItemInfoVO create(ActivityDetailInfoDTO dto) {
        ActivityListItemInfoVO vo = new ActivityListItemInfoVO();
        vo.setActivity(create(dto.getActivity()));
        vo.setJoined(dto.getJoin());
        //设置开奖信息
        LuckyActivityOpenInfo openInfo = dto.getActivity().getOpenInfo();
        if (openInfo.getOpenType() == LuckyActivityOpenInfo.OPEN_TYPE_PERSON) {
            vo.setOpenInfoDesc(String.format("参与者到达%s人自动开奖", openInfo.getMinPersonCount()));
        } else {
            vo.setOpenInfoDesc(String.format("%s自动开奖", TimeUtil.getGernalTime(openInfo.getPreOpenTime().getTime(), "MM月dd日 HH:mm")));
        }
        vo.setStateInfo(create(dto.getActivity(), dto.getAwardResult()));
        //总共的参与人数
        vo.setTotalJoinNumerDesc(String.format("%s人参与拼手气", dto.getActivity().getCurrentPersonCount()));
        //设置最近几位的参与者信息
        vo.setUserList(dto.getJoinerList());
        return vo;
    }
    private static ActivityListItemInfoVO.ActivityBean create(LuckyActivity activity) {
        ActivityListItemInfoVO.ActivityBean bean = new ActivityListItemInfoVO.ActivityBean();
        List<ActivityAwardVO> list = new ArrayList<>();
        int p = 0;
        for (LuckyActivityAwards awards : activity.getAwardsList()) {
            list.add(create(awards, p++));
        }
        bean.setAwardList(list);
        bean.setName(activity.getName());
        bean.setPoster(activity.getMaterialPoster());
        bean.setSponsor(create(activity.getSponsorInfo().getSponsors()));
        return bean;
    }
    public static ActivityAwardVO create(LuckyActivityAwards awards, Integer position) {
        String[] pdescs = new String[]{
                "一", " 二", "三", "四", "五", "六", "七", "八", "九", "十"
        };
        ActivityAwardVO bean = new ActivityAwardVO();
        if (awards.getMaterial() != null) {
            //TODO 获取详情链接
            bean.setLink(null);
        }
        bean.setId(awards.getId());
        bean.setTitle(awards.getAwardName());
        if (position != null && position < 10) {
            bean.setTitle("奖品" + pdescs[position] + ":" + bean.getTitle());
        }
        if (awards.getMaterial().getType() == LuckyActivityAwardMaterial.ActivityAwardMaterialType.alipayRedPackage) {
            switch (awards.getAwardWay()) {
                case LuckyActivityAwards.AWARD_WAY_DIVIDE:
                    bean.setTypeIcon("");
                    break;
                case LuckyActivityAwards.AWARD_WAY_RANDOM:
                    bean.setTypeIcon("");
                    break;
            }
        } else {
            // 其他类型的奖品
        }
        return bean;
    }
    public static SponsorVO create(LuckySponsors sponsor) {
        SponsorVO bean = new SponsorVO();
        //TODO 设置等级图标
        bean.setIcon("");
        bean.setId(sponsor.getId());
        bean.setName(sponsor.getName());
        return bean;
    }
    private static ActivityListItemInfoVO.StateInfoBean create(LuckyActivity activity, LuckyActivityAwardResult result) {
        ActivityListItemInfoVO.StateInfoBean bean = new ActivityListItemInfoVO.StateInfoBean();
        bean.setDrawnInfo(create(result));
        switch (activity.getState()) {
            //已经开奖
            case LuckyActivity.STATE_OPENED:
                //中奖
                if (result != null) {
                    switch (result.getState()) {
                        case LuckyActivityAwardResult.STATE_NOT_RECIEVE:
                            bean.setTitle("恭喜你!本活动中奖了(未领)。");
                            break;
                        case LuckyActivityAwardResult.STATE_RECIEVED:
                            bean.setTitle("恭喜你!本活动中奖了(已领)。");
                            break;
                        case LuckyActivityAwardResult.STATE_OUT_OF_DATE:
                            bean.setTitle("很遗憾,中奖超期未领。");
                            break;
                        case LuckyActivityAwardResult.STATE_RECIEVE_FAILED:
                            bean.setTitle("很遗憾,领取失败。");
                            break;
                    }
                    bean.setSubTitle(String.format("(活动期号 %s)", ActivityUtil.getActivityDateNumber(activity.getId())));
                } else {//未中奖
                    bean.setTitle("本活动,未中奖!");
                    bean.setSubTitle(String.format("(活动期号 %s)", ActivityUtil.getActivityDateNumber(activity.getId())));
                }
                break;
            default:
                bean.setTitle("本活动,暂未开奖!");
                bean.setSubTitle(String.format("(活动期号 %s)", ActivityUtil.getActivityDateNumber(activity.getId())));
        }
        return bean;
    }
    private static ActivityListItemInfoVO.StateInfoBean.DrawnInfoBean create(LuckyActivityAwardResult result) {
        if (result != null && result.getState() == LuckyActivityAwardResult.STATE_NOT_SHOW) {
            result = null;
        }
        ActivityListItemInfoVO.StateInfoBean.DrawnInfoBean bean = new ActivityListItemInfoVO.StateInfoBean.DrawnInfoBean();
        if (result != null) {
            bean.setAward(create(result.getAward(), 0));
            //设置领取时间
            long start = result.getCreateTime().getTime();
            long end = start + 1000 * 60 * 60L * 24 * 7;
            bean.setSubTitle(String.format("领取时间: %s-%s", TimeUtil.getGernalTime(start, "yyyy.MM.dd HH:mm"), TimeUtil.getGernalTime(end, "yyyy.MM.dd HH:mm")));
            return bean;
        } else {
            return null;
        }
    }
}
service-lucky/src/main/java/com/ks/lucky/query/ActivityJoinAssistQuery.java
@@ -1,10 +1,10 @@
package com.ks.lucky.query;
import com.ks.lucky.pojo.DO.LuckyActivityJoinAssist;
import com.ks.lucky.pojo.DO.ActivityJoinAssistEvent;
public class ActivityJoinAssistQuery extends BaseDaoQuery {
    public Long joinId;
    public Long appId;
    public String uid;
    public LuckyActivityJoinAssist.ActivityJoinAssistEvent  eventKey;
    public ActivityJoinAssistEvent eventKey;
}
service-lucky/src/main/java/com/ks/lucky/service/impl/AppManager.java
@@ -7,9 +7,7 @@
@Component
public class AppManager {
    //,url = "dubbo://193.112.35.168:20882/com.ks.app.service.AppService"
    @Reference(version = "1.0.0", url = "dubbo://193.112.35.168:20882/com.ks.app.service.AppService", check = false)
    @Reference(version = "1.0.0", check = false)
    private AppService appService;
    public Long getAppId(String appKey) {
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinAssistServiceImpl.java
@@ -6,10 +6,7 @@
import com.ks.lucky.mapper.LuckyActivityJoinAssistMapper;
import com.ks.lucky.mapper.LuckyActivityJoinRecordMapper;
import com.ks.lucky.mapper.LuckyActivityMapper;
import com.ks.lucky.pojo.DO.LuckyActivity;
import com.ks.lucky.pojo.DO.LuckyActivityJoinAssist;
import com.ks.lucky.pojo.DO.LuckyActivityJoinRecord;
import com.ks.lucky.pojo.DO.LuckyActivityUserWeightRecord;
import com.ks.lucky.pojo.DO.*;
import com.ks.lucky.pojo.DTO.ActivityAssistFriend;
import com.ks.lucky.pojo.DTO.ActivityFriendAssistInfo;
import com.ks.lucky.query.ActivityJoinAssistQuery;
@@ -46,7 +43,7 @@
    @Transactional(rollbackFor = Exception.class)
    @Validated
    @Override
    public void assist(Long activityId, Long appId, String uid, String targetUid, LuckyActivityJoinAssist.ActivityJoinAssistEvent eventKey, int weight) throws LuckyActivityException, LuckyActivityJoinAssistException {
    public void assist(Long activityId, Long appId, String uid, String targetUid, ActivityJoinAssistEvent eventKey, int weight) throws LuckyActivityException, LuckyActivityJoinAssistException {
        if (uid.equalsIgnoreCase(targetUid)) {
            throw new LuckyActivityJoinAssistException(1, "不能为自己助力");
service-lucky/src/main/java/com/ks/lucky/util/factory/LuckyActivityUserWeightRecordFactory.java
@@ -1,5 +1,6 @@
package com.ks.lucky.util.factory;
import com.ks.lucky.pojo.DO.ActivityJoinAssistEvent;
import com.ks.lucky.pojo.DO.LuckyActivityJoinAssist;
import com.ks.lucky.pojo.DO.LuckyActivityUserWeightRecord;
@@ -20,7 +21,7 @@
        return weightRecord;
    }
    public static LuckyActivityUserWeightRecord createAssist(Long activityId, Long appId, String uid, LuckyActivityJoinAssist.ActivityJoinAssistEvent event, int weight) {
    public static LuckyActivityUserWeightRecord createAssist(Long activityId, Long appId, String uid, ActivityJoinAssistEvent event, int weight) {
        LuckyActivityUserWeightRecord weightRecord = getCommon(activityId, appId, uid, weight);
        weightRecord.setTitle(event.getName());
        return weightRecord;
service-lucky/src/main/resources/application.yml
@@ -32,7 +32,7 @@
    database: 3
  datasource:
    url: jdbc:mysql://172.16.16.17:3306/ks_lucky
    url: jdbc:mysql://gz-cdb-r13d0yi9.sql.tencentcdb.com:62929/ks_lucky
    username: root
    password: Yeshi2016@
    driver-class-name: com.mysql.jdbc.Driver
@@ -65,7 +65,7 @@
    name: lucky-provider
  registry:
    protocol: zookeeper
    address: zookeeper://134.175.68.214:2181 # 134.175.68.214   134.175.68.214:2181
    address: zookeeper://192.168.3.253:2181 # 134.175.68.214   134.175.68.214:2181
    client: curator
  protocol:
    name: dubbo
service-lucky/src/main/resources/mapper/LuckyActivityJoinAssistMapper.xml
@@ -24,13 +24,13 @@
        <result column="app_id" jdbcType="BIGINT" property="appId"/>
        <result column="weight" jdbcType="INTEGER" property="weight"/>
        <result column="join_id" jdbcType="BIGINT" property="joinId"/>
        <association property="eventList"
                     javaType="com.ks.lucky.pojo.DO.LuckyActivityJoinAssist.ActivityJoinAssistEvent"
        <association property="eventList" column="join_id"
                     javaType="com.ks.lucky.pojo.DO.ActivityJoinAssistEvent"
                     select="selectEventkeyWithJoinId"></association>
    </resultMap>
    <select id="selectEventkeyWithJoinId" parameterType="java.lang.Long"
            resultType="com.ks.lucky.pojo.DO.LuckyActivityJoinAssist.ActivityJoinAssistEvent">
            resultType="com.ks.lucky.pojo.DO.LuckyActivityJoinAssist">
        SELECT a.`event_key` FROM `lucky_activity_join_assist` a WHERE a.`join_id`=#{joinId} AND app_id=#{appId} AND uid=#{uid}
service-lucky/src/test/java/com/ks/lucky/JoinTest.java
@@ -3,6 +3,7 @@
import com.ks.lucky.exception.LuckyActivityException;
import com.ks.lucky.exception.LuckyActivityJoinAssistException;
import com.ks.lucky.exception.LuckyActivityJoinException;
import com.ks.lucky.pojo.DO.ActivityJoinAssistEvent;
import com.ks.lucky.pojo.DO.LuckyActivityJoinAssist;
import com.ks.lucky.pojo.DTO.JoinInfo;
import com.ks.lucky.remote.service.LuckyActivityJoinAssistService;
@@ -51,7 +52,7 @@
        try {
            luckyActivityJoinAssistService.assist(activityId, appId, uid, targetUid, LuckyActivityJoinAssist.ActivityJoinAssistEvent.assist, 1);
            luckyActivityJoinAssistService.assist(activityId, appId, uid, targetUid, ActivityJoinAssistEvent.assist, 1);
        } catch (LuckyActivityJoinAssistException e) {
            e.printStackTrace();
        } catch (LuckyActivityException e) {