资讯专栏INFORMATION COLUMN

大厂程序员接私活被坑, 还被放鸽子,那源码就开源-基于SSM仿知乎小程序

dongxiawu / 3512人阅读

摘要:最近很郁闷,一个女粉丝找我要开发一个系统。但是后来,越扯越严重上升到块要开发一个知乎的高度。主要实现了仿知乎微信小程序的文件管理功能。点击下面,回复小程序

最近很郁闷,一个女粉丝找我要开发一个系统。说是很着急。
 
但是费用不高,说自己没钱。
 
我平时事也很多,又不是很想接。
 
说了一大堆苦情的话,然后说自己的要求不高,没有ui要求,
 
我就接了。
 
但是后来,越扯越严重……上升到600块要开发一个知乎的高度。这让我想起了预算茅草屋的价格,想要别墅的效果。


 
扯皮扯的很累,项目我已经远程调试好了,也讲解了。最后全部退款了。
 

 
关键是我还整理了很多讲解的说明:

 


 

既然退款,项目就不是你的了,我开发的就是我的,项目的源码就开源吧。

兄弟们,给个三连安慰下我。源码是你们的了。在文章底部。

首先看一下这个项目演示,值不值600块?评论区告诉我

一,系统演示

 

 

二,系统的简介

开发语言:Java

框架:ssm

JDK版本:JDK1.8

服务器:tomcat7

数据库:mysql 5.7(一定要5.7版本)

数据库工具:Navicat11

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.3.9

浏览器:谷歌浏览器

二,系统实现的主要功能

(1)用户管理。主要实现了仿知乎微信小程序的用户管理功能。

(2)标签管理。主要实现了仿知乎微信小程序的标签管理功能。

(3)今日热闻管理。主要实现了仿知乎微信小程序的今日热闻管理功能。

(4)问答模式管理。主要实现了仿知乎微信小程序的问答模式管理功能。

(5)文件管理。主要实现了仿知乎微信小程序的文件管理功能。

三,核心代码展示

@RestController@RequestMapping("/biaoqianleixing")public class BiaoqianleixingController {    @Autowired    private BiaoqianleixingService biaoqianleixingService;        /**     * 后端列表     */    @RequestMapping("/page")    public R page(@RequestParam Map params,BiaoqianleixingEntity biaoqianleixing,   HttpServletRequest request){        EntityWrapper ew = new EntityWrapper();  PageUtils page = biaoqianleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, biaoqianleixing), params), params));        return R.ok().put("data", page);    }        /**     * 前端列表     */    @RequestMapping("/list")    public R list(@RequestParam Map params,BiaoqianleixingEntity biaoqianleixing,   HttpServletRequest request){        EntityWrapper ew = new EntityWrapper();  PageUtils page = biaoqianleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, biaoqianleixing), params), params));        return R.ok().put("data", page);    } /**     * 列表     */    @RequestMapping("/lists")    public R list( BiaoqianleixingEntity biaoqianleixing){        EntityWrapper ew = new EntityWrapper();       ew.allEq(MPUtil.allEQMapPre( biaoqianleixing, "biaoqianleixing"));         return R.ok().put("data", biaoqianleixingService.selectListView(ew));    }  /**     * 查询     */    @RequestMapping("/query")    public R query(BiaoqianleixingEntity biaoqianleixing){        EntityWrapper< BiaoqianleixingEntity> ew = new EntityWrapper< BiaoqianleixingEntity>();   ew.allEq(MPUtil.allEQMapPre( biaoqianleixing, "biaoqianleixing"));   BiaoqianleixingView biaoqianleixingView =  biaoqianleixingService.selectView(ew);  return R.ok("查询标签类型成功").put("data", biaoqianleixingView);    }     /**     * 后端详情     */    @RequestMapping("/info/{id}")    public R info(@PathVariable("id") Long id){        BiaoqianleixingEntity biaoqianleixing = biaoqianleixingService.selectById(id);        return R.ok().put("data", biaoqianleixing);    }    /**     * 前端详情     */    @RequestMapping("/detail/{id}")    public R detail(@PathVariable("id") Long id){        BiaoqianleixingEntity biaoqianleixing = biaoqianleixingService.selectById(id);        return R.ok().put("data", biaoqianleixing);    }        /**     * 后端保存     */    @RequestMapping("/save")    public R save(@RequestBody BiaoqianleixingEntity biaoqianleixing, HttpServletRequest request){     biaoqianleixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());     //ValidatorUtils.validateEntity(biaoqianleixing);        biaoqianleixingService.insert(biaoqianleixing);        return R.ok();    }        /**     * 前端保存     */    @RequestMapping("/add")    public R add(@RequestBody BiaoqianleixingEntity biaoqianleixing, HttpServletRequest request){     biaoqianleixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());     //ValidatorUtils.validateEntity(biaoqianleixing);        biaoqianleixingService.insert(biaoqianleixing);        return R.ok();    }    /**     * 修改     */    @RequestMapping("/update")    public R update(@RequestBody BiaoqianleixingEntity biaoqianleixing, HttpServletRequest request){        //ValidatorUtils.validateEntity(biaoqianleixing);        biaoqianleixingService.updateById(biaoqianleixing);//全部更新        return R.ok();    }        /**     * 删除     */    @RequestMapping("/delete")    public R delete(@RequestBody Long[] ids){        biaoqianleixingService.deleteBatchIds(Arrays.asList(ids));        return R.ok();    }        /**     * 提醒接口     */ @RequestMapping("/remind/{columnName}/{type}") public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,        @PathVariable("type") String type,@RequestParam Map map) {  map.put("column", columnName);  map.put("type", type);    if(type.equals("2")) {   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");   Calendar c = Calendar.getInstance();   Date remindStartDate = null;   Date remindEndDate = null;   if(map.get("remindstart")!=null) {    Integer remindStart = Integer.parseInt(map.get("remindstart").toString());    c.setTime(new Date());     c.add(Calendar.DAY_OF_MONTH,remindStart);    remindStartDate = c.getTime();    map.put("remindstart", sdf.format(remindStartDate));   }   if(map.get("remindend")!=null) {    Integer remindEnd = Integer.parseInt(map.get("remindend").toString());    c.setTime(new Date());    c.add(Calendar.DAY_OF_MONTH,remindEnd);    remindEndDate = c.getTime();    map.put("remindend", sdf.format(remindEndDate));   }  }    Wrapper wrapper = new EntityWrapper();  if(map.get("remindstart")!=null) {   wrapper.ge(columnName, map.get("remindstart"));  }  if(map.get("remindend")!=null) {   wrapper.le(columnName, map.get("remindend"));  }  int count = biaoqianleixingService.selectCount(wrapper);  return R.ok().put("count", count); } 
/** * 通用接口 */@RestControllerpublic class CommonController{ @Autowired private CommonService commonService;  @Autowired private ConfigService configService;  private static AipFace client = null;  private static String BAIDU_DITU_AK = null;  @RequestMapping("/location") public R location(String lng,String lat) {  if(BAIDU_DITU_AK==null) {   BAIDU_DITU_AK = configService.selectOne(new EntityWrapper().eq("name", "baidu_ditu_ak")).getValue();   if(BAIDU_DITU_AK==null) {    return R.error("请在配置管理中正确配置baidu_ditu_ak");   }  }  Map map = BaiduUtil.getCityByLonLat(BAIDU_DITU_AK, lng, lat);  return R.ok().put("data", map); }  /**  * 人脸比对  *   * @param face1 人脸1  * @param face2 人脸2  * @return  */ @RequestMapping("/matchFace") public R matchFace(String face1, String face2,HttpServletRequest request) {  if(client==null) {   /*String AppID = configService.selectOne(new EntityWrapper().eq("name", "AppID")).getValue();*/   String APIKey = configService.selectOne(new EntityWrapper().eq("name", "APIKey")).getValue();   String SecretKey = configService.selectOne(new EntityWrapper().eq("name", "SecretKey")).getValue();   String token = BaiduUtil.getAuth(APIKey, SecretKey);   if(token==null) {    return R.error("请在配置管理中正确配置APIKey和SecretKey");   }   client = new AipFace(null, APIKey, SecretKey);   client.setConnectionTimeoutInMillis(2000);   client.setSocketTimeoutInMillis(60000);  }  JSONObject res = null;  try {   File file1 = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+face1);   File file2 = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+face2);   String img1 = Base64Util.encode(FileUtil.FileToByte(file1));   String img2 = Base64Util.encode(FileUtil.FileToByte(file2));   MatchRequest req1 = new MatchRequest(img1, "BASE64");   MatchRequest req2 = new MatchRequest(img2, "BASE64");   ArrayList requests = new ArrayList();   requests.add(req1);   requests.add(req2);   res = client.match(requests);   System.out.println(res.get("result"));  } catch (FileNotFoundException e) {   e.printStackTrace();   return R.error("文件不存在");  } catch (IOException e) {   e.printStackTrace();  }   return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString())); }     /**  * 获取table表中的column列表(联动接口)  * @param table  * @param column  * @return  */ @IgnoreAuth @RequestMapping("/option/{tableName}/{columnName}") public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) {  Map params = new HashMap();  params.put("table", tableName);  params.put("column", columnName);  if(StringUtils.isNotBlank(level)) {   params.put("level", level);  }  if(StringUtils.isNotBlank(parent)) {   params.put("parent", parent);  }  List data = commonService.getOption(params);  return R.ok().put("data", data); }

四,源码获取


这个项目搞的恨不痛快,以后这样的再也不接了。开始的时候就要确认好需求。源码给你了。

点击下面,回复:小程序666

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123064.html

相关文章

  • 作为一名Java序员,因为偷偷私活被...

    摘要:接私活对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。 接私活 对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。但是很少...

    Aomine 评论0 收藏0
  • Taro 优秀学习资源汇总

    摘要:多端统一开发框架优秀学习资源汇总官方资源项目仓库官方文档项目仓库官方文档微信小程序官方文档百度智能小程序官方文档支付宝小程序官方文档字节跳动小程序官方文档文章教程不敢阅读包源码带你揭秘背后的哲学从到构建适配不同端微信小程序等的应用小程序最 Awesome Taro 多端统一开发框架 Taro 优秀学习资源汇总 showImg(https://segmentfault.com/img/r...

    toddmark 评论0 收藏0
  • 「Do.018」私活儿,是否有必要?

    摘要:对于接这样的私活儿,我个人的看法是因人而异的。对于这一类私活儿我个人的态度是有非常必要的。这就是我说的接技术以外的私活儿是有必要的,尽管你自己都不曾意识到这是在接私活儿。 showImg(https://segmentfault.com/img/remote/1460000017714596?w=1280&h=720); 首发公众号:Android程序员日记作者:贤榆的榆如果你觉得有帮...

    arashicage 评论0 收藏0
  • 序员私活些坑

    摘要:前言最近有很多人问我私活怎么样有什么坑,我之前也是接了几个私活,当然也有稳定的收入。也可以通过一些私活中介平台。 前言 最近有很多人问我私活怎么样?有什么坑,我之前也是接了几个私活,当然也有稳定的收入。我们也来分享一下。前几天发现了一个帖子很不错,我们来分享一下 注:本文转自 : http://blog.csdn.net/andylin02/article/details/395593...

    imccl 评论0 收藏0
  • 序员私活些坑

    摘要:前言最近有很多人问我私活怎么样有什么坑,我之前也是接了几个私活,当然也有稳定的收入。也可以通过一些私活中介平台。 前言 最近有很多人问我私活怎么样?有什么坑,我之前也是接了几个私活,当然也有稳定的收入。我们也来分享一下。前几天发现了一个帖子很不错,我们来分享一下 注:本文转自 : http://blog.csdn.net/andylin02/article/details/395593...

    shiweifu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<