Commit 71c09243 by liangkaiping

copy

parent facf03aa
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>customproject</artifactId>
<groupId>com.yizhi</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-customproject-api</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-common-api</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-orm</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-util</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-core</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.yizhi.custom.api.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.custom.api.param.ExperiencePoolParam;
import com.yizhi.custom.api.vo.domain.CodePackageManageVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
* 代码包管理feign接口
*
* @author dingxiaowei
* @date 2018-11-5
*/
@FeignClient(name = "customproject", contextId = "CodePackageManageClient")
public interface CodePackageManageClient {
/**
* 代码包列表
*
* @param experiencePoolParam
* @return
*/
@GetMapping("/manage/codePackageManage/list")
Page<CodePackageManageVo> getCodePackageManageList(@RequestBody ExperiencePoolParam experiencePoolParam);
/**
* 单个代码包查看
*
* @param CodePackageId
* @return
*/
@GetMapping("/manage/codePackageManage/view")
CodePackageManageVo viewCodePackageManage(@RequestParam("CodePackageId") Long CodePackageId);
/**
* 删除代码包
*
* @param CodePackageId
* @return
*/
@GetMapping("/manage/codePackageManage/delete")
boolean deleteCodePackage(@RequestParam("CodePackageId") Long CodePackageId);
/**
* 复制访问路径
*
* @param CodePackageId
* @return
*/
@GetMapping("/manage/codePackageManage/getUrl")
String getCodePackageUrl(@RequestParam("CodePackageId") Long CodePackageId);
/**
* 导出二维码
*
* @param url
* @param CodePackageId
* @return
*/
@GetMapping("/manage/codePackageManage/getQRCode")
String getQRCode(@RequestParam("url") String url, @RequestParam("CodePackageId") Long CodePackageId);
/**
* 代码包新增(修改)
*
* @param
* @return
*/
@GetMapping("/manage/codePackageManage/insert")
CodePackageManageVo insertCodePackage(@RequestParam(value = "CodePackageId", required = false) Long CodePackageId,
@RequestParam(value = "CodePackageName", required = false) String CodePackageName,
@RequestParam(value = "url", required = false) String url);
}
package com.yizhi.custom.api.feign;
import com.yizhi.custom.api.vo.custom.VisibleRangeExportVo;
import com.yizhi.custom.api.vo.domain.ExperiencePoolAuthorizeVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* 经验池可见范围接口
*
* @author dingxiaowei
* @date 2018-11-2
*/
@FeignClient(name = "customproject", contextId = "ExperiencePoolAuthorizeClient")
public interface ExperiencePoolAuthorizeClient {
/**
* 导入可见范围
*
* @param poolAuthorizeList
* @return
*/
@PostMapping("/manage/experiencePool/authorize/insert")
boolean insertExperiencePoolAuthorize(@RequestBody List<ExperiencePoolAuthorizeVo> poolAuthorizeList);
/**
* 导出可见范围
*
* @param experiencePoolId
* @return
*/
@GetMapping("/manage/experiencePool/authorize/list")
VisibleRangeExportVo listAuthorizes(@RequestParam("experiencePoolId") Long experiencePoolId);
/**
* 可见范围列表
*
* @param experiencePoolId
* @return
*/
@GetMapping("/manage/experiencePool/authorize/view")
List<Map<String, Object>> getListMap(@RequestParam("experiencePoolId") Long experiencePoolId);
}
package com.yizhi.custom.api.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.custom.api.param.ExperiencePoolParam;
import com.yizhi.custom.api.vo.custom.ExperiencePoolVoAutorizeAndProjectVO;
import com.yizhi.custom.api.vo.domain.ExperiencePoolVo;
import com.yizhi.custom.api.vo.domain.ProjectActivityExperienceVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* 经验池主体feign接口
*
* @author dingxiaowei
* @date 2018-11-2
*/
@FeignClient(name = "customproject", contextId = "ExperiencePoolClient")
public interface ExperiencePoolClient {
/**
* 显示经验池列表
*
* @param param
* @return
*/
@GetMapping("/manage/experiencePool/list")
Page<ExperiencePoolVo> getExperiencePoolList(@RequestBody ExperiencePoolParam param);
/**
* 查看单个经验池查看
*
* @param poolId
* @return
*/
@GetMapping("/manage/experiencePool/view")
ExperiencePoolVoAutorizeAndProjectVO getExperiencePoolView(@RequestParam("poolId") Long poolId);
/**
* 删除经验池
*
* @param experiencePoolId
* @return
*/
@GetMapping("/manage/experiencePool/delete")
boolean deleteExperiencePool(@RequestParam("poolId") Long experiencePoolId);
/**
* 导入线下活动外部经验
*
* @param projectActivityExperienceList
* @return
*/
@PostMapping("/manage/experiencePool/importActivityExperiences")
boolean insertExperiencePoolList(@RequestBody List<ProjectActivityExperienceVo> projectActivityExperienceList);
/**
* 下载经验规则
*
* @param poolId
* @return
*/
@GetMapping("/manage/experiencePool/getActivityExperience")
List<ProjectActivityExperienceVo> getActivityExperienceList(@RequestParam("poolId") Long poolId);
/**
* 经验池保存(新增,修改下一步)(插入经验池可见范围及关联项目并返回项目关联活动列表)
*
* @param experiencePoolAutorizeAndProjectVO
* @return
*/
@PostMapping("/manage/experiencePool/save")
Map<String, Object> insertExperiencePoolAuthorizeAndProject(@RequestBody
ExperiencePoolVoAutorizeAndProjectVO experiencePoolAutorizeAndProjectVO);
/**
* 经验池新增完成
*
* @param poolId
* @return
*/
@GetMapping("/manage/experiencePool/complete")
boolean completeExperiencePool(@RequestParam("poolId") Long poolId);
}
package com.yizhi.custom.api.feign;
import com.yizhi.custom.api.vo.domain.ExperiencePoolLevelVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* 经验池等级feign接口
*
* @author dingxiaowei
* @date 2018-11-2
*/
@FeignClient(name = "customproject", contextId = "ExperiencePoolLevelClient")
public interface ExperiencePoolLevelClient {
/**
* 设置经验池等级(显示经验池列表)
*
* @param poolId
* @return
*/
@GetMapping("/manage/experiencePool/level/list")
List<ExperiencePoolLevelVo> getExperiencePoolLevelList(@RequestParam("poolId") Long poolId);
/**
* 查看单个经验池等级
*
* @param poolId
* @return
*/
@GetMapping("/manage/experiencePool/level/view")
ExperiencePoolLevelVo getExperiencePoolLevelView(@RequestParam("poolId") Long poolId);
/**
* 删除经验池等级
*
* @param poolLevelId
* @return
*/
@GetMapping("/manage/experiencePool/level/delete")
boolean deleteExperiencePoolLevel(@RequestParam("poolLevelId") Long poolLevelId);
/**
* 新增(更新)经验池等级
*
* @param experiencePoolLevel
* @return
*/
@GetMapping("/manage/experiencePool/level/insert")
Map<String, Object> insertExperiencePoolLevel(@RequestBody ExperiencePoolLevelVo experiencePoolLevel);
}
package com.yizhi.custom.api.feign;
import com.yizhi.custom.api.vo.domain.ExperiencePoolProjectVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 经验池关联项目/活动接口
*
* @author dingxiaowei
* @date 2018-11-2
*/
@FeignClient(name = "customproject", contextId = "ExperiencePoolProjectClient")
public interface ExperiencePoolProjectClient {
/**
* 查看关联活动ID
*
* @param experiencePoolId
* @return
*/
@GetMapping("/manage/experiencePool/project/view")
List<ExperiencePoolProjectVo> getExperiencePoolProjectList(@RequestParam("experiencePoolId") Long experiencePoolId);
}
package com.yizhi.custom.api.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.custom.api.vo.custom.ExperiencePoolReportExportVo;
import com.yizhi.custom.api.vo.custom.ExperiencePoolReportVo;
import com.yizhi.core.application.context.RequestContext;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author Ding
* @className ExperiencePoolReportClient
* @description TODO
* @date 2018/11/29
**/
@FeignClient(name = "customproject", contextId = "ExperiencePoolReportClient")
public interface ExperiencePoolReportClient {
/**
* 经验池报表获取列表
*
* @param poolName
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping("/manage/poolReport/list")
Page<ExperiencePoolReportVo> poolReportList(@RequestParam(value = "poolName", required = false) String poolName,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize,
@RequestBody RequestContext requestContext);
/**
* 经验池报表查看列表
*
* @param poolId
* @param key
* @param orgName
* @param pageNo
* @param pageSize
* @param type
* @param siteId
* @param requestContext
* @param startTime
* @param endTime
* @return
*/
@GetMapping("/manage/poolReport/list/view")
Page<ExperiencePoolReportExportVo> viewPoolReportList(@RequestParam("poolId") Long poolId,
@RequestParam(value = "key", required = false) String key,
@RequestParam(value = "orgName", required = false) String orgName,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize,
@RequestParam(value = "type", required = false) Integer type,
@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
@RequestParam(value = "siteId", required = false) Long siteId,
@RequestBody RequestContext requestContext);
/**
* 经验池报表查看个人经验明细
*
* @param poolId
* @param accountId
* @param state
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping("/manage/poolReport/list/view/account/details")
Page<ExperiencePoolReportExportVo> viewAccountDetails(@RequestParam("poolId") Long poolId,
@RequestParam("accountId") Long accountId,
@RequestParam(value = "state", required = false) Integer state,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize);
/**
* 经验池报表查看个人经验明细下载
*
* @param poolId
* @param accountId
* @param state
* @return
*/
@GetMapping("/manage/poolReport/list/view/account/details/export")
String viewAccountDetailsExport(@RequestParam("poolId") Long poolId,
@RequestParam("accountId") Long accountId,
@RequestParam(value = "state", required = false) Integer state);
/**
* 经验池报表导出所有人经验变更明细
*
* @param poolId
* @return
*/
@GetMapping("/manage/poolReport/list/view/all/details/export")
String viewAllDetailsExport(@RequestParam("poolId") Long poolId);
/**
* 经验池报表导出阶段经验变更明细
*
* @param poolId
* @param startTime
* @param endTime
* @param orgName
* @param accountName
* @return
*/
@GetMapping("/manage/poolReport/list/view/stage/details/export")
String viewStageDetailsExport(@RequestParam("poolId") Long poolId,
@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
@RequestParam(value = "orgName", required = false) String orgName,
@RequestParam(value = "accountName", required = false) String accountName);
/**
* 经验池报表导出阶段经验消费变更明细
*
* @param poolId
* @param startTime
* @param endTime
* @param orgName
* @param accountName
* @return
*/
@GetMapping("/manage/poolReport/list/view/stage/purchase/details/export")
String viewStagePurchaseDetailsExport(@RequestParam("poolId") Long poolId,
@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
@RequestParam(value = "orgName", required = false) String orgName,
@RequestParam(value = "accountName", required = false) String accountName);
}
package com.yizhi.custom.api.feign;
import java.util.List;
import java.util.Map;
import com.yizhi.custom.api.vo.custom.*;
import com.yizhi.custom.api.vo.domain.StudentExperiencePoolVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.plugins.Page;
@FeignClient(name = "customproject", contextId = "MyExperienceClient")
public interface MyExperienceClient {
/**
* 个人经验统计
*
* @param param
* @return
*/
@GetMapping("/api/my/experience")
MyExperienceLevelVo getMyExperiencePool(@RequestParam("poolId") Long poolId, @RequestParam("sort") String sort);
/**
* 经验排行榜
*
* @param poolId
* @param sort
* @param pageSize
* @param pageNo
* @return
*/
@GetMapping("/api/my/experience/ranking")
Page<MyExperienceRankingVo> getMyExperienceRankings(@RequestParam("poolId") Long poolId,
@RequestParam("sort") String sort, @RequestParam("pageSize") Integer pageSize,
@RequestParam("pageNo") Integer pageNo);
/**
* 个人经验明细
*
* @param poolId
* @param pageSize
* @param pageNo
* @return
*/
@GetMapping("/api/my/experience/dtl")
Page<MyExperienceEventsVo> getMyExperienceDtl(@RequestParam("poolId") Long poolId,
@RequestParam("pageSize") Integer pageSize, @RequestParam("pageNo") Integer pageNo);
/**
* 个人经验等级分类
*
* @param poolId
* @param pageSize
* @param pageNo
* @return
*/
@GetMapping("/api/my/experience/classify")
MyExperienceLevelVo getMyExperienceClassify(@RequestParam("poolId") Long poolId,
@RequestParam("pageSize") Integer pageSize, @RequestParam("pageNo") Integer pageNo);
/**
* 经验等级
*
* @param poolId
* @return
*/
@GetMapping("/api/my/experience/level")
List<MyExperienceLevelVo> getMyExperienceLevels(@RequestParam("poolId") Long poolId);
/**
* 我的经验池登录信息
*
* @param poolId
* @return
*/
@GetMapping("/api/my/experience/login")
MyExperiencePoolVo getMyExperienceLogin(@RequestParam("poolId") Long poolId);
/**
* 存步数
*
* @param poolId
* @param step
* @return
*/
@GetMapping("/api/my/experience/savestep")
StudentExperiencePoolVo saveMyExperienceStep(@RequestParam("poolId") Long poolId, @RequestParam("step") Integer step);
/**
* 存座右铭
*
* @param poolId
* @param motto
* @return
*/
@GetMapping("/api/my/experience/savemotto")
StudentExperiencePoolVo saveMyExperienceMotto(@RequestParam("poolId") Long poolId, @RequestParam("motto") String motto);
/**
* 自定义项目按组织经验排行
*
* @param poolId
* @param pageNo
* @param pageSize
* @param type
* @return
*/
@GetMapping("/api/my/experience/orgRanking")
Page<ExperienceOrgRankingVO> getOrgRanking(@RequestParam("poolId") Long poolId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize,
@RequestParam("type") Integer type);
/**
* 自定义项目获取用户组别,批次,备注信息
*
* @param accountId
* @param poolId
* @return
*/
@GetMapping("/api/my/experience/getBatchGroup")
Map<String, Object> getBatchGroup(@RequestParam("accountId") Long accountId,
@RequestParam("poolId") Long poolId);
}
package com.yizhi.custom.api.feign;
import com.yizhi.custom.api.vo.custom.ExperienceRulesVO;
import com.yizhi.custom.api.vo.domain.ProjectActivityExperienceVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 经验池项目关联活动feign接口
*
* @author dingxiaowei
* @date 2018-11-5
*/
@FeignClient(name = "customproject", contextId = "ProjectActivityExperienceClient")
public interface ProjectActivityExperienceClient {
/**
* @param projectActivityExperienceList
* @return
*/
@PostMapping("/manage/experiencePool/projectActivity/insert")
boolean insertProjectActivityExperienceList(@RequestBody List<ProjectActivityExperienceVo> projectActivityExperienceList);
@GetMapping("/manage/experiencePool/projectActivity/getRules")
List<ExperienceRulesVO> getExperienceRules(@RequestParam("poolId") Long poolId);
}
package com.yizhi.custom.api.feign;
import com.yizhi.custom.api.vo.domain.ProjectActivityExperienceSetVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;
/**
* 经验池项目关联活动经验规则feign接口
*
* @author dingxiaowei
* @date 2018-11-5
*/
@FeignClient(name = "customproject", contextId = "ProjectActivityExperienceSetClient")
public interface ProjectActivityExperienceSetClient {
/**
* 查看设置活动经验值规则列表
*
* @param activityExperienceId
* @return
*/
@GetMapping("/manage/experiencePool/projectActivityExperienceSet/list")
Map<String, Object> getProjectActivityExperienceSets(@RequestParam("activityExperienceId") Long activityExperienceId,
@RequestParam(value = "setType", required = false) Integer setType);
/**
* 查看单个设置活动经验值规则
*
* @param activityExperienceSetId
* @return
*/
@GetMapping("/manage/experiencePool/projectActivityExperienceSet/view")
ProjectActivityExperienceSetVo viewProjectActivityExperienceSet(@RequestParam("activityExperienceSetId") Long activityExperienceSetId);
/**
* 经验池项目关联活动经验规则添加(修改)
*
* @param activityExperienceId
* @param setType
* @param minScore
* @param maxScore
* @param experience
* @param times
* @return
*/
@GetMapping("/manage/experiencePool/projectActivityExperienceSet/insert")
Map<String, Object> insertProjectActivityExperienceSet(@RequestParam(value = "activityExperienceSetId", required = false) Long activityExperienceSetId,
@RequestParam(value = "activityExperienceId", required = true) Long activityExperienceId,
@RequestParam(value = "setType", required = true) Integer setType,
@RequestParam(value = "minScore", required = true) Integer minScore,
@RequestParam(value = "experience", required = true) Long experience);
@GetMapping("/manage/experiencePool/projectActivityExperienceSet/insertWithScore")
Map<String, Object> insertProjectActivityExperienceSetWithScore(@RequestParam(value = "activityExperienceSetId", required = false) Long activityExperienceSetId,
@RequestParam(value = "activityExperienceId", required = true) Long activityExperienceId,
@RequestParam(value = "setType", required = true) Integer setType,
@RequestParam(value = "times", required = false) Integer times);
/**
* @param activityExperienceId
* @return
*/
@GetMapping("/manage/experiencePool/projectActivityExperienceSet/delete")
boolean deleteProjectActivityExperienceSet(@RequestParam("projectActivityExperienceSetId") Long projectActivityExperienceSetId);
@GetMapping("/manage/experiencePool/projectActivityExperienceSets/delete")
Map<String, Object> deleteProjectActivityExperienceSets(@RequestParam("activityExperienceId") Long activityExperienceId);
}
package com.yizhi.custom.api.feign;
import com.yizhi.custom.api.param.PurchaseProductsParam;
import com.yizhi.custom.api.vo.custom.ProductVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
* 消费商品feign接口
*
* @author dingxiaowei
* @date 2019-09-19
*/
@FeignClient(name = "customproject", contextId = "PurchaseProductClient")
public interface PurchaseProductClient {
/**
* 自定义项目获取商品信息
* @param poolId
* @return
*/
@GetMapping("/api/my/getProducts")
ProductVO getProducts(@RequestParam("poolId") Long poolId);
/**
* 自定义项目购买商品
* @param param
* @return
*/
@PostMapping("/api/my/purchaseProducts")
String purchaseProducts(@RequestBody PurchaseProductsParam param);
}
package com.yizhi.custom.api.feign;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.custom.api.vo.domain.StudentExperienceVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 经验池项目关联活动feign接口
*
* @author dingxiaowei
* @date 2018-11-12
*/
@FeignClient(name = "customproject", contextId = "StudentExperienceClient")
public interface StudentExperienceClient {
@PostMapping("/manage/experiencePool/studentExperience/insert")
boolean insertStudentExperienceList(@RequestBody List<StudentExperienceVo> studentExperienceList);
@GetMapping("/manage/experiencePool/studentExperience/push")
boolean pushStudentExperience(@RequestParam("experiencePoolId") Long experiencePoolId,
@RequestParam("activityId") Long activityId,
@RequestParam("activityName") String activityName,
@RequestParam("activityType") Integer activityType,
@RequestParam("accountIds") List<Long> accountIds,
@RequestBody RequestContext requestContext);
}
\ No newline at end of file
package com.yizhi.custom.api.param;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Ding
*
* 项目列表请求类
* @className BizListParam
* @description TODO
* @date 2018/11/14
**/
@ApiModel("项目列表请求类")
@Data
public class BizListParam {
@ApiModelProperty("项目名称")
private String name;
@ApiModelProperty("所选项目ID")
private List<Long> ids;
@ApiModelProperty("请求第几页数")
private Integer pageNo;
@ApiModelProperty("一页显示条数")
private Integer pageSize;
}
package com.yizhi.custom.api.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 经验池列表请求类
*
* @author dingxiaowei
* @date 2018-11-2
*/
@ApiModel("经验池列表请求类")
@Data
public class ExperiencePoolParam {
@ApiModelProperty("用户ID")
private Long accountId;
@ApiModelProperty("企业ID")
private Long companyId;
@ApiModelProperty("部门ID")
private Long orgId;
@ApiModelProperty("站点ID")
private Long siteId;
@ApiModelProperty("不是管理员情况下可见部门ID")
private List<Long> orgIds;
@ApiModelProperty("请求第几页数")
private Integer pageNo;
@ApiModelProperty("一页显示条数")
private Integer pageSize;
}
package com.yizhi.custom.api.param;
import com.yizhi.custom.api.vo.domain.ProductVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Ding
*
* 项目列表请求类
* @className BizListParam
* @description 自定义项目购买商品请求类
* @date 2019/09/19
**/
@ApiModel("自定义项目购买商品请求类")
@Data
public class PurchaseProductsParam {
@ApiModelProperty("经验池id")
private Long poolId;
@ApiModelProperty("所选项目ID")
private List<ProductVo> products;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Ding
* @className ExamRuleListVo
* @description TODO
* @date 2019/1/2
**/
@Data
@ApiModel(value = "考试经验规则列表类", description = "考试经验规则列表类")
public class ExamRuleListVo {
@ApiModelProperty("按考试范围最小分")
private Integer minScore;
@ApiModelProperty("按考试范围最大分")
private Integer maxScore;
@ApiModelProperty("获取对应经验t值")
private Long experience;
@ApiModelProperty("按考试分数倍数")
private Integer times;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author 外部经验导入行对象
* @className ImportSheetRowVO
* @description TODO
* @date 2018/11/12
**/
@Data
@ApiModel(value = "外部经验导入行对象", description = "外部经验导入行对象")
public class ExperienceImportSheetRowVO {
@ApiModelProperty("用户名")
private String name;
@ApiModelProperty("用户Id")
private Long accountId;
@ApiModelProperty("部门id")
private Long orgId;
@ApiModelProperty("部门名称")
private String orgName;
@ApiModelProperty("经验")
private Long experience;
@ApiModelProperty("行数")
private Integer rowNumber;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Ding
* @className ExperienceOrgRankingVO
* @description TODO
* @date 2019/6/19
**/
@Data
@ApiModel(value = "按部门经验排行类",description = "按部门经验排行类")
public class ExperienceOrgRankingVO {
@ApiModelProperty("部门id")
private Long orgId;
@ApiModelProperty("部门名称")
private String orgName;
@ApiModelProperty("部门总经验")
private Double totalExperience;
@ApiModelProperty("部门排名")
private Integer rankings;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Ding
* @className ExperiencePoolRuleVo
* @description TODO
* @date 2019/1/2
**/
@Data
@ApiModel(value="考试经验发放规则类" ,description ="考试经验发放规则类")
public class ExperiencePoolExamRuleVo {
@ApiModelProperty("经验池")
private Long experiencePoolId;
@ApiModelProperty("活动类型")
private Integer type;
@ApiModelProperty("活动id")
private Long bizId;
@ApiModelProperty("活动名称")
private String bizName;
@ApiModelProperty("考试发放经验类型:1按设定值发放 2按考试分数范围, 3按考试分数倍数")
private Integer experienceType;
@ApiModelProperty("考试经验规则列表")
private List<ExamRuleListVo> ruleList;
@ApiModelProperty("如果有可见范围,可见范围ids")
private List<Long> accountIds;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Ding
* @className ExperiencePoolReportExportVo
* @description TODO
* @date 2018/11/29
**/
@Data
@Api(value = "经验池报表导出类", description = "经验池报表导出类")
public class ExperiencePoolReportExportVo {
@ApiModelProperty("用户id")
private Long accountId;
@ApiModelProperty("用户名")
private String accountName;
@ApiModelProperty("姓名")
private String accountFullName;
@ApiModelProperty("所在部门id")
private Long orgId;
@ApiModelProperty("所在部门")
private String orgName;
@ApiModelProperty("所在组织架构")
private String orgNames;
@ApiModelProperty("邮箱")
private String email;
@ApiModelProperty("账号创建时间")
private Date accountCreateTime;
@ApiModelProperty("总经验值")
private Long experienceTotal;
@ApiModelProperty("消耗总值")
private Long purchaseExperienceTotal;
@ApiModelProperty("增加总值")
private Long increaseExperienceTotal;
@ApiModelProperty("变动经验")
private Long experience;
@ApiModelProperty("经验类型")
private Integer type;
@ApiModelProperty("变动明细")
private String description;
@ApiModelProperty("获得经验活动id")
private Long activityId;
@ApiModelProperty("获得经验活动名称")
private String activityName;
@ApiModelProperty("经验获取时间")
private Date createTime;
@ApiModelProperty("等级")
private String experienceLevel;
@ApiModelProperty("课程学习经验")
private Long courseExperience;
@ApiModelProperty("考试经验")
private Long examExperience;
@ApiModelProperty("调研经验")
private Long researchExperience;
@ApiModelProperty("投票经验")
private Long voteExperience;
@ApiModelProperty("外部经验")
private Long externalExperience;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Ding
* @className ExperiencePoolReportVo
* @description TODO
* @date 2018/11/29
**/
@Data
@Api(tags = "经验统计类", description = "经验统计类")
public class ExperiencePoolReportVo {
@ApiModelProperty("经验池id")
private Long experiencePoolId;
@ApiModelProperty("经验池名称")
private String experiencePoolName;
@ApiModelProperty("可见范围:1全平台,2指定范围")
private Integer visibleRange;
@ApiModelProperty("经验池创建时间")
private Date poolCreateTime;
@ApiModelProperty("关联学员数")
private Integer rangeAcountNum;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Ding
* @className ExperiencePoolRuleVo
* @description TODO
* @date 2019/1/2
**/
@Data
@ApiModel(value="经验发放规则类" ,description ="经验发放规则类")
public class ExperiencePoolRuleVo {
private Long experiencePoolId;
@ApiModelProperty("经验池可见范围")
private Integer visibleRange;
@ApiModelProperty("活动类型")
private Integer type;
private Long bizId;
@ApiModelProperty("活动名称")
private String bizName;
@ApiModelProperty("获取对应经验值")
private Long experience;
@ApiModelProperty("如果是全平台可见,返回指定用户列表")
private List<Long> accountIds;
}
package com.yizhi.custom.api.vo.custom;
import com.yizhi.custom.api.vo.domain.ExperiencePoolAuthorizeVo;
import com.yizhi.custom.api.vo.domain.ExperiencePoolProjectVo;
import com.yizhi.custom.api.vo.domain.ExperiencePoolVo;
import com.yizhi.custom.api.vo.domain.ProjectActivityExperienceVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 经验池
*
* @author dingxiaowei
* @date 2018-11-2
*/
@Data
@ApiModel(value = "ExperiencePoolVoAutorizeAndProjectVO", description = "经验池可见范围及关联项目类")
public class ExperiencePoolVoAutorizeAndProjectVO extends ExperiencePoolVo {
@ApiModelProperty("可见范围列表")
private List<ExperiencePoolAuthorizeVo> experiencePoolAuthorizes;
@ApiModelProperty("经验池关联项目列表")
private List<ExperiencePoolProjectVo> poolProjects;
@ApiModelProperty("经验池项目关联活动经验值列表")
private List<ProjectActivityExperienceVo> projectActivityExperiences;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author 经验池可见范围导入对象
* @className ExperienceRangeImportVO
* @description TODO
* @date 2018/11/15
**/
@Data
@ApiModel(value = "经验池可见范围导入对象", description = "经验池可见范围导入对象")
public class ExperienceRangeImportVO {
@ApiModelProperty("用户名")
private String name;
@ApiModelProperty("用户Id")
private Long accountId;
@ApiModelProperty("行数")
private Integer rowNumber;
@ApiModelProperty("组别")
private String group;
@ApiModelProperty("批次")
private String batchNo;
@ApiModelProperty("备注")
private String note;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Ding
* @className ExperienceRulesVO
* @description TODO
* @date 2018/11/20
**/
@Data
@ApiModel(value="经验规则导出类" ,description ="经验规则导出类")
public class ExperienceRulesVO {
@ApiModelProperty("活动类型")
private Integer type;
@ApiModelProperty("活动名称")
private String name;
@ApiModelProperty("经验获取条件")
private Integer experienceSource;
@ApiModelProperty("按考试范围最小分")
private Integer minScore;
@ApiModelProperty("按考试范围最大分")
private Integer maxScore;
@ApiModelProperty("获取对应经验值")
private String experience;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
* @author Ding
* @className ExamRuleListVo
* @description TODO
* @date 2019/9/9
**/
@Data
@ApiModel(value = "GetAccountListVO", description = "GetAccountListVO")
public class GetAccountListVO {
private Boolean isGetAccount;
private List<ReportAccountRespVOVo> accountVOList;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "个人经验明细", description = "个人经验明细")
public class MyExperienceEventsVo {
@ApiModelProperty("经验名称")
private String eventName;
@ApiModelProperty("经验编码")
private String eventCode;
@ApiModelProperty("经验")
private Integer experience;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "个人经验等级", description = "个人经验等级")
public class MyExperienceLevelVo {
@ApiModelProperty("用户名")
private String name;
@ApiModelProperty("姓名")
private String fullName;
@ApiModelProperty("性别")
private String sex;
@ApiModelProperty("总经验")
private Integer experienceTotal;
@ApiModelProperty("等级名称")
private String levelName;
@ApiModelProperty("等级编码")
private String levelCode;
@ApiModelProperty("排名")
private String ranking;
@ApiModelProperty("当前时间")
String currentTime;
@ApiModelProperty("个人经验明细列表")
List<MyExperienceEventsVo> eventClassifys;
}
package com.yizhi.custom.api.vo.custom;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "我的经验池", description = "我的经验池")
public class MyExperiencePoolVo {
@ApiModelProperty("是否首次登录,1为首次登陆,0为非首次登陆")
private Integer firstLogin;
@ApiModelProperty("系统当前年月日")
private Date nowTime;
@ApiModelProperty("步数")
private Integer step;
@ApiModelProperty("编号(年月第几位)")
private String accountCode;
@ApiModelProperty("座右铭")
private String motto;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "我的积分排行榜", description = "我的积分排行榜")
public class MyExperienceRankingVo {
@ApiModelProperty("用户名")
private String name;
@ApiModelProperty("姓名")
private String fullName;
@ApiModelProperty("性别")
private String sex;
@ApiModelProperty("用户Id")
private Long accountId;
@ApiModelProperty("排名")
private Integer ranking;
@ApiModelProperty("等级名称")
private String levelName;
@ApiModelProperty("等级编码")
private String levelCode;
@ApiModelProperty("部门名称(全部)")
private String orgName;
@ApiModelProperty("经验")
private Integer experience;
}
package com.yizhi.custom.api.vo.custom;
import com.yizhi.custom.api.vo.domain.ProjectActivityExperienceVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Ding
* @className PoolSaveReturnVO
* @description TODO
* @date 2018/11/14
**/
@Data
@ApiModel(value = "经验池保存返回类", description = "经验池保存返回类")
public class PoolSaveReturnVO {
@ApiModelProperty("经验池ID")
private Long poolId;
@ApiModelProperty("关联项目经验列表")
private List<ProjectActivityExperienceVo> activityExperienceList;
}
package com.yizhi.custom.api.vo.custom;
import com.yizhi.custom.api.vo.domain.ProductVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Ding
* @className ExperiencePoolRuleVo
* @description 商品VO类
* @date 2019/09/19
**/
@Data
@ApiModel(value="商品前端显示类" ,description ="商品前端显示类")
public class ProductVO {
@ApiModelProperty(value = "用户总积分")
private Integer totalPoint;
@ApiModelProperty(value = "用户总经验")
private Long totalExperience;
@ApiModelProperty(value = "端口列表")
private List<ProductVo> products;
}
package com.yizhi.custom.api.vo.custom;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @Author: XieHaijun
* @Description:
* @Date: Created in 17:11 2018/7/16
* @Modified By
*/
@Api(tags = "ReportAccountRespVOVo", description = "用户信息返回对象")
@Data
public class ReportAccountRespVOVo {
@ApiModelProperty(value = "用户id")
private Long userId;
@ApiModelProperty(value = "头像")
private String headPortrait;
@ApiModelProperty(value = "用户名")
private String userName;
@ApiModelProperty(value = "用户姓名")
private String userFullName;
@ApiModelProperty(value = "部门id")
private Long orgId;
@ApiModelProperty(value = "部门名称")
private String orgName;
@ApiModelProperty(value = "部门code")
private String orgCode;
@ApiModelProperty(value = "用户状态:1:启用,0:停用")
private Integer status;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "账户邮箱")
private String email;
@ApiModelProperty(value = "企业id")
private Long companyId;
/* @ApiModelProperty(value = "部门编码")
private String orgCode;*/
/* @ApiModelProperty(value = "部门人数")
private Long orgAccountNum;*/
@ApiModelProperty(value = "父节组织名称")
private List<String> parentOrgNames;
@ApiModelProperty(value = "工号")
private String workNum;
private String mobile;
@ApiModelProperty(value = "职位")
private String position;
}
package com.yizhi.custom.api.vo.custom;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
/**
* 2019/09/19
* @author wangfeida
*
*/
@Data
public class VisibleRangeExportVo {
@ApiModelProperty(name="bizId",value="具体业务id")
private Long bizId;
@ApiModelProperty(name="bizName",value="具体业务名字")
private String bizName;
@ApiModelProperty(name="个人ID集合",value="个人id集合")
private List<Long> accountIds;
@ApiModelProperty(name="组织ID集合",value="组织ID集合")
private List<Long> orgIds;
@ApiModelProperty(name="上下文对象",value="上下文对象")
private RequestContext context;
@ApiModelProperty(name="自定义项目增加字段map",value="自定义项目增加字段map")
private Map<Long, SortedMap<String, String>> map;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 代码包管理主体
* </p>
*
* @author dingxiaowei
* @since 2018-11-01
*/
@Data
@ApiModel(value = "CodePackageManageVo", description = "")
public class CodePackageManageVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "代码包名称")
private String codePackageName;
@ApiModelProperty(value = "导入时间")
private Date importTime;
@ApiModelProperty(value = "访问路径")
private String url;
@ApiModelProperty(value = "状态 0 删除 1 有效")
private Integer state;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人名字")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人名字")
private String updateByName;
@ApiModelProperty(value = "企业_ID")
private Long companyId;
@ApiModelProperty(value = "部门_ID")
private Long orgId;
@ApiModelProperty(value = "站点_ID")
private Long siteId;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 经验池可见范围主体
* </p>
*
* @author dingxiaowei
* @since 2018-11-01
*/
@Data
@ApiModel(value = "ExperiencePoolAuthorizeVo", description = "")
public class ExperiencePoolAuthorizeVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "经验池ID") private Long experienceId;
@ApiModelProperty(value = "1 用户 2 部门")
private Integer type;
@ApiModelProperty(value = "批次号")
private String batchNo;
@ApiModelProperty("组别")
private String group;
@ApiModelProperty(value = "范围ID")
private Long relationId;
@ApiModelProperty(value = "学员名字或部门名称")
private String name;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人名字")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人名字")
private String updateByName;
@ApiModelProperty("备注")
private String note;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 经验池等级主体
* </p>
*
* @author dingxiaowei
* @since 2018-11-01
*/
@Data
@ApiModel(value = "ExperiencePoolLevelVo", description = "")
public class ExperiencePoolLevelVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "经验池ID")
private Long experiencePoolId;
@ApiModelProperty(value = "等级编码")
private String levelNo;
@ApiModelProperty(value = "等级名称")
private String levelName;
@ApiModelProperty(value = "等级对应经验最小值")
private Long minLevelExperience;
@ApiModelProperty(value = "状态")
private Integer state;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人名字")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人名字")
private String updateByName;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 经验池关联项目主体
* </p>
*
* @author dingxiaowei
* @since 2018-11-01
*/
@Data
@ApiModel(value = "ExperiencePoolProjectVo", description = "")
public class ExperiencePoolProjectVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "经验池ID")
private Long experienceId;
@ApiModelProperty(value = "项目类型1 课程 2 考试 3 调研 4 投票")
private Integer type;
@ApiModelProperty(value = "项目编码")
private String bizNo;
@ApiModelProperty(value = "项目ID")
private Long bizId;
@ApiModelProperty(value = "项目名称")
private String bizName;
@ApiModelProperty(value = "状态 0 删除 1有效 ")
private Integer state;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人名字")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人名字")
private String updateByName;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 经验池主体
* </p>
*
* @author dingxiaowei
* @since 2018-11-02
*/
@Data
@ApiModel(value = "ExperiencePoolVo", description = "自定义项目经验池主体表")
public class ExperiencePoolVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "经验池编码")
private String experiencePoolNo;
@ApiModelProperty(value = "经验池名称")
private String experiencePoolName;
@ApiModelProperty(value = "0删除 1 草稿 2上架")
private Integer state;
@ApiModelProperty(value = " 1手工输入 2外部导入")
private Integer experiencePoolType;
@ApiModelProperty(value = "可见范围:1 全平台可见 2 指定学员")
private Integer visibleRange;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人名字")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人名字")
private String updateByName;
@ApiModelProperty(value = "企业_ID")
private Long companyId;
@ApiModelProperty(value = "部门_ID")
private Long orgId;
@ApiModelProperty(value = "站点_ID")
private Long siteId;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 经验发放记录表
* </p>
*
* @author dingxiaowei123
* @since 2019-01-02
*/
@Data
@ApiModel(value = "ExperienceRecordVo", description = "经验发放记录表")
public class ExperienceRecordVo {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "经验池id")
private Long experiencePoolId;
@ApiModelProperty(value = "学生id")
private Long accountId;
@ApiModelProperty(value = "活动类型")
private Integer activityType;
@ApiModelProperty(value = "活动id(考试,课程,调研,投票…..)")
private Long activityId;
@ApiModelProperty(value = "活动名称")
private String activityName;
@ApiModelProperty(value = "产生经验")
private Integer experience;
private Date createTime;
private Long createById;
private String createByName;
private Date updateTime;
private Long updateById;
private String updateByName;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author dingxiaowei123
* @since 2019-09-19
*/
@Data
@ApiModel(value = "ProductVo", description = "")
public class ProductVo {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "商品名称")
private String productName;
@ApiModelProperty(value = "商品单价")
private Long price;
@ApiModelProperty(value = "商品总数")
private Integer amount;
@ApiModelProperty(value = "商品剩余数量")
private Integer remainingAmount;
private Date createTime;
@ApiModelProperty(value = "企业_ID")
private Long companyId;
@ApiModelProperty(value = "部门_ID")
private Long orgId;
@ApiModelProperty(value = "站点_ID")
private Long siteId;
@ApiModelProperty(value = "状态, 0:删除 1:有效")
private Integer state;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 经验池关联项目活动经验值设计主体
* </p>
*
* @author dingxiaowei
* @since 2018-11-01
*/
@Data
@ApiModel(value = "ProjectActivityExperienceSetVo", description = "")
public class ProjectActivityExperienceSetVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "项目关联经验值表_ID")
private Long projectActivityExperienceId;
@ApiModelProperty(value = "经验设置类型(1按成绩范围设置,2按成绩值设置)")
private Integer setType;
@ApiModelProperty(value = "经验规则对应最小分数")
private Integer minScore;
@ApiModelProperty(value = "经验值")
private Long experience;
@ApiModelProperty(value = "按成绩值设置倍数")
private Integer times;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人名字")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人名字")
private String updateByName;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 经验池关联项目活动经验值主体
* </p>
*
* @author dingxiaowei
* @since 2018-11-01
*/
@Data
@ApiModel(value = "ProjectActivityExperienceVo", description = "")
public class ProjectActivityExperienceVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID ")
private Long id;
@ApiModelProperty(value = "项目关联活动ID")
private Long experiencePoolProjectId;
@ApiModelProperty(value = "项目类型1 课程 2 考试 3 调研 4 投票 5 外部经验")
private Integer type;
@ApiModelProperty(value = "活动名称")
private String activityName;
@ApiModelProperty(value = "活动经验来源 0 无其他条件 1 按成绩设置")
private Integer activityExperienceSource;
@ApiModelProperty(value = "活动经验值(分值,活动经验值来源为0时取该值,1从经验值条件表中取)")
private Long activityExperience;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人名字")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人名字")
private String updateByName;
@ApiModelProperty(value = "是否有经验")
private Integer evaluate;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 学员经验池
* </p>
*
* @author dingxiaowei123
* @since 2018-11-12
*/
@Data
@ApiModel(value = "StudentExperiencePoolVo", description = "学员经验池")
public class StudentExperiencePoolVo {
@SuppressWarnings("unused")
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID ")
private Long id;
@ApiModelProperty(value = "经验池ID")
private Long experiencePoolId;
@ApiModelProperty(value = "用户ID")
private Long accountId;
@ApiModelProperty(value = "批次号")
private String batchNo;
@ApiModelProperty(value = "登录序号(第几个登录的)")
private Integer num;
@ApiModelProperty(value = "步数")
private Integer step;
@ApiModelProperty(value = "座右铭")
private String motto;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人名字")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人名字")
private String updateByName;
}
package com.yizhi.custom.api.vo.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 项目关联活动经验值表
* </p>
*
* @author dingxiaowei123
* @since 2018-11-12
*/
@Data
@ApiModel(value = "StudentExperienceVo", description = "项目关联活动经验值表")
public class StudentExperienceVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID ")
private Long id;
@ApiModelProperty(value = "经验池ID")
private Long experiencePoolId;
@ApiModelProperty(value = "用户ID ")
private Long accountId;
@ApiModelProperty(value = "用户名")
private String accountName;
@ApiModelProperty(value = "项目类型5 (外部导入)")
private Integer type;
private Long activityId;
private String activityName;
@ApiModelProperty(value = "活动经验值")
private Long experience;
@ApiModelProperty(value = "企业id")
private Long companyId;
@ApiModelProperty(value = "站点id")
private Long siteId;
@ApiModelProperty(value = "部门id")
private Long orgId;
@ApiModelProperty(value = "部门名称")
private String orgName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人ID")
private Long createById;
@ApiModelProperty(value = "创建人名字")
private String createByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
private Long updateById;
@ApiModelProperty(value = "修改人名字")
private String updateByName;
@ApiModelProperty(value = "是否删除 0:删除, 1:未删除")
private Integer state;
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>customproject</artifactId>
<groupId>com.yizhi</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.yizhi</groupId>
<artifactId>cloud-customproject</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-training-project-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-orm</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-common-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-util</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 积分api 依赖 -->
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-point-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 课程api 依赖 -->
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-course-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 签到api 依赖 -->
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-sign-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 考试api 依赖 -->
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-exam-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--作业api 依赖 -->
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-assignment-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--添加system依赖-->
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-system-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-custom-project-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.5.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- deploy 时跳过该模块 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.yizhi.application;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
/**
* @author Ding
* @className CustomProjectApplication
* @description TODO
* @date 2018/11/12
**/
@SpringBootApplication
@EnableDiscoveryClient
@EnableCaching
@EnableFeignClients(basePackages = {"com.yizhi"})
@ComponentScan(basePackages = {"com.yizhi"})
public class CustomProjectApplication {
public static void main(String[] args) {
SpringApplication.run(CustomProjectApplication.class, args);
}
}
package com.yizhi.application.asynchronousTask;
import com.yizhi.application.domain.ExperiencePool;
import com.yizhi.application.service.IExperiencePoolService;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.core.application.context.TaskContext;
import com.yizhi.custom.api.vo.custom.ExperiencePoolReportExportVo;
import com.yizhi.core.application.file.constant.FileConstant;
import com.yizhi.core.application.file.task.AbstractDefaultTask;
import com.yizhi.core.application.file.util.OssUpload;
import org.apache.commons.collections.CollectionUtils;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author Ding
* @className ViewAllDetailsExport
* @description 经验池报表导出所有人经验变更明细
* @date 2019/9/5
**/
@Component
public class ViewAllDetailsExport extends AbstractDefaultTask<Map, Map<String, Object>> {
private static final Logger LOGGER = LoggerFactory.getLogger(ViewAllDetailsExport.class);
@Autowired
private IExperiencePoolService poolService;
@Override
protected Map execute(Map<String, Object> map) {
//从map中取信息
Long taskId = (Long) map.get("taskId");
String serialNo = (String) map.get("serialNo");
String taskName = (String) map.get("taskName");
Long poolId = (Long) map.get("poolId");
RequestContext res = (RequestContext) map.get("res");
//开始异步任务
TaskContext taskContext = new TaskContext(taskId, serialNo, taskName,
res.getAccountId(), new Date(), res.getSiteId(), res.getCompanyId());
working(taskContext);
List<ExperiencePoolReportExportVo> list = null;
//获取导出数据
try {
list = poolService.viewAllDetails(poolId, null, null, null, null, null, res);
if (CollectionUtils.isEmpty(list)) {
success(taskContext, "未找到数据", "");
}
} catch (Exception e) {
LOGGER.error("获取数据过程中出现错误", e);
fail(taskContext, "获取数据过程中出现错误");
}
//生成excel,上传阿里云返回url
try {
//获取经验池名称
ExperiencePool experiencePool = poolService.selectById(poolId);
String poolName = experiencePool.getExperiencePoolName();
//创建excel文件
XSSFWorkbook wb = new XSSFWorkbook();
//创建报表页
XSSFSheet sheet = wb.createSheet("所有人经验值变更明细下载");
//创建表头
XSSFRow row = sheet.createRow(0);
//设置格式(水平垂直居中,加粗,字体大小14号)
XSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
XSSFFont font = wb.createFont();
font.setBold(true);
font.setFontHeightInPoints((short) 14);
style.setFont(font);
CellRangeAddress cra = new CellRangeAddress(0, 0, 0, 5);
//表头合并单元格
sheet.addMergedRegion(cra);
XSSFCell cell = row.createCell(0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
//填写表头名
cell.setCellValue("经验值变更明细统计");
//表头居中
cell.setCellStyle(style);
cra = new CellRangeAddress(1, 1, 0, 5);
//第二行合并单元格合并单元格
sheet.addMergedRegion(cra);
row = sheet.createRow(1);
row.createCell(0).setCellValue("经验池: " + poolName);
row = sheet.createRow(2);
//重新设置格式(只加粗)
style = wb.createCellStyle();
font = wb.createFont();
font.setBold(true);
style.setFont(font);
cell = row.createCell(0);
cell.setCellStyle(style);
cell.setCellValue("用户名");
cell = row.createCell(1);
cell.setCellStyle(style);
cell.setCellValue("姓名");
cell = row.createCell(2);
cell.setCellStyle(style);
cell.setCellValue("所在部门");
cell = row.createCell(3);
cell.setCellStyle(style);
cell.setCellValue("变动值");
cell = row.createCell(4);
cell.setCellStyle(style);
cell.setCellValue("时间");
cell = row.createCell(5);
cell.setCellStyle(style);
cell.setCellValue("明细");
cell = row.createCell(6);
cell.setCellStyle(style);
cell.setCellValue("所在组织架构");
//组装数据
if (CollectionUtils.isNotEmpty(list)) {
for (int i = 0; i < list.size(); i++) {
ExperiencePoolReportExportVo listVO = list.get(i);
row = sheet.createRow(i + 3);
row.createCell(0).setCellValue(listVO.getAccountName());
row.createCell(1).setCellValue(listVO.getAccountFullName()==null?"--":listVO.getAccountFullName());
row.createCell(2).setCellValue(listVO.getOrgName()==null?"--":listVO.getOrgName());
row.createCell(3).setCellValue(listVO.getExperience());
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/M/dd HH:mm:ss");
row.createCell(4).setCellValue(sdf1.format(listVO.getCreateTime()));
row.createCell(5).setCellValue(listVO.getDescription() == null ? "--" : listVO.getDescription());
row.createCell(6).setCellValue(listVO.getOrgNames());
}
}
String fileName = "所有人经验值变更明细下载" + sdf.format(new Date()) + ".xlsx";
// String requestPath = "/Users/dingxiaowei/aaa";
String requestPath = FileConstant.SAVE_PATH;
File fileDir = new File(requestPath);
if (!fileDir.exists()) {
fileDir.mkdir();
}
String path = requestPath + "/" + fileName;
FileOutputStream os = null;
File file = null;
try {
os = new FileOutputStream(path);
wb.write(os);
//阿里云返回url
String uploadUrl = OssUpload.upload(path, fileName);
file = new File(path);
success(taskContext, "成功导出" + list.size() + "条记录", uploadUrl);
} catch (Exception e2) {
e2.printStackTrace();
fail(taskContext, "所有人经验值变更明细下载写入过程中发生错误");
LOGGER.error("所有人经验值变更明细下载写入过程中发生错误");
} finally {
if (os != null) {
os.close();
}
if (wb != null) {
wb.close();
}
if (file != null) {
file.delete();
}
}
} catch (Exception e) {
e.printStackTrace();
fail(taskContext, "所有人经验值变更明细下载发生错误");
LOGGER.error("所有人经验值变更明细下载发生错误,请查看日志");
}
return null;
}
}
package com.yizhi.application.asynchronousTask;
import com.yizhi.application.domain.ExperiencePool;
import com.yizhi.application.service.IExperiencePoolService;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.custom.api.vo.custom.ExperiencePoolReportExportVo;
import com.yizhi.core.application.context.TaskContext;
import com.yizhi.core.application.file.constant.FileConstant;
import com.yizhi.core.application.file.task.AbstractDefaultTask;
import com.yizhi.core.application.file.util.OssUpload;
import com.yizhi.system.application.system.remote.OrganizationClient;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Ding
* @className ViewStageDetailsExport
* @description 经验池报表导出阶段经验变更明细
* @date 2019/9/5
**/
@Component
public class ViewStageDetailsExport extends AbstractDefaultTask<Map, Map<String, Object>> {
private static final Logger LOGGER = LoggerFactory.getLogger(ViewStageDetailsExport.class);
@Autowired
private IExperiencePoolService poolService;
@Autowired
private OrganizationClient organizationClient;
@Override
protected Map execute(Map<String, Object> map) {
//从map中取信息
Long taskId = (Long) map.get("taskId");
String serialNo = (String) map.get("serialNo");
String taskName = (String) map.get("taskName");
Long poolId = (Long) map.get("poolId");
String startTime = (String) map.get("startTime");
String endTime = (String) map.get("endTime");
String orgName = (String) map.get("orgName");
String accountName = (String) map.get("accountName");
RequestContext res = (RequestContext) map.get("res");
//开始异步任务
TaskContext taskContext = new TaskContext(taskId, serialNo, taskName,
res.getAccountId(), new Date(), res.getSiteId(), res.getCompanyId());
working(taskContext);
List<ExperiencePoolReportExportVo> list = null;
//获取导出数据
try {
list = poolService.viewAllDetails(poolId, startTime, endTime, orgName, accountName, null, res);
if (CollectionUtils.isEmpty(list)) {
success(taskContext, "未找到数据", "");
}
} catch (Exception e) {
LOGGER.error("获取数据过程中出现错误", e);
fail(taskContext, "获取数据过程中出现错误");
}
//生成excel,上传阿里云返回url
try {
//获取经验池名称
ExperiencePool experiencePool = poolService.selectById(poolId);
String poolName = experiencePool.getExperiencePoolName();
//创建excel文件
XSSFWorkbook wb = new XSSFWorkbook();
//创建报表页
XSSFSheet sheet = wb.createSheet("阶段经验变更明细");
//创建表头
XSSFRow row = sheet.createRow(0);
//设置格式(水平垂直居中,加粗,字体大小14号)
XSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
XSSFFont font = wb.createFont();
font.setBold(true);
font.setFontHeightInPoints((short) 14);
style.setFont(font);
CellRangeAddress cra = new CellRangeAddress(0, 0, 0, 6);
//表头合并单元格
sheet.addMergedRegion(cra);
XSSFCell cell = row.createCell(0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
//填写表头名
cell.setCellValue("经验值变更明细统计");
//表头居中
cell.setCellStyle(style);
cra = new CellRangeAddress(1, 1, 0, 6);
//第二行合并单元格合并单元格
sheet.addMergedRegion(cra);
row = sheet.createRow(1);
row.createCell(0).setCellValue("经验池: " + poolName);
cra = new CellRangeAddress(2, 2, 0, 6);
//第三行合并单元格合并单元格
sheet.addMergedRegion(cra);
row = sheet.createRow(2);
row.createCell(0).setCellValue("统计周期: " + startTime + "~" + endTime);
row = sheet.createRow(3);
//重新设置格式(只加粗)
style = wb.createCellStyle();
font = wb.createFont();
font.setBold(true);
style.setFont(font);
cell = row.createCell(0);
cell.setCellStyle(style);
cell.setCellValue("用户名");
cell = row.createCell(1);
cell.setCellStyle(style);
cell.setCellValue("姓名");
cell = row.createCell(2);
cell.setCellStyle(style);
cell.setCellValue("所在部门");
cell = row.createCell(3);
cell.setCellStyle(style);
cell.setCellValue("变动值");
cell = row.createCell(4);
cell.setCellStyle(style);
cell.setCellValue("时间");
cell = row.createCell(5);
cell.setCellStyle(style);
cell.setCellValue("明细");
cell = row.createCell(6);
cell.setCellStyle(style);
cell.setCellValue("所在组织架构");
Map<Long, String> orgNamesMap = new HashMap<>(16);
//组装数据
if (CollectionUtils.isNotEmpty(list)) {
for (int i = 0; i < list.size(); i++) {
ExperiencePoolReportExportVo listVO = list.get(i);
row = sheet.createRow(i + 4);
row.createCell(0).setCellValue(listVO.getAccountName());
row.createCell(1).setCellValue(listVO.getAccountFullName()==null?"--":listVO.getAccountFullName());
row.createCell(2).setCellValue(listVO.getOrgName()==null?"--":listVO.getOrgName());
row.createCell(3).setCellValue(listVO.getExperience());
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/M/dd HH:mm:ss");
row.createCell(4).setCellValue(sdf1.format(listVO.getCreateTime()));
row.createCell(5).setCellValue(listVO.getDescription() == null ? "--" : listVO.getDescription());
if (null != orgNamesMap.get(listVO.getOrgId())) {
row.createCell(6).setCellValue(orgNamesMap.get(listVO.getOrgId()));
} else {
String orgNames = "";
List<String> orgNamesList = organizationClient.getChiefOrgNames(listVO.getOrgId(), res.getCompanyId());
if (CollectionUtils.isNotEmpty(orgNamesList)) {
for (String s : orgNamesList) {
if (StringUtils.isNotBlank(orgNames)) {
orgNames = orgNames + "/" + s;
} else {
orgNames = orgNames + s;
}
}
row.createCell(6).setCellValue(orgNames);
orgNamesMap.put(listVO.getOrgId(), orgNames);
}else {
row.createCell(6).setCellValue("--");
orgNamesMap.put(listVO.getOrgId(), "--");
}
}
}
}
String fileName = "阶段经验值变更明细下载" + sdf.format(new Date()) + ".xlsx";
// String requestPath = "/Users/dingxiaowei/aaa";
String requestPath = FileConstant.SAVE_PATH;
File fileDir = new File(requestPath);
if (!fileDir.exists()) {
fileDir.mkdir();
}
String path = requestPath + "/" + fileName;
FileOutputStream os = null;
File file = null;
try {
os = new FileOutputStream(path);
wb.write(os);
//阿里云返回url
String uploadUrl = OssUpload.upload(path, fileName);
file = new File(path);
success(taskContext, "成功导出" + list.size() + "条记录", uploadUrl);
} catch (Exception e2) {
e2.printStackTrace();
fail(taskContext, "阶段经验值变更明细下载写入过程中发生错误");
LOGGER.error("阶段经验值变更明细下载写入过程中发生错误");
} finally {
if (os != null) {
os.close();
}
if (wb != null) {
wb.close();
}
if (file != null) {
file.delete();
}
}
} catch (Exception e) {
e.printStackTrace();
fail(taskContext, "阶段经验值变更明细下载发生错误");
LOGGER.error("阶段经验值变更明细下载发生错误,请查看日志");
}
return null;
}
}
package com.yizhi.application.asynchronousTask;
import com.yizhi.application.domain.ExperiencePool;
import com.yizhi.application.service.IExperiencePoolService;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.custom.api.vo.custom.ExperiencePoolReportExportVo;
import com.yizhi.core.application.context.TaskContext;
import com.yizhi.core.application.file.constant.FileConstant;
import com.yizhi.core.application.file.task.AbstractDefaultTask;
import com.yizhi.core.application.file.util.OssUpload;
import com.yizhi.system.application.system.remote.OrganizationClient;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Ding
* @className ViewStagePurchaseDetailsExport
* @description 经验池报表导出阶段经验消费变更明细
* @date 2019/9/5
**/
@Component
public class ViewStagePurchaseDetailsExport extends AbstractDefaultTask<Map, Map<String, Object>> {
private static final Logger LOGGER = LoggerFactory.getLogger(ViewStagePurchaseDetailsExport.class);
@Autowired
private IExperiencePoolService poolService;
@Autowired
private OrganizationClient organizationClient;
@Override
protected Map execute(Map<String, Object> map) {
//从map中取信息
Long taskId = (Long) map.get("taskId");
String serialNo = (String) map.get("serialNo");
String taskName = (String) map.get("taskName");
Long poolId = (Long) map.get("poolId");
String startTime = (String) map.get("startTime");
String endTime = (String) map.get("endTime");
String orgName = (String) map.get("orgName");
String accountName = (String) map.get("accountName");
RequestContext res = (RequestContext) map.get("res");
//开始异步任务
TaskContext taskContext = new TaskContext(taskId, serialNo, taskName,
res.getAccountId(), new Date(), res.getSiteId(), res.getCompanyId());
working(taskContext);
List<ExperiencePoolReportExportVo> list = null;
//获取导出数据
try {
list = poolService.viewAllDetails(poolId, startTime, endTime, orgName, accountName, 2, res);
if (CollectionUtils.isEmpty(list)) {
success(taskContext, "未找到数据", "");
}
} catch (Exception e) {
LOGGER.error("获取数据过程中出现错误", e);
fail(taskContext, "获取数据过程中出现错误");
}
//生成excel,上传阿里云返回url
try {
//获取经验池名称
ExperiencePool experiencePool = poolService.selectById(poolId);
String poolName = experiencePool.getExperiencePoolName();
//创建excel文件
XSSFWorkbook wb = new XSSFWorkbook();
//创建报表页
XSSFSheet sheet = wb.createSheet("阶段经验值消耗明细下载");
//创建表头
XSSFRow row = sheet.createRow(0);
//设置格式(水平垂直居中,加粗,字体大小14号)
XSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
XSSFFont font = wb.createFont();
font.setBold(true);
font.setFontHeightInPoints((short) 14);
style.setFont(font);
CellRangeAddress cra = new CellRangeAddress(0, 0, 0, 5);
//表头合并单元格
sheet.addMergedRegion(cra);
XSSFCell cell = row.createCell(0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
//填写表头名
cell.setCellValue("经验值消耗明细统计");
//表头居中
cell.setCellStyle(style);
cra = new CellRangeAddress(1, 1, 0, 5);
//第二行合并单元格合并单元格
sheet.addMergedRegion(cra);
row = sheet.createRow(1);
row.createCell(0).setCellValue("经验池: " + poolName);
cra = new CellRangeAddress(2, 2, 0, 5);
//第三行合并单元格合并单元格
sheet.addMergedRegion(cra);
row = sheet.createRow(1);
row.createCell(0).setCellValue("统计周期: " + startTime + "~" + endTime);
row = sheet.createRow(3);
//重新设置格式(只加粗)
style = wb.createCellStyle();
font = wb.createFont();
font.setBold(true);
style.setFont(font);
cell = row.createCell(0);
cell.setCellStyle(style);
cell.setCellValue("用户名");
cell = row.createCell(1);
cell.setCellStyle(style);
cell.setCellValue("姓名");
cell = row.createCell(2);
cell.setCellStyle(style);
cell.setCellValue("所在部门");
cell = row.createCell(3);
cell.setCellStyle(style);
cell.setCellValue("变动值");
cell = row.createCell(4);
cell.setCellStyle(style);
cell.setCellValue("时间");
cell = row.createCell(5);
cell.setCellStyle(style);
cell.setCellValue("明细");
cell = row.createCell(6);
cell.setCellStyle(style);
cell.setCellValue("所在组织架构");
Map<Long,String> orgNamesMap = new HashMap<>(16);
//组装数据
if (CollectionUtils.isNotEmpty(list)) {
for (int i = 0; i < list.size(); i++) {
ExperiencePoolReportExportVo listVO = list.get(i);
row = sheet.createRow(i + 4);
row.createCell(0).setCellValue(listVO.getAccountName());
row.createCell(1).setCellValue(listVO.getAccountFullName() == null ? "--" : listVO.getAccountFullName());
row.createCell(2).setCellValue(listVO.getOrgName() == null ? "--" : listVO.getOrgName());
row.createCell(3).setCellValue(listVO.getExperience());
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/M/dd HH:mm:ss");
row.createCell(4).setCellValue(sdf1.format(listVO.getCreateTime()));
row.createCell(5).setCellValue(listVO.getDescription() == null ? "--" : listVO.getDescription());
if (null != orgNamesMap.get(listVO.getOrgId())) {
row.createCell(6).setCellValue(orgNamesMap.get(listVO.getOrgId()));
} else {
String orgNames = "";
List<String> orgNamesList = organizationClient.getChiefOrgNames(listVO.getOrgId(), res.getCompanyId());
if (CollectionUtils.isNotEmpty(orgNamesList)) {
for (String s : orgNamesList) {
if (StringUtils.isNotBlank(orgNames)) {
orgNames = orgNames + "/" + s;
} else {
orgNames = orgNames + s;
}
}
row.createCell(6).setCellValue(orgNames);
orgNamesMap.put(listVO.getOrgId(), orgNames);
}else {
row.createCell(6).setCellValue("--");
orgNamesMap.put(listVO.getOrgId(), "--");
}
}
}
}
String fileName = "阶段经验值消耗明细下载" + sdf.format(new Date()) + ".xlsx";
// String requestPath = "/Users/dingxiaowei/aaa";
String requestPath = FileConstant.SAVE_PATH;
File fileDir = new File(requestPath);
if (!fileDir.exists()) {
fileDir.mkdir();
}
String path = requestPath + "/" + fileName;
FileOutputStream os = null;
File file = null;
try {
os = new FileOutputStream(path);
wb.write(os);
//阿里云返回url
String uploadUrl = OssUpload.upload(path, fileName);
file = new File(path);
success(taskContext, "成功导出" + list.size() + "条记录", uploadUrl);
} catch (Exception e2) {
e2.printStackTrace();
fail(taskContext, "阶段经验值消耗明细下载写入过程中发生错误");
LOGGER.error("阶段经验值消耗明细下载写入过程中发生错误");
} finally {
if (os != null) {
os.close();
}
if (wb != null) {
wb.close();
}
if (file != null) {
file.delete();
}
}
} catch (Exception e) {
e.printStackTrace();
fail(taskContext, "阶段经验值消耗明细下载发生错误");
LOGGER.error("阶段经验值消耗明细下载发生错误,请查看日志");
}
return null;
}
}
package com.yizhi.application.constant;
/**
* @author Ding
* @className Constant
* @description TODO
* @date 2019/12/18
**/
public interface Constant {
public final static Integer COURSE_TRANINNING_TYPE = 0;
}
package com.yizhi.application.constant;
public enum PointEventEnum {
/**
* 课程
*/
POINTCOURSE("pointCourse"),
/**
* 考试
*/
POINTEXAM("pointExam"),
/**
* 调研
*/
POINTRESEARCH("pointResearch"),
/**
* 投票
*/
POINTVOTE("pointVote"),
/**
* 作业
*/
POINTASSIGNMENT("pointTassgnment"),
/**
* 测验
*/
POINTCOURSETEST("pointCourseTest"),
/**
* 线下课程
*/
POINTOFFLINECOURSE("pointOfflineCourse");
private String key;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
private PointEventEnum(String key){
this.key = key;
}
}
package com.yizhi.application.constant;
/**
* 经验池常量
*/
public interface PoolConstant {
public static final Integer COURSETYPE = 1;
public static final Integer EXAMTYPE = 2;
public static final Integer RESEARCHTYPE = 3;
public static final Integer VOTETYPE = 4;
public static final Integer ASSIGNMENTTYPE = 6;
}
package com.yizhi.application.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.application.domain.ExperiencePool;
import com.yizhi.application.domain.ExperiencePoolAuthorize;
import com.yizhi.application.service.IExperiencePoolAuthorizeService;
import com.yizhi.application.service.IExperiencePoolService;
import com.yizhi.custom.api.feign.ExperiencePoolAuthorizeClient;
import com.yizhi.custom.api.vo.custom.VisibleRangeExportVo;
import com.yizhi.custom.api.vo.domain.ExperiencePoolAuthorizeVo;
import com.yizhi.exam.application.vo.exam.VisibleRangeExport;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
* <p>
* 前端控制器
* </p>
*
* @author ding
* @since 2018-11-06
*/
@RestController
@RequestMapping("/manage/experiencePool")
public class ExperiencePoolAuthorizeController implements ExperiencePoolAuthorizeClient {
@Autowired
private IExperiencePoolAuthorizeService poolAuthorizeService;
@Autowired
private IExperiencePoolService poolService;
@Override
@PostMapping("/authorize/insert")
public boolean insertExperiencePoolAuthorize(@RequestBody List<ExperiencePoolAuthorizeVo> poolAuthorizeList) {
List<ExperiencePoolAuthorize> list = new ArrayList<>();
if (!poolAuthorizeList.isEmpty()){
for (ExperiencePoolAuthorizeVo ex:poolAuthorizeList) {
ExperiencePoolAuthorize ep=new ExperiencePoolAuthorize();
BeanUtils.copyProperties(ex,ep);
list.add(ep);
}
}
return poolAuthorizeService.insertAuthorizeList(list);
}
@Override
@GetMapping("/authorize/list")
public VisibleRangeExportVo listAuthorizes(Long experiencePoolId) {
VisibleRangeExport visibleRangeExport = new VisibleRangeExport();
List<Long> accountIds = new ArrayList<>();
List<Long> orgIds = new ArrayList<>();
Map<Long, SortedMap<String, String>> map = new HashMap<>();
SortedMap<String, String> sortedMap = null;
//查出可见范围列表
ExperiencePoolAuthorize poolAuthorize = new ExperiencePoolAuthorize();
poolAuthorize.setExperienceId(experiencePoolId);
EntityWrapper<ExperiencePoolAuthorize> entityWrapper = new EntityWrapper<>(poolAuthorize);
List<ExperiencePoolAuthorize> list = poolAuthorizeService.selectList(entityWrapper);
//查出经验池名称
ExperiencePool experiencePool = new ExperiencePool();
experiencePool = poolService.selectById(experiencePoolId);
//将导出所需要具体关键字装入实体类中
if (CollectionUtils.isNotEmpty(list)) {
for (ExperiencePoolAuthorize authorize : list) {
if (authorize.getType() == 1) {
sortedMap = new TreeMap<String, String>();
accountIds.add(authorize.getRelationId());
sortedMap.put("group", authorize.getGroup());
sortedMap.put("batchNo", authorize.getBatchNo());
sortedMap.put("note", authorize.getNote());
map.put(authorize.getRelationId(), sortedMap);
} else if (authorize.getType() == 2) {
orgIds.add(authorize.getRelationId());
}
}
visibleRangeExport.setAccountIds(accountIds);
visibleRangeExport.setOrgIds(orgIds);
visibleRangeExport.setMap(map);
if (null != experiencePool) {
visibleRangeExport.setBizName(experiencePool.getExperiencePoolName());
}
} else {
if (null != experiencePool) {
visibleRangeExport.setBizName(experiencePool.getExperiencePoolName());
}
}
VisibleRangeExportVo v=new VisibleRangeExportVo();
BeanUtils.copyProperties(visibleRangeExport,v);
return v;
}
@Override
@GetMapping("/authorize/view")
public List<Map<String, Object>> getListMap(Long experiencePoolId) {
return poolAuthorizeService.getListMap(experiencePoolId);
}
}
package com.yizhi.application.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.application.domain.ExperiencePool;
import com.yizhi.application.service.IExperiencePoolService;
import com.yizhi.custom.api.feign.ExperiencePoolClient;
import com.yizhi.custom.api.param.ExperiencePoolParam;
import com.yizhi.custom.api.vo.custom.ExperiencePoolVoAutorizeAndProjectVO;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.yizhi.custom.api.vo.domain.ExperiencePoolVo;
import com.yizhi.custom.api.vo.domain.ProjectActivityExperienceVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 前端控制器
* </p>
*
* @author ding
* @since 2018-11-06
*/
@RestController
@RequestMapping("/manage/experiencePool")
public class ExperiencePoolController implements ExperiencePoolClient {
@Autowired
private IExperiencePoolService poolService;
@Override
@GetMapping("/list")
public Page<ExperiencePoolVo> getExperiencePoolList(@RequestBody ExperiencePoolParam param) {
Page<ExperiencePool> page = poolService.getExperiencePoolList(param);
Page<ExperiencePoolVo> pageVo=new Page<>(page.getCurrent(),page.getSize());
List<ExperiencePool> list=page.getRecords();
List<ExperiencePoolVo> lists=new ArrayList<>();
if (!list.isEmpty()){
for (ExperiencePool c:list) {
ExperiencePoolVo cc=new ExperiencePoolVo();
BeanUtils.copyProperties(c,cc);
lists.add(cc);
}
}
pageVo.setRecords(lists);
return pageVo;
}
@Override
@GetMapping("/view")
public ExperiencePoolVoAutorizeAndProjectVO getExperiencePoolView(Long poolId) {
return poolService.getExperiencePoolView(poolId);
}
@Override
@GetMapping("/delete")
public boolean deleteExperiencePool(Long poolId) {
return poolService.deleteById(poolId);
}
@Override
public boolean insertExperiencePoolList(@RequestBody List<ProjectActivityExperienceVo> projectActivityExperienceList) {
return false;
}
@Override
public List<ProjectActivityExperienceVo> getActivityExperienceList(Long poolId) {
return null;
}
@Override
@PostMapping("/save")
public Map<String, Object> insertExperiencePoolAuthorizeAndProject(
@RequestBody ExperiencePoolVoAutorizeAndProjectVO poolAutorizeAndProjectVO) {
return poolService.insertPoolAuthorizeAndProject(poolAutorizeAndProjectVO);
}
@Override
@GetMapping("/complete")
public boolean completeExperiencePool(Long poolId) {
return poolService.complete(poolId);
}
}
package com.yizhi.application.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.application.domain.ExperiencePoolLevel;
import com.yizhi.application.service.IExperiencePoolLevelService;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.custom.api.feign.ExperiencePoolLevelClient;
import com.yizhi.custom.api.vo.domain.ExperiencePoolLevelVo;
import com.yizhi.application.orm.id.IdGenerator;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
/**
* <p>
* 前端控制器
* </p>
*
* @author ding
* @since 2018-11-06
*/
@RestController
@RequestMapping("/manage/experiencePool")
public class ExperiencePoolLevelController implements ExperiencePoolLevelClient {
@Autowired
IdGenerator idGenerator;
@Autowired
private IExperiencePoolLevelService poolLevelService;
@Override
@GetMapping("/level/list")
public List<ExperiencePoolLevelVo> getExperiencePoolLevelList(Long poolId) {
ExperiencePoolLevel poolLevel = new ExperiencePoolLevel();
poolLevel.setExperiencePoolId(poolId);
EntityWrapper<ExperiencePoolLevel> entityWrapper = new EntityWrapper<>(poolLevel);
entityWrapper.orderBy("min_level_experience", true);
List<ExperiencePoolLevel> list = poolLevelService.selectList(entityWrapper);
List<ExperiencePoolLevelVo> levelVos=new ArrayList<>();
if (!list.isEmpty()) {
for (ExperiencePoolLevel pl : list) {
ExperiencePoolLevelVo pls=new ExperiencePoolLevelVo();
BeanUtils.copyProperties(pl,pls);
levelVos.add(pls);
}
}
return levelVos;
}
@Override
@GetMapping("/level/view")
public ExperiencePoolLevelVo getExperiencePoolLevelView(Long poolId) {
ExperiencePoolLevel pl=poolLevelService.selectById(poolId);
ExperiencePoolLevelVo pls=new ExperiencePoolLevelVo();
BeanUtils.copyProperties(pl,pls);
return pls;
}
@Override
@GetMapping("/level/delete")
public boolean deleteExperiencePoolLevel(Long poolLevelId) {
return poolLevelService.deleteById(poolLevelId);
}
@Override
@GetMapping("/level/insert")
public Map<String, Object> insertExperiencePoolLevel(@RequestBody ExperiencePoolLevelVo experiencePoolLevel) {
Map<String, Object> resultMap = new HashMap<>();
RequestContext res = ContextHolder.get();
ExperiencePoolLevel experiencePoolLevel1 = new ExperiencePoolLevel();
experiencePoolLevel1.setLevelNo(experiencePoolLevel.getLevelNo());
experiencePoolLevel1.setExperiencePoolId(experiencePoolLevel.getExperiencePoolId());
EntityWrapper<ExperiencePoolLevel> entityWrapper = new EntityWrapper<>(experiencePoolLevel1);
//如果是修改,重复编码和等级验证
if (null != experiencePoolLevel.getId()) {
if (!poolLevelService.selectById(experiencePoolLevel.getId()).getLevelNo().equals(experiencePoolLevel.getLevelNo())
&& CollectionUtils.isNotEmpty(poolLevelService.selectList(entityWrapper))) {
resultMap.put("isOk", false);
return resultMap;
} else {
experiencePoolLevel1 = new ExperiencePoolLevel();
experiencePoolLevel1.setMinLevelExperience(experiencePoolLevel.getMinLevelExperience());
experiencePoolLevel1.setExperiencePoolId(experiencePoolLevel.getExperiencePoolId());
entityWrapper = new EntityWrapper<>(experiencePoolLevel1);
if (!poolLevelService.selectById(experiencePoolLevel.getId()).getMinLevelExperience().equals(experiencePoolLevel.getMinLevelExperience())
&& CollectionUtils.isNotEmpty(poolLevelService.selectList(entityWrapper))) {
resultMap.put("isOk", false);
return resultMap;
} else {
resultMap.put("isOk", true);
}
}
} else {
//如果是新建,重复编码和等级验证
if (CollectionUtils.isNotEmpty(poolLevelService.selectList(entityWrapper))) {
resultMap.put("isOk", false);
return resultMap;
} else {
experiencePoolLevel1 = new ExperiencePoolLevel();
experiencePoolLevel1.setMinLevelExperience(experiencePoolLevel.getMinLevelExperience());
experiencePoolLevel1.setExperiencePoolId(experiencePoolLevel.getExperiencePoolId());
entityWrapper = new EntityWrapper<>(experiencePoolLevel1);
if (CollectionUtils.isNotEmpty(poolLevelService.selectList(entityWrapper))) {
resultMap.put("isOk", false);
return resultMap;
} else {
resultMap.put("isOk", true);
}
}
}
ExperiencePoolLevel plv=new ExperiencePoolLevel();
BeanUtils.copyProperties(experiencePoolLevel,plv);
//修改更新入库
if (null != plv.getId()) {
plv.setUpdateById(res.getAccountId());
plv.setUpdateByName(res.getAccountFullName());
plv.setUpdateTime(new Date());
poolLevelService.updateById(plv);
} else {
//新建入库
plv.setId(idGenerator.generate());
plv.setCreateTime(new Date());
plv.setCreateById(res.getAccountId());
plv.setCreateByName(res.getAccountFullName());
poolLevelService.insert(plv);
}
resultMap.put("experiencePoolLevel", experiencePoolLevel);
return resultMap;
}
}
package com.yizhi.application.controller;
import java.util.ArrayList;
import java.util.List;
import com.yizhi.application.domain.ExperiencePoolProject;
import com.yizhi.application.mapper.ExperiencePoolProjectMapper;
import com.yizhi.custom.api.vo.domain.ExperiencePoolProjectVo;
import org.springframework.beans.BeanUtils;
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.RestController;
import com.yizhi.custom.api.feign.ExperiencePoolProjectClient;
/**
* <p>
* 前端控制器
* </p>
*
* @author ding
* @since 2018-11-06
*/
@RestController
@RequestMapping("/manage/experiencePool")
public class ExperiencePoolProjectController implements ExperiencePoolProjectClient {
@Autowired
private ExperiencePoolProjectMapper experiencePoolProjectMapper;
@Override
@GetMapping("/project/view")
public List<ExperiencePoolProjectVo> getExperiencePoolProjectList(Long experiencePoolId) {
List<ExperiencePoolProject> list = experiencePoolProjectMapper.getExperiencePoolProjectList(experiencePoolId);
List<ExperiencePoolProjectVo> levelVos=new ArrayList<>();
if (!list.isEmpty()) {
for (ExperiencePoolProject pl : list) {
ExperiencePoolProjectVo pls=new ExperiencePoolProjectVo();
BeanUtils.copyProperties(pl,pls);
levelVos.add(pls);
}
}
return levelVos;
}
}
package com.yizhi.application.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.application.service.IExperiencePoolService;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.custom.api.feign.ExperiencePoolReportClient;
import com.yizhi.custom.api.vo.custom.ExperiencePoolReportExportVo;
import com.yizhi.custom.api.vo.custom.ExperiencePoolReportVo;
import com.yizhi.application.asynchronousTask.ViewAccountDetailsExport;
import com.yizhi.application.asynchronousTask.ViewAllDetailsExport;
import com.yizhi.application.asynchronousTask.ViewStageDetailsExport;
import com.yizhi.application.asynchronousTask.ViewStagePurchaseDetailsExport;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.application.orm.id.IdGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
/**
* @author Ding
* @className ExperiencePoolReportController
* @description TODO
* @date 2018/11/29
**/
@RestController
public class ExperiencePoolReportController implements ExperiencePoolReportClient {
@Autowired
private IExperiencePoolService poolService;
@Autowired
private ViewAccountDetailsExport viewAccountDetailsExport;
@Autowired
private ViewAllDetailsExport viewAllDetailsExport;
@Autowired
private ViewStageDetailsExport viewStageDetailsExport;
@Autowired
private ViewStagePurchaseDetailsExport viewStagePurchaseDetailsExport;
@Autowired
private IdGenerator idGenerator;
@Override
public Page<ExperiencePoolReportVo> poolReportList(@RequestParam(value = "poolName", required = false) String poolName,
@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize,
@RequestBody RequestContext requestContext) {
return poolService.getPoolReportList(poolName, pageNo, pageSize, requestContext);
}
@Override
public Page<ExperiencePoolReportExportVo> viewPoolReportList(Long poolId, String key, String orgName, Integer pageNo, Integer pageSize,
Integer type, String startTime, String endTime, Long siteId,@RequestBody RequestContext requestContext) {
return poolService.getReportViewList(poolId, key, orgName, pageNo, pageSize, type, startTime, endTime, siteId, requestContext);
}
@Override
public Page<ExperiencePoolReportExportVo> viewAccountDetails(Long poolId, Long accountId, Integer state, Integer pageNo, Integer pageSize) {
return poolService.viewAccountDetails(poolId, accountId, state, pageNo, pageSize);
}
@Override
public String viewAccountDetailsExport(Long poolId, Long accountId, Integer state) {
Map<String, Object> map = new HashMap<>();
Long taskId = idGenerator.generate();
String taskName = "经验-查看-按用户统计-查看-经验值变更明细下载-" + taskId.toString();
String serialNo = "EXPERIENCE-VIEW-ACCOUNT-DETAILS-" + taskId.toString();
RequestContext res = ContextHolder.get();
map.put("taskId", taskId);
map.put("taskName", taskName);
map.put("serialNo", serialNo);
map.put("res", res);
map.put("poolId", poolId);
map.put("accountId", accountId);
map.put("state", state);
viewAccountDetailsExport.execute(map, true);
return serialNo;
}
@Override
public String viewAllDetailsExport(Long poolId) {
Map<String, Object> map = new HashMap<>();
Long taskId = idGenerator.generate();
String taskName = "经验-查看-导出全部变更明细-" + taskId.toString();
String serialNo = "EXPERIENCE-VIEW-ALL-DETAILS-" + taskId.toString();
RequestContext res = ContextHolder.get();
map.put("taskId", taskId);
map.put("taskName", taskName);
map.put("serialNo", serialNo);
map.put("res", res);
map.put("poolId", poolId);
viewAllDetailsExport.execute(map, true);
return serialNo;
}
@Override
public String viewStageDetailsExport(Long poolId, String startTime, String endTime, String orgName, String accountName) {
Map<String, Object> map = new HashMap<>();
Long taskId = idGenerator.generate();
String taskName = "经验-查看-阶段经验值变动统计-明细导出-" + taskId.toString();
String serialNo = "EXPERIENCE-VIEW-STAGE-DETAILS-" + taskId.toString();
RequestContext res = ContextHolder.get();
map.put("taskId", taskId);
map.put("taskName", taskName);
map.put("serialNo", serialNo);
map.put("res", res);
map.put("poolId", poolId);
map.put("startTime", startTime);
map.put("endTime", endTime);
map.put("orgName", orgName);
map.put("accountName", accountName);
viewStageDetailsExport.execute(map, true);
return serialNo;
}
@Override
public String viewStagePurchaseDetailsExport(Long poolId, String startTime, String endTime, String orgName, String accountName) {
Map<String, Object> map = new HashMap<>();
Long taskId = idGenerator.generate();
String taskName = "经验-查看-阶段经验值变动统计-消耗明细导出-" + taskId.toString();
String serialNo = "EXPERIENCE-VIEW-STAGE-PURCHASE-DETAILS-" + taskId.toString();
RequestContext res = ContextHolder.get();
map.put("taskId", taskId);
map.put("taskName", taskName);
map.put("serialNo", serialNo);
map.put("res", res);
map.put("poolId", poolId);
map.put("startTime", startTime);
map.put("endTime", endTime);
map.put("orgName", orgName);
map.put("accountName", accountName);
viewStagePurchaseDetailsExport.execute(map, true);
return serialNo;
}
}
package com.yizhi.application.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
/**
* <p>
* 经验发放记录表 前端控制器
* </p>
*
* @author dingxiaowei123
* @since 2019-01-02
*/
@Controller
@RequestMapping("/experienceRecord")
public class ExperienceRecordController {
}
package com.yizhi.application.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.application.domain.Product;
import com.yizhi.application.domain.StudentExperience;
import com.yizhi.application.service.IProductService;
import com.yizhi.application.service.IStudentExperienceService;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.custom.api.feign.PurchaseProductClient;
import com.yizhi.custom.api.param.PurchaseProductsParam;
import com.yizhi.custom.api.vo.custom.ProductVO;
import com.yizhi.custom.api.vo.domain.ProductVo;
import com.yizhi.core.application.cache.distributedlock.impl.RedisDistributedLock;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.point.application.feign.PointDetailsFeignClients;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author dingxiaowei123
* @since 2019-09-19
*/
@RestController
public class ProductController implements PurchaseProductClient {
private static final Logger LOGGER = LoggerFactory.getLogger(ProductController.class);
@Autowired
private PointDetailsFeignClients pointDetailsFeignClients;
@Autowired
private IStudentExperienceService studentExperienceService;
@Autowired
private IProductService productService;
@Autowired
private RedisDistributedLock redisDistributedLock;
@Override
public ProductVO getProducts(Long poolId) {
RequestContext res = ContextHolder.get();
Integer totalPoint = pointDetailsFeignClients.queryPiont(res.getAccountId(),
res.getCompanyId(), res.getSiteId(), res.getOrgId());
if (null == totalPoint) {
totalPoint = 0;
}
Long totalExperience = studentExperienceService.getTotalExperience(poolId, res.getAccountId());
Product product = new Product();
product.setCompanyId(res.getCompanyId());
product.setSiteId(res.getSiteId());
product.setState(1);
List<Product> products = productService.selectList(new EntityWrapper<>(product));
List<ProductVo> productVos=new ArrayList<>();
for (Product p:products) {
ProductVo pv=new ProductVo();
BeanUtils.copyProperties(p,pv);
productVos.add(pv);
}
ProductVO productVO = new ProductVO();
productVO.setTotalPoint(totalPoint);
productVO.setTotalExperience(totalExperience);
if (CollectionUtils.isNotEmpty(products)) {
productVO.setProducts(productVos);
}
return productVO;
}
@Override
@RequestMapping(produces = "text/plain;charset=UTF-8")
public String purchaseProducts(@RequestBody PurchaseProductsParam param) {
List<ProductVo> products = param.getProducts();
RequestContext res = ContextHolder.get();
String purchaseProductName = "";
String emptyProductName = "";
if (CollectionUtils.isNotEmpty(products)) {
for (ProductVo product : products) {
String lockName = "product_" + product.getId();
//获取redis锁
if (redisDistributedLock.lock(lockName)) {
try {
Product product1 = productService.selectById(product.getId());
//如果库存足够,购买商品
if (product1.getRemainingAmount() >= product.getAmount()) {
StudentExperience studentExperience = new StudentExperience();
studentExperience.setActivityName(product1.getProductName());
studentExperience.setCompanyId(res.getCompanyId());
studentExperience.setSiteId(res.getSiteId());
//消费经验
studentExperience.setType(10);
studentExperience.setCreateById(res.getAccountId());
studentExperience.setCreateByName(res.getAccountName());
studentExperience.setState(1);
studentExperience.setAccountId(res.getAccountId());
studentExperience.setAccountName(res.getAccountName());
studentExperience.setExperiencePoolId(param.getPoolId());
studentExperience.setExperience(product1.getPrice() * product.getAmount());
studentExperienceService.insertStudentExperience(studentExperience);
//库存更新
product1.setRemainingAmount(product1.getRemainingAmount() - product.getAmount());
productService.updateById(product1);
if (StringUtils.isBlank(purchaseProductName)) {
purchaseProductName += product1.getProductName();
} else {
purchaseProductName += "," + product1.getProductName();
}
} else {
//库存不足,不能购买
if (StringUtils.isBlank(emptyProductName)) {
emptyProductName += product1.getProductName();
} else {
emptyProductName += "," + product1.getProductName();
}
}
} catch (Exception e) {
LOGGER.error("商品" + product.getId() + "购买异常", e);
} finally {
redisDistributedLock.releaseLock(lockName);
LOGGER.info("释放reids锁" + lockName);
}
}
}
String result = null;
if (StringUtils.isBlank(purchaseProductName)) {
result = emptyProductName + "库存不足,未能购买";
} else if (StringUtils.isBlank(emptyProductName)) {
result = "购买成功";
} else {
result = purchaseProductName + "购买成功," + emptyProductName + "库存不足,未能购买";
}
System.out.println(result);
return result;
}
return null;
}
}
package com.yizhi.application.controller;
import java.util.ArrayList;
import java.util.List;
import com.yizhi.application.domain.ProjectActivityExperience;
import com.yizhi.application.service.IProjectActivityExperienceService;
import com.yizhi.custom.api.vo.custom.ExperienceRulesVO;
import com.yizhi.custom.api.vo.domain.ProjectActivityExperienceVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.yizhi.custom.api.feign.ProjectActivityExperienceClient;
/**
* <p>
* 前端控制器
* </p>
*
* @author ding
* @since 2018-11-06
*/
@RestController
@RequestMapping("/manage/experiencePool/projectActivity")
public class ProjectActivityExperienceController implements ProjectActivityExperienceClient {
@Autowired
private IProjectActivityExperienceService activityExperienceService;
@Override
@PostMapping("/insert")
public boolean insertProjectActivityExperienceList(@RequestBody List<ProjectActivityExperienceVo> projectActivityExperienceList) {
List<ProjectActivityExperience> list=new ArrayList<>();
if (!projectActivityExperienceList.isEmpty()) {
for (ProjectActivityExperienceVo pv : projectActivityExperienceList) {
ProjectActivityExperience pvs=new ProjectActivityExperience();
BeanUtils.copyProperties(pv,pvs);
list.add(pvs);
}
}
return activityExperienceService.insertList(list);
}
@Override
@GetMapping("/getRules")
public List<ExperienceRulesVO> getExperienceRules(Long poolId) {
return activityExperienceService.getExperienceRules(poolId);
}
}
package com.yizhi.application.controller;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.application.domain.ProjectActivityExperience;
import com.yizhi.application.domain.ProjectActivityExperienceSet;
import com.yizhi.application.service.IProjectActivityExperienceService;
import com.yizhi.application.service.IProjectActivityExperienceSetService;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.custom.api.vo.domain.ProjectActivityExperienceSetVo;
import com.yizhi.core.application.context.ContextHolder;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
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 com.yizhi.custom.api.feign.ProjectActivityExperienceSetClient;
/**
* <p>
* 前端控制器
* </p>
*
* @author ding
* @since 2018-11-06
*/
@RestController
@RequestMapping("/manage/experiencePool")
public class ProjectActivityExperienceSetController implements ProjectActivityExperienceSetClient {
@Autowired
private IProjectActivityExperienceSetService activityExperienceSetService;
@Autowired
private IProjectActivityExperienceService activityExperienceService;
@Override
@GetMapping("/projectActivityExperienceSet/list")
public Map<String, Object> getProjectActivityExperienceSets(@RequestParam("activityExperienceId") Long activityExperienceId,
@RequestParam(value = "setType", required = false) Integer setType) {
return activityExperienceSetService.getSets(activityExperienceId, setType);
}
@Override
@GetMapping("/projectActivityExperienceSet/view")
public ProjectActivityExperienceSetVo viewProjectActivityExperienceSet(Long activityExperienceSetId) {
ProjectActivityExperienceSet pa=activityExperienceSetService.selectById(activityExperienceSetId);
ProjectActivityExperienceSetVo pav=new ProjectActivityExperienceSetVo();
BeanUtils.copyProperties(pa,pav);
return pav;
}
@Override
@GetMapping("/projectActivityExperienceSet/insert")
public Map<String, Object> insertProjectActivityExperienceSet(@RequestParam(value = "activityExperienceSetId", required = false) Long activityExperienceSetId,
@RequestParam(value = "activityExperienceId", required = true) Long activityExperienceId,
@RequestParam(value = "setType", required = true) Integer setType,
@RequestParam(value = "minScore", required = true) Integer minScore,
@RequestParam(value = "experience", required = true) Long experience) {
return activityExperienceSetService.insertSet(activityExperienceSetId, activityExperienceId, setType, minScore, experience);
}
@Override
@GetMapping("/projectActivityExperienceSet/insertWithScore")
public Map<String, Object> insertProjectActivityExperienceSetWithScore(@RequestParam(value = "activityExperienceSetId", required = false) Long activityExperienceSetId,
@RequestParam(value = "activityExperienceId", required = true) Long activityExperienceId,
@RequestParam(value = "setType", required = false) Integer setType,
@RequestParam(value = "times", required = false) Integer times) {
return activityExperienceSetService.insertSetWithScore(activityExperienceSetId, activityExperienceId, setType, times);
}
@Override
@GetMapping("/projectActivityExperienceSet/delete")
public boolean deleteProjectActivityExperienceSet(Long projectActivityExperienceSetId) {
RequestContext res = ContextHolder.get();
ProjectActivityExperienceSet projectActivityExperienceSet = new ProjectActivityExperienceSet();
projectActivityExperienceSet = activityExperienceSetService.selectById(projectActivityExperienceSetId);
boolean isOk = activityExperienceSetService.deleteById(projectActivityExperienceSetId);
ProjectActivityExperienceSet projectActivityExperienceSet1 = new ProjectActivityExperienceSet();
projectActivityExperienceSet1.setProjectActivityExperienceId(projectActivityExperienceSet.getProjectActivityExperienceId());
EntityWrapper<ProjectActivityExperienceSet> entityWrapper = new EntityWrapper<>(projectActivityExperienceSet1);
List<ProjectActivityExperienceSet> list = activityExperienceSetService.selectList(entityWrapper);
if (CollectionUtils.isEmpty(list)) {
ProjectActivityExperience projectActivityExperience = new ProjectActivityExperience();
projectActivityExperience.setId(projectActivityExperienceSet.getProjectActivityExperienceId());
projectActivityExperience.setActivityExperienceSource(0);
projectActivityExperience.setUpdateById(res.getAccountId());
projectActivityExperience.setUpdateByName(res.getAccountFullName());
projectActivityExperience.setUpdateTime(new Date());
activityExperienceService.updateById(projectActivityExperience);
}
return isOk;
}
@Override
@GetMapping("/projectActivityExperienceSets/delete")
public Map<String, Object> deleteProjectActivityExperienceSets(Long activityExperienceId) {
RequestContext res = ContextHolder.get();
Map<String, Object> map = new HashMap<>();
ProjectActivityExperienceSet activityExperienceSet = new ProjectActivityExperienceSet();
activityExperienceSet.setProjectActivityExperienceId(activityExperienceId);
EntityWrapper<ProjectActivityExperienceSet> entityWrapper = new EntityWrapper<>(activityExperienceSet);
boolean isOk = activityExperienceSetService.delete(entityWrapper);
if (isOk) {
ProjectActivityExperience projectActivityExperience = new ProjectActivityExperience();
projectActivityExperience.setId(activityExperienceId);
projectActivityExperience.setActivityExperienceSource(0);
projectActivityExperience.setUpdateById(res.getAccountId());
projectActivityExperience.setUpdateByName(res.getAccountFullName());
projectActivityExperience.setUpdateTime(new Date());
activityExperienceService.updateById(projectActivityExperience);
map.put("activityExperienceId", activityExperienceId);
map.put("source", 0);
return map;
}
return null;
}
}
package com.yizhi.application.controller;
import com.yizhi.application.domain.StudentExperience;
import com.yizhi.application.service.IStudentExperienceService;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.custom.api.feign.StudentExperienceClient;
import com.yizhi.custom.api.vo.domain.StudentExperienceVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 项目关联活动经验值表 前端控制器
* </p>
*
* @author dingxiaowei123
* @since 2018-11-12
*/
@RestController
@RequestMapping("/manage/experiencePool/studentExperience")
public class StudentExperienceController implements StudentExperienceClient {
@Autowired
private IStudentExperienceService studentExperienceService;
@Override
@PostMapping("/insert")
public boolean insertStudentExperienceList(@RequestBody List<StudentExperienceVo> studentExperienceList) {
List<StudentExperience> levelVos=new ArrayList<>();
if (!studentExperienceList.isEmpty()) {
for (StudentExperienceVo pl : studentExperienceList) {
StudentExperience pls=new StudentExperience();
BeanUtils.copyProperties(pl,pls);
levelVos.add(pls);
}
}
return studentExperienceService.insertStudentExperienceList(levelVos);
}
/**
* 经验池手动补发经验
*
* @param experiencePoolId
* @return
*/
@Override
@GetMapping("/push")
public boolean pushStudentExperience(Long experiencePoolId, Long activityId, String activityName, Integer activityType, @RequestParam("accountIds") List<Long> accountIds, @RequestBody RequestContext requestContext) {
return studentExperienceService.pushStudentExperience(experiencePoolId, activityId, activityName, activityType, accountIds, requestContext);
}
}
package com.yizhi.application.controller;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.core.application.event.EventWrapper;
import com.yizhi.core.application.publish.CloudEventPublisher;
import com.yizhi.core.application.task.AbstractTaskHandler;
import com.yizhi.core.application.task.TaskExecutor;
import com.yizhi.sign.application.feign.SignApiClient;
import com.yizhi.sign.application.feign.SignRecordApiClient;
import com.yizhi.sign.application.vo.SignVO;
import com.yizhi.training.application.feign.TrainingProjectClient;
import com.yizhi.training.application.vo.domain.TpAuthorizationRangeVo;
import com.yizhi.training.application.vo.domain.TrainingProjectVo;
import com.yizhi.util.application.constant.QueueConstant;
import com.yizhi.util.application.constant.TpActivityType;
import com.yizhi.util.application.domain.Response;
import com.yizhi.util.application.event.TrainingProjectEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.yizhi.core.application.context.ContextHolder;
import io.swagger.annotations.ApiOperation;
@RestController
@RequestMapping("/api/sign")
public class StudentSignController {
@Autowired
private SignApiClient signClient;
@Autowired
SignRecordApiClient signRecordApiClient;
@Autowired
private TrainingProjectClient trainingProjectClient;
@Autowired
private TaskExecutor taskExecutor;
@Autowired
private CloudEventPublisher cloudEventPublisher;
private static final Logger LOG = LoggerFactory.getLogger(StudentSignController.class);
@ApiOperation(value = "签到(扫码进入)", notes = "签到(扫码进入)")
@PostMapping(value = "/custom/scan")
public Response<Object> customSignScan(@RequestBody SignVO signVO) {
RequestContext requestContext = ContextHolder.get();
signVO.setSignType(1);
Long projectId = signVO.getTrainingProjectId();
List<Long> relationIds = requestContext.getRelationIds();
Long siteId = requestContext.getSiteId();
Long accountId = requestContext.getAccountId();
Map<String, String> signMap = new HashMap<String, String>();
boolean isPass = false;
TrainingProjectVo project = trainingProjectClient.getOne(projectId);
Integer range = project.getVisibleRange();
if (range != null && range == 1) {
if (siteId != null && project.getSiteId() != null && siteId.equals(project.getSiteId())) {
isPass = true;
}
} else if (range != null && range == 0 && siteId.equals(project.getSiteId())) {
List<TpAuthorizationRangeVo> tpAuthorizationRanges = trainingProjectClient.VisibleRange(projectId);
List<Long> rangeIds = new ArrayList<>();
if (tpAuthorizationRanges != null && tpAuthorizationRanges.size() > 0) {
rangeIds = tpAuthorizationRanges.stream().map(TpAuthorizationRangeVo::getRelationId).collect(Collectors.toList());
LOG.info("rangeIds" + rangeIds.toString());
}
if (rangeIds.contains(accountId)) {
isPass = true;
} else {
for (Long relationId : relationIds) {
if (rangeIds.contains(relationId)) {
isPass = true;
break;
}
}
}
}
if (isPass) {
return sign(signVO);
} else {
return Response.fail("4001", "签到失败,您不在该项目范围内");
}
}
@ApiOperation(value = "签到", notes = "签到")
@PostMapping(value = "/")
public Response<Object> sign(@RequestBody SignVO signVO) {
RequestContext requestContext = ContextHolder.get();
Long accountId = requestContext.getAccountId();
Map<String, String> signMap = new HashMap<String, String>();
boolean isPass = false;
if (null == requestContext) {
signMap.put("code", "0");
signMap.put("name", "非法签到");
return Response.ok(signMap);
}
signVO.setAccountId(accountId);
// 查询是否签到
String result = signClient.sign(signVO);
if (result.indexOf("成功") >= 0) {
signMap.put("code", "1");
signMap.put("name", result);
} else {
signMap.put("code", "0");
signMap.put("name", result);
}
LOG.info(result);
// 向培训项目发送消息,告知业务已经完成
try {
EventWrapper<TrainingProjectEvent> eventWrapper = new EventWrapper<TrainingProjectEvent>(signVO.getId(), TrainingProjectEvent.getInstance(signVO.getId(), TpActivityType.TYPE_SIGN, accountId, new Date(), requestContext.getSiteId()));
LOG.info("向培训项目发送消息,告知签到业务已经完成:{}", eventWrapper);
taskExecutor.asynExecute(new AbstractTaskHandler() {
@Override
public void handle() {
try {
cloudEventPublisher.publish(QueueConstant.TRAINING_PROJECT_EVENT_QUEUE, eventWrapper);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} catch (Exception e) {
LOG.info("签到业务向培训项目发送消息告知已经完成,失败:{}", e);
}
return Response.ok(signMap);
}
}
package com.yizhi.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 代码包管理主体
* </p>
*
* @author dingxiaowei
* @since 2018-11-01
*/
@Data
@ApiModel(value = "CodePackageManageVo", description = "")
@TableName("code_package_manage")
public class CodePackageManage {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "代码包名称")
@TableField("code_package_name")
private String codePackageName;
@ApiModelProperty(value = "导入时间")
@TableField("import_time")
private Date importTime;
@ApiModelProperty(value = "访问路径")
private String url;
@ApiModelProperty(value = "状态 0 删除 1 有效")
private Integer state;
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人ID")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建人名字")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@ApiModelProperty(value = "修改人名字")
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "企业_ID")
@TableField("company_id")
private Long companyId;
@ApiModelProperty(value = "部门_ID")
@TableField("org_id")
private Long orgId;
@ApiModelProperty(value = "站点_ID")
@TableField("site_id")
private Long siteId;
}
package com.yizhi.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 经验池主体
* </p>
*
* @author dingxiaowei
* @since 2018-11-02
*/
@Data
@ApiModel(value = "ExperiencePoolVo", description = "自定义项目经验池主体表")
@TableName("experience_pool")
public class ExperiencePool {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "经验池编码")
@TableField("experience_pool_no")
private String experiencePoolNo;
@ApiModelProperty(value = "经验池名称")
@TableField("experience_pool_name")
private String experiencePoolName;
@ApiModelProperty(value = "0删除 1 草稿 2上架")
private Integer state;
@ApiModelProperty(value = " 1手工输入 2外部导入")
@TableField("experience_pool_type")
private Integer experiencePoolType;
@ApiModelProperty(value = "可见范围:1 全平台可见 2 指定学员")
@TableField("visible_range")
private Integer visibleRange;
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人ID")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建人名字")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
@ApiModelProperty(value = "修改人ID")
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@ApiModelProperty(value = "修改人名字")
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "企业_ID")
@TableField("company_id")
private Long companyId;
@ApiModelProperty(value = "部门_ID")
@TableField("org_id")
private Long orgId;
@ApiModelProperty(value = "站点_ID")
@TableField("site_id")
private Long siteId;
}
This diff is collapsed. Click to expand it.
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