forked from rongchao/epmet-cloud-rizhao
Browse Source
# Conflicts: # epmet-module/epmet-point/epmet-point-server/pom.xml # epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java # epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java # epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java # epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java # epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.javadev
399 changed files with 12947 additions and 2373 deletions
@ -0,0 +1,47 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description 单客户-选择组织,进入首页入参Dto |
|||
* @Author sun |
|||
*/ |
|||
@Data |
|||
public class ThirdWxmpEnteOrgFormDTO implements Serializable { |
|||
public interface AddUserInternalGroup {} |
|||
public interface AddUserShowGroup extends CustomerClientShowGroup {} |
|||
/** |
|||
* wxCode |
|||
*/ |
|||
@NotBlank(message = "wxCode不能为空",groups = {AddUserInternalGroup.class}) |
|||
private String wxCode; |
|||
|
|||
/** |
|||
* 手机号 |
|||
*/ |
|||
@NotBlank(message = "手机号不能为空",groups = {AddUserShowGroup.class}) |
|||
private String mobile; |
|||
|
|||
/** |
|||
* 选择的组织所属的id |
|||
*/ |
|||
@NotBlank(message = "客户id不能为空",groups = {AddUserInternalGroup.class}) |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 选择的要进入的组织(根组织id) |
|||
*/ |
|||
@NotBlank(message = "组织id不能为空",groups = {AddUserInternalGroup.class}) |
|||
private String rootAgencyId; |
|||
|
|||
/** |
|||
* 客户appId(exJson文件中获取) |
|||
*/ |
|||
@NotBlank(message = "appId不能为空",groups = {AddUserInternalGroup.class}) |
|||
private String appId; |
|||
} |
|||
|
@ -0,0 +1,117 @@ |
|||
/** |
|||
* Copyright (c) 2018 人人开源 All rights reserved. |
|||
* <p> |
|||
* https://www.renren.io
|
|||
* <p> |
|||
* 版权所有,侵权必究! |
|||
*/ |
|||
|
|||
package com.epmet.redis; |
|||
|
|||
import cn.binarywang.wx.miniapp.api.WxMaService; |
|||
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; |
|||
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; |
|||
import com.alibaba.fastjson.JSON; |
|||
import com.epmet.commons.tools.redis.RedisKeys; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.CustomerAppDTO; |
|||
import com.epmet.dto.CustomerAppRedisDTO; |
|||
import com.epmet.feign.OperCrmOpenFeignClient; |
|||
import com.google.common.collect.Maps; |
|||
import org.apache.logging.log4j.LogManager; |
|||
import org.apache.logging.log4j.Logger; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.boot.ApplicationArguments; |
|||
import org.springframework.boot.ApplicationRunner; |
|||
import org.springframework.data.redis.core.RedisTemplate; |
|||
import org.springframework.data.redis.core.SetOperations; |
|||
import org.springframework.stereotype.Component; |
|||
import org.springframework.util.CollectionUtils; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Set; |
|||
|
|||
/** |
|||
* 客户app Redis |
|||
* |
|||
* @author Mark sunlightcs@gmail.com |
|||
* @since 1.0.0 |
|||
*/ |
|||
@Component |
|||
public class CustomerAppWxServiceUtil implements ApplicationRunner { |
|||
private static Logger logger = LogManager.getLogger(CustomerAppWxServiceUtil.class); |
|||
|
|||
/** |
|||
* 过期时长为30分钟,单位:秒 |
|||
*/ |
|||
private final static long MINUTE_THIRTY_EXPIRE = 60 * 60 * 24 * 7L; |
|||
private final static String JSON_STR = "JSON"; |
|||
|
|||
@Autowired |
|||
private RedisTemplate redisTemplate; |
|||
@Autowired |
|||
private OperCrmOpenFeignClient operCrmOpenFeignClient; |
|||
|
|||
private static Map<String, WxMaService> maServices = Maps.newConcurrentMap(); |
|||
|
|||
public static WxMaService getWxMaService(String appId) { |
|||
WxMaService wxMaService = maServices.get(appId); |
|||
if (wxMaService == null) { |
|||
logger.error("getMaService appId:{} is not config from customer_app", appId); |
|||
} |
|||
return wxMaService; |
|||
} |
|||
|
|||
@Override |
|||
public void run(ApplicationArguments args) { |
|||
Map<String, WxMaService> maServicesNew = Maps.newConcurrentMap(); |
|||
SetOperations appSet = null; |
|||
List<CustomerAppDTO> result = null; |
|||
String appKey = RedisKeys.getCustomerAppKey(); |
|||
try { |
|||
appSet = redisTemplate.opsForSet(); |
|||
Set<CustomerAppRedisDTO> members = appSet.members(appKey); |
|||
if (!CollectionUtils.isEmpty(members)) { |
|||
members.forEach(app -> { |
|||
WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); |
|||
config.setAppid(app.getAppId()); |
|||
config.setSecret(app.getSecret()); |
|||
config.setMsgDataFormat(JSON_STR); |
|||
WxMaService service = new WxMaServiceImpl(); |
|||
service.setWxMaConfig(config); |
|||
maServicesNew.put(app.getAppId(), service); |
|||
}); |
|||
} |
|||
} catch (Exception ex) { |
|||
logger.error("init wxMaService from redis error", ex); |
|||
} |
|||
try { |
|||
Result<List<CustomerAppDTO>> configAllAppResult = operCrmOpenFeignClient.getConfigAllApp(); |
|||
logger.info("wxMaService operCrmOpenFeignClient.getConfigAllApp result:{}", JSON.toJSONString(configAllAppResult)); |
|||
if (configAllAppResult == null || !configAllAppResult.success()) { |
|||
logger.info("wxMaService operCrmOpenFeignClient.getConfigAllApp fail"); |
|||
return; |
|||
} |
|||
result = configAllAppResult.getData(); |
|||
result.forEach(app -> { |
|||
WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); |
|||
config.setAppid(app.getAppId()); |
|||
config.setSecret(app.getSecret()); |
|||
config.setMsgDataFormat(JSON_STR); |
|||
|
|||
WxMaService service = new WxMaServiceImpl(); |
|||
service.setWxMaConfig(config); |
|||
maServicesNew.put(app.getAppId(), service); |
|||
}); |
|||
} catch (Exception e) { |
|||
logger.error("init wxMaService from db exception", e); |
|||
} |
|||
if (maServicesNew.size() > 0) { |
|||
maServices = maServicesNew; |
|||
if (appSet != null && result != null) { |
|||
appSet.add(appKey, result); |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.epmet.commons.tools.constant; |
|||
|
|||
/** |
|||
* 消息常亮 |
|||
* |
|||
* @author yinzuomei@elink-cn.com |
|||
* @date 2020/7/27 9:58 |
|||
*/ |
|||
public interface MqConstant { |
|||
|
|||
/** |
|||
* 加分 plus |
|||
*/ |
|||
String PLUS="plus"; |
|||
|
|||
/** |
|||
* 减分标识 minus |
|||
*/ |
|||
String MINUS="minus"; |
|||
} |
@ -0,0 +1,41 @@ |
|||
package com.epmet.commons.tools.dto.form.mq; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* desc:消息网关事件类型dto |
|||
* |
|||
* @author lyn |
|||
* @date 2020/7/24 18:30 |
|||
*/ |
|||
@Data |
|||
public class EventClassDto implements Serializable { |
|||
private static final long serialVersionUID = 6923860669547819790L; |
|||
/** |
|||
* appId |
|||
*/ |
|||
private String appId; |
|||
/** |
|||
* 事件类型Id |
|||
*/ |
|||
private Integer id; |
|||
/** |
|||
* 事件标识 |
|||
*/ |
|||
private String eventClass; |
|||
/** |
|||
* 事件名称 |
|||
*/ |
|||
private String eventClassName; |
|||
/** |
|||
* 0''未删''1''已删 |
|||
*/ |
|||
private Integer delFlag; |
|||
/** |
|||
* 事件计数 |
|||
*/ |
|||
private Integer eventCount; |
|||
|
|||
} |
@ -0,0 +1,18 @@ |
|||
package com.epmet.commons.tools.dto.form.mq.eventmsg; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* 结束活动,发放活动积分消息体 |
|||
* |
|||
* @author yinzuomei@elink-cn.com |
|||
* @date 2020/7/27 9:26 |
|||
*/ |
|||
@Data |
|||
public class ActPointEventMsg extends BasePointEventMsg{ |
|||
/** |
|||
* 参与活动的备注 |
|||
*/ |
|||
private String remark; |
|||
|
|||
} |
@ -0,0 +1,45 @@ |
|||
package com.epmet.commons.tools.dto.form.mq.eventmsg; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* desc:积分相关事件消息体 |
|||
* |
|||
* @author lyn |
|||
* @date 2020/7/23 16:34 |
|||
*/ |
|||
@Data |
|||
public class BasePointEventMsg implements Serializable { |
|||
private static final long serialVersionUID = 4037225404113743943L; |
|||
|
|||
/** |
|||
* 操作人机关id |
|||
*/ |
|||
private String opAgencyId; |
|||
|
|||
/** |
|||
* 客户Id |
|||
*/ |
|||
private String customerId; |
|||
/** |
|||
* 被操作用户id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* 加减分标识 plus/minus |
|||
*/ |
|||
private String actionFlag; |
|||
|
|||
/** |
|||
* 积分值 |
|||
*/ |
|||
private Integer point; |
|||
|
|||
/** |
|||
* 是否是通用事件,通用事件不走规则 |
|||
*/ |
|||
private Boolean isCommon; |
|||
} |
@ -0,0 +1,42 @@ |
|||
package com.epmet.commons.tools.enums; |
|||
|
|||
/** |
|||
* 通用操作类型 枚举类 |
|||
* dev|test|prod |
|||
* |
|||
* @author jianjun liu |
|||
* @date 2020-07-03 11:14 |
|||
**/ |
|||
public enum CommonOperateTypeEnum { |
|||
ADD("add", "添加"), |
|||
EDIT("edit", "编辑"), |
|||
DEL("del", "删除"), |
|||
; |
|||
|
|||
private String code; |
|||
private String desc; |
|||
|
|||
|
|||
CommonOperateTypeEnum(String code, String name) { |
|||
this.code = code; |
|||
this.desc = name; |
|||
} |
|||
|
|||
public static CommonOperateTypeEnum getEnum(String code) { |
|||
CommonOperateTypeEnum[] values = CommonOperateTypeEnum.values(); |
|||
for (CommonOperateTypeEnum value : values) { |
|||
if (code != null && value.getCode().equals(code)) { |
|||
return value; |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
public String getCode() { |
|||
return code; |
|||
} |
|||
|
|||
public String getDesc() { |
|||
return desc; |
|||
} |
|||
} |
@ -0,0 +1,47 @@ |
|||
package com.epmet.commons.tools.enums; |
|||
|
|||
/** |
|||
* 系统支持的事件枚举类 |
|||
* |
|||
* @author jianjun liu |
|||
* @date 2020-07-03 11:14 |
|||
**/ |
|||
public enum EventEnum { |
|||
ACTIVE_SEND_POINT("active_send_point", "epmet_heart", "活动发放积分"), |
|||
REGISTER_VOLUNTEER("register_volunteer", "epmet_heart", "认证志愿者"), |
|||
ACTIVE_INSERT_LIVE("active_insert_live", "epmet_heart", "添加活动实况"), |
|||
; |
|||
|
|||
private String eventClass; |
|||
private String eventTag; |
|||
private String eventDesc; |
|||
|
|||
|
|||
EventEnum(String eventTag, String eventClass, String eventDesc) { |
|||
this.eventTag = eventTag; |
|||
this.eventClass = eventClass; |
|||
this.eventDesc = eventDesc; |
|||
} |
|||
|
|||
public static EventEnum getEnum(String eventCode) { |
|||
EventEnum[] values = EventEnum.values(); |
|||
for (EventEnum value : values) { |
|||
if (eventCode != null && value.getEventTag().equals(eventCode)) { |
|||
return value; |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
public String getEventTag() { |
|||
return eventTag; |
|||
} |
|||
|
|||
public String getEventClass() { |
|||
return eventClass; |
|||
} |
|||
|
|||
public String getEventDesc() { |
|||
return eventDesc; |
|||
} |
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.epmet.commons.tools.utils; |
|||
|
|||
import java.io.File; |
|||
import java.io.IOException; |
|||
import java.io.InputStream; |
|||
import java.nio.file.Files; |
|||
|
|||
public class FileUtils { |
|||
|
|||
/** |
|||
* 创建临时文件. |
|||
* |
|||
* @param inputStream 输入文件流 |
|||
* @param name 文件名 |
|||
* @param ext 扩展名 |
|||
* @param tmpDirFile 临时文件夹目录 |
|||
*/ |
|||
public static File createTmpFile(InputStream inputStream, String name, String ext, File tmpDirFile) throws IOException { |
|||
File resultFile = File.createTempFile(name, '.' + ext, tmpDirFile); |
|||
|
|||
resultFile.deleteOnExit(); |
|||
org.apache.commons.io.FileUtils.copyToFile(inputStream, resultFile); |
|||
return resultFile; |
|||
} |
|||
|
|||
/** |
|||
* 创建临时文件. |
|||
* |
|||
* @param inputStream 输入文件流 |
|||
* @param name 文件名 |
|||
* @param ext 扩展名 |
|||
*/ |
|||
public static File createTmpFile(InputStream inputStream, String name, String ext) throws IOException { |
|||
return createTmpFile(inputStream, name, ext, Files.createTempDirectory("weixin-java-tools-temp").toFile()); |
|||
} |
|||
|
|||
} |
@ -1,81 +0,0 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.form.resi; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
import java.math.BigDecimal; |
|||
import java.util.ArrayList; |
|||
|
|||
/** |
|||
* 用户活动打卡参数 |
|||
* |
|||
* @author zhangyong |
|||
* @since v1.0.0 2020-07-14 |
|||
*/ |
|||
@Data |
|||
public class ActUserClockLogFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 用户ID |
|||
*/ |
|||
private String userId; |
|||
/** |
|||
* 活动ID |
|||
*/ |
|||
@NotBlank(message = "活动ID不能为空") |
|||
private String actId; |
|||
/** |
|||
* 打卡类型(0-打卡,1-更新打卡) |
|||
*/ |
|||
@NotBlank(message = "打卡类型不能为空") |
|||
private String clockType; |
|||
/** |
|||
* 打卡位置经度 |
|||
*/ |
|||
@NotBlank(message = "打卡位置经度不能为空") |
|||
private BigDecimal clockLongitude; |
|||
/** |
|||
* 打卡位置纬度 |
|||
*/ |
|||
@NotBlank(message = "打卡位置纬度不能为空") |
|||
private BigDecimal clockLatitude; |
|||
/** |
|||
* 打卡地址 |
|||
*/ |
|||
@NotBlank(message = "打卡地址不能为空") |
|||
private String clockAddress; |
|||
/** |
|||
* 打卡描述 |
|||
*/ |
|||
@NotBlank(message = "打卡描述不能为空") |
|||
private String clockDesc; |
|||
/** |
|||
* 打卡是否有效(0-否,1-是) |
|||
*/ |
|||
@NotBlank(message = "打卡是否有效不能为空") |
|||
private String effectiveFlag; |
|||
/** |
|||
* 打卡图片 |
|||
*/ |
|||
private ArrayList<String> images; |
|||
} |
@ -0,0 +1,46 @@ |
|||
package com.epmet.dto.form.resi; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.Min; |
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 活动内容(活动详情-已结束-回顾稿) 入参 |
|||
* |
|||
* @Auther: zhangyong |
|||
* @Date: 2020-07-21 18:12 |
|||
*/ |
|||
@Data |
|||
public class ResiActContentFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
//>>>>>>>>>>>>>>>>>校验分组开始>>>>>>>>>>>>>>>>>>>>>
|
|||
/** |
|||
* 添加用户操作的内部异常分组 |
|||
* 出现错误会提示给前端7000错误码,返回信息为:服务器开小差... |
|||
*/ |
|||
public interface AddUserInternalGroup {} |
|||
|
|||
// <<<<<<<<<<<<<<<<<<<校验分组结束<<<<<<<<<<<<<<<<<<<<<<<<
|
|||
|
|||
/** |
|||
* 活动Id |
|||
*/ |
|||
@NotBlank(message = "活动Id不能为空", groups = { AddUserInternalGroup.class }) |
|||
private String actId; |
|||
|
|||
/** |
|||
* 页码,从1开始 |
|||
*/ |
|||
@Min(value = 1, message = "页码必须大于0", groups = { AddUserInternalGroup.class }) |
|||
private Integer pageNo; |
|||
|
|||
/** |
|||
* 页容量,默认20页 |
|||
*/ |
|||
@Min(value = 1, message = "每页条数必须大于必须大于0", groups = { ResiActBaseFormDTO.AddUserInternalGroup.class }) |
|||
private Integer pageSize; |
|||
} |
@ -0,0 +1,38 @@ |
|||
package com.epmet.dto.form.resi; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 活动详情 入参 |
|||
* |
|||
* @Auther: zhangyong |
|||
* @Date: 2020-07-21 18:12 |
|||
*/ |
|||
@Data |
|||
public class ResiActDetailFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
//>>>>>>>>>>>>>>>>>校验分组开始>>>>>>>>>>>>>>>>>>>>>
|
|||
/** |
|||
* 添加用户操作的内部异常分组 |
|||
* 出现错误会提示给前端7000错误码,返回信息为:服务器开小差... |
|||
*/ |
|||
public interface AddUserInternalGroup {} |
|||
|
|||
// <<<<<<<<<<<<<<<<<<<校验分组结束<<<<<<<<<<<<<<<<<<<<<<<<
|
|||
|
|||
/** |
|||
* 活动Id |
|||
*/ |
|||
@NotBlank(message = "活动Id不能为空", groups = { AddUserInternalGroup.class }) |
|||
private String actId; |
|||
|
|||
/** |
|||
* 用户id |
|||
*/ |
|||
private String userId; |
|||
} |
@ -0,0 +1,104 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.form.resi; |
|||
|
|||
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 活动-添加实况 入参 |
|||
* |
|||
* @author zhangyong |
|||
* @since v1.0.0 2020-07-23 |
|||
*/ |
|||
@Data |
|||
public class ResiActInsertLiveFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
//>>>>>>>>>>>>>>>>>校验分组开始>>>>>>>>>>>>>>>>>>>>>
|
|||
/** |
|||
* 添加用户操作的内部异常分组 |
|||
* 出现错误会提示给前端7000错误码,返回信息为:服务器开小差... |
|||
*/ |
|||
public interface AddUserInternalGroup {} |
|||
|
|||
/** |
|||
* 添加用户操作的用户可见异常分组 |
|||
* 该分组用于校验需要返回给前端错误信息提示的列,需要继承CustomerClientShowGroup |
|||
* 返回错误码为8999,提示信息为DTO中具体的列的校验注解message的内容 |
|||
*/ |
|||
public interface AddUserShowGroup extends CustomerClientShowGroup {} |
|||
|
|||
// <<<<<<<<<<<<<<<<<<<校验分组结束<<<<<<<<<<<<<<<<<<<<<<<<
|
|||
|
|||
/** |
|||
* 活动ID |
|||
*/ |
|||
@NotBlank(message = "活动ID不能为空", groups = { AddUserInternalGroup.class }) |
|||
private String actId; |
|||
|
|||
/** |
|||
* 活动签到描述 |
|||
*/ |
|||
private String desc; |
|||
|
|||
/** |
|||
* 活动签到位置经度 |
|||
*/ |
|||
@NotBlank(message = "活动签到位置经度不能为空", groups = { AddUserInternalGroup.class }) |
|||
private BigDecimal longitude; |
|||
|
|||
/** |
|||
* 活动签到位置纬度 |
|||
*/ |
|||
@NotBlank(message = "活动签到位置纬度不能为空", groups = { AddUserInternalGroup.class }) |
|||
private BigDecimal latitude; |
|||
|
|||
/** |
|||
* 活动签到地址 |
|||
*/ |
|||
@NotBlank(message = "活动签到地址不能为空", groups = { AddUserInternalGroup.class, AddUserShowGroup.class}) |
|||
private String address; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
private List<String> images; |
|||
|
|||
/** |
|||
* 用户id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* id |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 客户id |
|||
*/ |
|||
@NotBlank(message = "客户id不能为空", groups = {AddUserShowGroup.class }) |
|||
private String customerId; |
|||
} |
@ -0,0 +1,61 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.form.resi; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 活动报名参数 |
|||
* |
|||
* @author zhangyong |
|||
* @since v1.0.0 2020-07-20 |
|||
*/ |
|||
@Data |
|||
public class ResiActRegistrationFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
//>>>>>>>>>>>>>>>>>校验分组开始>>>>>>>>>>>>>>>>>>>>>
|
|||
/** |
|||
* 添加用户操作的内部异常分组 |
|||
* 出现错误会提示给前端7000错误码,返回信息为:服务器开小差... |
|||
*/ |
|||
public interface AddUserInternalGroup {} |
|||
|
|||
// <<<<<<<<<<<<<<<<<<<校验分组结束<<<<<<<<<<<<<<<<<<<<<<<<
|
|||
|
|||
/** |
|||
* 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* 活动ID |
|||
*/ |
|||
@NotBlank(message = "活动ID不能为空", groups = { AddUserInternalGroup.class }) |
|||
private String actId; |
|||
|
|||
/** |
|||
* 客户ID |
|||
*/ |
|||
@NotBlank(message = "客户ID不能为空", groups = { AddUserInternalGroup.class }) |
|||
private String customerId; |
|||
} |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue