Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions src/main/java/com/zoe/weiya/controller/CoreController.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.zoe.weiya.controller;

import com.zoe.weiya.servlet.AwardServlet;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
Expand All @@ -24,7 +25,7 @@
/**
* Created by andy on 2016/12/15.
*/
@RequestMapping("/core")
@RequestMapping("core")
@Controller
public class CoreController {

Expand All @@ -39,21 +40,23 @@ public class CoreController {
public void wechat(HttpServletRequest request, HttpServletResponse response) {
try {
init();
service(request, response);
AwardServlet awardServlet = new AwardServlet();
awardServlet.doGet(request, response);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

@RequestMapping(value = "/init")
private void init() throws ServletException {
WxMpMessageHandler test = test();
WxMpMessageHandler reply = reply();
wxMpMessageRouter
.rule().async(false).content("andy").handler(test).end()
// .rule().async(false).msgType(WxConsts.MASS_MSG_TEXT).handler(fun).end()
.rule().async(false).handler(reply).end();
System.out.println("测试代码");
}

private void service(HttpServletRequest request, HttpServletResponse response)
Expand Down Expand Up @@ -83,6 +86,7 @@ private void service(HttpServletRequest request, HttpServletResponse response)

if ("raw".equals(encryptType)) {
// 明文传输的消息
//消息接收与响应
WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(request.getInputStream());
WxMpXmlOutMessage outMessage = wxMpMessageRouter.route(inMessage);
// if (null != outMessage) {
Expand Down
103 changes: 103 additions & 0 deletions src/main/java/com/zoe/weiya/servlet/AwardServlet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
package com.zoe.weiya.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Random;

/**
* Created by zhanghao on 2016/12/17.
*/
public class AwardServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Object[][] prizeArr = new Object[][]{
//id,min,max,prize【奖项】,v【中奖率】
//外面的转盘转动
// {1,1,14,"一等奖",1},
// {2,346,364,"一等奖",1},
// {3,16,44,"不要灰心",10},
// {4,46,74,"神马也没有",10},
// {5,76,104,"祝您好运",10},
// {6,106,134,"二等奖",2},
// {7,136,164,"再接再厉",10},
// {8,166,194,"神马也没有",10},
// {9,196,224,"运气先攒着",10},
// {10,226,254,"三等奖",5},
// {11,256,284,"要加油哦",10},
// {12,286,314,"神马也没有",10},
// {13,316,344,"谢谢参与",10}

//里面的指针转动
{1,1,14,"一等奖",1},
{2,346,364,"一等奖",1},
{3,16,44,"不要灰心",10},
{4,46,74,"神马也没有",10},
{5,76,104,"祝您好运",10},
{6,106,134,"二等奖",2},
{7,136,164,"再接再厉",10},
{8,166,194,"神马也没有",10},
{9,196,224,"运气先攒着",10},
{10,226,254,"三等奖",5},
{11,256,284,"要加油哦",10},
{12,286,314,"神马也没有",10},
{13,316,344,"谢谢参与",10}
};
String number = request.getParameter("num");
System.out.println(number);
Object result[] = award(prizeArr);//抽奖后返回角度和奖品等级
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("{\"angle\":\""+result[0]+"\",\"msg\":\""+result[2]+"\",\"num\":\""+(Integer.parseInt(number)-1)+"\"}");
System.out.println("转动角度:"+result[0]+"\t奖项ID:"+result[1]+"\t提示信息:"+result[2]);
}

//抽奖并返回角度和奖项
public Object[] award(Object[][] prizeArr){
//概率数组
Integer obj[] = new Integer[prizeArr.length];
for(int i=0;i<prizeArr.length;i++){
obj[i] = (Integer) prizeArr[i][4];
}
Integer prizeId = getRand(obj); //根据概率获取奖项id
//旋转角度
int angle = new Random().nextInt((Integer)prizeArr[prizeId][2]-(Integer)prizeArr[prizeId][1])+(Integer)prizeArr[prizeId][1];
String msg = (String) prizeArr[prizeId][3];//提示信息
return new Object[]{angle,prizeId,msg};
}
//根据概率获取奖项
public Integer getRand(Integer obj[]){
Integer result = null;
try {
int sum = 0;//概率数组的总概率精度
for(int i=0;i<obj.length;i++){
sum+=obj[i];
}
for(int i=0;i<obj.length;i++){//概率数组循环
int randomNum = new Random().nextInt(sum);//随机生成1到sum的整数
if(randomNum<obj[i]){//中奖
if(i==1 || i==2 || i==5){
//查询数据库的奖品是否已经被领完

result = i;
break;
}else{
result = i;
break;
}
}else{
sum -=obj[i];
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
4 changes: 2 additions & 2 deletions src/main/resources/config/wechat/wechat.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
wechat.APP_ID =wx5149e1919bfc8aee
wechat.SECRET = d0924246c7959df31ba52f90d50f05e0
wechat.APP_ID =wx0063dbe6c59141e9
wechat.SECRET = 3d2b642ee9bea4d868088ed41a3b39d5
wechat.TOKEN = andy
wechat.AES_KEY =

Expand Down
3 changes: 3 additions & 0 deletions src/main/webapp/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Class-Path:

14 changes: 11 additions & 3 deletions src/main/webapp/WEB-INF/web.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,17 @@
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>weiYa</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>AwardServlet</servlet-name>
<servlet-class>com.zoe.weiya.servlet.AwardServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AwardServlet</servlet-name>
<url-pattern>/AwardServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:/config/log/log4j.properties</param-value>
Expand Down
Binary file added src/main/webapp/files/activity-lottery-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/main/webapp/files/activity-lottery-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading