| | |
| | | int rows = applyService.updateForSubmit(ue.getId(), applyEntity.getId(), flowEntity.getId()); |
| | | |
| | | applyEntity = applyService.selectById(applyEntity.getId()); |
| | | if (StaticData.TEN == applyEntity.getStatus()) { |
| | | if (StaticData.I10 == applyEntity.getStatus()) { |
| | | UserEntity user = userService.selectUser(applyEntity.getUserid()); |
| | | applyService.zipDbData(user, applyEntity); |
| | | } |
| | |
| | | import com.lf.server.annotation.SysLog; |
| | | import com.lf.server.controller.all.BaseController; |
| | | import com.lf.server.entity.all.ResponseMsg; |
| | | import com.lf.server.entity.all.SettingData; |
| | | import com.lf.server.entity.all.StaticData; |
| | | import com.lf.server.entity.sys.TokenEntity; |
| | | import com.lf.server.entity.sys.UserEntity; |
| | | import com.lf.server.helper.StringHelper; |
| | | import com.lf.server.service.sys.TokenService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | |
| | | |
| | | /** |
| | | * 令ç表 |
| | | * @author sws |
| | | * @author WWW |
| | | * @date 2022-09-28 |
| | | */ |
| | | |
| | | @Api(tags = "è¿ç»´ç®¡ç\\令ç管ç") |
| | | @RestController |
| | | @RequestMapping("/token") |
| | |
| | | } |
| | | |
| | | @SysLog() |
| | | @ApiOperation(value = "æå
¥å¤æ¡") |
| | | @ApiOperation(value = "å建æ°ä»¤ç") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "list", value = "å®ä½ç±»éå", dataType = "List<TokenEntity>", paramType = "body", example = "") |
| | | @ApiImplicitParam(name = "type", value = "令çç±»å«ï¼0-临æ¶ï¼1-åºå®", dataType = "Integer", paramType = "query", example = "1"), |
| | | @ApiImplicitParam(name = "min", value = "åéæ°ï¼é»è®¤1个æ", dataType = "Integer", paramType = "query", example = "43200") |
| | | }) |
| | | @PostMapping(value = "/insertTokens", produces = "application/json; charset=UTF-8") |
| | | public ResponseMsg<Integer> insertTokens(@RequestBody List<TokenEntity> list, HttpServletRequest req) { |
| | | @GetMapping(value = "/insertNewToken") |
| | | public ResponseMsg<Object> insertNewToken(Integer type, Integer min, HttpServletRequest req) { |
| | | try { |
| | | UserEntity ue = tokenService.getCurrentUser(req); |
| | | if (ue != null) { |
| | | for (TokenEntity entity : list) { |
| | | entity.setCreateUser(ue.getId()); |
| | | } |
| | | if (null == type || type > 1) { |
| | | type = 0; |
| | | } |
| | | if (null == min || min < StaticData.I10) { |
| | | min = SettingData.TOKEN_EXPIRE; |
| | | } |
| | | |
| | | int count = tokenService.insertTokens(list); |
| | | UserEntity ue = tokenService.getCurrentUser(req); |
| | | TokenEntity te = tokenService.getNewToken(type, min, ue, req); |
| | | int rows = tokenService.insertToken(te); |
| | | if (0 == rows) { |
| | | return fail("å建令ç失败", null); |
| | | } |
| | | |
| | | return success(count); |
| | | return success(te); |
| | | } catch (Exception ex) { |
| | | return fail(ex, -1); |
| | | return fail(ex, null); |
| | | } |
| | | } |
| | | |
| | |
| | | if (ids == null || ids.isEmpty()) { |
| | | return fail("idæ°ç»ä¸è½ä¸ºç©º", -1); |
| | | } |
| | | |
| | | int count = tokenService.deleteTokens(ids); |
| | | |
| | | return success(count); |
| | | } catch (Exception ex) { |
| | | return fail(ex, -1); |
| | |
| | | } |
| | | |
| | | @SysLog() |
| | | @ApiOperation(value = "æ ¹æ®IDæ´æ°ä»¤ç为失æ") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "id", value = "令çID", dataType = "Integer", paramType = "query", example = "6563") |
| | | }) |
| | | @GetMapping(value = "/updateExpireById") |
| | | public ResponseMsg<Integer> updateExpireById(Integer id, HttpServletRequest req) { |
| | | try { |
| | | if (null == id || id < 0) { |
| | | return fail("idåæ°æ æ", 0); |
| | | } |
| | | TokenEntity entity = tokenService.selectOneById(id); |
| | | if (null == entity) { |
| | | return fail("该idä¸åå¨", 0); |
| | | } |
| | | |
| | | UserEntity ue = tokenService.getCurrentUser(req); |
| | | entity.setUpdateUser(ue.getId()); |
| | | int count = tokenService.updateTokenExpire(entity); |
| | | |
| | | return success(count); |
| | | } catch (Exception ex) { |
| | | return fail(ex, -1); |
| | | } |
| | | } |
| | | |
| | | @SysLog() |
| | | @ApiOperation(value = "æ ¹æ®Tokenæ´æ°ä»¤ç为失æ") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "tk", value = "令ç", dataType = "String", paramType = "query", example = "2edea2a2-e307-4baa-992c-b477ce0566dd") |
| | | }) |
| | | @GetMapping(value = "/updateExpireByToken") |
| | | public ResponseMsg<Integer> updateExpireByToken(String tk, HttpServletRequest req) { |
| | | try { |
| | | if (StringHelper.isEmpty(tk)) { |
| | | return fail("tokenåæ°æ æ", 0); |
| | | } |
| | | TokenEntity entity = tokenService.selectOneByToken(tk); |
| | | if (null == entity) { |
| | | return fail("该tokenä¸å卿已失æ", 0); |
| | | } |
| | | |
| | | UserEntity ue = tokenService.getCurrentUser(req); |
| | | entity.setUpdateUser(ue.getId()); |
| | | int count = tokenService.updateTokenExpire(entity); |
| | | |
| | | return success(count); |
| | | } catch (Exception ex) { |
| | | return fail(ex, -1); |
| | | } |
| | | } |
| | | |
| | | @SysLog() |
| | | @ApiOperation(value = "æ ¹æ®IDæ¥è¯¢") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1658") |
| | |
| | | return fail(ex, null); |
| | | } |
| | | } |
| | | |
| | | @SysLog() |
| | | @ApiOperation(value = "æ ¹æ®IDæ¥è¯¢(æææå
ç)") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "6563") |
| | | }) |
| | | @GetMapping(value = "/selectOneById") |
| | | public ResponseMsg<TokenEntity> selectOneById(Integer id) { |
| | | try { |
| | | if (null == id || id < 0) { |
| | | return fail("idåæ°æ æ", null); |
| | | } |
| | | TokenEntity tokenEntity = tokenService.selectOneById(id); |
| | | |
| | | return success(tokenEntity); |
| | | } catch (Exception ex) { |
| | | return fail(ex, null); |
| | | } |
| | | } |
| | | |
| | | @SysLog() |
| | | @ApiOperation(value = "æ ¹æ®tokenæ¥è¯¢(æææå
ç)") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "tk", value = "令ç", dataType = "String", paramType = "query", example = "2edea2a2-e307-4baa-992c-b477ce0566dd") |
| | | }) |
| | | @GetMapping(value = "/selectOneByToken") |
| | | public ResponseMsg<TokenEntity> selectOneByToken(String tk) { |
| | | try { |
| | | if (StringHelper.isEmpty(tk)) { |
| | | return fail("tokenåæ°æ æ", null); |
| | | } |
| | | TokenEntity tokenEntity = tokenService.selectOneByToken(tk); |
| | | |
| | | return success(tokenEntity); |
| | | } catch (Exception ex) { |
| | | return fail(ex, null); |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public static String[] EXCLUDE_PATH = new String[]{"/sign/", "/perms/", "/fmeit/", "/crds/", "/floatserver/", "/wmts/select", "/onemap/", "/swagger", "/error"}; |
| | | |
| | | public final static int I1 = 1; |
| | | |
| | | public final static int TWO = 2; |
| | | |
| | | public final static int FOUR = 4; |
| | | |
| | | public final static int NINE = 9; |
| | | |
| | | public final static int TEN = 10; |
| | | public final static int I10 = 10; |
| | | |
| | | public final static int SIXTEEN = 16; |
| | | |
| | |
| | | |
| | | import com.lf.server.entity.all.StaticData; |
| | | |
| | | import java.sql.Timestamp; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | |
| | | |
| | | /** |
| | | * è·åGUID |
| | | * |
| | | * @return |
| | | */ |
| | | public static String getGuid() { |
| | | return UUID.randomUUID().toString(); |
| | | } |
| | | |
| | | /** |
| | | * è·ååéå·®æ° |
| | | */ |
| | | public static long getMinuteDifference(Timestamp ts) { |
| | | return (ts.getTime() - new Date().getTime()) / 1000 / 60; |
| | | } |
| | | |
| | | /** |
| | |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (T t : list) { |
| | | if (null != t) { |
| | | sb.append(t.toString() + join); |
| | | sb.append(t.toString()).append(join); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | // 3.è·åç¨æ·ä»¤ç |
| | | UserEntity ue = sysService.tokenService.getCurrentUser(request); |
| | | UserEntity ue = sysService.tokenService.getUserByToken(token); |
| | | if (ue == null) { |
| | | return WebHelper.writeStr2Page(response, NO_LOGIN); |
| | | } |
| | |
| | | return true; |
| | | } |
| | | |
| | | // 7.æ£æ¥ç½åå |
| | | // 7.æ£æ¥ç½åååIPä¸è´æ§ |
| | | if (!checkWhiteList(ip, request)) { |
| | | // æ£æ¥IPä¸è´æ§ |
| | | if (!checkIpSource(ip, token)) { |
| | | return WebHelper.writeStr2Page(response, ILLEGAL_TOKEN); |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * æ£æ¥IPä¸è´æ§ |
| | | * æ£æ¥IPä¸è´æ§ï¼åºå®ä»¤ç䏿£æ¥ |
| | | */ |
| | | private boolean checkIpSource(String ip, String token) { |
| | | TokenEntity te = sysService.tokenService.getEntityByToken(token); |
| | | |
| | | return te.getIp().equals(ip); |
| | | return StaticData.I1 == te.getType() || te.getIp().equals(ip); |
| | | } |
| | | } |
| | |
| | | public TokenEntity selectToken(int id); |
| | | |
| | | /** |
| | | * æ ¹æ®idéåæ¥è¯¢ |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | public List<TokenEntity> selectByIds(List<Integer> ids); |
| | | |
| | | /** |
| | | * æ ¹æ®idæ¥è¯¢ä¸æ¡è®°å½ |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | public TokenEntity selectOneById(Integer id); |
| | | |
| | | /** |
| | | * æ ¹æ®token弿¥è¯¢ä¸æ¡è®°å½ |
| | | * |
| | | * @param token |
| | |
| | | import com.lf.server.helper.WebHelper; |
| | | import com.lf.server.mapper.sys.TokenMapper; |
| | | import com.lf.server.service.all.RedisService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.Date; |
| | |
| | | * @author sws |
| | | * @date 2022-09-28 |
| | | */ |
| | | |
| | | @Service |
| | | public class TokenService implements TokenMapper { |
| | | @Autowired |
| | | @Resource |
| | | TokenMapper tokenMapper; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | UserService usersService; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | LoginService loginService; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | RedisService redisService; |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public TokenEntity selectToken(int id) { |
| | | return tokenMapper.selectToken(id); |
| | | } |
| | | |
| | | @Override |
| | | public List<TokenEntity> selectByIds(List<Integer> ids) { |
| | | return tokenMapper.selectByIds(ids); |
| | | } |
| | | |
| | | @Override |
| | | public TokenEntity selectOneById(Integer id) { |
| | | return tokenMapper.selectOneById(id); |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public Integer deleteToken(int id) { |
| | | TokenEntity entity = tokenMapper.selectToken(id); |
| | | if (null == entity) { |
| | | return 0; |
| | | } |
| | | |
| | | clearCache(entity.getToken()); |
| | | |
| | | return tokenMapper.deleteToken(id); |
| | | } |
| | | |
| | | @Override |
| | | public Integer deleteTokens(List<Integer> ids) { |
| | | List<TokenEntity> list = tokenMapper.selectByIds(ids); |
| | | if (null == list || list.isEmpty()) { |
| | | return 0; |
| | | } |
| | | |
| | | for (TokenEntity entity : list) { |
| | | clearCache(entity.getToken()); |
| | | } |
| | | |
| | | return tokenMapper.deleteTokens(ids); |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public Integer updateTokenExpire(TokenEntity tokenEntity) { |
| | | clearCache(tokenEntity.getToken()); |
| | | |
| | | return tokenMapper.updateTokenExpire(tokenEntity); |
| | | } |
| | | |
| | |
| | | * è·åæ°ç令çå®ä½ç±» |
| | | */ |
| | | public TokenEntity getNewToken(UserEntity ue, HttpServletRequest req) { |
| | | return getNewToken(0, SettingData.TOKEN_EXPIRE, ue, req); |
| | | } |
| | | |
| | | /** |
| | | * è·åæ°ç令çå®ä½ç±» |
| | | */ |
| | | public TokenEntity getNewToken(Integer type, Integer min, UserEntity ue, HttpServletRequest req) { |
| | | TokenEntity te = new TokenEntity(); |
| | | te.setToken(WebHelper.getGuid()); |
| | | te.setDuration(SettingData.TOKEN_EXPIRE); |
| | | te.setExpire(WebHelper.getTimestamp(SettingData.TOKEN_EXPIRE)); |
| | | te.setType(0); |
| | | te.setDuration(min); |
| | | te.setExpire(WebHelper.getTimestamp(min)); |
| | | te.setType(type); |
| | | te.setIp(WebHelper.getIpAddress(req)); |
| | | te.setCreateUser(ue.getId()); |
| | | te.setUname(ue.getUname()); |
| | |
| | | return false; |
| | | } |
| | | |
| | | // redis |
| | | String tokenKey = RedisCacheKey.signTokenKey(token); |
| | | if (redisService.hasKey(tokenKey)) { |
| | | return true; |
| | | } |
| | | TokenEntity te = getEntityByToken(token); |
| | | |
| | | // db |
| | | TokenEntity te = selectOneByToken(token); |
| | | if (te != null) { |
| | | redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES); |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | return null != te; |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | public Boolean logout(String token, HttpServletRequest req, HttpServletResponse res) { |
| | | TokenEntity te = getEntityByToken(token); |
| | | if (te == null) { |
| | | if (null == te) { |
| | | return false; |
| | | } |
| | | |
| | |
| | | return false; |
| | | } |
| | | |
| | | // æ¸
é¤ç¼å |
| | | String tokenKey = RedisCacheKey.signTokenKey(token); |
| | | redisService.delete(tokenKey); |
| | | String userKey = RedisCacheKey.signUserKey(te.getToken()); |
| | | redisService.delete(userKey); |
| | | |
| | | // dbï¼è®¾ç½®ä»¤çè¿æ |
| | | te.setUpdateUser(ue.getId()); |
| | | Integer rows = updateTokenExpire(te); |
| | | if (rows == 0) { |
| | | if (0 == rows) { |
| | | return false; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * æ¸
é¤ç¼å |
| | | */ |
| | | public void clearCache(String token) { |
| | | String tokenKey = RedisCacheKey.signTokenKey(token); |
| | | redisService.delete(tokenKey); |
| | | String userKey = RedisCacheKey.signUserKey(token); |
| | | redisService.delete(userKey); |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®ä»¤çè·åå®ä½ |
| | | */ |
| | | public TokenEntity getEntityByToken(String token) { |
| | | if (StringHelper.isNull(token)) { |
| | | return null; |
| | | } |
| | | |
| | | String tokenKey = RedisCacheKey.signTokenKey(token); |
| | | |
| | | // redis |
| | |
| | | |
| | | // db |
| | | TokenEntity te = selectOneByToken(token); |
| | | if (te != null) { |
| | | redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES); |
| | | if (null != te) { |
| | | long min = StringHelper.getMinuteDifference(te.getExpire()); |
| | | if (min > 0) { |
| | | redisService.put(tokenKey, te, min, TimeUnit.MINUTES); |
| | | } |
| | | } |
| | | |
| | | return te; |
| | |
| | | */ |
| | | public UserEntity getCurrentUser(HttpServletRequest req) { |
| | | String token = WebHelper.getToken(req); |
| | | |
| | | return getUserByToken(token); |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®ä»¤çè·åç¨æ· |
| | | */ |
| | | public UserEntity getUserByToken(String token) { |
| | | if (StringHelper.isNull(token)) { |
| | | return null; |
| | | } |
| | | |
| | | String userKey = RedisCacheKey.signUserKey(token); |
| | | |
| | | // redis |
| | | String userKey = RedisCacheKey.signUserKey(token); |
| | | Object obj = redisService.get(userKey); |
| | | if (obj instanceof UserEntity) { |
| | | return (UserEntity) obj; |
| | |
| | | |
| | | // db |
| | | UserEntity ue = usersService.selectByToken(token); |
| | | if (ue != null) { |
| | | TokenEntity te = getEntityByToken(token); |
| | | if (te != null) { |
| | | redisService.put(userKey, ue, te.getDuration(), TimeUnit.MINUTES); |
| | | } |
| | | if (null != ue) { |
| | | getEntityByToken(token); |
| | | } |
| | | |
| | | return ue; |
| | |
| | | String key = RedisCacheKey.signPwdError(ue.getUid()); |
| | | Object objCount = redisService.get(key); |
| | | |
| | | return objCount != null && (int) objCount >= SettingData.PWD_ERR_COUNT; |
| | | return null != objCount && (int) objCount >= SettingData.PWD_ERR_COUNT; |
| | | } |
| | | } |
| | |
| | | where id = #{id} |
| | | </select> |
| | | |
| | | <select id="selectByIds" resultType="com.lf.server.entity.sys.TokenEntity"> |
| | | select * from lf.sys_token where id in |
| | | <foreach item="id" collection="ids" index="index" open="(" separator="," close=")"> |
| | | #{id} |
| | | </foreach> |
| | | </select> |
| | | |
| | | <select id="selectOneById" resultType="com.lf.server.entity.sys.TokenEntity"> |
| | | select a.*, fn_uname(create_user) createName, fn_uname(update_user) updateName |
| | | from lf.sys_token a |
| | | where id = #{id} and expire > now() limit 1 |
| | | </select> |
| | | |
| | | <select id="selectOneByToken" resultType="com.lf.server.entity.sys.TokenEntity"> |
| | | select a.*, fn_uname(create_user) createName, fn_uname(update_user) updateName |
| | | from lf.sys_token a |
| | |
| | | ------------------------------------------------------------------------------- ä¼åç½ç» |
| | | gpedit.msc |
| | | è®¡ç®æº\ç®¡çæ¨¡æ¿\ç½ç»\Qosæ°æ®å
计åç¨åº\éå¶å¯ä¿ç带宽 -> å¯ç¨ï¼0% |
| | | netsh interface tcp show global # æ¥çèªå¨ä¼åçº§å« |
| | | |
| | | ãç½ç»è¿æ¥ãâå³é®ã屿§ãâãé
ç½®ãâãé«çº§ãâã屿§ãâãTCP/UDP æ ¡éªåå¸è½½ï¼IPv6æè
IPv4ï¼ãâå³è¾¹çãå¼ãéæ©ç¦ç¨ã |
| | | ã æ¼«æ¸¸ä¸»å¨æ§ ãâãæä½å¼ã |
| | | ãé度/åå·¥ãçãå¼ãâã100MB å
¨åå·¥ãã |
| | | ãçµæºç®¡çãå
³é"å
è®¸è®¡ç®æºå
³é该设å¤ä»¥è约ç¨çµ". |
| | | |
| | | ipconfig /flushdns # å·æ°DNSç¼å |
| | | TCPOptimizer.exeï¼èªå¨ä¼å |
| | | |
| | | regedit.msc |
| | | HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows |
| | | æ°å»ºé¡¹ç® Pschedï¼å³å»æ°å»º NonBestEfortLimitï¼DWORD(32-ä½)å¼ä¸º 0ã |
| | | ------------------------------------------------------------------------------- Postgresä¿®æ¹Data |
| | | https://www.landui.com/docs-1599 |
| | | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\postgresql-x64-14 |
| | | ä¿®æ¹ ImagePathï¼"C:\Program Files\PostgreSQL\14cm\bin\pg_ctl.exe" runservice -N "postgresql-x64-14" -D "C:\Program Files\PostgreSQL\14cm\data" -w |
| | | net start postgresql-x64-14 # éå¯ |
| | | ------------------------------------------------------------------------------- |
| | | Accessï¼https://blog.csdn.net/weixin_43407520/article/details/122165848 |
| | | GDALï¼https://www.cnblogs.com/unlockth/p/14062076.html |
| | |
| | | https://blog.csdn.net/qq_43444401/article/details/125649414 |
| | | https://blog.csdn.net/qq_43961619/article/details/124627871 |
| | | |
| | | http://127.0.0.1:12316/dict/selectCount?tab=sys_user |
| | | http://127.0.0.1:12316/Dict/selectByPage?tab=sys_user&pageSize=10&pageIndex=0 |
| | | |
| | | http://127.0.0.1:12316/Style/selectCount?name=edp |
| | | http://127.0.0.1:12316/Style/selectByPage?name=edp&pageSize=10&pageIndex=0 |
| | | |
| | | http://127.0.0.1/lf/sg/login.html |
| | | Druidï¼http://127.0.0.1:12316/server/druid/index.html |
| | | http://127.0.0.1:12316/swagger-ui.html |
| | | http://192.168.20.106:12316/swagger-ui.html |
| | | http://localhost:12316/sign/toIndex |
| | | http://localhost:12316/sign/toLogin |
| | | http://127.0.0.1:12316/sign/toLogin?service=http://www.sina.com.cn |
| | | ------------------------------------------------------------------------------- é®é¢è®°å½ |
| | | 1.å¨çº¿å¶å¾ï¼åºå¾æåè¦æç¤ºä¿¡æ¯ï¼è¦æ±è½å¤å®å¶åä½å¤§å°ãç¬¦å·æ¾ç¤ºç |
| | | 2.ç³»ç»çæ§ï¼ç¶æä¿¡æ¯å
许导åºè¡¨æ ¼ * |
| | | 3.å°ä¸æ¨¡å¼ï¼æè½½å°ä¸æ¨¡å |
| | | 4.ä¸ç»´ç¹å®æ ¼å¼ï¼3dmï¼eff |
| | | 5.æ°æ®åå¸ï¼æä¾WMSæå¡å°åï¼100.10.1.169ï¼103.85.165.99:8050 |
| | | 6.Druidï¼http://127.0.0.1:12316/server/druid/index.html |
| | | 7.Indexï¼http://103.85.165.99:8052/web |
| | | ------------------------------------------------------------------------------- Javaä¸Postgresç±»åå¯¹åº |
| | | java8 postgreSQL |
| | | 1 LocalDate date |
| | | 2 LocalTime time |
| | | 3 LocalDateTime timestamp without timezone |
| | | 4 OffsetDateTime timestamp with timezone |
| | | 5 String varchar |
| | | 6 String text |
| | | 7 Integer int2 |
| | | 8 Integer int4 |
| | | 9 Long int8 |
| | | 10 Float float4 |
| | | 11 Double float8 |
| | | 12 BigDecimal numeric |
| | | 13 Boolean bool |
| | | ------------------------------------------------------------------------------- æªå¯¹åºçController |
| | | data/DownloadController |
| | | data/MetaFileController |
| | | sys/AttachController |
| | | sys/MsgController |
| | | |
| | | http://127.0.0.1/data/test.kmlï¼è·¨åï¼ |
| | | java8 postgreSQL |
| | | LocalDate date |
| | | LocalTime time |
| | | LocalDateTime timestamp without timezone |
| | | OffsetDateTime timestamp with timezone |
| | | String varchar |
| | | String text |
| | | Integer int2 |
| | | Integer int4 |
| | | Long int8 |
| | | Float float4 |
| | | Double float8 |
| | | BigDecimal numeric |
| | | Boolean bool |
| | | ------------------------------------------------------------------------------- è·¨å |
| | | chrome://flags/#block-insecure-private-network-requests |
| | | Block insecure private network requests. -> Disabled |
| | | |
| | | è¿å
¥binç®å½ï¼è¾å
¥ï¼ogrinfo --formatsï¼ä¸å½ç³æ²¹å¤©ç¶æ°ç®¡éå·¥ç¨æéå
¬å¸ |
| | | ------------------------------------------------------------------------------- |
| | | |
| | | javaåjså®ç°aeså å¯è§£å¯ï¼ |
| | | https://blog.csdn.net/weixin_30663839/article/details/114049667 |
| | | |
| | | http://192.168.20.39:12306/ |
| | | http://192.168.20.39:12315/ |
| | | http://192.168.20.39:12316/ |
| | | http://192.168.20.39:12316/server/druid/sql.html |
| | | ------------------------------------------------------------------------------- |
| | | String path = System.getProperty("user.dir"); |
| | |
| | | æå¡ç«¯ï¼æ ¸å¿æ¡æ¶ï¼SpringBootï¼æä¹
屿¡æ¶ï¼Mybatisï¼å®å
¨æ¡æ¶ï¼Shiroï¼ç¼åï¼redis |
| | | å端ï¼JSæ¡æ¶ï¼vue.jsï¼ä¸»é¡µæ¡æ¶ï¼adminLTE(åºäºBootstrap)ï¼è¡¨æ ¼æä»¶ï¼jqGridï¼æ å½¢è¡¨æ ¼ï¼tree-tableï¼æ å½¢æä»¶ï¼ztreeï¼å¼¹çªç»ä»¶ï¼layerï¼è¡¨åæ ¡éªï¼validator |
| | | private static final String SQLSERVER_URL = "jdbc:sqlserver://192.168.0.77\\ZKZS; databaseName=xian"; |
| | | ------------------------------------------------------------------------------- floatserver |
| | | |
| | | http://localhost:12316/floatserver/checkout/license |
| | | String str = EntityUtils.toString(entity, "UTF-8"); |
| | | java -jar C:\360\luyten054\luyten-0.5.4.jar |
| | | |
| | | 请æ±ï¼8dfb75298185cbcc4b2d485fdb4f25627f7aeb4dd41329076b5015586e4d56cf755f0dfd19be0d80e2573e0a2a22edca35215b390607b0ff68deab90c69296df60934315036bd8a64ee668a39502754b701be7534d0ca2e790161194d673d9454c44c570a1dbe604ac5952be731ca15809f9f4d43ad1b023f69981ce77abacc50e8e5217627eb236d5f6d114e00585d9a597f3a195b0b0c0ff8cf1e2445ca12e |
| | | ååºï¼8dfb75298185cbcc4b2d485fdb4f25627f7aeb4dd41329076b5015586e4d56cfe2c56f12cd9852c447904210117b41fe2672b24d7e82fd581ad5a0983b501b5bcbe97d65dbbe770dbdc4a98e80d2966a71ecd0041a5282283bff853d70caf7aed671bc9c9d4bedf6d1d0294394861af40f195d68a965d957d53c78aa50ada3afc65d1a526c54648e6e081e8f7f7ab1c31b9f75916170e638b0b9216d30204864afe3a7a1bc8a6563bf44daf6a29e27c19f798c4f82dbb904ea4aa4fcc87a82226d9bf3e891ecb97b94263064fec025e3aa7c440d7c0e8ed559b84ae2438ec0fc438444a03c992883170ecdde20e08552efcf9d584de469930b27c81f946548d5c6e63e815671182b03b5e6e622ddb10a3f6a35ad3f44ec247a3b2dee0e936020d48efb7abc2d2abfb555f61d54c85eca |
| | | |
| | | {"machineId":"dba5c0f908f92fbdb6f0a3f58a5a3193","isRegistered":true,"registeredModules":[1,3,4,9,10,11,12,13,17,25,30,33,37],"modules":[{"id":1,"name":"wms","group":"GISServer","title":"卿å°å¾æå¡"},{"id":3,"name":"tms","group":"GISServer","title":"ç¦çå°å¾æå¡"},{"id":9,"name":"wfs","group":"GISServer","title":"è¦ç´ æå¡"},{"id":12,"name":"wns","group":"GISServer","title":"ç½ç»åææå¡"},{"id":13,"name":"geocode","group":"GISServer","title":"å°çç¼ç æå¡"},{"id":17,"name":"wcs","group":"GISServer","title":"æ
æ ¼æå¡"},{"id":25,"name":"c3d","group":"GISServer","title":"ä¸ç»´æ¨¡åæå¡"},{"id":30,"name":"cts","group":"GISServer","title":"ä¸ç»´å°å½¢æå¡"},{"id":33,"name":"cimservice","group":"CIMSuite","title":"è¯ä¹æ¨¡åæå¡"},{"id":37,"name":"websdk","group":"WEBSDK","title":"WEBSDK"},{"id":38,"name":"pw","group":"Parallelworld","title":" Parallelworld"},{"id":50,"name":"ext","group":"extension","title":"extension"}],"expireDate":1668486201730,"isFloating":true,"floatServerIp":"192.168.20.106","floatServerPort":12316,"message":"OK","success":true} |
| | | {"id":"dba5c0f908f92fbdb6f0a3f58a5a3193","expireDate":"2023-01-17","localId":"192.168.20.106|E0-70-EA-AA-B6-43","availableNum":12,"time":1668394770458,"licenseCode":"78a82f0920de0f557f8177bec1e48601c4dc25e4054a00728e4314b56528d3a1632de5298edee38a65412277977a174fea5d91c452b19ef138dbc2ba089ba632"} |
| | | ------------------------------------------------------------------------------- æé |
| | | 管éåºç¡å¤§æ°æ®å¹³å°ï¼ å é¤ |
| | | 综åå±ç¤º\综åå±ç¤º\æ¥è¯¢ï¼ ä¸è½½ãä¸ä¼ |
| | | 综åå±ç¤º\综åå±ç¤º\æ ç»ï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | 综åå±ç¤º\ä¸é¢å¾ï¼ ç»è®¡ |
| | | 综åå±ç¤º\èµæé¦ï¼ ä¸è½½ |
| | | ------------------------------------------- |
| | | æ°æ®ç®¡ç\æ°æ®ä¸ä¼ ï¼ æ°å¢ãä¿®æ¹ãå é¤ãä¸ä¼ ãä¸è½½ |
| | | æ°æ®ç®¡ç\ç®å½ç®¡çï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | æ°æ®ç®¡ç\æ°æ®æ£ç´¢ï¼ æ°å¢ãä¿®æ¹ãå é¤ãä¸ä¼ ãä¸è½½ |
| | | æ°æ®ç®¡ç\çæ¬ç®¡çï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | æ°æ®ç®¡ç\åå
¸ç®¡çï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | æ°æ®ç®¡ç\å
æ°æ®ç®¡ç: æ°å¢ãä¿®æ¹ãå é¤ãä¸ä¼ ãä¸è½½ |
| | | æ°æ®ç®¡ç\æ ·å¼ç®¡çï¼ æ°å¢ãä¿®æ¹ãå é¤ãä¸ä¼ ãä¸è½½ |
| | | ------------------------------------------- |
| | | è¿ç»´ç®¡ç\ç³»ç»ç®¡ç\èå管çï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | è¿ç»´ç®¡ç\ç³»ç»ç®¡ç\ç¨æ·ç®¡çï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | è¿ç»´ç®¡ç\ç³»ç»ç®¡ç\åä½ç®¡çï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | è¿ç»´ç®¡ç\ç³»ç»ç®¡ç\èµæºç®¡çï¼ æ°å¢ãä¿®æ¹ãå é¤ãä¸ä¼ |
| | | è¿ç»´ç®¡ç\ç³»ç»ç®¡ç\è§è²ç®¡çï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | è¿ç»´ç®¡ç\ç³»ç»ç®¡ç\æé管çï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | |
| | | è¿ç»´ç®¡ç\ææç®¡ç\ç¨æ·è§è²ææï¼æ°å¢ãä¿®æ¹ãå é¤ |
| | | è¿ç»´ç®¡ç\ææç®¡ç\èåæéææï¼æ°å¢ãä¿®æ¹ãå é¤ |
| | | è¿ç»´ç®¡ç\ææç®¡ç\è§è²èåææï¼æ°å¢ãä¿®æ¹ãå é¤ |
| | | è¿ç»´ç®¡ç\ææç®¡ç\è§è²èµæºææï¼æ°å¢ãä¿®æ¹ãå é¤ |
| | | |
| | | è¿ç»´ç®¡ç\è¿ç»´çæ§\令ç管çï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | è¿ç»´ç®¡ç\è¿ç»´çæ§\é»ç½/ååï¼ æ°å¢ãä¿®æ¹ãå é¤ |
| | | è¿ç»´ç®¡ç\ç³»ç»é
ç½®: ä¿®æ¹ |
| | | ------------------------------------------------------------------------------- Java Webæä½ |
| | | String getMethod() // è·åè¯·æ±æ¹å¼: GET |
| | | // è·åèæç®å½(ä¸ä¸æç®å½)ï¼èæè·¯å¾éè¿å¨applicationé
ç½®å½ä¸å¯ä»¥é
ç½® |