2017 7 月4
后台JAVA代码:
package cn.wizzer.app.web.modules.controllers.front.wx;
import cn.wizzer.app.web.commons.base.Globals;
import cn.wizzer.app.wx.modules.services.WxAddressService;
import cn.wizzer.app.wx.modules.services.WxConfigService;
import org.nutz.dao.Cnd;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.json.Json;
import org.nutz.lang.Lang;
import org.nutz.lang.Strings;
import org.nutz.lang.util.NutMap;
import org.nutz.log.Log;
import org.nutz.log.Logs;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.weixin.at.impl.MemoryJsapiTicketStore;
import org.nutz.weixin.spi.WxApi2;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* Created by wizzer on 2017/6/27.
*/
@IocBean
@At("/public/wx/add")
public class AddController {
private static final Log log = Logs.get();
@Inject
private WxConfigService wxConfigService;
@Inject
private WxAddressService wxAddressService;
@At("/index/?")
@Ok("beetl:/public/add/index.html")
public void index(String wxid,HttpServletRequest req, HttpSession session) {
WxApi2 wxApi2 = wxConfigService.getWxApi2(wxid);
if (Lang.isEmpty(Globals.memoryJsapiTicketStore.get(wxid))) {
Globals.memoryJsapiTicketStore.put(wxid, new MemoryJsapiTicketStore());
}
MemoryJsapiTicketStore memoryJsapiTicketStore = Globals.memoryJsapiTicketStore.get(wxid);
wxApi2.setJsapiTicketStore(memoryJsapiTicketStore);
String url = "http://" + Globals.AppDomain + Globals.AppBase + "/public/wx/add/index/"+wxid;
NutMap jsConfig = wxApi2.genJsSDKConfig(url, "getLocation");
req.setAttribute("list", wxAddressService.query(Cnd.orderBy().asc("opAt")));
req.setAttribute("jsConfig", Json.toJson(jsConfig));
}
}
前台代码:
电子导航
var base = '${base!}';
${oLP.index}、${o.name}
lng:${o.lng}, lat:${o.lat}
步行
驾车
没有检索到结果
function goTo(type,name,lng,lat) {
var longitude=$("#longitude").val();
var latitude=$("#latitude").val();
window.location.href="http://apis.map.qq.com/uri/v1/routeplan?type="+type+"&from=我的位置&fromcoord="+latitude+","+longitude+"&to="+name+"&tocoord="+lat+","+lng+"&policy=1&referer=电子导航";
//window.location.href="http://api.map.baidu.com/direction?origin=latlng:"+latitude+","+longitude+"|name:我的位置&destination=latlng:"+lat+","+lng+"|name:"+name+"&mode=driving®ion=合肥&output=html&src=电子导航";
}
wx.config(${jsConfig});
wx.ready(function(){
wx.getLocation({
type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
success: function (res) {
var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
var speed = res.speed; // 速度,以米/每秒计
var accuracy = res.accuracy; // 位置精度
$("#latitude").val(latitude);
$("#longitude").val(longitude);
}
});
});
2017 3 月23
1、wx_config 实体类添加三个字段,对应的表结构也要手动修改:
@Column
@Comment("access_token")
@ColDefine(type = ColType.VARCHAR, width = 255)
private String access_token;
@Column
@Comment("access_token_expires")
@ColDefine(type = ColType.INT)
private Integer access_token_expires;
@Column
@Comment("access_token_lastat")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String access_token_lastat;
get set ...方法生成出来
2、nutzwx版本升级为1.r.61-SNAPSHOT
org.nutz
nutzwx
1.r.61-SNAPSHOT
3、nutz版本升级为1.r.60
org.nutz
nutz
1.r.60
4、WxConfigService 类getWxApi2替换为如下代码(主要是DaoAccessTokenStore从数据库取access_token)
public WxApi2 getWxApi2(String wxid) {
Wx_config appInfo = this.fetch(Cnd.where("id", "=", wxid));
DaoAccessTokenStore myDaoAccessTokenStore = new DaoAccessTokenStore(dao());
Map params = new HashMap();
params.put("id", appInfo.getId());
myDaoAccessTokenStore.setTableAccessToken("access_token");
myDaoAccessTokenStore.setTableAccessTokenExpires("access_token_expires");
myDaoAccessTokenStore.setTableAccessTokenLastat("access_token_lastat");
myDaoAccessTokenStore.setFetch("select access_token,access_token_expires,access_token_lastat from wx_config where id=@id");
myDaoAccessTokenStore.setUpdate("update wx_config set access_token=@access_token, access_token_expires=@access_token_expires, access_token_lastat=@access_token_lastat where id=@id");
myDaoAccessTokenStore.setParams(params);
WxApi2Impl wxApi2 = new WxApi2Impl();
wxApi2.setAppid(appInfo.getAppid());
wxApi2.setAppsecret(appInfo.getAppsecret());
wxApi2.setEncodingAesKey(appInfo.getEncodingAESKey());
wxApi2.setToken(appInfo.getToken());
wxApi2.setAccessTokenStore(myDaoAccessTokenStore);
return wxApi2;
}
2017 3 月17
pom.xml
ch.qos.logback
logback-classic
1.2.2
org.logback-extensions
logback-ext-spring
0.1.4
org.slf4j
jcl-over-slf4j
1.7.25
org.slf4j
log4j-over-slf4j
1.7.25
排除其他包的log4j引用,特别是dubbo的、shiro的
com.alibaba
dubbo
2.8.4
log4j
log4j
javax.ws.rs
javax.ws.rs-api
2.0
log4j
log4j
org.apache.shiro
shiro-ehcache
1.3.2
log4j
log4j
org.apache.shiro
shiro-web
1.3.2
log4j
log4j
配置文件:
/monitor.log
/monitor.%i.log.gz
1
5
300MB
true
GBK
[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger %caller{2} - %msg%n
2017 3 月8
“医生,你得救救我们啊,我们在一起三年了都没有怀孕,父母还等着抱孙子呢!”医生:“这我也没办法啊,这都是你们自己的问题。”“不行啊,医生你帮帮我们吧。”医生:“首先,你们得各自找个女朋友。”
2017 1 月12
记得初入公司时,写的代码乱七八糟,错误百出,bug连连,不仅项目经理骂我,其他同事也对我怨声载道。后来听朋友介绍,就报了一个培训班。经过1个月的刻苦学习,终于功夫不负有心人啊—他们都骂不过我了。
2016 12 月17
我们单位来了个女上司,长的还算过的去,很凶,在单位经常欺负我们。。同事们就怂恿单身的我追求她,然后报复她,欺负她,在同事们的多方帮助下,不出一个月,我把女上司就追到手了。。。从此,我不但在单位受她欺负,到了家还受她欺负。 ……
2016 12 月8
Cnd cnd = Cnd.NEW();
if (!Strings.isBlank(src)) {
cnd.and("srcFrom", "=", src);
}
if (!Strings.isBlank(name)) {
String[] n = StringUtils.split(name, " ");
SqlExpressionGroup group = new SqlExpressionGroup();
for (String s : n) {
SqlExpression sqlExpression = Cnd.exp("srcName", "like", "%" + s + "%");
group.or(sqlExpression);
}
cnd.and(group);
}
cnd.and(Cnd.exps("productSku", "=", "").or("productSku", "is", null));
2016 12 月8
你认为大禹三过家门而不入真的什么都没干吗?不要忘了,他媳妇后来变成望夫石了,而孙悟空是石头里蹦出来的,关键是,大禹的定海神针还听孙悟空的话,你认为孙悟空当年定住了七仙女,什么都没有干吗?想想葫芦娃,正好七个,合在一起能变成石头…石头….
2016 11 月28
elasticsearch 5.0/5.0.1以上版本的elasticsearch-head插件,使用node单独运行,会出现跨站访问的问题:
http://localhost:9200/_nodes. No 'Access-Control-Allow-Origin'
header is present on the requested resource.
Origin 'http://localhost:9100' is therefore not allowed access.
elasticsearch-head 安装教程如下:
1、安装node;
2、下载elasticsearch-head,安装node组件:
>git clone git://github.com/mobz/elasticsearch-head.git
>cd elasticsearch-head
>npm i
>npm i grunt-cli -g
>grunt server
3、elasticsearch.yml 增加配置项
http.cors.enabled: true
http.cors.allow-origin: /http?:\/\/127.0.0.1(:[0-9]+)?/
4、Gruntfile.js 增加hostname配置项
connect: {
server: {
options: {
port: 9100,
hostname: '*',
base: '.',
keepalive: true
}
}
}
5、修改配置文件后各自重启
http://127.0.0.1:9100/ 访问即可(http.cors.allow-origin 里配的是127.0.0.1哦)
2016 11 月26
吃小龙虾旁边一小朋友问老爸:“小龙虾回不了家会不会着急啊。”老爸一下愣住了。老板过来解围:“不会的,他们全家都在这。”
2016 11 月26
闺蜜最近练车,可把教练急死了,油门往死里踩,又不记得踩刹车,这天教练特别冷静,没骂她,也没帮她踩刹车,闺蜜战战兢兢开着,一个急刹车后,闺蜜惊恐地看着旁边的教练,教练您是不是有什么心事?教练淡定道,没什么,就是不想活了。
2016 11 月11
厕所有个水龙头漏电,本来贴了一张纸: “带电,禁止触摸!” 我拿验电笔一试,果然带电。 回到办公室,打印了一张: “你能尿到这里么?我能!” 下午开始听见惨叫,第二天惨叫依旧。
2016 10 月20
Shop_goods_type obj = shopGoodsTypeService.fetch(id);
shopGoodsTypeService.fetchLinks(obj, null, Cnd.orderBy().asc("location"));
for (Shop_goods_type_props o : obj.getPropsList()) {
shopGoodsTypeService.dao().fetchLinks(o, null, Cnd.orderBy().asc("location"));
}
2016 10 月20
今天有两个同事打起来了。起先他们聊得挺开心的,后来,A同事愤愤的说:“昨天到半夜隔壁还在鬼叫,我过去臭骂了他们一顿!” “哦”B同事正忙,停顿了一会问:“你骂了隔壁?” A同事没回答,B同事又追问:“我说你骂隔壁啊?” A同事听完拍案而起:“你妈个逼!”然后他们就扭打在了一起。
2016 9 月13
刚刚一女的在人行道那滋我一身水,我气愤的说:你瞎了啊?结果她听到了反而把我骂懵了,我都忘记了该怎么骂人,只说了一句:反弹…… 然后她懵了
2016 9 月12
webpack.base.conf.js
vue-html 注释掉
// {
// test: /\.html$/,
// loader: 'vue-html'
// },
2016 8 月19
server {
listen 80;
listen 443 ssl;
if ( $scheme = "http" ) {
rewrite ^(.*) https://$host$1;
}
server_name nutzwk.wizzer.cn;
root "/java/work/nutzwk";
ssl_certificate /java/work/1_nutzwk.wizzer.cn_bundle.crt;
ssl_certificate_key /java/work/2_nutzwk.wizzer.cn.key;
add_header "X-UA-Compatible" "IE=Edge, chrome=1";
location / {
proxy_pass http://127.0.0.1:9091;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
2016 8 月16
List formParams = new ArrayList();
formParams.add(new BasicNameValuePair("urlpp", ""));
formParams.add(new BasicNameValuePair("urlkm", ""));
formParams.add(new BasicNameValuePair("khjb", "2"));
HttpEntity httpEntity = new UrlEncodedFormEntity(formParams, "UTF-8");
HttpPost httpPost = new HttpPost(tesseract.njwztx_baseUrl + "fetchNextList.action");
httpPost.setEntity(httpEntity);
httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
httpPost.setHeader("X-Requested-With", "XMLHttpRequest");
httpPost.setHeader("Cookie", "rememberPhone=1; phoneNumber=" + tesseract.getNjwztx_dhhm() + "; friendlyReminder=true;JSESSIONID=" + JSESSIONID + ";");
HttpClient httpclient = HttpClients.createDefault();
HttpResponse response = httpclient.execute(httpPost);
HttpEntity entity = response.getEntity();
Header[] headers = response.getAllHeaders();
for (int i = 0; i < headers.length; i++) {
log.debug("header" + i + ":::" + headers[i]);
}
if (entity != null) {
log.debug("getContentEncoding:::" + entity.getContentEncoding());
log.debug("getContentType:::" + entity.getContentType());
String str = EntityUtils.toString(response.getEntity());
log.debug(str);
Files.write("2.html", str);
}
2016 7 月25
C:\Windows\System32\drivers\etc\hosts
151.101.24.215 repo.maven.apache.org
2016 7 月6
今儿可丢人丢大发了!领导微信群里通知:带上你们吃饭的家伙,火速到办公室集合!结果去了一看,大家都拿的笔记本,就我拿了个碗……