栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

58红包系统开发源码

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

58红包系统开发源码

  58红包系统开发【伍子胥:l47-l8lO-5ll3可微】

      <h1>红包系统说明:</h1>


  红包系统是有maven3+spring3.2.4.RELEASE+mybaits3.3.0+mysql5.6架构


  整个系统的架构比较简单入门,凡是有一点java基础的朋友,很容易入门二次开发


  <h2>安装说明:</h2>


  1.0安装java


  此系统要求java版本为1.6以上,目前最新版为java1.9版本,比较常用版本为java1.8版本,为了配合后面maven最新版,官方建议安装java1.7或java1.8.首先在www.oracle.com中下载对应操作系统的java版本,这里以windows为例,然后傻瓜式下一步,配置环境变量JAVA_HOME和path,不会的可以查看


  https://jingyan.baidu.com/article/925f8cb836b26ac0dde0569e.html(有详细说明)


  2.0安装maven3


  进入Apache官方下载maven3,目前最新版为maven3.5.0下载地址为[这里](http://maven.apache.org/download.cgi),配置MAVEN_HOME环境变量和path变量,这个和配置java环境变量是一致的这里不再详细说明,可以参考官方安装说明http://maven.apache.org/install.html


  3.0安装git版本


  这里对于git不做过多的说明,不了解的朋友可以查看这里https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git


  4.0 MySQL安装


  MySQL版本没有要求,这里以MySQL5.7.18.1(目前为最新版)为例,到这里https://dev.mysql.com/downloads/installer/傻瓜式安装不会的请参考这里http://jingyan.baidu.com/article/e75057f2c7d4ebebc91a89cb.html?st=2&os=0&bd_page_type=1&net_type=2


  然后创建数据redpacket编码方式设置为UTF-8,根据E:myprojectRedPacketdb下的RedPacket.sql创建表信息


  5.0本地安装项目


  进入要存放代码的目录,这里我们以E:myproject为例


  cmd命令进入当前目录或右键点击git bash here进入当前目录


  执行命令git init(初始化git环境)


  克隆代码到本地执行命令git clone https://github.com/java110/RedPacket.git


  修改在E:myprojectRedPacketetc目录下db.properties


  driver=com.mysql.jdbc.Driver


  url=jdbc:mysql://135.192.86.200:31057/redpacket?useUnicode=yes&characterEncoding=UTF8&autoReconnect=true


  username=red


  password=red#123


  修改为自己的MySQL信息,135.192.86.200修改为自己数据库地址,31057修改为自己数据库端口(如果数据库信息没有修改默认为3306)


  填写自己的数据库用户名和密码


  进入RedPacket目录执行mvn clean install命令


  在target目录下会有打包好的war文件(E:myprojectRedPackettargetRedPacket-0.0.1-SNAPSHOT.war)


  6.0下载安装Tomcat


  官方获取Tomcat,这里以Tomcat8为例http://tomcat.apache.org/download-80.cgi下载解压,将上一步生成的RedPacket-0.0.1-SNAPSHOT.war的war包


  改名为RedPacket.war放入到解压后的Tomcat目录下webapps下,然后再bin目录下运行startup.bat启动


  7.0访问项目


  该项目是对接微信和支付宝,所以必须要求有微信公众号或支付宝服务窗,微信对接地址为:http://ip:port/RedPacket/WGatewayController.indexPage


  这里ip:port ip对应公网ip port对应公网开放端口,微信目前只支持80端口,所以这个对接时请修改为80,首页访问地址为:http://ip:port/RedPacket/WIndexPacketController.indexPage


  支付宝对接地址为:http://ip:port/RedPacket/GatewayController.indexPage这里ip:port ip对应公网ip port对应公网开放端口,所以这个对接时请修改为80,首页访问地址为:http://ip:port/RedPacket/IndexPacketController.indexPage


  如果没有微信公众号和支付宝服务窗的情况下需要测试时,baseController类下的方法


  


  public boolean loginValidate(HttpServletRequest request){


  //生产获取用户


  User user=this.getUser();


  //测试获取用户


  //User user=this.getTestUser();


  if(user==null){


  return false;


  }


  return true;


  }


  public class RedPackageActivity{


  private String id;


  //红包总金额


  private Integer totalAmount;


  //红包总数量


  private Integer totalNumber;


  //版本,用于控制并发


  private int version;


  //红包剩余金额


  private Integer surplusAmount;


  //红包剩余数量


  private Integer surplusNumber;


  public RedPackageActivity(){


  setId(genId());


  }


  


  public void init(Integer totalAmount,Integer totalNumber){


  if(totalAmount<totalNumber){


  throw new IllegalArgumentException();


  }


  setTotalAmount(totalAmount);


  setTotalNumber(totalNumber);


  //最开始的时候,剩余金额和剩余数量与总金额和总数量一致


  setSurplusAmount(totalAmount);


  setSurplusNumber(totalNumber);


  }


  


  public void draw(Consumer<RedPackage>consumer){


  draw(getSurplusNumber(),consumer);


  }


  


  public void draw(int size,Consumer<RedPackage>consumer){


  for(int i=0;i<size;i++){


  consumer.accept(draw());


  }


  }


  


  private RedPackage draw(){


  if(hasNext()){


  RedPackage redPackage=new RedPackage();


  redPackage.setActivityId(getId());


  redPackage.setId(genId());


  redPackage.setAmount(nextAmount());


  redPackage.init();


  //更新剩余数量


  updateSurplus(redPackage);


  return redPackage;


  }else{


  return null;


  }


  }


  


  private void updateSurplus(RedPackage redPackage){


  setSurplusNumber(getSurplusNumber()-1);


  setSurplusAmount(getSurplusAmount()-redPackage.getAmount());


  }


  


  private int nextAmount(){


  if(surplusNumber==totalNumber-1){


  return totalAmount-surplusAmount;


  }else{


  return totalAmount/totalNumber;


  }


  }


  


  private boolean hasNext(){


  return surplusNumber>0;


  }


  


  public boolean hasBalance(){


  return hasNext();


  }


  }


  public interface RedPackageApplication{


  


  RedPackageActivity createActivity(int total,int size);


  


  UserRedPackage draw(String activityId,String userId);


  


  List<UserRedPackage>getByUser(String userId);


  


  List<UserRedPackage>getByUserAndActivity(String userId,String activity);


  }


  注释生产获取用户,放开测试用获取用户,并且在数据库表t_user表中插入数据如下:


  insert into t_user(name,passwd,phone,userId,wOpenId,zOpenId,email)


  values('java110官方测试','123456','15897089471','10020160223001','123','','928255095 qq.com');


  <h2>二次开发项目搭建:</h2>


  1.0开发工具选择


  官方是由Myeclipse 8.5开发,二次开发完全可以用eclipse或任意版本的MyEclipse开发,配置maven信息,按maven导入就可以了,各位idea的朋友只需要导入项目是选择以eclipse方式导入也是可以的


  ————————————————


  版权声明:本文为CSDN博主「qq_25500575」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。


  原文链接:https://blog.csdn.net/qq_25500575/article/details/72792525


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/232864.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号