记得上下班打卡 | git大法好,push需谨慎

Commit 3c195946 authored by 胡佳晨's avatar 胡佳晨

Merge branch 'master' into dev_goblin

# Conflicts:
#	liquidnet-bus-config/liquidnet-config/application-test.yml
#	liquidnet-bus-service/liquidnet-service-executor-all/liquidnet-service-executor-main/src/main/java/com/liquidnet/service/executor/main/handler/PlatformTaskHandler.java
#	liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/utils/ObjectUtil.java
#	liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/resources/sqlmap.properties
parents ec330de0 915d5143
......@@ -54,6 +54,10 @@ public class AdamRedisConst {
public static final String INCR_MEMBER_NO = PREFIX.concat("incr:member_no");
public static final String INCR_MEMBER_LIMITATION = PREFIX.concat("incr:member_limitation");
/**
* 用户添加/编辑入场人计数(N次/天)
*/
public static final String INCR_USER_ENTERS = PREFIX.concat("incr:limit_u_e:");
// public static final String SWITCH_BUY_MEMBER = PREFIX.concat("switch:buy:member");
......
......@@ -14,7 +14,7 @@ import java.util.List;
* @since 2021-04-28
*/
public interface IAdamEntersService {
String add(AdamEntersParam parameter);
String add(AdamEntersParam parameter, String uid, List<AdamEntersVo> vos);
void def(String uid, String entersId);
......
......@@ -26,6 +26,11 @@ public class KylinRedisConst {
public static final String ORDER_REFUND_BY_ORDER_ID = "kylin:order:refund:orderId:";
public static final String ORDER_REFUND = "kylin:order:refund:orderRefundsId:";
public static final String CAMERA_DEVICES = "kylin:cameraDevices:list";
public static final String CAMERA_DEVICES_FIELD = "kylin:cameraDevices:fieldId:";
public static final String CAMERA_DEVICE_GB_INFO = "kylin:cameraDevices:gbId:";
public static final String CAMERA_DEVICE_PERSON_NUM = "kylin:cameraDevices:personNum:cameraId:";
public static final String BUY_NOTICE = "kylin:buyNotice";//购票须知
public static final String TICKET_EXPRESS_MODULE_P = "kylin:ticket:express_module:p:";//票种快递票模板关联vo [第三方非线上]
public static final String TICKET_EXPRESS_MODULE = "kylin:ticket:express_module:";//票种快递票模板关联vo [线上]
......
package com.liquidnet.service.kylin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.kylin.entity.KylinCamera;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 人流量排队检测摄像头表
* </p>
*
* @author jiangxiulong
* @since 2022-01-11
*/
@Data
@ApiModel
public class KylinApiCameraDevicesVo implements Serializable {
private static final long serialVersionUID = 3886640525869906268L;
@ApiModelProperty(value = "camera_id")
private String cameraId;
@ApiModelProperty(value = "场地ID")
private String fieldId;
@ApiModelProperty(value = "地点类型 1卫生间 2。。。")
private Integer siteType;
@ApiModelProperty(value = "设备状态 取值:on(在线),off(离线),failed(锁定),new(未注册)")
private String status;
@ApiModelProperty(value = "创建时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@ApiModelProperty(value = "修改时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
@ApiModelProperty(value = "检测到的人数")
private Integer personNum;
private static final KylinApiCameraDevicesVo obj = new KylinApiCameraDevicesVo();
public static KylinApiCameraDevicesVo getNew() {
try {
return (KylinApiCameraDevicesVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinApiCameraDevicesVo();
}
}
public KylinApiCameraDevicesVo copy(KylinCamera source) {
KylinApiCameraDevicesVo kylinApiCameraDevicesVo = KylinApiCameraDevicesVo.getNew();
if (null == source) return null;
kylinApiCameraDevicesVo.setCameraId(source.getCameraId());
kylinApiCameraDevicesVo.setFieldId(source.getFieldId());
kylinApiCameraDevicesVo.setSiteType(source.getSiteType());
kylinApiCameraDevicesVo.setStatus(source.getStatus());
kylinApiCameraDevicesVo.setCreatedAt(source.getCreatedAt());
kylinApiCameraDevicesVo.setUpdatedAt(source.getUpdatedAt());
return kylinApiCameraDevicesVo;
}
/*{
"TotalCount": 1,
"RequestId": "D459D326-9D2D-5148-A8BA-AADEC8F2C9AF",
"PageSize": 20,
"PageNum": 1,
"PageCount": 1,
"Devices": [
{
"AlarmMethod": "",
"Description": "{\"test\":\"value\"}",
"CreatedTime": "2022-01-10T11:07:17+08:00",
"Ip": "",
"Port": 0,
"Latitude": "0.0000000000",
"Url": "",
"Name": "人流量监控",
"GbId": "20220101202301070001",
"AutoStart": false,
"Dsn": "",
"Password": "123456",
"Directory": {},
"ParentId": "",
"Status": "on",
"Enabled": true,
"Params": "{}",
"Vendor": "other",
"Longitude": "0.0000000000",
"RegisteredTime": "2022-01-11T11:13:12+08:00",
"GroupId": "410751715516867255-cn-beijing",
"PosInterval": 5,
"Type": "ipc",
"DirectoryId": "410751715516867255-cn-beijing",
"Username": "20220101202301070001",
"AutoPos": true,
"Stats": {},
"Id": "411719749995806610-cn-beijing"
}
]
}*/
}
package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 人流量排队检测摄像头截图回调
* </p>
*
* @author jiangxiulong
* @since 2022-01-14
*/
@Data
@ApiModel
public class KylinCameraDeviceCallBackVo implements Serializable {
private static final long serialVersionUID = -7824619649886426754L;
private String OssObject;
private String SnapshotUrl;
private String Event;
private String StreamName;
private String CreateTime;
private String Height;
private String DomainName;
private String OssEndpoint;
private String AppName;
private String Width;
private String OssBucket;
private String Size;
/*{
"OssObject":"��������ؽ�ͼ/live/20220101202301070001.jpg",
"SnapshotUrl":"http://zhengzai-live.oss-cn-beijing.aliyuncs.com/��������ؽ�ͼ/live/20220101202301070001.jpg",
"Event":"Snapshot",
"StreamName":"20220101202301070001",
"CreateTime":"2022-01-10T11:35:21Z",
"Height":"1080",
"DomainName":"image.zhengzai.tv",
"OssEndpoint":"oss-cn-beijing.aliyuncs.com",
"AppName":"live",
"Width":"1920",
"OssBucket":"zhengzai-live",
"Size":"115657"
}*/
}
package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 人流量排队检测摄像头表
* </p>
*
* @author jiangxiulong
* @since 2022-01-11
*/
@Data
@ApiModel
public class KylinCameraDevicesVo implements Serializable {
private static final long serialVersionUID = 87823760599373667L;
/*@ApiModelProperty(value = "camera_id")
private String cameraId;
@ApiModelProperty(value = "设备用户名/国标ID")
private String streamName;
@ApiModelProperty(value = "场地ID")
private String fieldId;
@ApiModelProperty(value = "截图url")
private String imgUrl;
@ApiModelProperty(value = "地点类型 1卫生间 2。。。")
private Integer siteType;
@ApiModelProperty(value = "创建时间")
private String createdAt;
@ApiModelProperty(value = "修改时间")
private String updatedAt;*/
@ApiModelProperty(value = "设备描述 暂时用来村特殊参数json")
private String Description;
@ApiModelProperty(value = "国标ID")
private String GbId;
@ApiModelProperty(value = "设备状态 取值:on(在线),off(离线),failed(锁定),new(未注册)")
private String status;
}
package com.liquidnet.service.kylin.service;
import com.liquidnet.service.kylin.entity.KylinCameraRecord;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 人流量检测记录表 服务类
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
public interface IKylinCameraRecordService {
}
package com.liquidnet.service.kylin.service;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.entity.KylinCamera;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 人流量排队检测摄像头表 服务类
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
public interface IKylinCameraService {
List<KylinApiCameraDevicesVo> cameraList(String fieldId, Integer siteType);
}
......@@ -63,6 +63,10 @@ public class SweetConstant {
// 2021草莓音乐节海报活动活动
public static final String REDIS_KEY_SWEET_STRAWBERRY_POSTER_CLICK = "sweet:strawberryPoster:click:openId:";
// 数字藏品预约活动
// public final static String REDIS_KEY_SWEET_COLLECTION_RESERVATION_USER = "sweet:collectionReservation:unionId:";
// 活动结束时间
public final static String REDIS_KEY_SWEET_ACTIVITY_END_TIME = "sweet:activity:endTime:type:";
// 微信服务号用户相关
public final static String REDIS_KEY_SWEET_WECHAT_USERS_UNIONID = "sweet:user:service:unionId:";
......
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetCollectionReservation;
import com.liquidnet.service.sweet.vo.SweetCollectionReservationVo;
/**
* <p>
* 数字藏品预约活动表 服务类
* </p>
*
* @author jiangxiulong
* @since 2022-01-18
*/
public interface ISweetCollectionReservationService extends IService<SweetCollectionReservation> {
ResponseDto<SweetCollectionReservationVo> info();
ResponseDto<Boolean> time(String endTime);
ResponseDto<Boolean> create(String nickname, String mobile, String mailbox, String enterpriseName, String title);
}
package com.liquidnet.service.sweet.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class SweetCollectionReservationVo implements Serializable {
private static final long serialVersionUID = -6689305045906446522L;
@ApiModelProperty("活动状态 1正常 2已结束")
private Integer status;
private static final SweetCollectionReservationVo obj = new SweetCollectionReservationVo();
public static SweetCollectionReservationVo getNew() {
try {
return (SweetCollectionReservationVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetCollectionReservationVo();
}
}
}
......@@ -139,6 +139,12 @@
<div class="click2edit wrapper imgwid" id="subText">
</div>
</div>
<div>
<h4>演出公告:</h4>
<input name="notice" th:field="*{notice}" class="form-control" type="text" readonly>
</div>
<h4>演出公告:</h4>
<div id="noticeImg" class="ibox float-e-margins ">
<h4 class="ibox-title">购票须知:</h4>
......@@ -393,6 +399,10 @@
var subText = document.getElementById("subText")
subText.innerHTML = '[[${kylinPerformanceMisVo.details}]]'.replaceAll("\"", "");
// 演出详情 购票须知
var notice = document.getElementById("notice")
notice.innerHTML = '[[${kylinPerformanceMisVo.notice}]]'.replaceAll("\"", "");
//会员详情
function memberInfo() {
document.getElementById("content_iframe").src = "../memberInfo/" + '[[${kylinPerformanceMisVo.performancesId}]]'.replaceAll("\"", "");
......
......@@ -238,6 +238,9 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
Map<String, Object> map = BeanUtil.convertBeanToMap(performanceAdminListParam);
List<PerformanceAdminListDao> voList = performancesMapper.misPerformanceList(map);
for (PerformanceAdminListDao item : voList) {
if (item.getTimeSell() == null || item.getTimeStop() == null) {
continue;
}
item.setStatus(item.getStatus());
if (item.getStatus() >= 6 && item.getStatus() != 7) {
if (DateUtil.compareStrDay(item.getTimeSell(), DateUtil.getNowTime()) > 0) {//未开始
......
......@@ -41,6 +41,13 @@ public class CurrentUtil {
return (String) ServletUtils.getRequest().getAttribute(TOKEN_SUB);
}
public static String getCurrentSlimeUid() {
// if("582251359821905923484786".equals(ServletUtils.getRequest().getAttribute(TOKEN_SUB))){
// return "245754392713379846109548";
// }
return (String) ServletUtils.getRequest().getAttribute(TOKEN_SUB);
}
public static String getHeaderCliSource() {
return ServletUtils.getRequest().getHeader(HEADER_CLI_SOURCE);
}
......
......@@ -34,7 +34,7 @@ public final class RedisUtil extends AbstractRedisUtil{
public static void main(String[] args) {
String[] keys = {
"stone:user:$uid::surplusGeneral",
"kylin:performances:id:879358616337735686573945",
"stone:item:logs:list:$uid"
};
for (String key : keys) {
......
......@@ -2,18 +2,14 @@ package com.liquidnet.common.exception.entity;
import lombok.Data;
import java.util.List;
import java.io.Serializable;
/**
* Created by shangshengfang on 2017/2/16.
*/
@Data
public class Error {
public class Error implements Serializable, Cloneable {
String message;
String code;
Object data;
public Error() {
}
......@@ -21,4 +17,30 @@ public class Error {
this.code = code;
this.message = message;
}
public Error setMessage(String message) {
this.message = message;
return this;
}
public Error setCode(String code) {
this.code = code;
return this;
}
public Error setData(Object data) {
this.data = data;
return this;
}
private static final Error obj = new Error();
public static Error getNew() {
try {
return (Error) obj.clone();
} catch (CloneNotSupportedException e) {
return new Error();
}
}
}
......@@ -11,6 +11,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.MissingServletRequestParameterException;
......@@ -42,10 +43,13 @@ public class RestControllerAdviceHandler {
logger.error("Ex.Handler.RestController:uri:{},param:{},ex:{},msg:{},",
req.getRequestURI(), JSON.toJSONString(req.getParameterMap()), rex.getClass().getSimpleName(), rex.getLocalizedMessage());
if (rex instanceof HttpMessageNotReadableException) {
return new ResponseEntity<>(Error.getNew().setCode(ErrorCode.HTTP_PARAM_ERROR.getCode()).setMessage(ErrorCode.HTTP_PARAM_ERROR.getMessage()), HttpStatus.OK);
}
if (rex instanceof MissingServletRequestParameterException) {
MissingServletRequestParameterException ygex = (MissingServletRequestParameterException) rex;
String message = ygex.getMessage();
return new ResponseEntity<Error>(new Error(ErrorCode.HTTP_PARAM_ERROR.getCode(), message), HttpStatus.OK);
return new ResponseEntity<>(Error.getNew().setCode(ErrorCode.HTTP_PARAM_ERROR.getCode()).setMessage(message), HttpStatus.OK);
}
if (rex instanceof ConstraintViolationException) {
ConstraintViolationException ygex = (ConstraintViolationException) rex;
......@@ -53,27 +57,27 @@ public class RestControllerAdviceHandler {
String violationNode = violation.getPropertyPath().toString();
// String message = violationNode.substring(violationNode.indexOf(".") + 1) + violation.getMessage();
String message = violation.getMessage();
return new ResponseEntity<Error>(new Error(ErrorCode.HTTP_PARAM_ERROR.getCode(), message), HttpStatus.OK);
return new ResponseEntity<>(Error.getNew().setCode(ErrorCode.HTTP_PARAM_ERROR.getCode()).setMessage(message), HttpStatus.OK);
}
if (rex instanceof MethodArgumentNotValidException) {
MethodArgumentNotValidException ygex = (MethodArgumentNotValidException) rex;
FieldError fieldError = ygex.getBindingResult().getFieldErrors().get(0);
// String message = fieldError.getField() + " " + fieldError.getDefaultMessage();
String message = fieldError.getDefaultMessage();
return new ResponseEntity<Error>(new Error(ErrorCode.HTTP_PARAM_ERROR.getCode(), message), HttpStatus.OK);
return new ResponseEntity<>(Error.getNew().setCode(ErrorCode.HTTP_PARAM_ERROR.getCode()).setMessage(message), HttpStatus.OK);
}
if (rex instanceof LiquidnetFeignException) {
LiquidnetFeignException ygex = (LiquidnetFeignException) rex;
String errorCode = ygex.errorCode().getCode();
String message = ygex.getMessage();
message = message == null ? ygex.errorCode().getMessage() : message;
return new ResponseEntity<Error>(new Error(errorCode, message), HttpStatus.OK);
return new ResponseEntity<>(Error.getNew().setCode(errorCode).setMessage(message), HttpStatus.OK);
}
if (rex instanceof LiquidnetServiceException) {
LiquidnetServiceException ygex = (LiquidnetServiceException) rex;
String errorCode = ygex.getCode();
String message = ygex.getMessage();
return new ResponseEntity<Error>(new Error(errorCode, message), HttpStatus.OK);
return new ResponseEntity<>(Error.getNew().setCode(errorCode).setMessage(message), HttpStatus.OK);
} else {
logger.error("Unprocessed exception", rex);
// return new ResponseEntity<Error>(new Error(ErrorCode.HTTP_SYSTEM_ERROR.getCode(), ErrorCode.HTTP_SYSTEM_ERROR.getMessage()), HttpStatus.OK);
......
......@@ -69,6 +69,11 @@ public class SmsEnum {
* - 模版内容:您已成功购买${name}门票。可至个人中心查看订单 http://t.cn/ExMlr1B。演出${time}开始。微信关注 摩登天空服务号,获得更多演出资讯。特别提示:下载“正在现场APP”最新版,使用“在场”功能,可结识该场演出中共同观演的在场好友。
*/
SMS_225995308,
/**
* 购买会员
* - 模版内容:欢迎加入登登登VIP大家庭。请微信关注“摩登天空服务号”,回复VIP,获取专属小助理客服服务了,回T退订
*/
SMS_232908714,
;
}
......
......@@ -25,6 +25,8 @@ liquidnet:
app-login:
mobile: 13724286255
user-info: false
limit:
enters: 10
enters_opr: 20
#以下为spring各环境个性配置
......@@ -25,5 +25,8 @@ liquidnet:
app-login:
mobile: 13724286255
user-info: false
limit:
enters: 10
enters_opr: 20
#以下为spring各环境个性配置
......@@ -148,6 +148,8 @@ global-auth:
- ${liquidnet.info.context}/performance/calendarPerformances
- ${liquidnet.info.context}/performance/*
- ${liquidnet.info.context}/myPerformance/*
# 场地摄像头列表
- ${liquidnet.info.context}/camera/list
oncheck-url-pattern:
- ${liquidnet.info.context}/order/details
- ${liquidnet.info.context}/order/transfer*
......
package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 人流量排队检测摄像头表
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinCamera implements Serializable, Cloneable {
private static final long serialVersionUID = 713935834396315177L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* camera_id
*/
private String cameraId;
/**
* 国标ID
*/
private String gbId;
/**
* 截图url
*/
private String imgUrl;
/**
* 场地ID
*/
private String fieldId;
/**
* 地点类型 1卫生间 2。。。
*/
private Integer siteType;
/**
* 设备状态 取值:on(在线),off(离线),failed(锁定),new(未注册)
*/
private String status;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
private static final KylinCamera obj = new KylinCamera();
public static KylinCamera getNew() {
try {
return (KylinCamera) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinCamera();
}
}
}
package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 人流量检测记录表
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinCameraRecord implements Serializable, Cloneable {
private static final long serialVersionUID = -7063749314663361848L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* camera_record_id
*/
private String cameraRecordId;
/**
* camera_id
*/
private String cameraId;
/**
* 检测到的人数
*/
private Integer personNum;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
private static final KylinCameraRecord obj = new KylinCameraRecord();
public static KylinCameraRecord getNew() {
try {
return (KylinCameraRecord) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinCameraRecord();
}
}
}
package com.liquidnet.service.kylin.mapper;
import com.liquidnet.service.kylin.entity.KylinCamera;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 人流量排队检测摄像头表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
public interface KylinCameraMapper extends BaseMapper<KylinCamera> {
}
package com.liquidnet.service.kylin.mapper;
import com.liquidnet.service.kylin.entity.KylinCameraRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 人流量检测记录表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
public interface KylinCameraRecordMapper extends BaseMapper<KylinCameraRecord> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.kylin.mapper.KylinCameraMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.kylin.mapper.KylinCameraRecordMapper">
</mapper>
package com.liquidnet.service.stone.dto;
import lombok.Data;
@Data
public class StoneInvalidDto implements Cloneable {
/**
* 昵称
*/
private String uid;
/**
* 头像
*/
private Integer invalidScore;
private static final StoneInvalidDto obj = new StoneInvalidDto();
public static StoneInvalidDto getNew() {
try {
return (StoneInvalidDto) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new StoneInvalidDto();
}
}
package com.liquidnet.service.stone.mapper;
import com.liquidnet.service.stone.dto.StoneInvalidDto;
import com.liquidnet.service.stone.entity.StoneScoreLogs;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
import java.util.List;
/**
* <p>
......@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface StoneScoreLogsMapper extends BaseMapper<StoneScoreLogs> {
List<StoneInvalidDto> getInvalidScore(@Param("st") LocalDate st, @Param("et") LocalDate et,@Param("strTime") String strTime);
}
......@@ -2,4 +2,20 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.stone.mapper.StoneScoreLogsMapper">
<resultMap id="StoneScoreListDtoResult" type="com.liquidnet.service.stone.dto.StoneInvalidDto">
<result column="uid" property="uid"/>
<result column="invalid_score" property="invalidScore"/>
</resultMap>
<select id="getInvalidScore" resultMap="StoneScoreListDtoResult">
SELECT uid,sum(score) as 'invalid_score' from stone_score_logs
WHERE
(created_at <![CDATA[>=]]> #{st} and created_at <![CDATA[<]]> #{et})
OR
content = #{strTime}
GROUP BY uid
HAVING invalid_score <![CDATA[>]]> 0
ORDER BY uid
</select>
</mapper>
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 数字藏品预约活动表
* </p>
*
* @author jiangxiulong
* @since 2022-01-18
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetCollectionReservation implements Serializable, Cloneable {
private static final long serialVersionUID = -4190431204108686647L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* reservation_id
*/
private String reservationId;
/**
* 称呼
*/
private String nickname;
/**
* 手机号
*/
private String mobile;
/**
* 邮箱
*/
private String mailbox;
/**
* 企业名称
*/
private String enterpriseName;
/**
* 职务
*/
private String title;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetCollectionReservation obj = new SweetCollectionReservation();
public static SweetCollectionReservation getNew() {
try {
return (SweetCollectionReservation) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetCollectionReservation();
}
}
}
package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.entity.SweetCollectionReservation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 数字藏品预约活动表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2022-01-18
*/
public interface SweetCollectionReservationMapper extends BaseMapper<SweetCollectionReservation> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.sweet.mapper.SweetCollectionReservationMapper">
</mapper>
......@@ -5,6 +5,7 @@ import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Component
@FeignClient(
......@@ -19,4 +20,13 @@ public interface FeignPlatformApiClient {
@GetMapping("refund/overtimeRefund")
ResponseDto<String> overtimeRefund();
@GetMapping("camera/detectPedestrian")
ResponseDto<String> detectPedestrian();
@GetMapping("camera/describeDevices")
ResponseDto<String> describeDevices(
@RequestParam("pageNum") Integer pageNum,
@RequestParam("pageSize") Integer pageSize
);
}
......@@ -17,6 +17,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -47,6 +48,12 @@ public class AdamEntersController {
@Autowired
IAdamEntersService adamEntersService;
@Value("${liquidnet.reviewer.limit.enters:10}")
private int reviewLimitEnters;
// @Value("${liquidnet.reviewer.limit.enters_opr:10}")
// private int reviewLimitEntersOpr;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "添加入场人")
@PostMapping("add")
......@@ -84,17 +91,33 @@ public class AdamEntersController {
}
break;
}
String currentUid = CurrentUtil.getCurrentUid();
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(CurrentUtil.getCurrentUid());
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(currentUid);
if (!CollectionUtils.isEmpty(vos)) {
Optional<AdamEntersVo> any = vos.stream().filter(r -> (r.getIdCard().equals(parameter.getIdCard())) && r.getType().equals(parameter.getType())).findAny();
if (any.isPresent()) {
return ResponseDto.failure(ErrorMapping.get("10019"));
}
if (reviewLimitEnters > 0 && vos.size() >= reviewLimitEnters) {
return ResponseDto.failure(ErrorMapping.get("10025"));
}
}
String entersId = adamEntersService.add(parameter);
// int userEntersOprNo = adamRdmService.getUserEntersOprNo(currentUid);
// if (reviewLimitEntersOpr > 0 && userEntersOprNo >= reviewLimitEntersOpr) {
// return ResponseDto.failure(ErrorMapping.get("10026"));
// }
String entersId = adamEntersService.add(parameter, currentUid, vos);
// if (userEntersOprNo == -1) {
// adamRdmService.setUserEntersOprNo(currentUid);
// } else {
// adamRdmService.incrUserEntersOprNo(currentUid);
// }
return ResponseDto.success(entersId);
}
......@@ -143,12 +166,23 @@ public class AdamEntersController {
if (StringUtils.isBlank(parameter.getEntersId())) {
return ResponseDto.failure(ErrorMapping.get("10015"));
}
if (null == adamRdmService.getEntersVoByUidEntersId(CurrentUtil.getCurrentUid(), parameter.getEntersId())) {
String currentUid = CurrentUtil.getCurrentUid();
if (null == adamRdmService.getEntersVoByUidEntersId(currentUid, parameter.getEntersId())) {
return ResponseDto.failure(ErrorMapping.get("10105"));
}
adamEntersService.edit(parameter);
//// int userEntersOprNo = adamRdmService.getUserEntersOprNo(currentUid);
//// if (reviewLimitEntersOpr > 0 && userEntersOprNo >= reviewLimitEntersOpr) {
//// return ResponseDto.failure(ErrorMapping.get("10026"));
//// }
////
// adamEntersService.edit(parameter);
////
//// if (userEntersOprNo == -1) {
//// adamRdmService.setUserEntersOprNo(currentUid);
//// } else {
//// adamRdmService.incrUserEntersOprNo(currentUid);
//// }
return ResponseDto.success();
}
......@@ -161,7 +195,7 @@ public class AdamEntersController {
AdamEntersVo enters = adamRdmService.getEntersVoByUidEntersId(currentUid, entersId);
if (null == enters) return ResponseDto.failure(ErrorMapping.get("10105"));
adamEntersService.remove(currentUid, entersId);
// adamEntersService.remove(currentUid, entersId);
return ResponseDto.success();
}
......
......@@ -155,11 +155,11 @@ public class AdamMemberController {
joinusVo.setMemberNo(userMemberVo.getMemberNo());
}
try {
feignAdamPlatformClient.initScore(currentUid);
} catch (Exception e) {
log.error("领取会员卡:积分处理异常[UID:{}]", currentUid, e);
}
// try {
// feignAdamPlatformClient.initScore(currentUid);
// } catch (Exception e) {
// log.error("领取会员卡:积分处理异常[UID:{}]", currentUid, e);
// }
return ResponseDto.success(joinusVo);
}
......
......@@ -915,6 +915,23 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
public boolean setUserEntersOprNo(String uid) {
LocalDateTime now = LocalDateTime.now();
return redisUtil.set(AdamRedisConst.INCR_USER_ENTERS.concat(uid), 1,
ChronoUnit.SECONDS.between(now, LocalDateTime.of(now.getYear(), now.getMonth(), now.getDayOfMonth(), 23, 59, 59)));
}
public long incrUserEntersOprNo(String uid) {
return redisUtil.incr(AdamRedisConst.INCR_USER_ENTERS.concat(uid), 1);
}
public int getUserEntersOprNo(String uid) {
Object o = redisUtil.get(AdamRedisConst.INCR_USER_ENTERS.concat(uid));
return null == o ? -1 : (int) o;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
/* ========================================================== | Other micro-service data inquiry */
......
......@@ -43,8 +43,8 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public String add(AdamEntersParam parameter) {
String currentUid = CurrentUtil.getCurrentUid();
public String add(AdamEntersParam parameter, String currentUid, List<AdamEntersVo> vos) {
// String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
......@@ -58,7 +58,7 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
}
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(currentUid);
// List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(currentUid);
AdamEntersVo vo = AdamEntersVo.getNew();
BeanUtils.copyProperties(parameter, vo);
......@@ -74,15 +74,9 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
String msg = SqlMapping.get("adam_enters.add",
vo.getEntersId(), currentUid, vo.getType(), vo.getName(), vo.getMobile(), vo.getIdCard(), vo.getIsDefault(), vo.getState(), now
);
log.debug("#SQL.GET耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
msg
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_enters.add",
vo.getEntersId(), currentUid, vo.getType(), vo.getName(), vo.getMobile(), vo.getIdCard(), vo.getIsDefault(), vo.getState(), now)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
return vo.getEntersId();
......
package com.liquidnet.service.adam.service.impl;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.sms.constant.SmsEnum;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
......@@ -13,10 +14,7 @@ import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.adam.util.MemberUtil;
import com.liquidnet.service.adam.util.ObjectUtil;
import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.*;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient;
import lombok.extern.slf4j.Slf4j;
......@@ -373,16 +371,17 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
toMqSqls.add(SqlMapping.get("candy_mgt_coupon.add_for_member"));
LinkedList<Object[]> initMemberRightsCouponObjs = this.issueMemberRightsCouponProcessing(now, userInfoVo.getMobile(), handleMemberOrderVo.getMemberId());
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UMEMBER.getKey(),
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UMEMBER.getKey(),
SqlMapping.gets(toMqSqls, operationObjs, initMemberOrderObjs, initMemberOrderExtObjs, updateUserInfoObjs, updateUserMobileLocateObjs, initMemberRightsCouponObjs)
);
} else {
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UMEMBER.getKey(),
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UMEMBER.getKey(),
SqlMapping.gets(toMqSqls, operationObjs, initMemberOrderObjs, initMemberOrderExtObjs, updateUserInfoObjs, updateUserMobileLocateObjs)
);
}
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SMS_NOTICE.getKey(), SmsMessage.builder().setPhone(userInfoVo.getMobile())
.setSignName(SmsEnum.ADSignName.M01.getVal()).setTemplateCode(SmsEnum.ADTemplate.SMS_232908714.name()).toJson()
);
return ResponseDto.success();
} catch (Exception e) {
log.error("购买会员支付回调处理异常[CallbackParam={}]", JsonUtils.toJson(parameter), e);
......@@ -567,10 +566,12 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
LinkedList<Object[]> initMemberRightsCouponObjs = this.issueMemberRightsCouponProcessing(now, userInfoVo.getMobile(), initMemberOrderVo.getMemberId());
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UMEMBER.getKey(),
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UMEMBER.getKey(),
SqlMapping.gets(toMqSqls, upsertUserMemberObjs, updateMemberCodeObjs, initMemberOrderObjs, initMemberOrderExtObjs, updateUserInfoObjs, updateUserMobileLocateObjs, initMemberRightsCouponObjs)
);
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SMS_NOTICE.getKey(), SmsMessage.builder().setPhone(userInfoVo.getMobile())
.setSignName(SmsEnum.ADSignName.M01.getVal()).setTemplateCode(SmsEnum.ADTemplate.SMS_232908714.name()).toJson()
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
} catch (Exception e) {
log.error("会员兑换发生异常[memberCodeVo={}]", JsonUtils.toJson(memberCodeVo), e);
......
......@@ -28,6 +28,8 @@
10022=头像不合规
10023=背景图不合规
10024=该账号已被主动注销
10025=入场人已达上限
10026=入场人今日操作已达上限
10101=姓名或身份证件号无效
......
package com.liquidnet.service.consumer.adam.receiver;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.liquidnet.common.sms.processor.SmsProcessor;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
......@@ -47,7 +48,9 @@ public abstract class AbstractSmsRedisReceiver implements StreamListener<String,
boolean aBoolean = false;
try {
SmsMessage smsMessage = JsonUtils.fromJson(msg, SmsMessage.class);
aBoolean = smsProcessor.send(smsMessage.getPhone(), smsMessage.getSignName(), smsMessage.getTemplateCode(), smsMessage.getTemplateParam().toString());
// aBoolean = smsProcessor.send(smsMessage.getPhone(), smsMessage.getSignName(), smsMessage.getTemplateCode(), smsMessage.getTemplateParam().toString());
ObjectNode templateParam = smsMessage.getTemplateParam();
aBoolean = smsProcessor.send(smsMessage.getPhone(), smsMessage.getSignName(), smsMessage.getTemplateCode(), null == templateParam ? "" : templateParam.toString());
} catch (Exception e) {
log.error("CONSUMER SMS FAIL ==> {}", e.getMessage(), e);
} finally {
......
package com.liquidnet.service.consumer.kylin.receiver;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.liquidnet.common.sms.processor.SmsProcessor;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
......@@ -48,7 +49,9 @@ public abstract class AbstractSmsRedisReceiver implements StreamListener<String,
boolean aBoolean = false;
try {
SmsMessage smsMessage = JsonUtils.fromJson(msg, SmsMessage.class);
aBoolean = smsProcessor.send(smsMessage.getPhone(), smsMessage.getSignName(), smsMessage.getTemplateCode(), smsMessage.getTemplateParam().toString());
// aBoolean = smsProcessor.send(smsMessage.getPhone(), smsMessage.getSignName(), smsMessage.getTemplateCode(), smsMessage.getTemplateParam().toString());
ObjectNode templateParam = smsMessage.getTemplateParam();
aBoolean = smsProcessor.send(smsMessage.getPhone(), smsMessage.getSignName(), smsMessage.getTemplateCode(), null == templateParam ? "" : templateParam.toString());
} catch (Exception e) {
log.error("CONSUMER SMS FAIL ==> {}", e.getMessage(), e);
} finally {
......
......@@ -7,6 +7,7 @@ import com.liquidnet.service.feign.platform.api.FeignPlatformApiClient;
import com.liquidnet.service.feign.platform.kylin.FeignPlatformFreightClient;
import com.liquidnet.service.feign.platform.task.FeignPlatformCandyTaskClient;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -30,11 +31,47 @@ public class PlatformTaskHandler {
@Autowired
FeignPlatformApiClient feignPlatformApiClient;
@XxlJob(value = "sev-platform:describeDevices")
public ReturnT<String> describeDevices() {
try {
String jobParam = XxlJobHelper.getJobParam();//执行参数
log.info("jobParam = " + jobParam);
String[] paramArray = jobParam.split(",");
String result = feignPlatformApiClient.describeDevices(Integer.parseInt(paramArray[0]), Integer.parseInt(paramArray[1])).getData();
log.info("describeDevices:结果:" + result);
ReturnT<String> success = ReturnT.SUCCESS;
success.setMsg(result);
return success;
} catch (Exception e) {
log.error("exception of handler:{}", e.getMessage(), e);
ReturnT<String> fail = ReturnT.FAIL;
fail.setMsg(e.getLocalizedMessage());
return fail;
}
}
@XxlJob(value = "sev-platform:detectPedestrian")
public ReturnT<String> detectPedestrian() {
try {
String result = feignPlatformApiClient.detectPedestrian().getData();
log.info("detectPedestrian:结果:" + result);
ReturnT<String> success = ReturnT.SUCCESS;
success.setMsg(result);
return success;
} catch (Exception e) {
log.error("exception of handler:{}", e.getMessage(), e);
ReturnT<String> fail = ReturnT.FAIL;
fail.setMsg(e.getLocalizedMessage());
return fail;
}
}
@XxlJob(value = "sev-platform:overtimeRefund")
public ReturnT<String> overtimeRefund() {
try {
String result = feignPlatformApiClient.overtimeRefund().getData();
log.info("overtimeRefund:结果:"+result);
log.info("overtimeRefund:结果:" + result);
return new ReturnT<>(ReturnT.SUCCESS_CODE, result);
} catch (Exception e) {
log.error("exception of handler:{}", e.getMessage(), e);
......
drop TABLE if exists `kylin_camera`;
CREATE TABLE `kylin_camera`
(
`mid` int unsigned NOT NULL AUTO_INCREMENT,
`camera_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'camera_id',
`gb_id` varchar(255) NOT NULL DEFAULT '' COMMENT '国标ID',
`img_url` varchar(500) NOT NULL DEFAULT '' COMMENT '截图url',
`field_id` varchar(64) NOT NULL DEFAULT '' COMMENT '场地ID',
`site_type` tinyint NOT NULL DEFAULT 0 COMMENT '地点类型 1卫生间 2。。。',
`status` varchar(64) NOT NULL DEFAULT '' COMMENT '设备状态 取值:on(在线),off(离线),failed(锁定),new(未注册)',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
KEY `idx_camera_id` (`camera_id`),
PRIMARY KEY (`mid`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci COMMENT '人流量排队检测摄像头表';
drop TABLE if exists `kylin_camera_record`;
CREATE TABLE `kylin_camera_record`
(
`mid` int unsigned NOT NULL AUTO_INCREMENT,
`camera_record_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'camera_record_id',
`camera_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'camera_id',
`person_num` int NOT NULL DEFAULT 0 COMMENT '检测到的人数',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
KEY `idx_camera_record_id` (`camera_record_id`),
PRIMARY KEY (`mid`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci COMMENT '人流量检测记录表';
package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.service.impl.KylinCameraServiceImpl;
import com.liquidnet.service.kylin.utils.ObjectUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 人流量排队检测摄像头表 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
@Api(tags = "人体检测")
@RestController
@RequestMapping("/camera")
@Slf4j
public class KylinCameraController {
@Autowired
private KylinCameraServiceImpl cameraService;
@GetMapping("list")
@ApiOperation("场地摄像头列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "fieldId", value = "场地ID", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "siteType", value = "地点类型 1卫生间 2。。。"),
})
public ResponseDto<List<KylinApiCameraDevicesVo>> cameraList(
@RequestParam() String fieldId,
@RequestParam(defaultValue = "0") Integer siteType
) {
try {
List<KylinApiCameraDevicesVo> result = cameraService.cameraList(fieldId, siteType);
return ResponseDto.success(result);
} catch (Exception e) {
log.error("场地摄像头列表Error", e);
return ResponseDto.success(ObjectUtil.getKylinApiCameraDevicesVoArrayList());
}
}
}
package com.liquidnet.service.kylin.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 人流量检测记录表 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
@RestController
@RequestMapping("/cameraRecord")
public class KylinCameraRecordController {
}
package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.service.kylin.entity.KylinCameraRecord;
import com.liquidnet.service.kylin.mapper.KylinCameraRecordMapper;
import com.liquidnet.service.kylin.service.IKylinCameraRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 人流量检测记录表 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
@Service
public class KylinCameraRecordServiceImpl implements IKylinCameraRecordService {
}
package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.service.IKylinCameraService;
import com.liquidnet.service.kylin.utils.DataUtils;
import com.liquidnet.service.kylin.utils.ObjectUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 人流量排队检测摄像头表 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
@Service
public class KylinCameraServiceImpl implements IKylinCameraService {
@Autowired
private DataUtils dataUtils;
@Override
public List<KylinApiCameraDevicesVo> cameraList(String fieldId, Integer siteType) {
List<KylinApiCameraDevicesVo> list = dataUtils.getCameraDevices(fieldId);
ArrayList<KylinApiCameraDevicesVo> devicesVoArrayList = ObjectUtil.getKylinApiCameraDevicesVoArrayList();
for (KylinApiCameraDevicesVo devicesVo : list) {
devicesVo.setPersonNum(dataUtils.getCameraDevicePersonNum(devicesVo.getCameraId()));
if (siteType > 0 && devicesVo.getSiteType() == siteType) {
devicesVoArrayList.add(devicesVo);
}
}
if (siteType > 0) {
return devicesVoArrayList;
} else {
return list;
}
}
}
......@@ -7,6 +7,7 @@ import com.liquidnet.commons.lang.util.IPUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundAddress;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundageAll;
......@@ -851,4 +852,23 @@ public class DataUtils {
redisUtil.uLock(redisKey);
}
public List<KylinApiCameraDevicesVo> getCameraDevices(String fieldId) {
String redisKey = KylinRedisConst.CAMERA_DEVICES_FIELD.concat(fieldId);
Object obj = redisUtil.get(redisKey);
if (null == obj) {
return ObjectUtil.getKylinApiCameraDevicesVoArrayList();
} else {
return (List<KylinApiCameraDevicesVo>) obj;
}
}
public Integer getCameraDevicePersonNum(String cameraId) {
String redisKey = KylinRedisConst.CAMERA_DEVICE_PERSON_NUM.concat(cameraId);
Object obj = redisUtil.get(redisKey);
if (null == obj) {
return 0;
} else {
return (int) obj;
}
}
}
......@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.utils;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
......@@ -30,6 +31,7 @@ public class ObjectUtil {
private static final ArrayList<AdamEntersVo> arrayListObject = new ArrayList<>();
private static final ArrayList<OrderRefundPoundage> orderRefundPoundageArrayList = new ArrayList<>();
private static final ArrayList<KylinOrderCoupons> kylinOrderCouponsArrayList = new ArrayList<>();
private static final ArrayList<KylinApiCameraDevicesVo> kylinApiCameraDevicesVoArrayList = new ArrayList<>();
public static ArrayList<KylinStationPerformanceVo> getKylinStationPerformanceVoArrayList() {
......@@ -91,4 +93,8 @@ public class ObjectUtil {
public static ArrayList<KylinOrderCoupons> getKylinOrderCouponsArrayList() {
return (ArrayList<KylinOrderCoupons>) kylinOrderCouponsArrayList.clone();
}
public static ArrayList<KylinApiCameraDevicesVo> getKylinApiCameraDevicesVoArrayList() {
return (ArrayList<KylinApiCameraDevicesVo>) kylinApiCameraDevicesVoArrayList.clone();
}
}
......@@ -331,7 +331,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
);
} catch (Exception e) {
e.printStackTrace();
log.error("");
log.error("异常信息",e);
channelDto.setResult("exception");
channelDto.setMessage("update order refund with db error: " + e.getMessage());
contentDto.setRequest(JSON.toJSONString(reqData));
......@@ -381,10 +381,15 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
log.error("银联退款,未获取到返回报文或返回http状态码非200");
return null;
}
return null;
channelDto.setResult("refunded");
channelDto.setMessage(paymentType + " refund info: ");
contentDto.setRequest(JSON.toJSONString(reqData));
contentDto.setResponse(JSON.toJSONString(rspData));
channelDto.setContent(contentDto);
return channelDto;
}catch (Exception e){
e.printStackTrace();
log.error("");
log.error("异常信息",e);
return null;
}
}
......@@ -634,7 +639,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
// 没有订单号 从redids里面查
dto.setRefundCode(dataUtils.getOrderCode(msg.getString("cp_refundno")));
dto.setRefundPrice(msg.getBigDecimal("refund_amount").divide(BigDecimal.valueOf(100)).toString());
// SimpleDateFormat sdf = new SimpleDateFormat( " yyyy年MM月dd日 " );
// SimpleDateFormat sdf = new SimpleDateFormat( " yyyy年MM月dd日 " );
// 抖音没有传回时间
dto.setRefundAt(DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now()));
//抖音回调没有写错误原因
......@@ -766,7 +771,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
dto.setRefundAt(DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now()));
// 应答信息
dto.setRefundError(notifyMap.get("respMsg"));
log.info("SEND WEPAY NOTIFTURL = " + JSON.toJSONString(dto));
log.info("SEND union NOTIFTURL = " + JSON.toJSONString(dto));
sendNotifyUrl(dto, null);
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_log.insert"),
......
......@@ -83,6 +83,26 @@
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dypnsapi</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-openapi</artifactId>
<version>0.0.7</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>openplatform20191219</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>oss-client</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-facebody</artifactId>
<version>1.2.27</version>
</dependency>
<dependency>
......
package com.liquidnet.service.platform.controller.stone;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.platform.service.impl.stone.StoneServerImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -26,4 +27,14 @@ public class InnerController {
// return ResponseDto.success(result);
}
@PostMapping("refreshScore")
@ApiOperation("积分过期")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "time", value = "格式[2022-12-01]", example = "2022-12-01"),
})
public void refreshScore(@RequestParam("time") String time) {
data.refreshScore(time);
}
}
package com.liquidnet.service.platform.service.impl.stone;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamUser;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper;
import com.liquidnet.service.stone.constant.StoneConstant;
import com.liquidnet.service.stone.dto.StoneInvalidDto;
import com.liquidnet.service.stone.entity.StoneScoreLogs;
import com.liquidnet.service.stone.entity.StoneScoreUser;
import com.liquidnet.service.stone.entity.TempScore;
import com.liquidnet.service.stone.mapper.StoneScoreItemsMapper;
import com.liquidnet.service.stone.mapper.StoneScoreLogsMapper;
import com.liquidnet.service.stone.mapper.StoneScoreUserMapper;
import com.liquidnet.service.stone.mapper.TempScoreMapper;
import com.liquidnet.service.stone.vo.StoneUserVo;
import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.vo.SweetAppletUsersVo;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.HashMap;
import java.time.format.DateTimeFormatter;
import java.util.List;
@Service
@Slf4j
public class StoneServerImpl {
......@@ -60,6 +39,19 @@ public class StoneServerImpl {
@Autowired
TempScoreMapper tempScoreMapper;
public boolean refreshScore(String time) {
//获取需要跑积分的用户
LocalDate et = LocalDate.parse(time);
LocalDate st = et.minusYears(1);
int year = et.getYear();
String strTime = year + "年积分过期";
List<StoneInvalidDto> logsList = stoneScoreLogsMapper.getInvalidScore(st, et, strTime);
for (StoneInvalidDto logs : logsList) {
stoneIntegralClient.de2111(logs.getUid(), new BigDecimal(logs.getInvalidScore() + "").intValue(), strTime);
}
return true;
}
public boolean initScore(String uid) {
try {
TempScore dataBean = tempScoreMapper.selectOne(Wrappers.lambdaQuery(TempScore.class).eq(TempScore::getUid, uid));
......
......@@ -208,11 +208,17 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
// 缓存
KylinOrderRefundsVo kylinOrderRefundsVo = KylinOrderRefundsVo.getNew();
BeanUtils.copyProperties(kylinOrderRefunds, kylinOrderRefundsVo);
UpdateResult result = mongoTemplate.updateFirst(
/*UpdateResult result = mongoTemplate.updateFirst(
Query.query(Criteria.where("orderRefundsId").is(refundId)),
Update.fromDocument(Document.parse(JsonUtils.toJson(kylinOrderRefundsVo))),
KylinOrderRefundsVo.class, KylinOrderRefundsVo.class.getSimpleName()
);*/
BasicDBObject objectUpdate = new BasicDBObject("$set", mongoConverter.convertToMongoType(kylinOrderRefundsVo));
mongoTemplate.getCollection(KylinOrderRefundsVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderRefundsId").is(refundId)).getQueryObject(),
objectUpdate
);
dataUtils.delOrderRefundVo(refundId);
dataUtils.delOrderRefundVoByOrderId(orderId);
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.dto.vo.KylinTimePerformanceVo;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressRouteVo;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
......@@ -12,6 +13,7 @@ import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import com.liquidnet.service.kylin.entity.KylinBuyNotice;
import com.liquidnet.service.kylin.entity.KylinCamera;
import com.liquidnet.service.kylin.entity.KylinOrderCoupons;
import com.liquidnet.service.kylin.mapper.KylinBuyNoticeMapper;
import com.liquidnet.service.slime.constant.SlimeRedisConst;
......@@ -437,4 +439,49 @@ public class DataUtils {
return sweetAppletUsersVo;
}
}
public void setCameraDevices(String fieldId, ArrayList<KylinApiCameraDevicesVo> kylinApiCameraDevicesVoArrayList) {
String redisKey = KylinRedisConst.CAMERA_DEVICES_FIELD.concat(fieldId);
redisDataSourceUtil.getRedisKylinUtil().set(redisKey, kylinApiCameraDevicesVoArrayList);
}
public void setCameraDevicePersonNum(String cameraId, long count) {
String redisKey = KylinRedisConst.CAMERA_DEVICE_PERSON_NUM.concat(cameraId);
redisDataSourceUtil.getRedisKylinUtil().set(redisKey, count);
}
public List<KylinCamera> getCameraDevicesList() {
String redisKey = KylinRedisConst.CAMERA_DEVICES;
Object obj = redisDataSourceUtil.getRedisKylinUtil().get(redisKey);
if (null == obj) {
return null;
} else {
return (List<KylinCamera>) obj;
}
}
public void setCameraDevicesList(List<KylinCamera> cameraList) {
String redisKey = KylinRedisConst.CAMERA_DEVICES;
redisDataSourceUtil.getRedisKylinUtil().set(redisKey, cameraList);
}
public void delCameraDevicesList() {
String redisKey = KylinRedisConst.CAMERA_DEVICES;
redisDataSourceUtil.getRedisKylinUtil().del(redisKey);
}
public void setCameraDeviceInfo(KylinCamera camera) {
String redisKey = KylinRedisConst.CAMERA_DEVICE_GB_INFO.concat(camera.getGbId());
redisDataSourceUtil.getRedisKylinUtil().set(redisKey, camera);
}
public KylinCamera getCameraDeviceInfo(String streamName) {
String redisKey = KylinRedisConst.CAMERA_DEVICE_GB_INFO.concat(streamName);
Object obj = redisDataSourceUtil.getRedisKylinUtil().get(redisKey);
if (null == obj) {
return null;
} else {
return (KylinCamera) obj;
}
}
}
......@@ -6,6 +6,8 @@ import com.liquidnet.service.candy.entity.CandyCommonCoupon;
import com.liquidnet.service.candy.entity.CandyCouponCode;
import com.liquidnet.service.candy.entity.CandyUserCoupon;
import com.liquidnet.service.goblin.dto.GoblinStoreMarketDto;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import com.liquidnet.service.kylin.entity.KylinOrderCoupons;
import com.mongodb.BasicDBObject;
import org.springframework.stereotype.Component;
......@@ -58,6 +60,7 @@ public class ObjectUtil {
private static final PagedResult<AdamDisposedVo> adamDisposedVoPagedResult = new PagedResult<>();
private static final PagedResult<AdamDisposedUserVo> adamDisposedUserVoPagedResult = new PagedResult<>();
private static final ArrayList<KylinOrderCoupons> kylinOrderCouponsArrayList = new ArrayList<>();
private static final ArrayList<KylinApiCameraDevicesVo> kylinApiCameraDevicesVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinStoreMarketDto> goblinStoreMarketDtoArrayList = new ArrayList<>();
......@@ -128,4 +131,8 @@ public class ObjectUtil {
public static ArrayList<GoblinStoreMarketDto> getGoblinStoreMarketDtoArrayList() {
return (ArrayList<GoblinStoreMarketDto>) goblinStoreMarketDtoArrayList.clone();
}
public static ArrayList<KylinApiCameraDevicesVo> getKylinApiCameraDevicesVoArrayList() {
return (ArrayList<KylinApiCameraDevicesVo>) kylinApiCameraDevicesVoArrayList.clone();
}
}
......@@ -336,6 +336,9 @@ public class PerformanceVoTask {
tickets.setTimeEndExpress(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getTimeEndExpress())));
tickets.setDescribeExpress(ticketItem.getDescribeExpress());
}
// else{
// tickets.setTimeEndExpress(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2030-01-01 12:00:00")));
// }
if (ticketItem.getIsElectronic() == 1) {
tickets.setDescribeElectronic(ticketItem.getDescribeElectronic());
}
......
package com.liquidnet.service.platform.utils;
import com.aliyun.fileform.models.FileField;
import com.aliyun.openplatform20191219.models.AuthorizeFileUploadRequest;
import com.aliyun.openplatform20191219.models.AuthorizeFileUploadResponse;
import com.aliyun.oss.models.PostObjectRequest;
import com.aliyun.tea.TeaConverter;
import com.aliyun.tea.TeaPair;
import com.aliyun.teautil.models.RuntimeOptions;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class ViapiFileUtilAdvance {
public static InputStream buildInputStream(String filePath) throws IOException {
if (StringUtils.startsWithAny(filePath, new CharSequence[]{"http://", "https://"})) {
filePath = URLDecoder.decode(filePath, "UTF-8");
URL url = new URL(filePath);
URLConnection urlConnection = url.openConnection();
return urlConnection.getInputStream();
} else {
File key1 = new File(filePath);
return new FileInputStream(key1);
}
}
public static synchronized ViapiFileUtilAdvance getInstance(String accessKeyId, String accessKeySecret, String regionId) throws Exception {
String mapKey = String.format("%s:%s:%s", regionId, accessKeyId, accessKeySecret);
ViapiFileUtilAdvance fileUtils = _map.get(mapKey);
if (fileUtils == null) {
_map.putIfAbsent(mapKey, new ViapiFileUtilAdvance(accessKeyId, accessKeySecret, regionId));
fileUtils = _map.get(mapKey);
}
return fileUtils;
}
private ViapiFileUtilAdvance(String accessKeyId, String accessKeySecret, String regionId) throws Exception {
Map<String, Object> cm = new HashMap<>();
cm.put("regionId", regionId);
cm.put("autoretry", "true");
cm.put("accessKeyId", accessKeyId);
cm.put("accessKeySecret", accessKeySecret);
cm.put("connectTimeout", 15 * 1000);
cm.put("readTimeout", 30 * 1000);
cm.put("maxIdleConns", 200);
cm.put("type", "access_key");
cm.put("endpoint", "openplatform.aliyuncs.com");
_runtime = RuntimeOptions.build(cm);
com.aliyun.tearpc.models.Config authConfig = com.aliyun.tearpc.models.Config.build(cm);
_authClient = new com.aliyun.openplatform20191219.Client(authConfig);
//ossEndpointType = "internal";//aliyun-vpc
_ossConfig = com.aliyun.oss.models.Config.build(TeaConverter.buildMap(
new TeaPair("accessKeySecret", accessKeySecret),
new TeaPair("type", "access_key"),
new TeaPair("protocol", _authClient._protocol),
new TeaPair("regionId", _authClient._regionId)
));
}
public String upload(InputStream inputStream) throws Exception {
AuthorizeFileUploadRequest authRequest = AuthorizeFileUploadRequest.build(TeaConverter.buildMap(
new TeaPair("product", "imageseg"),
new TeaPair("regionId", _authClient._regionId)
));
AuthorizeFileUploadResponse authResponse = _authClient.authorizeFileUploadWithOptions(authRequest, _runtime);
com.aliyun.oss.models.Config ossConfig = new com.aliyun.oss.models.Config();
com.aliyun.openapiutil.Client.convert(_ossConfig, ossConfig);
ossConfig.accessKeyId = authResponse.accessKeyId;
ossConfig.endpoint = com.aliyun.openapiutil.Client.getEndpoint(authResponse.endpoint, authResponse.useAccelerate, ossEndpointType);
com.aliyun.oss.Client ossClient = new com.aliyun.oss.Client(ossConfig);
FileField fileObj = FileField.build(TeaConverter.buildMap(
new TeaPair("filename", authResponse.objectKey),
new TeaPair("content", inputStream),
new TeaPair("contentType", "")
));
PostObjectRequest.PostObjectRequestHeader ossHeader = PostObjectRequest.PostObjectRequestHeader.build(TeaConverter.buildMap(
new TeaPair("accessKeyId", authResponse.accessKeyId),
new TeaPair("policy", authResponse.encodedPolicy),
new TeaPair("signature", authResponse.signature),
new TeaPair("key", authResponse.objectKey),
new TeaPair("file", fileObj),
new TeaPair("successActionStatus", "201")
));
PostObjectRequest uploadRequest = PostObjectRequest.build(TeaConverter.buildMap(
new TeaPair("bucketName", authResponse.bucket),
new TeaPair("header", ossHeader)
));
com.aliyun.ossutil.models.RuntimeOptions ossRuntime = new com.aliyun.ossutil.models.RuntimeOptions();
com.aliyun.openapiutil.Client.convert(_runtime, ossRuntime);
ossClient.postObject(uploadRequest, ossRuntime);
String imageURL = "http://" + authResponse.bucket + "." + authResponse.endpoint + "/" + authResponse.objectKey + "";
return imageURL;
}
RuntimeOptions _runtime;
com.aliyun.openplatform20191219.Client _authClient;
com.aliyun.oss.models.Config _ossConfig;
String ossEndpointType = null;
static Map<String, ViapiFileUtilAdvance> _map = new ConcurrentHashMap<>();
}
\ No newline at end of file
#---- 订单关闭
goblin_order.close.order=UPDATE goblin_store_order SET status = ? ,updated_at = ? , cancel_time = ? , cancel_reason=? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
goblin_order.close.sku=UPDATE goblin_order_sku SET status = ? ,updated_at = ? WHERE order_sku_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
# ------------------------????----------------------------
kylin_camera_record.insert=INSERT INTO kylin_camera_record (camera_record_id, camera_id, person_num) VALUES (?,?,?)
\ No newline at end of file
......@@ -77,7 +77,7 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
@Override
public String step1(PerformanceStep1Param step1Param) {
String result;
String merchantId = CurrentUtil.getCurrentUid();
String merchantId = CurrentUtil.getCurrentSlimeUid();
step1Param.setMerchantId(merchantId);
// 无 performancesId 则 创建
if (null == step1Param.getPerformancesId()) {
......@@ -180,7 +180,7 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
@Override
public ResponseDto<PerformancePartnerVo> getStep1(String performancesId) {
String merchantId = CurrentUtil.getCurrentUid();
String merchantId = CurrentUtil.getCurrentSlimeUid();
PerformancePartnerVo data = mongoSlimeUtils.getPerformancePartnerVo(performancesId);
if (data == null) {
return ResponseDto.failure(ErrorMapping.get(20104));
......@@ -204,7 +204,7 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
@Override
public ResponseDto<String> step2(PerformanceStep2Param step2Param) {
ResponseDto<String> result = null;
step2Param.setMerchantId(CurrentUtil.getCurrentUid());
step2Param.setMerchantId(CurrentUtil.getCurrentSlimeUid());
// 无 performancesId 则 创建
if (!step2Param.getPerformancesId().isEmpty()) { // 获取 create 数据 status = 0 或 无数据 创建
KylinPerformanceVo vo = redisSlimeUtils.getPerformanceVo(step2Param.getPerformancesId());
......@@ -497,7 +497,7 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
@Override
public ResponseDto<PerformanceStep2Param> getStep2(String performancesId) {
String merchantId = CurrentUtil.getCurrentUid();
String merchantId = CurrentUtil.getCurrentSlimeUid();
PerformancePartnerVo data = mongoSlimeUtils.getPerformancePartnerVo(performancesId);
if (data == null) {
return ResponseDto.failure(ErrorMapping.get(20104));
......@@ -547,7 +547,7 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
@Override
public ResponseDto<String> onLinePerformance(String performancesId) {
try {
String merchantId = CurrentUtil.getCurrentUid();
String merchantId = CurrentUtil.getCurrentSlimeUid();
// LinkedList<String> sqls = CollectionUtil.linkedListString();
// sqls.add(SqlMapping.get("kylin_performances_status.onLine"));
// sqls.add(SqlMapping.get("kylin_ticket_status.onLine"));
......@@ -606,7 +606,7 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
@Override
public ResponseDto<String> outLinePerformance(String performancesId) {
try {
String merchantId = CurrentUtil.getCurrentUid();
String merchantId = CurrentUtil.getCurrentSlimeUid();
KylinPerformanceVo vo = redisSlimeUtils.getPerformanceVo(performancesId);
if (!mongoSlimeUtils.judgeIsPermission(performancesId, merchantId, new String[]{
SlimeAuthorizationConst.PerformancePermission.LINE.getId(),
......@@ -682,7 +682,7 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
@Override
public String copyPerformance(String performancesId) {
try {
String merchantId = CurrentUtil.getCurrentUid();
String merchantId = CurrentUtil.getCurrentSlimeUid();
PerformancePartnerVo performancePartnerVo = mongoSlimeUtils.getPerformancePartnerVo(performancesId);
//复制演出
performancePartnerVo.setPerformancesId(IDGenerator.nextSnowId());
......@@ -722,7 +722,7 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
@Override
public ResponseDto<PageInfo<PerformancePartnerListDao>> getList(PerformancePartnerListParam performancePartnerListParam) {
performancePartnerListParam.setMerchantId(CurrentUtil.getCurrentUid());
performancePartnerListParam.setMerchantId(CurrentUtil.getCurrentSlimeUid());
int status = performancePartnerListParam.getStatus();
int page = performancePartnerListParam.getPage() - 1;
int size = performancePartnerListParam.getSize();
......@@ -756,6 +756,9 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
List<PerformancePartnerListDao> voList = (List<PerformancePartnerListDao>) map.get("data");
for (int i = 0; i < voList.size(); i++) {
PerformancePartnerListDao vo = voList.get(i);
if (vo.getTimeSell() == null || vo.getTimeStop() == null) {
continue;
}
vo.setSaleGeneral(vo.getNumber() - vo.getRefundNumber());
vo.setTotalSalePrice(vo.getPriceActual().subtract(vo.getPriceRefund()));
vo.setSurplusGeneral(vo.getTotalGeneral() - vo.getSaleGeneral());
......@@ -784,7 +787,7 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
@Override
public ResponseDto<PageInfo<PerformancePartnerListDao>> getListFields(PerformancePartnerListParam performancePartnerListParam) {
performancePartnerListParam.setMerchantId(CurrentUtil.getCurrentUid());
performancePartnerListParam.setMerchantId(CurrentUtil.getCurrentSlimeUid());
PageInfo<PerformancePartnerListDao> pageInfoTmp;
try {
PageHelper.startPage(performancePartnerListParam.getPage(), performancePartnerListParam.getSize());
......@@ -816,7 +819,7 @@ public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPa
@Override
public ResponseDto<String> withdraw(String performancesId) {
try {
String merchantId = CurrentUtil.getCurrentUid();
String merchantId = CurrentUtil.getCurrentSlimeUid();
LocalDateTime now = LocalDateTime.now();
KylinPerformanceVo vo = redisSlimeUtils.getPerformanceVo(performancesId);
if (!mongoSlimeUtils.judgeIsPermission(performancesId, merchantId, new String[]{
......
......@@ -210,7 +210,7 @@ public class KylinTicketTimesPartnerServiceImpl implements IKylinTicketTimesPart
kylinTicketTimesPartnerVo.setStatus(null);
mongoSlimeUtils.updateTicketTimesPartnerVo(kylinTicketTimesPartnerVo);
KylinTicketPartnerVo ticketPartnerVo = KylinTicketPartnerVo.getNew();
ticketPartnerVo.setTicketsId(createTicketTimesParam.getTicketTimesId());
ticketPartnerVo.setTimesId(createTicketTimesParam.getTicketTimesId());
ticketPartnerVo.setUseEnd(kylinTicketTimesPartnerVo.getUseEnd());
ticketPartnerVo.setUseStart(kylinTicketTimesPartnerVo.getUseStart());
mongoSlimeUtils.updateTicketPartnerVo(ticketPartnerVo);
......
......@@ -364,7 +364,7 @@ public class KylinTicketsPartnerServiceImpl implements IKylinTicketsPartnerServi
public ResponseDto<String> onLine(String ticketsId, String performancesId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
String merchantId = CurrentUtil.getCurrentUid();
String merchantId = CurrentUtil.getCurrentSlimeUid();
KylinPerformanceVo vo = redisSlimeUtils.getPerformanceVo(performancesId);
if (!mongoSlimeUtils.judgeIsPermission(performancesId, merchantId, new String[]{
SlimeAuthorizationConst.PerformancePermission.EDIT.getId(),
......@@ -415,7 +415,7 @@ public class KylinTicketsPartnerServiceImpl implements IKylinTicketsPartnerServi
public ResponseDto<String> outLine(String ticketsId, String performancesId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
String merchantId = CurrentUtil.getCurrentUid();
String merchantId = CurrentUtil.getCurrentSlimeUid();
KylinPerformanceVo vo = redisSlimeUtils.getPerformanceVo(performancesId);
if (!mongoSlimeUtils.judgeIsPermission(performancesId, merchantId, new String[]{
SlimeAuthorizationConst.PerformancePermission.EDIT.getId(),
......
-- 数字藏品预约活动表
drop TABLE if exists `sweet_collection_reservation`;
CREATE TABLE `sweet_collection_reservation`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`reservation_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'reservation_id',
`nickname` varchar(50) NOT NULL DEFAULT '' COMMENT '称呼',
`mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '手机号',
`mailbox` varchar(255) NOT NULL DEFAULT '' COMMENT '邮箱',
`enterprise_name` varchar(255) NOT NULL DEFAULT '' COMMENT '企业名称',
`title` varchar(255) NOT NULL DEFAULT '' COMMENT '职务',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `sweet_reservation_id` (`reservation_id`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '数字藏品预约活动表';
\ No newline at end of file
......@@ -26,7 +26,7 @@ public class SweetMybatisPlusCodeGenerator {
// 全局配置BankMybatisPlusCodeGenerator
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir(moduleRootPath + "/src/main/java");
gc.setAuthor("hujiachen");
gc.setAuthor("jiangxiulong");
gc.setOpen(false);
// gc.setSwagger2(true); 实体属性 Swagger2 注解
mpg.setGlobalConfig(gc);
......@@ -93,9 +93,9 @@ public class SweetMybatisPlusCodeGenerator {
dsc.setUsername("testmall");
dsc.setPassword("zhengzai!mYT");
String resourcePath = "/Users/hujiachen/Downloads/tmp";
String resourcePath = "/Users/jiangxiulong/Downloads/tmp";
String directory = "com.liquidnet.service.sweet";
String[] dbTableArray = new String[]{"sweet_active_type","sweet_qr_code"};
String[] dbTableArray = new String[]{"sweet_collection_reservation"};
doGenerator(resourcePath, dsc, directory, dbTableArray);
......
package com.liquidnet.service.sweet.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.service.ISweetCollectionReservationService;
import com.liquidnet.service.sweet.vo.SweetCollectionReservationVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 数字藏品预约活动表 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2022-01-18
*/
@Api(tags = "活动-数字藏品预约活动")
@RestController
@RequestMapping("/collectionReservation")
public class SweetCollectionReservationController {
@Autowired
private ISweetCollectionReservationService reservationService;
@GetMapping("info")
@ApiOperation("活动状态")
public ResponseDto<SweetCollectionReservationVo> info() {
return reservationService.info();
}
@PostMapping("time")
@ApiOperation("设置活动结束时间")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "endTime", value = "结束时间")
})
public ResponseDto<Boolean> time(
@RequestParam() String endTime
) {
return reservationService.time(endTime);
}
@PostMapping("create")
@ApiOperation("添加预约记录")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "nickname", value = "昵称", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "mobile", value = "手机号", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "mailbox", value = "邮箱", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "enterpriseName", value = "公司名称", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "title", value = "职务", required = true)
})
public ResponseDto<Boolean> create(
@RequestParam() String nickname,
@RequestParam() String mobile,
@RequestParam() String mailbox,
@RequestParam() String enterpriseName,
@RequestParam() String title
) {
return reservationService.create(nickname, mobile, mailbox, enterpriseName, title);
}
}
package com.liquidnet.service.sweet.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.sweet.entity.SweetCollectionReservation;
import com.liquidnet.service.sweet.mapper.SweetCollectionReservationMapper;
import com.liquidnet.service.sweet.service.ISweetCollectionReservationService;
import com.liquidnet.service.sweet.utils.QueueUtils;
import com.liquidnet.service.sweet.utils.RedisActivityUtils;
import com.liquidnet.service.sweet.vo.SweetCollectionReservationVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.LinkedList;
/**
* <p>
* 数字藏品预约活动表 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2022-01-18
*/
@Slf4j
@Service
public class SweetCollectionReservationServiceImpl extends ServiceImpl<SweetCollectionReservationMapper, SweetCollectionReservation> implements ISweetCollectionReservationService {
@Autowired
private RedisActivityUtils activityUtils;
@Autowired
QueueUtils queueUtils;
@Override
public ResponseDto<SweetCollectionReservationVo> info() {
SweetCollectionReservationVo reservationVo = SweetCollectionReservationVo.getNew();
try {
LocalDateTime endTime = activityUtils.getEndTime("reservation");
LocalDateTime nowTime = LocalDateTime.now();
reservationVo.setStatus(1);
if (null == endTime || nowTime.isAfter(endTime)) {
reservationVo.setStatus(2);
}
} catch (Exception e) {
reservationVo.setStatus(1);
}
return ResponseDto.success(reservationVo);
}
@Override
public ResponseDto<Boolean> time(String endTime) {
activityUtils.setEndTime("reservation", endTime);
return ResponseDto.success();
}
@Override
public ResponseDto<Boolean> create(String nickname, String mobile, String mailbox, String enterpriseName, String title) {
try {
SweetCollectionReservation reservation = SweetCollectionReservation.getNew();
String id = IDGenerator.nextSnowId();
LocalDateTime nowTime = LocalDateTime.now();
reservation.setReservationId(id);
reservation.setNickname(nickname);
reservation.setMobile(mobile);
reservation.setMailbox(mailbox);
reservation.setEnterpriseName(enterpriseName);
reservation.setTitle(title);
reservation.setCreatedAt(nowTime);
reservation.setUpdatedAt(nowTime);
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_collection_reservation.insert"));
sqlsDataA.add(new Object[]{
id, nickname, mobile, mailbox, enterpriseName, title, nowTime, nowTime
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_ANSWER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
return ResponseDto.success();
} catch (Exception e) {
log.error("nickname="+nickname+"&mobile="+mobile+"&mailbox="+mailbox+"&enterpriseName="+enterpriseName+"&title="+title);
return ResponseDto.success();
}
}
}
package com.liquidnet.service.sweet.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.sweet.constant.SweetConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Component
@Slf4j
public class RedisActivityUtils {
@Autowired
private RedisUtil redisUtil;
/*public void setSweetCollectionReserved(SweetCollectionReservationVo reservationVo) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_COLLECTION_RESERVATION_USER.concat(reservationVo.getUnionId());
redisUtil.set(redisKey, reservationVo);
}
public SweetCollectionReservationVo getSweetCollectionReserved(String unionId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_COLLECTION_RESERVATION_USER.concat(unionId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return null;
} else {
return (SweetCollectionReservationVo) obj;
}
}*/
public void setEndTime(String type, String endTime) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_ACTIVITY_END_TIME.concat(type);
redisUtil.set(redisKey, endTime);
}
public LocalDateTime getEndTime(String type) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_ACTIVITY_END_TIME.concat(type);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return null;
} else {
String time = (String) obj;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return LocalDateTime.parse(time, formatter);
}
}
}
......@@ -56,6 +56,8 @@ sweet_strawberry_poster_Musician=INSERT INTO sweet_strawberry_poster_lineup(line
sweet_wechat_maodeng.insert=INSERT INTO sweet_wechat_maodeng(mao_id,user_id,text_msg,pic_url,img_url,created_at) VALUES (?,?,?,?,?,?)
sweet_wechat_maodeng.text.update=UPDATE sweet_wechat_maodeng SET text_msg=? WHERE user_id=? AND mao_id=?
sweet_wechat_maodeng.img.update=UPDATE sweet_wechat_maodeng SET img_url=? WHERE user_id=? AND mao_id=?
# --------------------------数字藏品预约活动--------------------------
sweet_collection_reservation.insert=INSERT INTO sweet_collection_reservation (reservation_id,nickname,mobile,mailbox,enterprise_name,title,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment