service-app/src/test/java/com/ks/app/AppTest.java
@@ -26,20 +26,20 @@ @Test public void addApp() { AppInfo appInfo = new AppInfo(); appInfo.setAppKey("1000001"); appInfo.setAppName("天天免费抽奖"); appInfo.setAppSecret(StringUtil.Md5(System.currentTimeMillis() + "")); appInfo.setAppType(AppInfo.AppType.alipayXCX); try { appInfoManager.addApp(appInfo); } catch (AppException e) { e.printStackTrace(); } // AppInfo appInfo = new AppInfo(); // appInfo.setAppKey("1000001"); // appInfo.setAppName("天天免费抽奖"); // appInfo.setAppSecret(StringUtil.Md5(System.currentTimeMillis() + "")); // appInfo.setAppType(AppInfo.AppType.alipayXCX); // try { // appInfoManager.addApp(appInfo); // } catch (AppException e) { // e.printStackTrace(); // } AppAlipayInfoWithBLOBs alipayInfoWithBLOBs = new AppAlipayInfoWithBLOBs(); alipayInfoWithBLOBs.setAlipayAppId("2021002111652055"); alipayInfoWithBLOBs.setAppId(appInfo.getId()); alipayInfoWithBLOBs.setAppId(4L); alipayInfoWithBLOBs.setAlipayPrivateKey("MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCYoo2UGR2VYGOIhNg2jvDGYuilR1aHH6kz6HbYVuFbpCwfnONkvcY5TMw0oDrzKceHGZOt04gPcQdTacIZs9cMQwUapy/735xW6Ix7QihvWlqjCxBa5o0LN2cXbsaF06a4TUxuNrXZwk32k3uuwHZdZ+EsI1C5J9wN1B2ltDIwniSk7RTEFNEWpgKtdAd25KLkElUFXAYK2aWZbQ/ogPAPc2wSpj0fmLvUB5OZLvW/PMFIsAA+63lrlcAe+SksCTJkFsKg7uWzAnpPVrrVkbCKVGsMd1Xi29OSWWJfFch3TJ+mmkOIsKA4f1Zf99rsGdODXMqHqeba+pG6vaZ/zzbbAgMBAAECggEAYGUAftBhw43NLlGfbs1VOCUNAhyMg+e150dfjv9HcaW8C/b8EQpc3qEmsfGjaSAwl5zKjFP0MLRUSRSYdb0DCgZledCuWCZ/SM+ysME2YiSw6xk4qf/CgZvqqnzWOXxSZUDEDTLWJAE3VYsM6G86EYFiToq7F0QaEE2ur5Cexd6Owif9A/ruvOAmbtMfMeKTvsfmNQHT2N5eUYNf1HvvqogKjYuhyz7D3LH51rCXpmKPxo3ohKFL4eBNO42VhvC+78jAfICsWm5l2x706iWGRv6wofifR/rIpnEsIa7RyTENihR2yI77as5vWqJy7J+BZHNtGnBec4FMqQpbdUkWqQKBgQDdbPKm4AA0IN7kSqtVBhxLhK8U5xXlQi3qpWZq0w9jAo1iZJCiy2j0G8dEnLxT40zZlj6tAe5n0p4lUP4q0zpQTfHQcJHoqCX9h09BujOds4Q4AKJSAv61IxrNreZ8A0LktrvpqmjiTDpfo0ASA6hTBsBR3lbzsEb0rx/Kc7AYhwKBgQCwd9YEDLe81Wxymp1QVKD+RCGzGIo/LHljPDWYQBRoJxUZwglo4Pibeu6Ud3zXinB7fftKzFtb9hpjw2R5y2AQOAEOyBeCwpBVT25TrF767halKM7qOhGNox74h1Rmn3P7R+8FY/NQVaRFVqgmuyo3mB/K3rfU2pRwXhDD9UhIDQKBgQDSUslOX1lyKoLtoEuMMIix5u+TUElJAgqxZriY4bAs4ODBRDrql4Iy1Sv7bVGp8S8vQvp3xWzaK4JSedNjhE5QtyjpT/QYZZfocR2ElkSvGDSQKXIFqpicICM2mWdkBokEzNpDgr2rrrKH435ZXiYF71TArwwy3w8XHj15RVhQgwKBgQCqU4BmeEAAK595HnMozgZ2ZRyB2PXW8/5WIg843ODVhqN/MSIT8NEEgSs2cf41rJHVIEwkbgrgQDJIiJe6VuppvSSIN+k5dMILFZfPe1hRquyAjVrqCRJYO1HxX+2+/7jamRvDgC2hJIhhxLqYZ57f+hz1mvKkqDUOIDzeZylVIQKBgQCP6gZtZ8eCM3jx5Z6gpgHFdvAIcwJVdRep4dr2f1aHZ/f1sy45UxOoFIgWJt2IWo5jPRBWDPeImN9w8gLSkJSSIS1yFWkoXCoDXSF0aO+61I9S1vJf383HawBgLBrVMG7dOUA+8PTFJCt4o6NQ7weMPH9xzgMkFB6g+MQYRYIelA=="); try { String rootPath = "D:\\项目\\支付宝小程序\\密匙\\天天免费抽奖\\证书\\"; service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityAwardsController.java
@@ -2,11 +2,13 @@ import com.ks.daylucky.pojo.DO.UserInfo; import com.ks.daylucky.pojo.VO.AcceptData; import com.ks.daylucky.pojo.VO.ActivityAwardVO; import com.ks.daylucky.pojo.VO.SimpleUser; import com.ks.daylucky.pojo.VO.UserActivityUnRecievedAwardVO; import com.ks.daylucky.service.UserInfoService; import com.ks.daylucky.util.Constant; import com.ks.daylucky.util.UserInfoUtil; import com.ks.daylucky.util.factory.vo.ActivityListItemInfoVOFactory; import com.ks.lucky.exception.LuckyActivityAwardException; import com.ks.lucky.exception.LuckyActivityAwardResultException; import com.ks.lucky.exception.LuckyActivityException; @@ -54,9 +56,13 @@ public String getDrawnInfo(AcceptData acceptData, Long activityId, int count) { List<LuckyActivityAwards> list = luckyActivityAwardService.getAwardList(activityId); JSONArray array = new JSONArray(); int p = 0; for (LuckyActivityAwards award : list) { award = luckyActivityAwardService.getAwardDetail(award.getId()); JSONObject item = new JSONObject(); List<LuckyActivityAwardResult> awardResults = luckyActivityAwardResultService.getResultListWithAwardInfo(activityId, award.getId(), 1, count); long resultCount = luckyActivityAwardResultService.countResultWithAwardInfo(activityId, award.getId()); List<SimpleUser> userList = new ArrayList<>(); Map<Long, UserInfo> userMap = userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(awardResults)); for (LuckyActivityAwardResult info : awardResults) { @@ -66,7 +72,8 @@ } } item.put("userList", userList); item.put("award", JsonUtil.getApiCommonGson().toJson(award)); item.put("userCount", resultCount); item.put("award", ActivityListItemInfoVOFactory.create(award, p++)); array.add(item); } service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityController.java
@@ -26,6 +26,7 @@ import org.yeshi.utils.encrypt.AESUtil; import javax.annotation.Resource; import java.security.AccessControlContext; import java.util.ArrayList; import java.util.List; @@ -94,7 +95,10 @@ record.setUid(acceptData.getUid()); activityScanRecordService.addRecord(record); AppConfig config = appConfigService.getConfigCache(acceptData.getApp().getId(), ConfigKeyEnum.disclaimers, acceptData.getVersion()); if (config != null) { vo.setDisclaimers(config.getValue()); } return JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(vo)); } service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityJoinController.java
@@ -60,8 +60,12 @@ if (list != null && list.size() > 0) { Map<Long, UserInfo> userInfoMap = userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(list)); for (ActivityJoinerRankInfo info : list) { UserInfo user = userInfoMap.get(info.getUid()); UserInfo user = userInfoMap.get(Long.parseLong(info.getUid())); if (user != null) { if (user.getId().longValue() == acceptData.getUid()) { continue; } voList.add(new ActivityJoinerRankInfoVO(new SimpleUser(user.getId(), user.getNickName(), user.getPortrait()), info.getRank(), info.getWeight())); } } service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ConfigController.java
@@ -1,9 +1,13 @@ package com.ks.daylucky.controller.api.client; import com.ks.daylucky.pojo.DO.AdviceRecord; import com.ks.daylucky.pojo.DO.AppConfig; import com.ks.daylucky.pojo.DO.SponsorSignUpRecord; import com.ks.daylucky.pojo.DTO.ConfigKeyEnum; import com.ks.daylucky.pojo.VO.AcceptData; import com.ks.daylucky.service.AdviceService; import com.ks.daylucky.service.AppConfigService; import com.ks.daylucky.service.SponsorSignUpService; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -19,6 +23,12 @@ @Resource private AppConfigService appConfigService; @Resource private AdviceService adviceService; @Resource private SponsorSignUpService sponsorSignUpService; @ResponseBody @RequestMapping("getConfig") @@ -35,5 +45,40 @@ return JsonUtil.loadTrueResult(data); } /** * 建议 * * @param acceptData * @param content * @return */ @ResponseBody @RequestMapping("advice") public String advice(AcceptData acceptData, String content) { adviceService.addRecord(new AdviceRecord(acceptData.getUid(), content)); return JsonUtil.loadTrueResult(""); } /** * 赞助商报名 * * @param acceptData * @param identity * @param provider * @param phone * @return */ @ResponseBody @RequestMapping("sponsorSignUp") public String sponsorSignUp(AcceptData acceptData, String identity, String provider, String phone) { SponsorSignUpRecord record = new SponsorSignUpRecord(); record.setIdentity(identity); record.setPhone(phone); record.setProvider(provider); record.setUid(acceptData.getUid()); sponsorSignUpService.addRecord(record); return JsonUtil.loadTrue(0, null, "提交成功").toString(); } } service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/UserController.java
@@ -8,16 +8,17 @@ import com.ks.daylucky.exception.UserInfoException; import com.ks.daylucky.exception.UserInfoExtraException; import com.ks.daylucky.pojo.DO.UserInfo; import com.ks.daylucky.pojo.DO.UserInfoExtra; import com.ks.daylucky.pojo.DO.UserMsg; import com.ks.daylucky.pojo.DTO.AlipayUserInfo; import com.ks.daylucky.pojo.DTO.TokenDTO; import com.ks.daylucky.pojo.DTO.UserMsgSettings; import com.ks.daylucky.pojo.VO.AcceptData; import com.ks.daylucky.pojo.VO.UserConfigVO; import com.ks.daylucky.service.UserInfoExtraService; import com.ks.daylucky.service.UserInfoService; import com.ks.daylucky.service.UserMsgService; import com.ks.daylucky.util.Constant; import com.ks.daylucky.util.RSA2Encryptor; import com.ks.daylucky.util.RSAUtil; import com.ks.daylucky.util.UserInfoUtil; import net.sf.json.JSONObject; @@ -197,5 +198,18 @@ return JsonUtil.loadTrueResult(data); } @ResponseBody @RequestMapping("getUserConfig") public String getUserConfig(AcceptData acceptData){ //消息未读数 UserInfoExtra extra= userInfoExtraService.getUserInfoExtra(acceptData.getUid()); if(extra==null){ return JsonUtil.loadFalseResult("用户不存在"); } UserConfigVO vo=new UserConfigVO(); vo.setMsgCount(extra.getMsgUnreadCount()); return JsonUtil.loadTrueResult(vo); } } service-daylucky/src/main/java/com/ks/daylucky/dao/AdviceRecordDao.java
New file @@ -0,0 +1,9 @@ package com.ks.daylucky.dao; import com.ks.daylucky.pojo.DO.AdviceRecord; import com.ks.lib.common.dao.MongodbBaseDao; import org.springframework.stereotype.Repository; @Repository public class AdviceRecordDao extends MongodbBaseDao<AdviceRecord> { } service-daylucky/src/main/java/com/ks/daylucky/dao/SponsorSignUpRecordDao.java
New file @@ -0,0 +1,9 @@ package com.ks.daylucky.dao; import com.ks.daylucky.pojo.DO.SponsorSignUpRecord; import com.ks.lib.common.dao.MongodbBaseDao; import org.springframework.stereotype.Repository; @Repository public class SponsorSignUpRecordDao extends MongodbBaseDao<SponsorSignUpRecord> { } service-daylucky/src/main/java/com/ks/daylucky/pojo/DO/AdviceRecord.java
New file @@ -0,0 +1,58 @@ package com.ks.daylucky.pojo.DO; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import org.yeshi.utils.StringUtil; import java.util.Date; /** * 建议记录 */ @Document(collection = "adviceRecord") public class AdviceRecord { @Id private String id; private Long uid; private String content; private Date createTime; public AdviceRecord(Long uid, String content) { this.uid = uid; this.content = content; this.createTime = new Date(); this.id = StringUtil.Md5(uid + "#" + content); } public String getId() { return id; } public void setId(String id) { this.id = id; } public Long getUid() { return uid; } public void setUid(Long uid) { this.uid = uid; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } } service-daylucky/src/main/java/com/ks/daylucky/pojo/DO/SponsorSignUpRecord.java
New file @@ -0,0 +1,74 @@ package com.ks.daylucky.pojo.DO; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import java.util.Date; /** * 赞助报名记录 */ @Document(collection = "sponsorSingUpRecord") public class SponsorSignUpRecord { @Id //用户ID private Long uid; //身份 private String identity; //提供的东西 private String provider; //联系电话 private String phone; //创建时间 private Date createTime; private Date updateTime; public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public Long getUid() { return uid; } public void setUid(Long uid) { this.uid = uid; } public String getIdentity() { return identity; } public void setIdentity(String identity) { this.identity = identity; } public String getProvider() { return provider; } public void setProvider(String provider) { this.provider = provider; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } } service-daylucky/src/main/java/com/ks/daylucky/pojo/DO/UserMsg.java
@@ -6,7 +6,7 @@ public class UserMsg { public enum UserMsgType { activity("活动消息", ""); lucky("抽奖消息", ""); private UserMsgType(String name, String icon) { service-daylucky/src/main/java/com/ks/daylucky/pojo/DTO/ConfigKeyEnum.java
@@ -4,7 +4,8 @@ newerCourse("newer_course_url", "新手教程"), commonQuestion("common_question_url", "常见问题"), activityDetailHelp("activity_detail_help_link", "活动详情帮助链接"); activityDetailHelp("activity_detail_help_link", "活动详情帮助链接"), disclaimers("disclaimers", "免责声明"); private String key; service-daylucky/src/main/java/com/ks/daylucky/pojo/DTO/UserMsgSettings.java
@@ -1,21 +1,29 @@ package com.ks.daylucky.pojo.DTO; import com.google.gson.Gson; import com.google.gson.annotations.Expose; import org.yeshi.utils.StringUtil; public class UserMsgSettings { //参加抽奖 @Expose private Boolean joinActivityMsg; //开奖 @Expose private Boolean openActivityMsg; //中奖 @Expose private Boolean drawnMsg; //未中奖 @Expose private Boolean notDrawnMsg; //未开奖 @Expose private Boolean notOpenActivityMsg; //成功助力 @Expose private Boolean assistSuccessMsg; public Boolean getJoinActivityMsg() { service-daylucky/src/main/java/com/ks/daylucky/pojo/DTO/msg/LuckyMsgContent.java
New file @@ -0,0 +1,12 @@ package com.ks.daylucky.pojo.DTO.msg; import com.ks.daylucky.pojo.VO.SimpleUser; public class LuckyMsgContent { private SimpleUser user; // private } service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityDetailVO.java
@@ -51,6 +51,17 @@ //分享信息 private ActivityShareInfoVO shareInfo; //免责申明 private String disclaimers; public String getDisclaimers() { return disclaimers; } public void setDisclaimers(String disclaimers) { this.disclaimers = disclaimers; } public ActivityShareInfoVO getShareInfo() { return shareInfo; service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityFriendAssistInfoVO.java
@@ -1,7 +1,5 @@ package com.ks.daylucky.pojo.VO; import com.ks.daylucky.pojo.DO.UserInfo; public class ActivityFriendAssistInfoVO { private SimpleUser user; service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/UserConfigVO.java
New file @@ -0,0 +1,13 @@ package com.ks.daylucky.pojo.VO; public class UserConfigVO { private int msgCount; public int getMsgCount() { return msgCount; } public void setMsgCount(int msgCount) { this.msgCount = msgCount; } } service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/UserMsgContentVO.java
New file @@ -0,0 +1,27 @@ package com.ks.daylucky.pojo.VO; public class UserMsgContentVO { private String title; private String content; public UserMsgContentVO(String title, String content) { this.title = title; this.content = content; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } } service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/UserMsgVO.java
New file @@ -0,0 +1,43 @@ package com.ks.daylucky.pojo.VO; import java.util.List; public class UserMsgVO { private String icon; private String name; private List<UserMsgContentVO> contentList; private String time; 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 List<UserMsgContentVO> getContentList() { return contentList; } public void setContentList(List<UserMsgContentVO> contentList) { this.contentList = contentList; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } } service-daylucky/src/main/java/com/ks/daylucky/service/AdviceService.java
New file @@ -0,0 +1,15 @@ package com.ks.daylucky.service; import com.ks.daylucky.pojo.DO.AdviceRecord; public interface AdviceService { /** * 添加记录 * * @param adviceRecord */ public void addRecord(AdviceRecord adviceRecord); } service-daylucky/src/main/java/com/ks/daylucky/service/SponsorSignUpService.java
New file @@ -0,0 +1,15 @@ package com.ks.daylucky.service; import com.ks.daylucky.pojo.DO.SponsorSignUpRecord; public interface SponsorSignUpService { /** * 添加记录 * * @param record */ public void addRecord(SponsorSignUpRecord record); } service-daylucky/src/main/java/com/ks/daylucky/service/impl/AdviceServiceImpl.java
New file @@ -0,0 +1,25 @@ package com.ks.daylucky.service.impl; import com.ks.daylucky.dao.AdviceRecordDao; import com.ks.daylucky.pojo.DO.AdviceRecord; import com.ks.daylucky.service.AdviceService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; @Service public class AdviceServiceImpl implements AdviceService { @Resource private AdviceRecordDao adviceRecordDao; @Override public void addRecord(AdviceRecord adviceRecord) { if (adviceRecord == null) return; if (adviceRecord.getCreateTime() == null) { adviceRecord.setCreateTime(new Date()); } adviceRecordDao.save(adviceRecord); } } service-daylucky/src/main/java/com/ks/daylucky/service/impl/SponsorSignUpServiceImpl.java
New file @@ -0,0 +1,34 @@ package com.ks.daylucky.service.impl; import com.ks.daylucky.dao.SponsorSignUpRecordDao; import com.ks.daylucky.pojo.DO.SponsorSignUpRecord; import com.ks.daylucky.service.SponsorSignUpService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; @Service public class SponsorSignUpServiceImpl implements SponsorSignUpService { @Resource private SponsorSignUpRecordDao sponsorSignUpRecordDao; @Override public void addRecord(SponsorSignUpRecord record) { if (record == null) { return; } if (record.getCreateTime() == null) { record.setCreateTime(new Date()); } SponsorSignUpRecord old = sponsorSignUpRecordDao.get(record.getUid()); if (old != null) { record.setCreateTime(old.getCreateTime()); record.setUpdateTime(new Date()); } sponsorSignUpRecordDao.save(record); } } service-daylucky/src/main/java/com/ks/daylucky/service/impl/remote/AppConfigServiceImpl.java
@@ -60,7 +60,7 @@ query.appId = appId; query.key = key.getKey(); query.version = version; query.count=1; List<AppConfig> list = appConfigMapper.list(query); if (list != null && list.size() > 0) { return list.get(0); service-daylucky/src/main/resources/application.yml
@@ -17,7 +17,7 @@ password: 'Yeshi2016@' host: 193.112.35.168 port: 27016 database: flq database: day-lucky authentication-database: admin redis: host: 192.168.3.253 @@ -57,7 +57,8 @@ mybatis: mapper-locations : classpath:mapper/*.xml type-aliases-package: com.ks.goldcorn.pojo.DO configuration: log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl dubbo: application: name: daylucky-provider service-daylucky/src/main/resources/mapper/AnnouncementMapper.xml
@@ -6,12 +6,12 @@ <id column="id" property="id" jdbcType="BIGINT"/> <result column="identity_code" property="identityCode" jdbcType="VARCHAR"/> <result column="app_id" property="appId" jdbcType="BIGINT"/> <result column="`type`" property="type" jdbcType="VARCHAR"/> <result column="`name`" property="name" jdbcType="VARCHAR"/> <result column="type" property="type" jdbcType="VARCHAR"/> <result column="name" property="name" jdbcType="VARCHAR"/> <result column="content" property="content" jdbcType="VARCHAR"/> <result column="link" property="link" jdbcType="VARCHAR"/> <result column="`close`" property="close" jdbcType="BOOLEAN"/> <result column="`show`" property="show" jdbcType="BOOLEAN"/> <result column="close" property="close" jdbcType="BOOLEAN"/> <result column="show" property="show" jdbcType="BOOLEAN"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> </resultMap> service-daylucky/src/main/resources/mapper/AppConfigMapper.xml
@@ -4,9 +4,9 @@ <resultMap id="BaseResultMap" type="com.ks.daylucky.pojo.DO.AppConfig"> <id column="id" property="id" jdbcType="BIGINT"/> <result column="app_id" property="appId" jdbcType="BIGINT"/> <result column="`name`" property="name" jdbcType="VARCHAR"/> <result column="`key`" property="key" jdbcType="VARCHAR"/> <result column="`value`" property="value" jdbcType="VARCHAR"/> <result column="name" property="name" jdbcType="VARCHAR"/> <result column="key" property="key" jdbcType="VARCHAR"/> <result column="value" property="value" jdbcType="VARCHAR"/> <result column="min_version" property="minVersion" jdbcType="INTEGER"/> <result column="remarks" property="remarks" jdbcType="VARCHAR"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> service-daylucky/src/test/java/com/ks/daylucky/MapperTest.java
@@ -80,7 +80,7 @@ @Test public void msgTypeConfig() { MsgTypeConfigQuery query = new MsgTypeConfigQuery(); query.msgType = UserMsg.UserMsgType.activity; query.msgType = UserMsg.UserMsgType.lucky; query.appId = 1L; query.count = 1; @@ -113,7 +113,7 @@ public void userMsg() { UserMsgQuery query = new UserMsgQuery(); query.uid = 1L; query.msgType = UserMsg.UserMsgType.activity; query.msgType = UserMsg.UserMsgType.lucky; userMsgMapper.list(query); userMsgMapper.count(query); service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinServiceImpl.java
@@ -5,16 +5,15 @@ import com.ks.lucky.exception.LuckyActivityJoinException; import com.ks.lucky.mapper.LuckyActivityAwardsMapper; import com.ks.lucky.mapper.LuckyActivityJoinRecordMapper; import com.ks.lucky.pojo.DO.LuckyActivity; import com.ks.lucky.pojo.DO.LuckyActivityAwards; 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.*; import com.ks.lucky.query.ActivityAwardQuery; import com.ks.lucky.query.ActivityJoinRecordQuery; import com.ks.lucky.remote.service.LuckyActivityJoinService; import com.ks.lucky.remote.service.LuckyActivityOpenService; import com.ks.lucky.service.impl.LuckyActivityJoinManager; import com.ks.lucky.service.impl.LuckyActivityManager; import com.ks.lucky.service.impl.LuckyActivityOpenInfoManager; import com.ks.lucky.service.impl.LuckyActivityUserWeightRecordManager; import com.ks.lucky.util.factory.LuckyActivityUserWeightRecordFactory; import org.apache.dubbo.config.annotation.Service; @@ -46,6 +45,10 @@ @Resource private LuckyActivityAwardsMapper luckyActivityAwardsMapper; @Resource private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager; @Transactional(rollbackFor = Exception.class) @@ -227,6 +230,7 @@ ActivityDrawnProbabilityStatistic statistic = new ActivityDrawnProbabilityStatistic(); ActivityAwardQuery awardQuery = new ActivityAwardQuery(); awardQuery.activityId = activityId; awardQuery.count = 100; //奖项数量 int awardCount = 0; List<LuckyActivityAwards> awards = luckyActivityAwardsMapper.list(awardQuery); @@ -234,8 +238,16 @@ for (LuckyActivityAwards award : awards) { awardCount += award.getCount(); } } LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId); //还差多少人开奖 int difJoinnerCount = openInfo.getMinPersonCount() - (int) joinerCount; difJoinnerCount = difJoinnerCount > 0 ? difJoinnerCount : 0; joinerCount = joinerCount < openInfo.getMinPersonCount() ? (openInfo.getMinPersonCount()) : joinerCount; //平均中奖概率 BigDecimal averageProbability = new BigDecimal(awardCount).divide(new BigDecimal(joinerCount), 8, BigDecimal.ROUND_DOWN); statistic.setAverageDrawnProbability(averageProbability); @@ -245,7 +257,7 @@ LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid); if (record != null) { //我的中奖概率 BigDecimal myProbability = new BigDecimal(awardCount * record.getWeight()).divide(new BigDecimal(weight), 8, BigDecimal.ROUND_DOWN); BigDecimal myProbability = new BigDecimal(awardCount * record.getWeight()).divide(new BigDecimal(weight).add(new BigDecimal(difJoinnerCount)), 8, BigDecimal.ROUND_DOWN); statistic.setMyDrawnProbability(myProbability); } } service-lucky/src/main/resources/mapper/LuckyActivityMapper.xml
@@ -10,7 +10,7 @@ <result column="material_poster" jdbcType="VARCHAR" property="materialPoster"/> <result column="material_tag_image" jdbcType="VARCHAR" property="materialTagImage"/> <result column="material_" jdbcType="VARCHAR" property="material"/> <result column="`desc`" jdbcType="VARCHAR" property="desc"/> <result column="desc" jdbcType="VARCHAR" property="desc"/> <result column="max_person_count" jdbcType="INTEGER" property="maxPersonCount"/> <result column="current_person_count" jdbcType="INTEGER" property="currentPersonCount"/> <result column="state" jdbcType="INTEGER" property="state"/> service-lucky/src/main/resources/mapper/LuckyActivityUserWeightRecordMapper.xml
@@ -8,7 +8,7 @@ <result column="uid" property="uid" jdbcType="VARCHAR" /> <result column="weight" property="weight" jdbcType="INTEGER" /> <result column="title" property="title" jdbcType="VARCHAR" /> <result column="`desc`" property="desc" jdbcType="VARCHAR" /> <result column="desc" property="desc" jdbcType="VARCHAR" /> <result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" /> </resultMap>