Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-web/src/main/java/com/ym/mec/web/dal/dto/StudentAttendancePageInfo.java
#	mec-web/src/main/java/com/ym/mec/web/service/impl/StudentAttendanceServiceImpl.java
Joburgess 5 lat temu
rodzic
commit
7309e4f9e0
70 zmienionych plików z 1521 dodań i 1051 usunięć
  1. 4 4
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java
  2. 0 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysRoleMenuServiceImpl.java
  3. 2 3
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysRoleServiceImpl.java
  4. 1 0
      mec-common/common-core/src/main/java/com/ym/mec/common/redis/service/RedisCache.java
  5. 8 8
      mec-common/common-core/src/main/java/com/ym/mec/common/security/SecurityUtils.java
  6. 20 20
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  7. 1 1
      mec-im/src/main/java/com/ym/service/Impl/UserServiceImpl.java
  8. 0 3
      mec-web/src/main/java/com/ym/mec/web/controller/ChargeTypeController.java
  9. 16 9
      mec-web/src/main/java/com/ym/mec/web/controller/GoodsCategoryController.java
  10. 19 13
      mec-web/src/main/java/com/ym/mec/web/controller/GoodsController.java
  11. 0 3
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java
  12. 0 3
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java
  13. 0 3
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentEntitiesController.java
  14. 0 3
      mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java
  15. 1 3
      mec-web/src/main/java/com/ym/mec/web/controller/SchoolController.java
  16. 0 3
      mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java
  17. 0 3
      mec-web/src/main/java/com/ym/mec/web/controller/SubjectController.java
  18. 0 6
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java
  19. 3 5
      mec-web/src/main/java/com/ym/mec/web/dal/dao/ClassGroupDao.java
  20. 0 2
      mec-web/src/main/java/com/ym/mec/web/dal/dao/MusicGroupPaymentEntitiesDao.java
  21. 4 4
      mec-web/src/main/java/com/ym/mec/web/dal/dao/OrganizationDao.java
  22. 0 9
      mec-web/src/main/java/com/ym/mec/web/dal/dao/PlatformCashAccountDao.java
  23. 0 9
      mec-web/src/main/java/com/ym/mec/web/dal/dao/PlatformCashAccountDetailDao.java
  24. 0 112
      mec-web/src/main/java/com/ym/mec/web/dal/entity/PlatformCashAccount.java
  25. 0 149
      mec-web/src/main/java/com/ym/mec/web/dal/entity/PlatformCashAccountDetail.java
  26. 24 16
      mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentPaymentOrderDetail.java
  27. 8 7
      mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentRegistration.java
  28. 1 0
      mec-web/src/main/java/com/ym/mec/web/dal/entity/SubjectGoodsMapper.java
  29. 36 26
      mec-web/src/main/java/com/ym/mec/web/dal/entity/SysUserCashAccount.java
  30. 40 26
      mec-web/src/main/java/com/ym/mec/web/dal/entity/SysUserCashAccountDetail.java
  31. 10 8
      mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherSalary.java
  32. 36 0
      mec-web/src/main/java/com/ym/mec/web/dal/enums/KitPurchaseMethodEnum.java
  33. 39 0
      mec-web/src/main/java/com/ym/mec/web/dal/enums/OrderDetailTypeEnum.java
  34. 2 3
      mec-web/src/main/java/com/ym/mec/web/service/OrganizationService.java
  35. 0 8
      mec-web/src/main/java/com/ym/mec/web/service/PlatformCashAccountDetailService.java
  36. 0 8
      mec-web/src/main/java/com/ym/mec/web/service/PlatformCashAccountService.java
  37. 0 1
      mec-web/src/main/java/com/ym/mec/web/service/TeacherService.java
  38. 4 5
      mec-web/src/main/java/com/ym/mec/web/service/impl/MusicGroupPaymentEntitiesServiceImpl.java
  39. 5 6
      mec-web/src/main/java/com/ym/mec/web/service/impl/OrganizationServiceImpl.java
  40. 0 23
      mec-web/src/main/java/com/ym/mec/web/service/impl/PlatformCashAccountDetailServiceImpl.java
  41. 0 23
      mec-web/src/main/java/com/ym/mec/web/service/impl/PlatformCashAccountServiceImpl.java
  42. 4 4
      mec-web/src/main/java/com/ym/mec/web/service/impl/StudentAttendanceServiceImpl.java
  43. 1 1
      mec-web/src/main/resources/config/mybatis/ClassGroupRelationMapper.xml
  44. 4 4
      mec-web/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml
  45. 0 96
      mec-web/src/main/resources/config/mybatis/PlatformCashAccountDetailMapper.xml
  46. 0 84
      mec-web/src/main/resources/config/mybatis/PlatformCashAccountMapper.xml
  47. 64 64
      mec-web/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml
  48. 100 100
      mec-web/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  49. 4 3
      mec-web/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  50. 1 1
      mec-web/src/main/resources/config/mybatis/SubjectGoodsMapperMapper.xml
  51. 1 1
      mec-web/src/main/resources/config/mybatis/SubjectMapper.xml
  52. 80 80
      mec-web/src/main/resources/config/mybatis/SysUserCashAccountDetailMapper.xml
  53. 71 68
      mec-web/src/main/resources/config/mybatis/SysUserCashAccountMapper.xml
  54. 1 1
      mec-web/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml
  55. 1 1
      mec-web/src/main/resources/config/mybatis/TeacherMapper.xml
  56. 66 0
      mec-workflow/pom.xml
  57. 24 0
      mec-workflow/src/main/java/com/ym/mec/workfow/WorkflowApplication.java
  58. 36 0
      mec-workflow/src/main/java/com/ym/mec/workfow/config/ResourceServerConfig.java
  59. 106 0
      mec-workflow/src/main/java/com/ym/mec/workfow/config/WebMvcConfig.java
  60. 52 0
      mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/FlowController.java
  61. 144 0
      mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/ProcessController.java
  62. 68 0
      mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/SurrogateController.java
  63. 192 0
      mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/TaskController.java
  64. 68 0
      mec-workflow/src/main/java/com/ym/mec/workfow/controller/web/LeaveController.java
  65. 60 0
      mec-workflow/src/main/resources/application.yml
  66. 21 0
      mec-workflow/src/main/resources/config/mybatis/Global.mapper.xml
  67. 20 0
      mec-workflow/src/main/resources/flows/leave.snaker
  68. 9 3
      pom.xml
  69. 2 1
      workflowy/src/main/java/org/snaker/engine/model/NodeModel.java
  70. 37 0
      workflowy/src/test/resources/test/generator/leave.snaker

+ 4 - 4
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java

@@ -1,11 +1,11 @@
 package com.ym.mec.auth.api.entity;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ym.mec.auth.api.enums.SysUserType;
-import com.ym.mec.common.enums.UserGenderEnum;
+import java.util.Date;
+
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import java.util.Date;
+import com.ym.mec.auth.api.enums.SysUserType;
+import com.ym.mec.common.enums.UserGenderEnum;
 
 /**
  * 对应数据库表(sys_user):

+ 0 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysRoleMenuServiceImpl.java

@@ -3,7 +3,6 @@ package com.ym.mec.auth.service.impl;
 import java.util.ArrayList;
 import java.util.List;
 
-import com.ym.mec.auth.api.entity.SysUserRole;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 

+ 2 - 3
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysRoleServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ym.mec.auth.service.impl;
 
-import com.ym.mec.auth.api.entity.SysUserRole;
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -10,8 +11,6 @@ import com.ym.mec.auth.service.SysRoleService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
-import java.util.List;
-
 @Service
 public class SysRoleServiceImpl extends BaseServiceImpl<Integer, SysRole>  implements SysRoleService {
 	

+ 1 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/redis/service/RedisCache.java

@@ -45,6 +45,7 @@ public class RedisCache<K, V> implements Cache<K, V> {
 		return redisTemplate.hasKey(key);
 	}
 
+	@SuppressWarnings("unchecked")
 	@Override
 	public Set<K> keys() throws CacheException {
 		return redisTemplate.keys((K) "*");

+ 8 - 8
mec-common/common-core/src/main/java/com/ym/mec/common/security/SecurityUtils.java

@@ -1,11 +1,11 @@
 package com.ym.mec.common.security;
 
-import com.alibaba.fastjson.JSON;
+import java.util.Map;
+
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 
-import java.util.HashMap;
-import java.util.Map;
+import com.alibaba.fastjson.JSON;
 
 public class SecurityUtils {
 	/**
@@ -42,14 +42,14 @@ public class SecurityUtils {
 	 */
 	public static AuthUser getUser() {
 		Authentication authentication = getAuthentication();
-		Object tokenValue = JSON.parseObject(JSON.toJSONString(authentication.getDetails()), Map.class).get("tokenValue");
-		if (authentication == null) {
-			return null;
-		}
 		return getUser(authentication);
 	}
 
-	public static String getToken(){
+	public static String getAuthenticationValue(){
 		return "bearer " + JSON.parseObject(JSON.toJSONString(getAuthentication().getDetails()), Map.class).get("tokenValue").toString();
 	}
+
+	public static String getToken(){
+		return JSON.parseObject(JSON.toJSONString(getAuthentication().getDetails()), Map.class).get("tokenValue").toString();
+	}
 }

+ 20 - 20
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -77,7 +77,7 @@ public class RoomServiceImpl implements RoomService {
     @Transactional
     @Override
     public RoomResult joinRoom(String userName, String roomId, boolean isAudience, boolean isDisableCamera) throws ApiException, Exception {
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
 
         CheckUtils.checkArgument(userName != null, "userName must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
@@ -181,7 +181,7 @@ public class RoomServiceImpl implements RoomService {
 //        JwtToken jwtToken = tokenHelper.createJwtToken(jwtUser);
         IMTokenInfo tokenInfo = imHelper.getToken(userId, userId, "");
         if (tokenInfo.isSuccess()) {
-            roomResult.setImToken(tokenInfo.getToken());
+            roomResult.setImToken(tokenInfo.getAuthenticationValue());
         } else {
             throw new ApiException(ErrorEnum.ERR_IM_TOKEN_ERROR, tokenInfo.getErrorMessage());
         }
@@ -220,7 +220,7 @@ public class RoomServiceImpl implements RoomService {
     @Transactional
     @Override
     public Boolean leaveRoom(String roomId) throws Exception {
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser user = sysUserFeignService.queryUserInfo();
         String userId = user.getId().toString();
         
@@ -327,7 +327,7 @@ public class RoomServiceImpl implements RoomService {
     public Boolean downgrade(String roomId, List<ReqChangeUserRoleData.ChangedUser> users) throws ApiException, Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(users.size() > 0, "the changed user list must't be null");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         List<Room> roomList = roomDao.findByRid(roomId);
@@ -377,7 +377,7 @@ public class RoomServiceImpl implements RoomService {
 
     @Override
     public Boolean kickMember(String roomId) throws ApiException, Exception {
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         CheckUtils.checkArgument(userId != null, "userId must't be null");
@@ -417,7 +417,7 @@ public class RoomServiceImpl implements RoomService {
 
     @Override
     public Boolean display(String roomId, int type, String uri) throws ApiException, Exception {
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         log.info("display in room: {}, type = {}, uri = {}", roomId, type, uri);
@@ -482,7 +482,7 @@ public class RoomServiceImpl implements RoomService {
     public String createWhiteBoard(String roomId) throws ApiException, Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         CheckUtils.checkArgument(roomMemberDao.existsByRidAndUid(roomId, userId), "room member not exist");
@@ -526,7 +526,7 @@ public class RoomServiceImpl implements RoomService {
     public Boolean deleteWhiteboard(String roomId, String whiteBoardId) throws ApiException, Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(whiteBoardId != null, "whiteBoardId must't be null");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
 
@@ -583,7 +583,7 @@ public class RoomServiceImpl implements RoomService {
     public Boolean turnWhiteBoardPage(String roomId, String whiteBoardId, int page) throws ApiException, Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(whiteBoardId != null, "whiteBoardId must't be null");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         List<Room> roomList = roomDao.findByRid(roomId);
@@ -603,7 +603,7 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(userId != null, "userId must't be null");
         CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
         CheckUtils.checkArgument(roomMemberDao.existsByRidAndUid(roomId, userId), "room member not exist");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
 
         log.info("controlDevice: userId={}, typeEnum={}, onOff={}", userId, typeEnum, enable);
@@ -644,7 +644,7 @@ public class RoomServiceImpl implements RoomService {
     @Override
     public Boolean approveControlDevice(String roomId, String ticket) throws ApiException, Exception {
         CheckUtils.checkArgument(ticket != null, "ticket must't be null");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         log.info("approveControlDevice: ticket={}", ticket);
@@ -669,7 +669,7 @@ public class RoomServiceImpl implements RoomService {
     @Override
     public Boolean rejectControlDevice(String roomId, String ticket) throws ApiException, Exception {
         CheckUtils.checkArgument(ticket != null, "ticket must't be null");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
 
@@ -687,7 +687,7 @@ public class RoomServiceImpl implements RoomService {
     public Boolean syncDeviceState(String roomId, DeviceTypeEnum type, boolean enable) throws ApiException, Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
 
@@ -720,7 +720,7 @@ public class RoomServiceImpl implements RoomService {
     public Boolean applySpeech(String roomId) throws ApiException, Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         List<RoomMember> assistants = roomMemberDao.findByRidAndRole(roomId, RoleEnum.RoleAssistant.getValue());
@@ -755,7 +755,7 @@ public class RoomServiceImpl implements RoomService {
     public Boolean approveSpeech(String roomId, String ticket) throws ApiException, Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
 
@@ -800,7 +800,7 @@ public class RoomServiceImpl implements RoomService {
     public Boolean rejectSpeech(String roomId, String ticket) throws ApiException, Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         ScheduledTaskInfo taskInfo = scheduleManager.executeTask(ticket);
@@ -874,7 +874,7 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(targetUserId != null, "userId must't be null");
         CheckUtils.checkArgument(roomMemberDao.existsByRidAndUid(roomId, targetUserId), "room member not exist");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         log.info("inviteUpgradeRole roomId = {}, targetUserId = {}, targetRole = {}", roomId, targetUserId, targetRole);
@@ -914,7 +914,7 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(ticket != null, "ticket must't be null");
         CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         UpgradeRoleTaskInfo taskInfo = (UpgradeRoleTaskInfo) scheduleManager.executeTask(ticket);
@@ -957,7 +957,7 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(ticket != null, "ticket must't be null");
         CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         UpgradeRoleTaskInfo taskInfo = (UpgradeRoleTaskInfo) scheduleManager.executeTask(ticket);
@@ -981,7 +981,7 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
         CheckUtils.checkArgument(RoleEnum.getEnumByValue(targetRole).equals(RoleEnum.RoleTeacher), "only set to teacher");
         CheckUtils.checkArgument(roomMemberDao.existsByRidAndUid(roomId, targetUserId), "room member not exist");
-        String token = SecurityUtils.getToken();
+        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
 

+ 1 - 1
mec-im/src/main/java/com/ym/service/Impl/UserServiceImpl.java

@@ -47,7 +47,7 @@ public class UserServiceImpl implements UserService {
         log.info("request token: {}, {}", userId, name);
         IMTokenInfo tokenInfo = imHelper.getToken(userId, name, "");
         if (tokenInfo.isSuccess()) {
-            return tokenInfo.getToken();
+            return tokenInfo.getAuthenticationValue();
         } else {
             throw new ApiException(ErrorEnum.ERR_IM_TOKEN_ERROR, tokenInfo.getErrorMessage());
         }

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/ChargeTypeController.java

@@ -23,9 +23,6 @@ public class ChargeTypeController extends BaseController {
     @ApiOperation(value = "新增收费类型")
     @PostMapping("/add")
     public Object add(@RequestBody ChargeType chargeType) {
-        Date date = new Date();
-        chargeType.setCreateTime(date);
-        chargeType.setUpdateTime(date);
         chargeTypeService.insert(chargeType);
         return succeed();
     }

+ 16 - 9
mec-web/src/main/java/com/ym/mec/web/controller/GoodsCategoryController.java

@@ -1,16 +1,26 @@
 package com.ym.mec.web.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import java.util.Date;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.web.dal.entity.GoodsCategory;
 import com.ym.mec.web.dal.page.GoodsCategoryQueryInfo;
-import com.ym.mec.web.dal.page.GoodsQueryInfo;
 import com.ym.mec.web.service.GoodsCategoryService;
 import com.ym.mec.web.service.GoodsService;
-import io.swagger.annotations.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Date;
 
 @RequestMapping("category")
 @Api(tags = "商品分类服务")
@@ -26,9 +36,6 @@ public class GoodsCategoryController extends BaseController {
     @ApiOperation(value = "新增商品分类")
     @PostMapping("/add")
     public Object add(@RequestBody GoodsCategory goodsCategory) {
-        Date date = new Date();
-        goodsCategory.setCreateTime(date);
-        goodsCategory.setUpdateTime(date);
         GoodsCategoryCategoryService.insert(goodsCategory);
         return succeed();
     }

+ 19 - 13
mec-web/src/main/java/com/ym/mec/web/controller/GoodsController.java

@@ -1,19 +1,28 @@
 package com.ym.mec.web.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import java.util.Date;
+import java.util.HashMap;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.web.dal.entity.Goods;
-import com.ym.mec.web.dal.entity.Subject;
 import com.ym.mec.web.dal.page.GoodsQueryInfo;
-import com.ym.mec.web.dal.page.SubjectQueryInfo;
 import com.ym.mec.web.service.GoodsService;
-import com.ym.mec.web.service.SubjectService;
-import io.swagger.annotations.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.util.Date;
-import java.util.HashMap;
 
 @RequestMapping("goods")
 @Api(tags = "商品(教材、辅件)服务")
@@ -26,9 +35,6 @@ public class GoodsController extends BaseController {
     @ApiOperation(value = "新增商品(教材、辅件)")
     @PostMapping("/add")
     public Object add(@RequestBody Goods goods){
-        Date date = new Date();
-        goods.setCreateTime(date);
-        goods.setUpdateTime(date);
         goodsService.insert(goods);
         return succeed();
     }

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -23,9 +23,6 @@ public class MusicGroupController extends BaseController {
     @ApiOperation(value = "新增乐团")
     @PostMapping("/add")
     public Object add(@RequestBody MusicGroup musicGroup){
-        Date date = new Date();
-        musicGroup.setCreateTime(date);
-        musicGroup.setUpdateTime(date);
         musicGroupService.insert(musicGroup);
         return succeed();
     }

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java

@@ -23,9 +23,6 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     @ApiOperation(value = "新增乐团缴费日历")
     @PostMapping("/add")
     public Object add(@RequestBody MusicGroupPaymentCalender musicGroupPaymentCalender) {
-        Date date = new Date();
-        musicGroupPaymentCalender.setCreateTime(date);
-        musicGroupPaymentCalender.setUpdateTime(date);
         musicGroupPaymentCalenderService.insert(musicGroupPaymentCalender);
         return succeed();
     }

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentEntitiesController.java

@@ -24,9 +24,6 @@ public class MusicGroupPaymentEntitiesController extends BaseController {
     @ApiOperation(value = "新增乐团付费主体")
     @PostMapping("/add")
     public Object add(@RequestBody MusicGroupPaymentEntities musicGroupPaymentEntities){
-        Date date = new Date();
-        musicGroupPaymentEntities.setCreateTime(date);
-        musicGroupPaymentEntities.setUpdateTime(date);
         musicGroupPaymentEntitiesService.insert(musicGroupPaymentEntities);
         return succeed();
     }

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java

@@ -33,9 +33,6 @@ public class OrganizationController extends BaseController {
         if(organizationByCode != null){
             return failed("组织机构代码已经存在,请更改");
         }
-        Date date = new Date();
-        organization.setCreateTime(date);
-        organization.setUpdateTime(date);
         return succeed(organizationService.insert(organization));
     }
 

+ 1 - 3
mec-web/src/main/java/com/ym/mec/web/controller/SchoolController.java

@@ -9,6 +9,7 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
 import java.util.Date;
 
 @RequestMapping("school")
@@ -22,9 +23,6 @@ public class SchoolController extends BaseController {
     @ApiOperation(value = "新增学校")
     @PostMapping("/add")
     public Object add(@RequestBody School school){
-        Date date = new Date();
-        school.setCreateTime(date);
-        school.setUpdateTime(date);
         schoolService.insert(school);
         return succeed();
     }

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java

@@ -25,9 +25,6 @@ public class StudentRegistrationController extends BaseController {
     @ApiOperation(value = "新增学生报名信息")
     @PostMapping("/add")
     public Object add(@RequestBody StudentRegistration studentRegistration){
-        Date date = new Date();
-        studentRegistration.setCreateTime(date);
-        studentRegistration.setUpdateTime(date);
         studentRegistrationService.insert(studentRegistration);
         return succeed();
     }

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/SubjectController.java

@@ -25,9 +25,6 @@ public class SubjectController extends BaseController {
         if(subjectByCode != null){
             return failed("科目编号已存在,请核查");
         }
-        Date date = new Date();
-        subject.setCreateTime(date);
-        subject.setUpdateTime(date);
         subjectService.insert(subject);
         return succeed();
     }

+ 0 - 6
mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

@@ -1,9 +1,7 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.security.AuthUser;
 import com.ym.mec.common.security.SecurityUtils;
-import com.ym.mec.web.dal.entity.ClassGroup;
 import com.ym.mec.web.dal.entity.Teacher;
 import com.ym.mec.web.dal.page.TeacherQueryInfo;
 import com.ym.mec.web.service.ClassGroupService;
@@ -15,7 +13,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
-import java.util.List;
 
 @RequestMapping("teacher")
 @Api(tags = "教师服务")
@@ -39,9 +36,6 @@ public class TeacherController extends BaseController {
         if(organId != null){
             teacher.setOrganId(organId);
         }
-        Date date = new Date();
-        teacher.setCreateTime(date);
-        teacher.setUpdateTime(date);
         teacherService.insert(teacher);
         return succeed();
     }

+ 3 - 5
mec-web/src/main/java/com/ym/mec/web/dal/dao/ClassGroupDao.java

@@ -1,12 +1,10 @@
 package com.ym.mec.web.dal.dao;
-import java.util.Date;
-import com.ym.mec.web.dal.enums.ClassGroupTypeEnum;
+import java.util.List;
 
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.web.dal.entity.ClassGroup;
 import org.apache.ibatis.annotations.Param;
 
-import java.util.List;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.web.dal.entity.ClassGroup;
 
 public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 

+ 0 - 2
mec-web/src/main/java/com/ym/mec/web/dal/dao/MusicGroupPaymentEntitiesDao.java

@@ -3,7 +3,5 @@ package com.ym.mec.web.dal.dao;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.web.dal.entity.MusicGroupPaymentEntities;
 
-import java.util.List;
-
 public interface MusicGroupPaymentEntitiesDao extends BaseDAO<Integer, MusicGroupPaymentEntities> {
 }

+ 4 - 4
mec-web/src/main/java/com/ym/mec/web/dal/dao/OrganizationDao.java

@@ -1,11 +1,11 @@
 package com.ym.mec.web.dal.dao;
 
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.web.dal.entity.Organization;
-import com.ym.mec.web.dal.page.OrganizationQueryInfo;
+import java.util.List;
+
 import org.apache.ibatis.annotations.Param;
 
-import java.util.List;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.web.dal.entity.Organization;
 
 public interface OrganizationDao extends BaseDAO<Integer, Organization> {
 

+ 0 - 9
mec-web/src/main/java/com/ym/mec/web/dal/dao/PlatformCashAccountDao.java

@@ -1,9 +0,0 @@
-package com.ym.mec.web.dal.dao;
-
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.web.dal.entity.PlatformCashAccount;
-
-public interface PlatformCashAccountDao extends BaseDAO<String, PlatformCashAccount> {
-
-	
-}

+ 0 - 9
mec-web/src/main/java/com/ym/mec/web/dal/dao/PlatformCashAccountDetailDao.java

@@ -1,9 +0,0 @@
-package com.ym.mec.web.dal.dao;
-
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.web.dal.entity.PlatformCashAccountDetail;
-
-public interface PlatformCashAccountDetailDao extends BaseDAO<Long, PlatformCashAccountDetail> {
-
-	
-}

+ 0 - 112
mec-web/src/main/java/com/ym/mec/web/dal/entity/PlatformCashAccount.java

@@ -1,112 +0,0 @@
-package com.ym.mec.web.dal.entity;
-
-import com.ym.mec.web.dal.enums.PlatformCashAccountStatusEnum;
-import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
-import java.math.BigDecimal;
-
-/**
- * 对应数据库表(platform_cash_account):
- */
-public class PlatformCashAccount {
-
-	/** 账户号 */
-	private String id;
-	
-	/** 币种 */
-	@ApiModelProperty(value = "机构名称",required = false)
-	private String currency;
-	
-	/** 账户可用余额 */
-	@ApiModelProperty(value = "账户可用余额",required = false)
-	private BigDecimal balance;
-	
-	/** 冻结金额 */
-	@ApiModelProperty(value = "冻结金额",required = false)
-	private BigDecimal frozenAmount;
-	
-	/** 保证金余额 */
-	@ApiModelProperty(value = "保证金余额",required = false)
-	private BigDecimal marginBalance;
-	
-	/** 账户状态(0,冻结,1,正常;-1,注销;) */
-	@ApiModelProperty(value = "账户状态",required = false)
-	private PlatformCashAccountStatusEnum status;
-	
-	/** 创建时间 */
-	private java.util.Date createTime;
-	
-	/** 修改时间 */
-	private java.util.Date updateTime;
-	
-	public void setId(String id){
-		this.id = id;
-	}
-	
-	public String getId(){
-		return this.id;
-	}
-			
-	public void setCurrency(String currency){
-		this.currency = currency;
-	}
-	
-	public String getCurrency(){
-		return this.currency;
-	}
-
-	public BigDecimal getFrozenAmount() {
-		return frozenAmount;
-	}
-
-	public void setFrozenAmount(BigDecimal frozenAmount) {
-		this.frozenAmount = frozenAmount;
-	}
-
-	public BigDecimal getMarginBalance() {
-		return marginBalance;
-	}
-
-	public void setMarginBalance(BigDecimal marginBalance) {
-		this.marginBalance = marginBalance;
-	}
-
-	public BigDecimal getBalance() {
-		return balance;
-	}
-
-	public void setBalance(BigDecimal balance) {
-		this.balance = balance;
-	}
-
-	public PlatformCashAccountStatusEnum getStatus() {
-		return status;
-	}
-
-	public void setStatus(PlatformCashAccountStatusEnum status) {
-		this.status = status;
-	}
-
-	public void setCreateTime(java.util.Date createTime){
-		this.createTime = createTime;
-	}
-	
-	public java.util.Date getCreateTime(){
-		return this.createTime;
-	}
-			
-	public void setUpdateTime(java.util.Date updateTime){
-		this.updateTime = updateTime;
-	}
-	
-	public java.util.Date getUpdateTime(){
-		return this.updateTime;
-	}
-			
-	@Override
-	public String toString() {
-		return ToStringBuilder.reflectionToString(this);
-	}
-
-}

+ 0 - 149
mec-web/src/main/java/com/ym/mec/web/dal/entity/PlatformCashAccountDetail.java

@@ -1,149 +0,0 @@
-package com.ym.mec.web.dal.entity;
-
-import com.ym.mec.web.dal.enums.DealStatusEnum;
-import com.ym.mec.web.dal.enums.PlatformCashAccountDetailTypeEnum;
-import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
-import java.math.BigDecimal;
-
-/**
- * 对应数据库表(platform_cash_account_detail):
- */
-public class PlatformCashAccountDetail {
-
-	/** 序号 */
-	private Long id;
-	
-	/** 用户编号 */
-	@ApiModelProperty(value = "用户编号",required = false)
-	private String platformCashAccountId;
-	
-	/** 交易流水号 */
-	@ApiModelProperty(value = "交易流水号",required = false)
-	private String transNo;
-	
-	/** 交易类型 (RECHARGE 充值,WITHDRAW 提现,PAY_FEE 缴费,REFUNDS 退费,FILL_ACCOUNT 人工补账) */
-	@ApiModelProperty(value = "交易类型",required = false)
-	private PlatformCashAccountDetailTypeEnum type;
-	
-	/** 交易状态(1,交易中;2,成功交易;3,交易失败;) */
-	@ApiModelProperty(value = "交易状态",required = false)
-	private DealStatusEnum status;
-	
-	/** 交易金额 */
-	@ApiModelProperty(value = "交易金额",required = false)
-	private BigDecimal amount;
-	
-	/** 账户可用余额 */
-	@ApiModelProperty(value = "账户可用余额",required = false)
-	private BigDecimal balance;
-	
-	/** 描述 */
-	@ApiModelProperty(value = "描述",required = false)
-	private String description;
-	
-	/** 后台备注 */
-	@ApiModelProperty(value = "后台备注",required = false)
-	private String comment;
-	
-	/** 创建时间 */
-	private java.util.Date createTime;
-	
-	/** 修改时间 */
-	private java.util.Date updateTime;
-	
-	public void setId(Long id){
-		this.id = id;
-	}
-	
-	public Long getId(){
-		return this.id;
-	}
-			
-	public void setPlatformCashAccountId(String platformCashAccountId){
-		this.platformCashAccountId = platformCashAccountId;
-	}
-	
-	public String getPlatformCashAccountId(){
-		return this.platformCashAccountId;
-	}
-			
-	public void setTransNo(String transNo){
-		this.transNo = transNo;
-	}
-	
-	public String getTransNo(){
-		return this.transNo;
-	}
-
-	public PlatformCashAccountDetailTypeEnum getType() {
-		return type;
-	}
-
-	public void setType(PlatformCashAccountDetailTypeEnum type) {
-		this.type = type;
-	}
-
-	public DealStatusEnum getStatus() {
-		return status;
-	}
-
-	public void setStatus(DealStatusEnum status) {
-		this.status = status;
-	}
-
-	public BigDecimal getAmount() {
-		return amount;
-	}
-
-	public void setAmount(BigDecimal amount) {
-		this.amount = amount;
-	}
-
-	public BigDecimal getBalance() {
-		return balance;
-	}
-
-	public void setBalance(BigDecimal balance) {
-		this.balance = balance;
-	}
-
-	public void setDescription(String description){
-		this.description = description;
-	}
-	
-	public String getDescription(){
-		return this.description;
-	}
-			
-	public void setComment(String comment){
-		this.comment = comment;
-	}
-	
-	public String getComment(){
-		return this.comment;
-	}
-			
-	public void setCreateTime(java.util.Date createTime){
-		this.createTime = createTime;
-	}
-	
-	public java.util.Date getCreateTime(){
-		return this.createTime;
-	}
-			
-	public void setUpdateTime(java.util.Date updateTime){
-		this.updateTime = updateTime;
-	}
-	
-	public java.util.Date getUpdateTime(){
-		return this.updateTime;
-	}
-			
-	@Override
-	public String toString() {
-		return ToStringBuilder.reflectionToString(this);
-	}
-
-}

+ 24 - 16
mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentPaymentOrderDetail.java

@@ -1,7 +1,11 @@
 package com.ym.mec.web.dal.entity;
 
+import com.ym.mec.web.dal.enums.OrderDetailTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.math.BigDecimal;
+
 /**
  * 对应数据库表(student_payment_order_detail):
  */
@@ -11,13 +15,16 @@ public class StudentPaymentOrderDetail {
 	private Long id;
 	
 	/** 类型(乐器、辅件、教材、课程) */
-	private String type;
+	@ApiModelProperty(value = "类型",required = true)
+	private OrderDetailTypeEnum type;
 	
 	/** 商品列表(用户|分开) */
+	@ApiModelProperty(value = "商品列表(用户|分开) ",required = true)
 	private String goodsIdList;
 	
 	/** 打包价格 */
-	private long price;
+	@ApiModelProperty(value = "打包价格",required = true)
+	private BigDecimal price;
 	
 	/**  */
 	private java.util.Date createTime;
@@ -26,6 +33,7 @@ public class StudentPaymentOrderDetail {
 	private java.util.Date updateTime;
 	
 	/** 订单编号(对应student_payment_order) */
+	@ApiModelProperty(value = "订单编号",required = true)
 	private Long paymentOrderId;
 	
 	public void setId(Long id){
@@ -35,15 +43,23 @@ public class StudentPaymentOrderDetail {
 	public Long getId(){
 		return this.id;
 	}
-			
-	public void setType(String type){
+
+	public OrderDetailTypeEnum getType() {
+		return type;
+	}
+
+	public void setType(OrderDetailTypeEnum type) {
 		this.type = type;
 	}
-	
-	public String getType(){
-		return this.type;
+
+	public BigDecimal getPrice() {
+		return price;
 	}
-			
+
+	public void setPrice(BigDecimal price) {
+		this.price = price;
+	}
+
 	public void setGoodsIdList(String goodsIdList){
 		this.goodsIdList = goodsIdList;
 	}
@@ -52,14 +68,6 @@ public class StudentPaymentOrderDetail {
 		return this.goodsIdList;
 	}
 			
-	public void setPrice(long price){
-		this.price = price;
-	}
-	
-	public long getPrice(){
-		return this.price;
-	}
-			
 	public void setCreateTime(java.util.Date createTime){
 		this.createTime = createTime;
 	}

+ 8 - 7
mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentRegistration.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.dal.entity;
 
+import com.ym.mec.web.dal.enums.KitPurchaseMethodEnum;
 import com.ym.mec.web.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -38,7 +39,7 @@ public class StudentRegistration {
 	
 	/** 器材购买方式(团购、自备) */
 	@ApiModelProperty(value = "器材购买方式(团购、自备)",required = false)
-	private String kitPurchaseMethod;
+	private KitPurchaseMethodEnum kitPurchaseMethod;
 	
 	/**  */
 	@ApiModelProperty(value = "备注",required = false)
@@ -142,14 +143,14 @@ public class StudentRegistration {
 		this.paymentStatus = paymentStatus;
 	}
 
-	public void setKitPurchaseMethod(String kitPurchaseMethod){
-		this.kitPurchaseMethod = kitPurchaseMethod;
+	public KitPurchaseMethodEnum getKitPurchaseMethod() {
+		return kitPurchaseMethod;
 	}
-	
-	public String getKitPurchaseMethod(){
-		return this.kitPurchaseMethod;
+
+	public void setKitPurchaseMethod(KitPurchaseMethodEnum kitPurchaseMethod) {
+		this.kitPurchaseMethod = kitPurchaseMethod;
 	}
-			
+
 	public void setRemark(String remark){
 		this.remark = remark;
 	}

+ 1 - 0
mec-web/src/main/java/com/ym/mec/web/dal/entity/SubjectGoodsMapper.java

@@ -25,6 +25,7 @@ public class SubjectGoodsMapper {
 	@ApiModelProperty(value = "商品编号", required = false)
 	private Integer goodsId;
 
+	@ApiModelProperty(value = "商品类型", required = false)
 	private GoodsType type;
 
 	/**  */

+ 36 - 26
mec-web/src/main/java/com/ym/mec/web/dal/entity/SysUserCashAccount.java

@@ -1,29 +1,39 @@
 package com.ym.mec.web.dal.entity;
 
+import com.ym.mec.web.dal.enums.PlatformCashAccountStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.math.BigDecimal;
+
 /**
  * 对应数据库表(sys_user_cash_account):
  */
 public class SysUserCashAccount {
 
 	/** 账户号码(用户编号) */
+	@ApiModelProperty(value = "账户号码(用户编号) ",required = false)
 	private Integer userId;
 	
 	/** 币种 */
+	@ApiModelProperty(value = "币种",required = false)
 	private String currency;
 	
 	/** 账户可用余额 */
-	private long balance;
+	@ApiModelProperty(value = "账户可用余额",required = false)
+	private BigDecimal balance;
 	
 	/** 冻结金额 */
-	private long frozenAmount;
+	@ApiModelProperty(value = "冻结金额",required = false)
+	private BigDecimal frozenAmount;
 	
 	/** 保证金余额 */
-	private long marginBalance;
+	@ApiModelProperty(value = "保证金余额",required = false)
+	private BigDecimal marginBalance;
 	
 	/** 账户状态(0,冻结,1,正常;-1,注销;) */
-	private Integer status;
+	@ApiModelProperty(value = "账户状态",required = false)
+	private PlatformCashAccountStatusEnum status;
 	
 	/** 创建时间 */
 	private java.util.Date createTime;
@@ -46,39 +56,39 @@ public class SysUserCashAccount {
 	public String getCurrency(){
 		return this.currency;
 	}
-			
-	public void setBalance(long balance){
+
+	public BigDecimal getBalance() {
+		return balance;
+	}
+
+	public void setBalance(BigDecimal balance) {
 		this.balance = balance;
 	}
-	
-	public long getBalance(){
-		return this.balance;
+
+	public BigDecimal getFrozenAmount() {
+		return frozenAmount;
 	}
-			
-	public void setFrozenAmount(long frozenAmount){
+
+	public void setFrozenAmount(BigDecimal frozenAmount) {
 		this.frozenAmount = frozenAmount;
 	}
-	
-	public long getFrozenAmount(){
-		return this.frozenAmount;
+
+	public BigDecimal getMarginBalance() {
+		return marginBalance;
 	}
-			
-	public void setMarginBalance(long marginBalance){
+
+	public void setMarginBalance(BigDecimal marginBalance) {
 		this.marginBalance = marginBalance;
 	}
-	
-	public long getMarginBalance(){
-		return this.marginBalance;
+
+	public PlatformCashAccountStatusEnum getStatus() {
+		return status;
 	}
-			
-	public void setStatus(Integer status){
+
+	public void setStatus(PlatformCashAccountStatusEnum status) {
 		this.status = status;
 	}
-	
-	public Integer getStatus(){
-		return this.status;
-	}
-			
+
 	public void setCreateTime(java.util.Date createTime){
 		this.createTime = createTime;
 	}

+ 40 - 26
mec-web/src/main/java/com/ym/mec/web/dal/entity/SysUserCashAccountDetail.java

@@ -1,37 +1,51 @@
 package com.ym.mec.web.dal.entity;
 
+import com.ym.mec.web.dal.enums.DealStatusEnum;
+import com.ym.mec.web.dal.enums.PlatformCashAccountDetailTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.math.BigDecimal;
+
 /**
  * 对应数据库表(sys_user_cash_account_detail):
  */
 public class SysUserCashAccountDetail {
 
 	/** 序号 */
+	@ApiModelProperty(value = "序号",required = false)
 	private Long id;
 	
 	/** 用户编号 */
+	@ApiModelProperty(value = "用户编号",required = false)
 	private Integer userId;
 	
 	/** 交易流水号 */
+	@ApiModelProperty(value = "交易流水号",required = false)
 	private String transNo;
 	
 	/** 交易类型 (RECHARGE 充值,WITHDRAW 提现,PAY_FEE 缴费,REFUNDS 退费,FILL_ACCOUNT 人工补账) */
-	private String type;
+	@ApiModelProperty(value = "交易类型",required = false)
+	private PlatformCashAccountDetailTypeEnum type;
 	
 	/** 交易状态(1,交易中;2,成功交易;-1,交易失败;) */
-	private Integer status;
+	@ApiModelProperty(value = "交易状态",required = false)
+	private DealStatusEnum status;
 	
 	/** 交易金额 */
-	private long amount;
+	@ApiModelProperty(value = "交易金额",required = false)
+	private BigDecimal amount;
 	
 	/** 账户可用余额 */
-	private long balance;
+	@ApiModelProperty(value = "账户可用余额",required = false)
+	private BigDecimal balance;
 	
 	/** 描述 */
+	@ApiModelProperty(value = "描述",required = false)
 	private String description;
 	
 	/** 后台备注 */
+	@ApiModelProperty(value = "后台备注",required = false)
 	private String comment;
 	
 	/** 创建时间 */
@@ -63,39 +77,39 @@ public class SysUserCashAccountDetail {
 	public String getTransNo(){
 		return this.transNo;
 	}
-			
-	public void setType(String type){
+
+	public PlatformCashAccountDetailTypeEnum getType() {
+		return type;
+	}
+
+	public void setType(PlatformCashAccountDetailTypeEnum type) {
 		this.type = type;
 	}
-	
-	public String getType(){
-		return this.type;
+
+	public DealStatusEnum getStatus() {
+		return status;
 	}
-			
-	public void setStatus(Integer status){
+
+	public void setStatus(DealStatusEnum status) {
 		this.status = status;
 	}
-	
-	public Integer getStatus(){
-		return this.status;
+
+	public BigDecimal getAmount() {
+		return amount;
 	}
-			
-	public void setAmount(long amount){
+
+	public void setAmount(BigDecimal amount) {
 		this.amount = amount;
 	}
-	
-	public long getAmount(){
-		return this.amount;
+
+	public BigDecimal getBalance() {
+		return balance;
 	}
-			
-	public void setBalance(long balance){
+
+	public void setBalance(BigDecimal balance) {
 		this.balance = balance;
 	}
-	
-	public long getBalance(){
-		return this.balance;
-	}
-			
+
 	public void setDescription(String description){
 		this.description = description;
 	}

+ 10 - 8
mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherSalary.java

@@ -3,6 +3,8 @@ package com.ym.mec.web.dal.entity;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.math.BigDecimal;
+
 /**
  * 对应数据库表(teacher_salary):
  */
@@ -21,7 +23,7 @@ public class TeacherSalary {
 	
 	/** 课酬 */
 	@ApiModelProperty(value = "课酬",required = false)
-	private long salary;
+	private BigDecimal salary;
 	
 	/**  */
 	private java.util.Date createTime;
@@ -49,15 +51,15 @@ public class TeacherSalary {
 	public Integer getSubjectId(){
 		return this.subjectId;
 	}
-			
-	public void setSalary(long salary){
-		this.salary = salary;
+
+	public BigDecimal getSalary() {
+		return salary;
 	}
-	
-	public long getSalary(){
-		return this.salary;
+
+	public void setSalary(BigDecimal salary) {
+		this.salary = salary;
 	}
-			
+
 	public void setCreateTime(java.util.Date createTime){
 		this.createTime = createTime;
 	}

+ 36 - 0
mec-web/src/main/java/com/ym/mec/web/dal/enums/KitPurchaseMethodEnum.java

@@ -0,0 +1,36 @@
+package com.ym.mec.web.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * 器材购买方式(团购、自备)
+ */
+public enum KitPurchaseMethodEnum implements BaseEnum<String, KitPurchaseMethodEnum> {
+	GROUP("GROUP", "团购"), OWNED("OWNED", "自备");
+
+	private String code;
+
+	private String msg;
+
+	KitPurchaseMethodEnum(String code, String msg) {
+		this.code = code;
+		this.msg = msg;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	@Override
+	public String getCode() {
+		return this.code;
+	}
+}

+ 39 - 0
mec-web/src/main/java/com/ym/mec/web/dal/enums/OrderDetailTypeEnum.java

@@ -0,0 +1,39 @@
+package com.ym.mec.web.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * 类型(乐器、教辅、课程)'
+ */
+public enum OrderDetailTypeEnum implements BaseEnum<String, OrderDetailTypeEnum> {
+	MUSICAL("MUSICAL", "乐器"),
+	TEACHING("TEACHING", "教辅"),
+	ELSE("ELSE", "其他"),
+	COURSE("COURSE", "课程");
+
+	private String code;
+
+	private String msg;
+
+	OrderDetailTypeEnum(String code, String msg) {
+		this.code = code;
+		this.msg = msg;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	@Override
+	public String getCode() {
+		return this.code;
+	}
+}

+ 2 - 3
mec-web/src/main/java/com/ym/mec/web/service/OrganizationService.java

@@ -1,12 +1,11 @@
 package com.ym.mec.web.service;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.entity.Organization;
 import com.ym.mec.web.dal.page.OrganizationQueryInfo;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
 
 public interface OrganizationService extends BaseService<Integer, Organization> {
 

+ 0 - 8
mec-web/src/main/java/com/ym/mec/web/service/PlatformCashAccountDetailService.java

@@ -1,8 +0,0 @@
-package com.ym.mec.web.service;
-
-import com.ym.mec.common.service.BaseService;
-import com.ym.mec.web.dal.entity.PlatformCashAccountDetail;
-
-public interface PlatformCashAccountDetailService extends BaseService<Long, PlatformCashAccountDetail> {
-
-}

+ 0 - 8
mec-web/src/main/java/com/ym/mec/web/service/PlatformCashAccountService.java

@@ -1,8 +0,0 @@
-package com.ym.mec.web.service;
-
-import com.ym.mec.common.service.BaseService;
-import com.ym.mec.web.dal.entity.PlatformCashAccount;
-
-public interface PlatformCashAccountService extends BaseService<String, PlatformCashAccount> {
-
-}

+ 0 - 1
mec-web/src/main/java/com/ym/mec/web/service/TeacherService.java

@@ -2,7 +2,6 @@ package com.ym.mec.web.service;
 
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.entity.Teacher;
-import org.apache.ibatis.annotations.Param;
 
 public interface TeacherService extends BaseService<Integer, Teacher> {
 

+ 4 - 5
mec-web/src/main/java/com/ym/mec/web/service/impl/MusicGroupPaymentEntitiesServiceImpl.java

@@ -1,18 +1,17 @@
 package com.ym.mec.web.service.impl;
 
+import java.util.Date;
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.web.dal.dao.MusicGroupPaymentEntitiesDao;
 import com.ym.mec.web.dal.entity.MusicGroupPaymentEntities;
 import com.ym.mec.web.service.MusicGroupPaymentEntitiesService;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.Date;
-import java.util.List;
 
 @Service
 public class MusicGroupPaymentEntitiesServiceImpl extends BaseServiceImpl<Integer, MusicGroupPaymentEntities>  implements MusicGroupPaymentEntitiesService {

+ 5 - 6
mec-web/src/main/java/com/ym/mec/web/service/impl/OrganizationServiceImpl.java

@@ -1,18 +1,17 @@
 package com.ym.mec.web.service.impl;
 
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.web.dal.dao.OrganizationDao;
 import com.ym.mec.web.dal.entity.Organization;
 import com.ym.mec.web.dal.page.OrganizationQueryInfo;
 import com.ym.mec.web.service.OrganizationService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
 
 @Service
 public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organization> implements OrganizationService {

+ 0 - 23
mec-web/src/main/java/com/ym/mec/web/service/impl/PlatformCashAccountDetailServiceImpl.java

@@ -1,23 +0,0 @@
-package com.ym.mec.web.service.impl;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.common.service.impl.BaseServiceImpl;
-import com.ym.mec.web.dal.dao.PlatformCashAccountDetailDao;
-import com.ym.mec.web.dal.entity.PlatformCashAccountDetail;
-import com.ym.mec.web.service.PlatformCashAccountDetailService;
-
-@Service
-public class PlatformCashAccountDetailServiceImpl extends BaseServiceImpl<Long, PlatformCashAccountDetail>  implements PlatformCashAccountDetailService {
-	
-	@Autowired
-	private PlatformCashAccountDetailDao platformCashAccountDetailDao;
-
-	@Override
-	public BaseDAO<Long, PlatformCashAccountDetail> getDAO() {
-		return platformCashAccountDetailDao;
-	}
-	
-}

+ 0 - 23
mec-web/src/main/java/com/ym/mec/web/service/impl/PlatformCashAccountServiceImpl.java

@@ -1,23 +0,0 @@
-package com.ym.mec.web.service.impl;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.common.service.impl.BaseServiceImpl;
-import com.ym.mec.web.dal.dao.PlatformCashAccountDao;
-import com.ym.mec.web.dal.entity.PlatformCashAccount;
-import com.ym.mec.web.service.PlatformCashAccountService;
-
-@Service
-public class PlatformCashAccountServiceImpl extends BaseServiceImpl<String, PlatformCashAccount>  implements PlatformCashAccountService {
-	
-	@Autowired
-	private PlatformCashAccountDao platformCashAccountDao;
-
-	@Override
-	public BaseDAO<String, PlatformCashAccount> getDAO() {
-		return platformCashAccountDao;
-	}
-	
-}

+ 4 - 4
mec-web/src/main/java/com/ym/mec/web/service/impl/StudentAttendanceServiceImpl.java

@@ -9,6 +9,7 @@ import com.ym.mec.web.dal.dto.StudentStatusCountUtilEntity;
 import com.ym.mec.web.dal.entity.StudentAttendance;
 import com.ym.mec.web.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.web.dal.page.StudentAttendanceQueryInfo;
+import com.ym.mec.web.dal.utilEntity.StudentAttendancePageInfo;
 import com.ym.mec.web.service.StudentAttendanceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -38,10 +39,9 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 	}
 
 	@Override
-	public Map<String, Object> getCurrentCourseStudents(QueryInfo queryInfo) {
-		Map<String,Object> result=new HashMap<>();
-
+	public StudentAttendancePageInfo queryPage(QueryInfo queryInfo) {
 		PageInfo pageInfo = super.queryPage(queryInfo);
+		StudentAttendancePageInfo studentAttendancePageInfo = new StudentAttendancePageInfo();
 
 		result.put("pageInfo",pageInfo);
 
@@ -50,7 +50,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		stringIntegerMap.forEach(studentStatusCount->{
 			switch (studentStatusCount.getStudentStatus()){
 				case LEAVE:
-					result.put("numberOfLeavePeoples",studentStatusCount.getNumberOfStudent());
+					studentAttendancePageInfo.setNumberOfLeavePeoples(studentStatusCount.getNumberOfStudent());
 					break;
 
 			}

+ 1 - 1
mec-web/src/main/resources/config/mybatis/ClassGroupRelationMapper.xml

@@ -32,7 +32,7 @@
         </selectKey>
         -->
         INSERT INTO class_group_relation (id_,class_group_id_,sub_class_group_id_,create_time_)
-        VALUES(#{id},#{classGroupId},#{subClassGroupId},#{createTime})
+        VALUES(#{id},#{classGroupId},#{subClassGroupId},now())
     </insert>
 
     <!-- 根据主键查询一条记录 -->

+ 4 - 4
mec-web/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml

@@ -7,7 +7,7 @@
 		id="MusicGroupSubjectGoodsGroup">
 		<result column="id_" property="id" />
 		<result column="name_" property="name" />
-		<result column="type_" property="type" />
+		<result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="music_group_id_" property="musicGroupId" />
 		<result column="subject_id_" property="subjectId" />
 		<result column="goods_id_list_" property="goodsIdList" />
@@ -34,13 +34,13 @@
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO music_group_subject_goods_group
 		(id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_)
-		VALUES(#{id},#{name},#{type},#{musicGroupId},#{subjectId},#{goodsIdList},NOW(),NOW(),#{price})
+		VALUES(#{id},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{subjectId},#{goodsIdList},NOW(),NOW(),#{price})
 	</insert>
 
     <insert id="batchInsert" parameterType="java.util.List">
 		INSERT INTO music_group_subject_goods_group (id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_) VALUES
 		<foreach collection="mappers" item="item" index="index" separator=",">
-			VALUES(#{item.id},#{item.name},#{item.type},#{item.musicGroupId},#{item.subjectId},#{item.goodsIdList},NOW(),NOW(),#{item.price})
+			VALUES(#{item.id},#{item.name},#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.musicGroupId},#{item.subjectId},#{item.goodsIdList},NOW(),NOW(),#{item.price})
 		</foreach>
 	</insert>
 
@@ -62,7 +62,7 @@
 				update_time_ = #{updateTime},
 			</if>
 			<if test="type != null">
-				type_ = #{type},
+				type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
 			<if test="musicGroupId != null">
 				music_group_id_ = #{musicGroupId},

+ 0 - 96
mec-web/src/main/resources/config/mybatis/PlatformCashAccountDetailMapper.xml

@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-这个文件是自动生成的。
-不要修改此文件。所有改动将在下次重新自动生成时丢失。
--->
-<mapper namespace="com.ym.mec.web.dal.dao.PlatformCashAccountDetailDao">
-
-    <resultMap type="com.ym.mec.web.dal.entity.PlatformCashAccountDetail" id="PlatformCashAccountDetail">
-        <result column="id_" property="id"/>
-        <result column="platform_cash_account_id_" property="platformCashAccountId"/>
-        <result column="trans_no_" property="transNo"/>
-        <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="amount_" property="amount"/>
-        <result column="balance_" property="balance"/>
-        <result column="description_" property="description"/>
-        <result column="comment_" property="comment"/>
-        <result column="create_time_" property="createTime"/>
-        <result column="update_time_" property="updateTime"/>
-    </resultMap>
-
-    <!-- 根据主键查询一条记录 -->
-    <select id="get" resultMap="PlatformCashAccountDetail">
-		SELECT * FROM platform_cash_account_detail WHERE id_ = #{id} 
-	</select>
-
-    <!-- 全查询 -->
-    <select id="findAll" resultMap="PlatformCashAccountDetail">
-		SELECT * FROM platform_cash_account_detail ORDER BY id_
-	</select>
-
-    <!-- 向数据库增加一条记录 -->
-    <insert id="insert" parameterType="com.ym.mec.web.dal.entity.PlatformCashAccountDetail" useGeneratedKeys="true"
-            keyColumn="id" keyProperty="id">
-        <!--
-        <selectKey resultClass="int" keyProperty="id" >
-        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
-        </selectKey>
-        -->
-        INSERT INTO platform_cash_account_detail
-        (id_,platform_cash_account_id_,trans_no_,type_,status_,amount_,balance_,description_,comment_,create_time_,update_time_)
-        VALUES(#{id},#{platformCashAccountId},#{transNo},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{balance},#{description},#{comment},now(),now())
-    </insert>
-
-    <!-- 根据主键查询一条记录 -->
-    <update id="update" parameterType="com.ym.mec.web.dal.entity.PlatformCashAccountDetail">
-        UPDATE platform_cash_account_detail
-        <set>
-            <if test="status != null">
-                status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            </if>
-            <if test="balance != null">
-                balance_ = #{balance},
-            </if>
-            <if test="comment != null">
-                comment_ = #{comment},
-            </if>
-            <if test="updateTime != null">
-                update_time_ = #{updateTime},
-            </if>
-            <if test="amount != null">
-                amount_ = #{amount},
-            </if>
-            <if test="platformCashAccountId != null">
-                platform_cash_account_id_ = #{platformCashAccountId},
-            </if>
-            <if test="description != null">
-                description_ = #{description},
-            </if>
-            <if test="transNo != null">
-                trans_no_ = #{transNo},
-            </if>
-            <if test="type != null">
-                type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            </if>
-        </set>
-        WHERE id_ = #{id}
-    </update>
-
-    <!-- 根据主键删除一条记录 -->
-    <delete id="delete">
-		DELETE FROM platform_cash_account_detail WHERE id_ = #{id} 
-	</delete>
-
-    <!-- 分页查询 -->
-    <select id="queryPage" resultMap="PlatformCashAccountDetail" parameterType="map">
-        SELECT * FROM platform_cash_account_detail ORDER BY id_
-        <include refid="global.limit"/>
-    </select>
-
-    <!-- 查询当前表的总记录数 -->
-    <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM platform_cash_account_detail
-	</select>
-</mapper>

+ 0 - 84
mec-web/src/main/resources/config/mybatis/PlatformCashAccountMapper.xml

@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-这个文件是自动生成的。
-不要修改此文件。所有改动将在下次重新自动生成时丢失。
--->
-<mapper namespace="com.ym.mec.web.dal.dao.PlatformCashAccountDao">
-
-    <resultMap type="com.ym.mec.web.dal.entity.PlatformCashAccount" id="PlatformCashAccount">
-        <result column="id_" property="id"/>
-        <result column="currency_" property="currency"/>
-        <result column="balance_" property="balance"/>
-        <result column="frozen_amount_" property="frozenAmount"/>
-        <result column="margin_balance_" property="marginBalance"/>
-        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="create_time_" property="createTime"/>
-        <result column="update_time" property="updateTime"/>
-    </resultMap>
-
-    <!-- 根据主键查询一条记录 -->
-    <select id="get" resultMap="PlatformCashAccount">
-		SELECT * FROM platform_cash_account WHERE id_ = #{id} 
-	</select>
-
-    <!-- 全查询 -->
-    <select id="findAll" resultMap="PlatformCashAccount">
-		SELECT * FROM platform_cash_account ORDER BY id_
-	</select>
-
-    <!-- 向数据库增加一条记录 -->
-    <insert id="insert" parameterType="com.ym.mec.web.dal.entity.PlatformCashAccount" useGeneratedKeys="true"
-            keyColumn="id" keyProperty="id">
-        <!--
-        <selectKey resultClass="int" keyProperty="id" >
-        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
-        </selectKey>
-        -->
-        INSERT INTO platform_cash_account
-        (id_,currency_,balance_,frozen_amount_,margin_balance_,status_,create_time_,update_time)
-        VALUES(#{id},#{currency},#{balance},#{frozenAmount},#{marginBalance},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now())
-    </insert>
-
-    <!-- 根据主键查询一条记录 -->
-    <update id="update" parameterType="com.ym.mec.web.dal.entity.PlatformCashAccount">
-        UPDATE platform_cash_account
-        <set>
-            <if test="status != null">
-                status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            </if>
-            <if test="updateTime != null">
-                update_time = #{updateTime},
-            </if>
-            <if test="frozenAmount != null">
-                frozen_amount_ = #{frozenAmount},
-            </if>
-            <if test="balance != null">
-                balance_ = #{balance},
-            </if>
-            <if test="marginBalance != null">
-                margin_balance_ = #{marginBalance},
-            </if>
-            <if test="currency != null">
-                currency_ = #{currency},
-            </if>
-        </set>
-        WHERE id_ = #{id}
-    </update>
-
-    <!-- 根据主键删除一条记录 -->
-    <delete id="delete">
-		DELETE FROM platform_cash_account WHERE id_ = #{id} 
-	</delete>
-
-    <!-- 分页查询 -->
-    <select id="queryPage" resultMap="PlatformCashAccount" parameterType="map">
-        SELECT * FROM platform_cash_account ORDER BY id_
-        <include refid="global.limit"/>
-    </select>
-
-    <!-- 查询当前表的总记录数 -->
-    <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM platform_cash_account
-	</select>
-</mapper>

+ 64 - 64
mec-web/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml

@@ -5,76 +5,76 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.ym.mec.web.dal.dao.StudentPaymentOrderDetailDao">
-	
-	<resultMap type="com.ym.mec.web.dal.entity.StudentPaymentOrderDetail" id="StudentPaymentOrderDetail">
-		<result column="id_" property="id" />
-		<result column="type_" property="type" />
-		<result column="goods_id_list_" property="goodsIdList" />
-		<result column="price_" property="price" />
-		<result column="create_time_" property="createTime" />
-		<result column="update_time_" property="updateTime" />
-		<result column="payment_order_id_" property="paymentOrderId" />
-	</resultMap>
-	
-	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="StudentPaymentOrderDetail" >
+
+    <resultMap type="com.ym.mec.web.dal.entity.StudentPaymentOrderDetail" id="StudentPaymentOrderDetail">
+        <result column="id_" property="id"/>
+        <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="goods_id_list_" property="goodsIdList"/>
+        <result column="price_" property="price"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="payment_order_id_" property="paymentOrderId"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="StudentPaymentOrderDetail">
 		SELECT * FROM student_payment_order_detail WHERE id_ = #{id} 
 	</select>
-	
-	<!-- 全查询 -->
-	<select id="findAll" resultMap="StudentPaymentOrderDetail">
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="StudentPaymentOrderDetail">
 		SELECT * FROM student_payment_order_detail ORDER BY id_
 	</select>
-	
-	<!-- 向数据库增加一条记录 -->
-	<insert id="insert" parameterType="com.ym.mec.web.dal.entity.StudentPaymentOrderDetail" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO student_payment_order_detail (id_,type_,goods_id_list_,price_,create_time_,update_time_,payment_order_id_) VALUES(#{id},#{type},#{goodsIdList},#{price},#{createTime},#{updateTime},#{paymentOrderId})
-	</insert>
-	
-	<!-- 根据主键查询一条记录 -->
-	<update id="update" parameterType="com.ym.mec.web.dal.entity.StudentPaymentOrderDetail">
-		UPDATE student_payment_order_detail <set>
-<if test="price != null">
-price_ = #{price},
-</if>
-<if test="goodsIdList != null">
-goods_id_list_ = #{goodsIdList},
-</if>
-<if test="id != null">
-id_ = #{id},
-</if>
-<if test="updateTime != null">
-update_time_ = #{updateTime},
-</if>
-<if test="paymentOrderId != null">
-payment_order_id_ = #{paymentOrderId},
-</if>
-<if test="type != null">
-type_ = #{type},
-</if>
-<if test="createTime != null">
-create_time_ = #{createTime},
-</if>
-</set> WHERE id_ = #{id} 
-	</update>
-	
-	<!-- 根据主键删除一条记录 -->
-	<delete id="delete" >
+
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.ym.mec.web.dal.entity.StudentPaymentOrderDetail" useGeneratedKeys="true"
+            keyColumn="id" keyProperty="id">
+        <!--
+        <selectKey resultClass="int" keyProperty="id" >
+        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
+        </selectKey>
+        -->
+        INSERT INTO student_payment_order_detail
+        (id_,type_,goods_id_list_,price_,create_time_,update_time_,payment_order_id_)
+        VALUES(#{id},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{goodsIdList},#{price},now(),now(),#{paymentOrderId})
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.ym.mec.web.dal.entity.StudentPaymentOrderDetail">
+        UPDATE student_payment_order_detail
+        <set>
+            <if test="price != null">
+                price_ = #{price},
+            </if>
+            <if test="goodsIdList != null">
+                goods_id_list_ = #{goodsIdList},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+            <if test="paymentOrderId != null">
+                payment_order_id_ = #{paymentOrderId},
+            </if>
+            <if test="type != null">
+                type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
+
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
 		DELETE FROM student_payment_order_detail WHERE id_ = #{id} 
 	</delete>
-	
-	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="StudentPaymentOrderDetail" parameterType="map">
-		SELECT * FROM student_payment_order_detail ORDER BY id_ <include refid="global.limit"/>
-	</select>
-	
-	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="StudentPaymentOrderDetail" parameterType="map">
+        SELECT * FROM student_payment_order_detail ORDER BY id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM student_payment_order_detail
 	</select>
 </mapper>

+ 100 - 100
mec-web/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -5,112 +5,112 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.ym.mec.web.dal.dao.StudentPaymentOrderDao">
-	
-	<resultMap type="com.ym.mec.web.dal.entity.StudentPaymentOrder" id="StudentPaymentOrder">
-		<result column="id_" property="id" />
-		<result column="user_id_" property="userId" />
-		<result column="type_" property="type" />
-		<result column="expect_amount_" property="expectAmount" />
-		<result column="actual_amount_" property="actualAmount" />
-		<result column="trans_no_" property="transNo" />
-		<result column="status_" property="status" />
-		<result column="memo_" property="memo" />
-		<result column="create_time_" property="createTime" />
-		<result column="update_time_" property="updateTime" />
-		<result column="payment_channel_" property="paymentChannel" />
-		<result column="payment_business_channel_" property="paymentBusinessChannel" />
-		<result column="payment_account_no_" property="paymentAccountNo" />
-		<result column="order_no_" property="orderNo" />
-		<result column="music_group_id_" property="musicGroupId" />
-		<result column="class_group_id_" property="classGroupId" />
-	</resultMap>
-	
-	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="StudentPaymentOrder" >
+
+    <resultMap type="com.ym.mec.web.dal.entity.StudentPaymentOrder" id="StudentPaymentOrder">
+        <result column="id_" property="id"/>
+        <result column="user_id_" property="userId"/>
+        <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="expect_amount_" property="expectAmount"/>
+        <result column="actual_amount_" property="actualAmount"/>
+        <result column="trans_no_" property="transNo"/>
+        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="memo_" property="memo"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="payment_channel_" property="paymentChannel"/>
+        <result column="payment_business_channel_" property="paymentBusinessChannel"/>
+        <result column="payment_account_no_" property="paymentAccountNo"/>
+        <result column="order_no_" property="orderNo"/>
+        <result column="music_group_id_" property="musicGroupId"/>
+        <result column="class_group_id_" property="classGroupId"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="StudentPaymentOrder">
 		SELECT * FROM student_payment_order WHERE id_ = #{id} 
 	</select>
-	
-	<!-- 全查询 -->
-	<select id="findAll" resultMap="StudentPaymentOrder">
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="StudentPaymentOrder">
 		SELECT * FROM student_payment_order ORDER BY id_
 	</select>
-	
-	<!-- 向数据库增加一条记录 -->
-	<insert id="insert" parameterType="com.ym.mec.web.dal.entity.StudentPaymentOrder" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO student_payment_order (id_,user_id_,type_,expect_amount_,actual_amount_,trans_no_,status_,memo_,create_time_,update_time_,payment_channel_,payment_business_channel_,payment_account_no_,order_no_,music_group_id_,class_group_id_) VALUES(#{id},#{userId},#{type},#{expectAmount},#{actualAmount},#{transNo},#{status},#{memo},#{createTime},#{updateTime},#{paymentChannel},#{paymentBusinessChannel},#{paymentAccountNo},#{orderNo},#{musicGroupId},#{classGroupId})
-	</insert>
-	
-	<!-- 根据主键查询一条记录 -->
-	<update id="update" parameterType="com.ym.mec.web.dal.entity.StudentPaymentOrder">
-		UPDATE student_payment_order <set>
-<if test="status != null">
-status_ = #{status},
-</if>
-<if test="orderNo != null">
-order_no_ = #{orderNo},
-</if>
-<if test="id != null">
-id_ = #{id},
-</if>
-<if test="classGroupId != null">
-class_group_id_ = #{classGroupId},
-</if>
-<if test="expectAmount != null">
-expect_amount_ = #{expectAmount},
-</if>
-<if test="memo != null">
-memo_ = #{memo},
-</if>
-<if test="paymentChannel != null">
-payment_channel_ = #{paymentChannel},
-</if>
-<if test="createTime != null">
-create_time_ = #{createTime},
-</if>
-<if test="userId != null">
-user_id_ = #{userId},
-</if>
-<if test="paymentAccountNo != null">
-payment_account_no_ = #{paymentAccountNo},
-</if>
-<if test="updateTime != null">
-update_time_ = #{updateTime},
-</if>
-<if test="paymentBusinessChannel != null">
-payment_business_channel_ = #{paymentBusinessChannel},
-</if>
-<if test="transNo != null">
-trans_no_ = #{transNo},
-</if>
-<if test="actualAmount != null">
-actual_amount_ = #{actualAmount},
-</if>
-<if test="type != null">
-type_ = #{type},
-</if>
-<if test="musicGroupId != null">
-music_group_id_ = #{musicGroupId},
-</if>
-</set> WHERE id_ = #{id} 
-	</update>
-	
-	<!-- 根据主键删除一条记录 -->
-	<delete id="delete" >
+
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.ym.mec.web.dal.entity.StudentPaymentOrder" useGeneratedKeys="true"
+            keyColumn="id" keyProperty="id">
+        <!--
+        <selectKey resultClass="int" keyProperty="id" >
+        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
+        </selectKey>
+        -->
+        INSERT INTO student_payment_order
+        (id_,user_id_,type_,expect_amount_,actual_amount_,trans_no_,status_,memo_,create_time_,update_time_,payment_channel_,payment_business_channel_,payment_account_no_,order_no_,music_group_id_,class_group_id_)
+        VALUES(#{id},#{userId},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{expectAmount},#{actualAmount},#{transNo},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{memo},now(),now(),#{paymentChannel},#{paymentBusinessChannel},#{paymentAccountNo},#{orderNo},#{musicGroupId},#{classGroupId})
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.ym.mec.web.dal.entity.StudentPaymentOrder">
+        UPDATE student_payment_order
+        <set>
+            <if test="status != null">
+                status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="orderNo != null">
+                order_no_ = #{orderNo},
+            </if>
+            <if test="classGroupId != null">
+                class_group_id_ = #{classGroupId},
+            </if>
+            <if test="expectAmount != null">
+                expect_amount_ = #{expectAmount},
+            </if>
+            <if test="memo != null">
+                memo_ = #{memo},
+            </if>
+            <if test="paymentChannel != null">
+                payment_channel_ = #{paymentChannel},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="paymentAccountNo != null">
+                payment_account_no_ = #{paymentAccountNo},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+            <if test="paymentBusinessChannel != null">
+                payment_business_channel_ = #{paymentBusinessChannel},
+            </if>
+            <if test="transNo != null">
+                trans_no_ = #{transNo},
+            </if>
+            <if test="actualAmount != null">
+                actual_amount_ = #{actualAmount},
+            </if>
+            <if test="type != null">
+                type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="musicGroupId != null">
+                music_group_id_ = #{musicGroupId},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
+
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
 		DELETE FROM student_payment_order WHERE id_ = #{id} 
 	</delete>
-	
-	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="StudentPaymentOrder" parameterType="map">
-		SELECT * FROM student_payment_order ORDER BY id_ <include refid="global.limit"/>
-	</select>
-	
-	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="StudentPaymentOrder" parameterType="map">
+        SELECT * FROM student_payment_order ORDER BY id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM student_payment_order
 	</select>
 </mapper>

+ 4 - 3
mec-web/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -14,7 +14,7 @@
         <result column="current_class_" property="currentClass"/>
         <result column="subject_id_" property="subjectId"/>
         <result column="is_allow_adjust_" property="isAllowAdjust" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="kit_purchase_method_" property="kitPurchaseMethod"/>
+        <result column="kit_purchase_method_" property="kitPurchaseMethod" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="remark_" property="remark"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
@@ -46,7 +46,8 @@
         -->
         INSERT INTO student_registration
         (parents_phone_,id_,user_id_,music_group_id_,current_grade_,current_class_,subject_id_,is_allow_adjust_,kit_purchase_method_,remark_,create_time_,update_time_,parents_name_,parents_company_,payment_status_,last_payment_date_,next_payment_date_)
-        VALUES(#{parentsPhone},#{id},#{userId},#{musicGroupId},#{currentGrade},#{currentClass},#{subjectId},#{isAllowAdjust,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{kitPurchaseMethod},#{remark},#{createTime},#{updateTime},#{parentsName},#{parentsCompany},#{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{lastPaymentDate},#{nextPaymentDate})
+        VALUES(#{parentsPhone},#{id},#{userId},#{musicGroupId},#{currentGrade},#{currentClass},#{subjectId},#{isAllowAdjust,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{kitPurchaseMethod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+        #{remark},now(),now(),#{parentsName},#{parentsCompany},#{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{lastPaymentDate},#{nextPaymentDate})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -75,7 +76,7 @@
                 is_allow_adjust_ = #{isAllowAdjust,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
             <if test="kitPurchaseMethod != null">
-                kit_purchase_method_ = #{kitPurchaseMethod},
+                kit_purchase_method_ = #{kitPurchaseMethod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
             <if test="userId != null">
                 user_id_ = #{userId},

+ 1 - 1
mec-web/src/main/resources/config/mybatis/SubjectGoodsMapperMapper.xml

@@ -35,7 +35,7 @@
         </selectKey>
         -->
         INSERT INTO subject_plan_goods_mapper (id_,organ_id_,subject_id_,goods_id_,type_,create_time_,update_time_)
-        VALUES(#{id},#{organId},#{subjectId},#{goodsId},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{createTime},#{updateTime})
+        VALUES(#{id},#{organId},#{subjectId},#{goodsId},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now())
     </insert>
 
     <!-- 根据主键查询一条记录 -->

+ 1 - 1
mec-web/src/main/resources/config/mybatis/SubjectMapper.xml

@@ -35,7 +35,7 @@
         </selectKey>
         -->
         INSERT INTO subject (id_,name_,code_,parent_subject_id_,create_time_,update_time_,del_flag_)
-        VALUES(#{id},#{name},#{code},#{parentSubjectId},#{createTime},#{updateTime},#{delFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+        VALUES(#{id},#{name},#{code},#{parentSubjectId},now(),now(),#{delFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
 
     <!-- 根据主键查询一条记录 -->

+ 80 - 80
mec-web/src/main/resources/config/mybatis/SysUserCashAccountDetailMapper.xml

@@ -5,92 +5,92 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.ym.mec.web.dal.dao.SysUserCashAccountDetailDao">
-	
-	<resultMap type="com.ym.mec.web.dal.entity.SysUserCashAccountDetail" id="SysUserCashAccountDetail">
-		<result column="id_" property="id" />
-		<result column="user_id_" property="userId" />
-		<result column="trans_no_" property="transNo" />
-		<result column="type_" property="type" />
-		<result column="status_" property="status" />
-		<result column="amount_" property="amount" />
-		<result column="balance_" property="balance" />
-		<result column="description_" property="description" />
-		<result column="comment_" property="comment" />
-		<result column="create_time_" property="createTime" />
-		<result column="update_time_" property="updateTime" />
-	</resultMap>
-	
-	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="SysUserCashAccountDetail" >
+
+    <resultMap type="com.ym.mec.web.dal.entity.SysUserCashAccountDetail" id="SysUserCashAccountDetail">
+        <result column="id_" property="id"/>
+        <result column="user_id_" property="userId"/>
+        <result column="trans_no_" property="transNo"/>
+        <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="amount_" property="amount"/>
+        <result column="balance_" property="balance"/>
+        <result column="description_" property="description"/>
+        <result column="comment_" property="comment"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="SysUserCashAccountDetail">
 		SELECT * FROM sys_user_cash_account_detail WHERE id_ = #{id} 
 	</select>
-	
-	<!-- 全查询 -->
-	<select id="findAll" resultMap="SysUserCashAccountDetail">
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="SysUserCashAccountDetail">
 		SELECT * FROM sys_user_cash_account_detail ORDER BY id_
 	</select>
-	
-	<!-- 向数据库增加一条记录 -->
-	<insert id="insert" parameterType="com.ym.mec.web.dal.entity.SysUserCashAccountDetail" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO sys_user_cash_account_detail (id_,user_id_,trans_no_,type_,status_,amount_,balance_,description_,comment_,create_time_,update_time_) VALUES(#{id},#{userId},#{transNo},#{type},#{status},#{amount},#{balance},#{description},#{comment},#{createTime},#{updateTime})
-	</insert>
-	
-	<!-- 根据主键查询一条记录 -->
-	<update id="update" parameterType="com.ym.mec.web.dal.entity.SysUserCashAccountDetail">
-		UPDATE sys_user_cash_account_detail <set>
-<if test="status != null">
-status_ = #{status},
-</if>
-<if test="userId != null">
-user_id_ = #{userId},
-</if>
-<if test="id != null">
-id_ = #{id},
-</if>
-<if test="balance != null">
-balance_ = #{balance},
-</if>
-<if test="comment != null">
-comment_ = #{comment},
-</if>
-<if test="updateTime != null">
-update_time_ = #{updateTime},
-</if>
-<if test="amount != null">
-amount_ = #{amount},
-</if>
-<if test="description != null">
-description_ = #{description},
-</if>
-<if test="transNo != null">
-trans_no_ = #{transNo},
-</if>
-<if test="type != null">
-type_ = #{type},
-</if>
-<if test="createTime != null">
-create_time_ = #{createTime},
-</if>
-</set> WHERE id_ = #{id} 
-	</update>
-	
-	<!-- 根据主键删除一条记录 -->
-	<delete id="delete" >
+
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.ym.mec.web.dal.entity.SysUserCashAccountDetail" useGeneratedKeys="true"
+            keyColumn="id" keyProperty="id">
+        <!--
+        <selectKey resultClass="int" keyProperty="id" >
+        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
+        </selectKey>
+        -->
+        INSERT INTO sys_user_cash_account_detail
+        (id_,user_id_,trans_no_,type_,status_,amount_,balance_,description_,comment_,create_time_,update_time_)
+        VALUES(#{id},#{userId},#{transNo},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{balance},#{description},#{comment},now(),now())
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.ym.mec.web.dal.entity.SysUserCashAccountDetail">
+        UPDATE sys_user_cash_account_detail
+        <set>
+            <if test="status != null">
+                status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="balance != null">
+                balance_ = #{balance},
+            </if>
+            <if test="comment != null">
+                comment_ = #{comment},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+            <if test="amount != null">
+                amount_ = #{amount},
+            </if>
+            <if test="description != null">
+                description_ = #{description},
+            </if>
+            <if test="transNo != null">
+                trans_no_ = #{transNo},
+            </if>
+            <if test="type != null">
+                type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
+
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
 		DELETE FROM sys_user_cash_account_detail WHERE id_ = #{id} 
 	</delete>
-	
-	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="SysUserCashAccountDetail" parameterType="map">
-		SELECT * FROM sys_user_cash_account_detail ORDER BY id_ <include refid="global.limit"/>
-	</select>
-	
-	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="SysUserCashAccountDetail" parameterType="map">
+        SELECT * FROM sys_user_cash_account_detail ORDER BY id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM sys_user_cash_account_detail
 	</select>
 </mapper>

+ 71 - 68
mec-web/src/main/resources/config/mybatis/SysUserCashAccountMapper.xml

@@ -5,80 +5,83 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.ym.mec.web.dal.dao.SysUserCashAccountDao">
-	
-	<resultMap type="com.ym.mec.web.dal.entity.SysUserCashAccount" id="SysUserCashAccount">
-		<result column="user_id_" property="userId" />
-		<result column="currency_" property="currency" />
-		<result column="balance_" property="balance" />
-		<result column="frozen_amount_" property="frozenAmount" />
-		<result column="margin_balance_" property="marginBalance" />
-		<result column="status_" property="status" />
-		<result column="create_time_" property="createTime" />
-		<result column="update_time" property="updateTime" />
-	</resultMap>
-	
-	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="SysUserCashAccount" >
+
+    <resultMap type="com.ym.mec.web.dal.entity.SysUserCashAccount" id="SysUserCashAccount">
+        <result column="user_id_" property="userId"/>
+        <result column="currency_" property="currency"/>
+        <result column="balance_" property="balance"/>
+        <result column="frozen_amount_" property="frozenAmount"/>
+        <result column="margin_balance_" property="marginBalance"/>
+        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="SysUserCashAccount">
 		SELECT * FROM sys_user_cash_account WHERE user_id_ = #{userId} 
 	</select>
-	
-	<!-- 全查询 -->
-	<select id="findAll" resultMap="SysUserCashAccount">
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="SysUserCashAccount">
 		SELECT * FROM sys_user_cash_account ORDER BY user_id_
 	</select>
-	
-	<!-- 向数据库增加一条记录 -->
-	<insert id="insert" parameterType="com.ym.mec.web.dal.entity.SysUserCashAccount" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO sys_user_cash_account (user_id_,currency_,balance_,frozen_amount_,margin_balance_,status_,create_time_,update_time) VALUES(#{userId},#{currency},#{balance},#{frozenAmount},#{marginBalance},#{status},#{createTime},#{updateTime})
-	</insert>
-	
-	<!-- 根据主键查询一条记录 -->
-	<update id="update" parameterType="com.ym.mec.web.dal.entity.SysUserCashAccount">
-		UPDATE sys_user_cash_account <set>
-<if test="status != null">
-status_ = #{status},
-</if>
-<if test="userId != null">
-user_id_ = #{userId},
-</if>
-<if test="updateTime != null">
-update_time = #{updateTime},
-</if>
-<if test="frozenAmount != null">
-frozen_amount_ = #{frozenAmount},
-</if>
-<if test="balance != null">
-balance_ = #{balance},
-</if>
-<if test="marginBalance != null">
-margin_balance_ = #{marginBalance},
-</if>
-<if test="currency != null">
-currency_ = #{currency},
-</if>
-<if test="createTime != null">
-create_time_ = #{createTime},
-</if>
-</set> WHERE user_id_ = #{userId} 
-	</update>
-	
-	<!-- 根据主键删除一条记录 -->
-	<delete id="delete" >
+
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.ym.mec.web.dal.entity.SysUserCashAccount" useGeneratedKeys="true"
+            keyColumn="id" keyProperty="id">
+        <!--
+        <selectKey resultClass="int" keyProperty="id" >
+        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
+        </selectKey>
+        -->
+        INSERT INTO sys_user_cash_account
+        (user_id_,currency_,balance_,frozen_amount_,margin_balance_,status_,create_time_,update_time)
+        VALUES(#{userId},#{currency},#{balance},#{frozenAmount},#{marginBalance},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now())
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.ym.mec.web.dal.entity.SysUserCashAccount">
+        UPDATE sys_user_cash_account
+        <set>
+            <if test="status != null">
+                status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
+            <if test="frozenAmount != null">
+                frozen_amount_ = #{frozenAmount},
+            </if>
+            <if test="balance != null">
+                balance_ = #{balance},
+            </if>
+            <if test="marginBalance != null">
+                margin_balance_ = #{marginBalance},
+            </if>
+            <if test="currency != null">
+                currency_ = #{currency},
+            </if>
+        </set>
+        WHERE user_id_ = #{userId}
+    </update>
+
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
 		DELETE FROM sys_user_cash_account WHERE user_id_ = #{userId} 
 	</delete>
-	
-	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="SysUserCashAccount" parameterType="map">
-		SELECT * FROM sys_user_cash_account ORDER BY user_id_ <include refid="global.limit"/>
-	</select>
-	
-	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="SysUserCashAccount" parameterType="map">
+        SELECT * FROM sys_user_cash_account ORDER BY user_id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM sys_user_cash_account
 	</select>
 </mapper>

+ 1 - 1
mec-web/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -39,7 +39,7 @@
         -->
         INSERT INTO teacher_attendance
         (id_,teacher_id_,music_group_id_,subject_id_,class_group_id_,course_schedule_id_,sign_in_time_,status_,remark_,create_time_)
-        VALUES(#{id},#{teacherId},#{musicGroupId},#{subjectId},#{classGroupId},#{courseScheduleId},#{signInTime},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{remark},#{createTime})
+        VALUES(#{id},#{teacherId},#{musicGroupId},#{subjectId},#{classGroupId},#{courseScheduleId},#{signInTime},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{remark},now())
     </insert>
 
     <!-- 根据主键查询一条记录 -->

+ 1 - 1
mec-web/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -46,7 +46,7 @@
         -->
         INSERT INTO teacher
         (user_id_,organ_id_,job_type_,job_nature_,is_probation_period_,education_background_,graduate_school_,technical_titles_,work_unit_,subject_id_,entry_date_,certificate_type_,certificate_num_,flow_organ_range_,introduction_,update_time_,create_time_)
-        VALUES(#{userId},#{organId},#{jobType},#{jobNature},#{isProbationPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{educationBackground},#{graduateSchool},#{technicalTitles},#{workUnit},#{subjectId},#{entryDate},#{certificateType},#{certificateNum},#{flowOrganRange},#{introduction},#{updateTime},#{createTime})
+        VALUES(#{userId},#{organId},#{jobType},#{jobNature},#{isProbationPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{educationBackground},#{graduateSchool},#{technicalTitles},#{workUnit},#{subjectId},#{entryDate},#{certificateType},#{certificateNum},#{flowOrganRange},#{introduction},now(),now())
     </insert>
 
     <!-- 根据主键查询一条记录 -->

+ 66 - 0
mec-workflow/pom.xml

@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>com.ym</groupId>
+		<artifactId>mec</artifactId>
+		<version>1.0</version>
+	</parent>
+	<artifactId>mec-workflow</artifactId>
+	<name>mec-workflow</name>
+	<url>http://maven.apache.org</url>
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+	
+	<dependencies>
+		
+		<dependency>
+			<groupId>org.springframework.cloud</groupId>
+			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.springframework.cloud</groupId>
+			<artifactId>spring-cloud-starter-security</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.springframework.cloud</groupId>
+			<artifactId>spring-cloud-sleuth-zipkin</artifactId>
+		</dependency>
+
+		<!-- swagger-spring-boot -->
+		<dependency>
+			<groupId>com.spring4all</groupId>
+			<artifactId>swagger-spring-boot-starter</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>druid-spring-boot-starter</artifactId>
+		</dependency>
+		
+		<dependency>
+			<groupId>mysql</groupId>
+			<artifactId>mysql-connector-java</artifactId>
+		</dependency>
+		
+		<dependency>
+			<groupId>com.ym</groupId>
+			<artifactId>common-core</artifactId>
+		</dependency>
+		
+		<dependency>
+			<groupId>com.ym</groupId>
+			<artifactId>mec-auth-api</artifactId>
+		</dependency>
+		
+		<dependency>
+			<groupId>com.ym</groupId>
+			<artifactId>snakerflowy</artifactId>
+		</dependency>
+	</dependencies>
+</project>

+ 24 - 0
mec-workflow/src/main/java/com/ym/mec/workfow/WorkflowApplication.java

@@ -0,0 +1,24 @@
+package com.ym.mec.workfow;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+import com.spring4all.swagger.EnableSwagger2Doc;
+
+@SpringBootApplication
+@EnableDiscoveryClient
+@EnableFeignClients("com.ym.mec")
+@MapperScan("com.ym.mec.workflow.dal.dao")
+@ComponentScan(basePackages = { "com.ym.mec", "org.snaker.engine" })
+@Configuration
+@EnableSwagger2Doc
+public class WorkflowApplication {
+	public static void main(String[] args) {
+		SpringApplication.run(WorkflowApplication.class, args);
+	}
+}

+ 36 - 0
mec-workflow/src/main/java/com/ym/mec/workfow/config/ResourceServerConfig.java

@@ -0,0 +1,36 @@
+package com.ym.mec.workfow.config;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
+import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
+import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer;
+
+import com.ym.mec.common.security.BaseAccessDeniedHandler;
+import com.ym.mec.common.security.BaseAuthenticationEntryPoint;
+
+@Configuration
+@EnableResourceServer
+public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
+
+	@Autowired
+	private BaseAccessDeniedHandler baseAccessDeniedHandler;
+
+	@Autowired
+	private BaseAuthenticationEntryPoint baseAuthenticationEntryPoint;
+
+	@Override
+	public void configure(HttpSecurity http) throws Exception {
+		http.authorizeRequests().antMatchers("/v2/api-docs", "/news/list", "/news/query/*").permitAll()// 任何人不登录都可以获取的资源
+				// .antMatchers("/ipController/**").hasIpAddress("127.0.0.1") //特定ip可以不登录获取资源
+				// .antMatchers("/ipControll/**").access("isAuthenticated() and hasIpAddress('127.0.0.1')")// 特定ip必须登录才能获取
+				.anyRequest().authenticated().and().csrf().disable();
+	}
+
+	@Override
+	public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
+		resources.authenticationEntryPoint(baseAuthenticationEntryPoint).accessDeniedHandler(baseAccessDeniedHandler);
+	}
+
+}

+ 106 - 0
mec-workflow/src/main/java/com/ym/mec/workfow/config/WebMvcConfig.java

@@ -0,0 +1,106 @@
+package com.ym.mec.workfow.config;
+
+import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.format.FormatterRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
+import com.ym.mec.common.config.EnumConverterFactory;
+import com.ym.mec.common.enums.BaseEnum;
+
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+
+	/**
+	 * 枚举类的转换器 addConverterFactory
+	 */
+	@Override
+	public void addFormatters(FormatterRegistry registry) {
+		registry.addConverterFactory(new EnumConverterFactory());
+	}
+
+	@SuppressWarnings("rawtypes")
+	@Bean
+	@Primary
+	public ObjectMapper ObjectMapper() {
+		ObjectMapper objectMapper = new ObjectMapper();
+		// 对于空的对象转json的时候不抛出错误
+		objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
+		// 禁用遇到未知属性抛出异常
+		objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+		// 序列化BigDecimal时不使用科学计数法输出
+		objectMapper.configure(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN, true);
+		// 日期和时间格式化
+		JavaTimeModule javaTimeModule = new JavaTimeModule();
+		javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+		javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
+		javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+		javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
+
+		// BaseEnum序列化
+		javaTimeModule.addSerializer(BaseEnum.class, new JsonSerializer<BaseEnum>() {
+
+			@Override
+			public void serialize(BaseEnum enumObj, JsonGenerator jsonGenerator, SerializerProvider serializers) throws IOException {
+				jsonGenerator.writeString(enumObj.getCode().toString());
+			}
+
+		});
+
+		// Date序列化和反序列化
+		javaTimeModule.addSerializer(Date.class, new JsonSerializer<Date>() {
+			@Override
+			public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+				SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+				String formattedDate = formatter.format(date);
+				jsonGenerator.writeString(formattedDate);
+			}
+		});
+
+		javaTimeModule.addDeserializer(Date.class, new JsonDeserializer<Date>() {
+			@Override
+			public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+				SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+				String date = jsonParser.getText();
+				try {
+					return format.parse(date);
+				} catch (ParseException e) {
+					throw new RuntimeException(e);
+				}
+			}
+		});
+
+		objectMapper.registerModule(javaTimeModule);
+		return objectMapper;
+	}
+
+}

+ 52 - 0
mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/FlowController.java

@@ -0,0 +1,52 @@
+package com.ym.mec.workfow.controller.flow;
+
+import org.snaker.engine.SnakerEngine;
+import org.snaker.engine.access.Page;
+import org.snaker.engine.access.QueryFilter;
+import org.snaker.engine.entity.HistoryOrder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.common.controller.BaseController;
+
+@RestController
+@RequestMapping(value = "/snaker/flow")
+public class FlowController extends BaseController {
+
+	@Autowired
+	private SnakerEngine snakerEngine;
+
+	@Autowired
+	private SysUserFeignService SysUserFeignService;
+
+	/**
+	 * 流程实例查询
+	 * @param model
+	 * @param page
+	 * @return
+	 */
+	@GetMapping(value = "order")
+	public Object order(Page<HistoryOrder> page) {
+		return succeed(snakerEngine.query().getHistoryOrders(page, new QueryFilter()));
+	}
+
+	/**
+	 * 抄送实例已读
+	 * @param id
+	 * @param url
+	 * @return
+	 */
+	@PostMapping(value = "ccread")
+	public Object ccread(String id) {
+		SysUser user = SysUserFeignService.queryUserInfo();
+
+		snakerEngine.order().updateCCStatus(id, new String[] { user.getId() + "" });
+		return succeed();
+	}
+
+}

+ 144 - 0
mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/ProcessController.java

@@ -0,0 +1,144 @@
+/* Copyright 2012-2013 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.ym.mec.workfow.controller.flow;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+import org.snaker.engine.SnakerEngine;
+import org.snaker.engine.access.Page;
+import org.snaker.engine.access.QueryFilter;
+import org.snaker.engine.entity.HistoryTask;
+import org.snaker.engine.entity.Process;
+import org.snaker.engine.entity.Task;
+import org.snaker.engine.helper.AssertHelper;
+import org.snaker.engine.helper.StringHelper;
+import org.snaker.engine.model.ProcessModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.ym.mec.common.controller.BaseController;
+
+/**
+ * 流程定义
+ * @author yuqs
+ * @since 0.1
+ */
+@RestController
+@RequestMapping(value = "/snaker/process")
+public class ProcessController extends BaseController {
+
+	@Autowired
+	private SnakerEngine snakerEngine;
+
+	/**
+	 * 流程定义查询列表
+	 * @param model
+	 * @return
+	 */
+	@GetMapping(value = "list")
+	public Object processList(Page<Process> page, String displayName) {
+		QueryFilter filter = new QueryFilter();
+		if (StringHelper.isNotEmpty(displayName)) {
+			filter.setDisplayName(displayName);
+		}
+		return succeed(snakerEngine.process().getProcesss(page, filter));
+	}
+
+	/**
+	 * 根据流程定义ID,删除流程定义
+	 * @param id
+	 * @return
+	 */
+	@PostMapping(value = "delete/{id}")
+	public Object processDelete(@PathVariable("id") String id) {
+		snakerEngine.process().undeploy(id);
+		return succeed();
+	}
+
+	/**
+	 * 添加流程定义后的部署
+	 * @param snakerFile
+	 * @param id
+	 * @return
+	 * @throws IOException 
+	 */
+	@PostMapping(value = "deploy")
+	public Object processDeploy(@RequestParam(value = "snakerFile") MultipartFile snakerFile, String id) throws IOException {
+		InputStream input = null;
+		try {
+			input = snakerFile.getInputStream();
+			if (StringUtils.isNotEmpty(id)) {
+				snakerEngine.process().redeploy(id, input);
+			} else {
+				snakerEngine.process().deploy(input);
+			}
+		} finally {
+			if (input != null) {
+				input.close();
+			}
+		}
+		return succeed();
+	}
+
+	@GetMapping(value = "json")
+	@ResponseBody
+	public Object json(String processId, String orderId) {
+		Process process = snakerEngine.process().getProcessById(processId);
+		AssertHelper.notNull(process);
+		ProcessModel model = process.getModel();
+		Map<String, Object> jsonMap = new HashMap<String, Object>();
+		if (model != null) {
+			jsonMap.put("process", model);
+		}
+
+		if (StringUtils.isNotEmpty(orderId)) {
+			List<Task> tasks = snakerEngine.query().getActiveTasks(new QueryFilter().setOrderId(orderId));
+			jsonMap.put("tasks", tasks);
+
+			List<HistoryTask> historyTasks = snakerEngine.query().getHistoryTasks(new QueryFilter().setOrderId(orderId));
+			jsonMap.put("historyTasks", historyTasks);
+		}
+		return jsonMap;
+	}
+
+	@GetMapping(value = "display")
+	public Object display(String orderId) {
+		List<HistoryTask> tasks = snakerEngine.query().getHistoryTasks(new QueryFilter().setOrderId(orderId));
+		return succeed(tasks);
+	}
+
+	/**
+	 * 显示独立的流程图
+	 */
+	@GetMapping(value = "diagram")
+	public String diagram(Model model, String processId, String orderId) {
+		model.addAttribute("processId", processId);
+		model.addAttribute("orderId", orderId);
+		return "snaker/diagram";
+	}
+}

+ 68 - 0
mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/SurrogateController.java

@@ -0,0 +1,68 @@
+/* Copyright 2012-2013 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.ym.mec.workfow.controller.flow;
+
+import org.snaker.engine.SnakerEngine;
+import org.snaker.engine.access.Page;
+import org.snaker.engine.access.QueryFilter;
+import org.snaker.engine.entity.Surrogate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.common.controller.BaseController;
+
+/**
+ * 委托授权
+ * @author yuqs
+ * @since 0.1
+ */
+@RestController
+@RequestMapping(value = "/snaker/surrogate")
+public class SurrogateController extends BaseController {
+
+	@Autowired
+	private SnakerEngine snakerEngine;
+
+	@GetMapping(value = "list")
+	public Object list(Page<Surrogate> page) {
+		return succeed(snakerEngine.manager().getSurrogate(page, new QueryFilter()));
+	}
+
+	@GetMapping(value = "view/{id}")
+	public Object view(@PathVariable("id") String id) {
+		return succeed(snakerEngine.manager().getSurrogate(id));
+	}
+
+	@PostMapping(value = "update")
+	public Object update(Surrogate surrogate) {
+		surrogate.setSdate(surrogate.getSdate() + " 00:00:00");
+		surrogate.setEdate(surrogate.getEdate() + " 23:59:59");
+		if (surrogate.getState() == null) {
+			surrogate.setState(1);
+		}
+		snakerEngine.manager().saveOrUpdate(surrogate);
+		return succeed();
+	}
+
+	@RequestMapping(value = "delete/{id}")
+	public Object delete(@PathVariable("id") String id) {
+		snakerEngine.manager().deleteSurrogate(id);
+		return succeed();
+	}
+}

+ 192 - 0
mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/TaskController.java

@@ -0,0 +1,192 @@
+package com.ym.mec.workfow.controller.flow;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+import org.snaker.engine.SnakerEngine;
+import org.snaker.engine.access.Page;
+import org.snaker.engine.access.QueryFilter;
+import org.snaker.engine.entity.HistoryOrder;
+import org.snaker.engine.entity.Task;
+import org.snaker.engine.entity.WorkItem;
+import org.snaker.engine.model.TaskModel.TaskType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.common.controller.BaseController;
+
+/**
+ * Snaker流程引擎常用Controller
+ * @author yuqs
+ * @since 0.1
+ */
+@RestController
+@RequestMapping(value = "/snaker/task")
+public class TaskController extends BaseController {
+
+	@Autowired
+	private SnakerEngine snakerEngine;
+
+	@Autowired
+	private SysUserFeignService SysUserFeignService;
+
+	@GetMapping(value = "active")
+	public Object homeTaskList(Model model) {
+
+		SysUser user = SysUserFeignService.queryUserInfo();
+
+		List<String> list = new ArrayList<String>();
+		list.add(user.getUsername());
+
+		String[] assignees = new String[list.size()];
+		list.toArray(assignees);
+
+		Page<WorkItem> majorPage = new Page<WorkItem>(5);
+		Page<WorkItem> aidantPage = new Page<WorkItem>(3);
+		Page<HistoryOrder> ccorderPage = new Page<HistoryOrder>(3);
+		List<WorkItem> majorWorks = snakerEngine.query().getWorkItems(majorPage,
+				new QueryFilter().setOperators(assignees).setTaskType(TaskType.Major.ordinal()));
+		List<WorkItem> aidantWorks = snakerEngine.query().getWorkItems(aidantPage,
+				new QueryFilter().setOperators(assignees).setTaskType(TaskType.Aidant.ordinal()));
+		List<HistoryOrder> ccWorks = snakerEngine.query().getCCWorks(ccorderPage, new QueryFilter().setOperators(assignees).setState(1));
+
+		model.addAttribute("majorWorks", majorWorks);
+		model.addAttribute("majorTotal", majorPage.getTotalCount());
+		model.addAttribute("aidantWorks", aidantWorks);
+		model.addAttribute("aidantTotal", aidantPage.getTotalCount());
+		model.addAttribute("ccorderWorks", ccWorks);
+		model.addAttribute("ccorderTotal", ccorderPage.getTotalCount());
+		return succeed(model);
+	}
+
+	/**
+	 * 根据当前用户查询待办任务列表
+	 * @param model
+	 * @return
+	 */
+	@GetMapping(value = "user")
+	public Object userTaskList(Page<WorkItem> page) {
+		SysUser user = SysUserFeignService.queryUserInfo();
+
+		snakerEngine.query().getWorkItems(page, new QueryFilter().setOperator(user.getUsername()));
+		return succeed(page);
+	}
+
+	@PostMapping(value = "actor/add")
+	public Object addTaskActor(String orderId, String taskName, String operator) {
+		List<Task> tasks = snakerEngine.query().getActiveTasks(new QueryFilter().setOrderId(orderId));
+		for (Task task : tasks) {
+			if (task.getTaskName().equalsIgnoreCase(taskName) && StringUtils.isNotEmpty(operator)) {
+				snakerEngine.task().addTaskActor(task.getId(), operator);
+			}
+		}
+		return succeed();
+	}
+
+	@GetMapping(value = "tip")
+	public Object addTaskActor(String orderId, String taskName) {
+		List<Task> tasks = snakerEngine.query().getActiveTasks(new QueryFilter().setOrderId(orderId));
+		StringBuilder builder = new StringBuilder();
+		String createTime = "";
+		for (Task task : tasks) {
+			if (task.getTaskName().equalsIgnoreCase(taskName)) {
+				String[] actors = snakerEngine.query().getTaskActorsByTaskId(task.getId());
+				for (String actor : actors) {
+					builder.append(actor).append(",");
+				}
+				createTime = task.getCreateTime();
+			}
+		}
+		if (builder.length() > 0) {
+			builder.deleteCharAt(builder.length() - 1);
+		}
+		Map<String, String> data = new HashMap<String, String>();
+		data.put("actors", builder.toString());
+		data.put("createTime", createTime);
+		return succeed(data);
+	}
+
+	/**
+	 * 活动任务查询列表
+	 * @param model
+	 * @return
+	 */
+	@GetMapping(value = "active/more")
+	public Object activeTaskList(Page<WorkItem> page, Integer taskType) {
+		SysUser user = SysUserFeignService.queryUserInfo();
+
+		List<String> list = new ArrayList<String>();
+		list.add(user.getUsername());
+
+		String[] assignees = new String[list.size()];
+		list.toArray(assignees);
+		snakerEngine.query().getWorkItems(page, new QueryFilter().setOperators(assignees).setTaskType(taskType));
+		return succeed(page);
+	}
+
+	/**
+	 * 活动任务查询列表
+	 * @param model
+	 * @return
+	 */
+	@GetMapping(value = "active/ccmore")
+	public Object activeCCList(Page<HistoryOrder> page) {
+		SysUser user = SysUserFeignService.queryUserInfo();
+
+		List<String> list = new ArrayList<String>();
+		list.add(user.getUsername());
+
+		String[] assignees = new String[list.size()];
+		list.toArray(assignees);
+		snakerEngine.query().getCCWorks(page, new QueryFilter().setOperators(assignees).setState(1));
+		return succeed(page);
+	}
+
+	/**
+	 * 活动任务的驳回
+	 * @param model
+	 * @param taskId
+	 * @return
+	 */
+	@PostMapping(value = "reject")
+	public Object activeTaskReject(String taskId) {
+
+		SysUser user = SysUserFeignService.queryUserInfo();
+
+		snakerEngine.executeAndJumpTask(taskId, user.getUsername(), null, null);
+		return succeed();
+	}
+
+	/**
+	 * 历史完成任务查询列表
+	 * @param model
+	 * @return
+	 */
+	@GetMapping(value = "history")
+	public Object historyTaskList(Page<WorkItem> page) {
+		SysUser user = SysUserFeignService.queryUserInfo();
+		snakerEngine.query().getHistoryWorkItems(page, new QueryFilter().setOperator(user.getUsername()));
+		return succeed(page);
+	}
+
+	/**
+	 * 历史任务撤回
+	 * @param taskId
+	 * @return
+	 */
+	@PostMapping(value = "undo")
+	public Object historyTaskUndo(String taskId) {
+		SysUser user = SysUserFeignService.queryUserInfo();
+		snakerEngine.task().withdrawTask(taskId, user.getUsername());
+		return succeed();
+	}
+}

+ 68 - 0
mec-workflow/src/main/java/com/ym/mec/workfow/controller/web/LeaveController.java

@@ -0,0 +1,68 @@
+package com.ym.mec.workfow.controller.web;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.snaker.engine.SnakerEngine;
+import org.snaker.engine.access.QueryFilter;
+import org.snaker.engine.entity.Order;
+import org.snaker.engine.entity.Task;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.common.controller.BaseController;
+
+@RequestMapping("leave")
+@RestController
+public class LeaveController extends BaseController {
+
+	@Autowired
+	private SysUserFeignService SysUserFeignService;
+
+	@Autowired
+	private SnakerEngine snakerEngine;
+
+	/**
+	 * 请假申请路由方法
+	 */
+	@PostMapping(value = "apply")
+	public Object apply(String processId, int days, String deptManager) {
+		SysUser user = SysUserFeignService.queryUserInfo();
+
+		Map<String, Object> params = new HashMap<String, Object>();
+		params.put("applyer", user.getUsername());
+		params.put("days", days);
+		params.put("deptManager", deptManager);
+
+		// 开启实例
+		Order order = snakerEngine.startInstanceById(processId, user.getUsername(), params);
+
+		// 获取当前任务
+		List<Task> tasks = snakerEngine.query().getActiveTasks(new QueryFilter().setOrderId(order.getId()).setOperator(user.getUsername()));
+		for (Task task : tasks) {
+			snakerEngine.executeTask(task.getId(), user.getUsername());
+		}
+
+		return succeed();
+	}
+
+	@PostMapping(value = "approve")
+	public Object approve(String taskId) {
+		SysUser user = SysUserFeignService.queryUserInfo();
+
+		List<Task> tasks = snakerEngine.executeTask(taskId, user.getUsername());
+
+		if (tasks.size() == 0) {
+			System.out.println("**********流程已结束*********");
+		} else {
+			System.out.println("**********流程未结束*********");
+		}
+
+		return succeed();
+	}
+}

+ 60 - 0
mec-workflow/src/main/resources/application.yml

@@ -0,0 +1,60 @@
+server:
+  port: 8010
+
+eureka:
+  client:
+    serviceUrl:
+      defaultZone: http://admin:admin123@localhost:8761/eureka/eureka/
+
+spring:
+  application:
+    name: workflow-server
+    
+  datasource:
+    name: test
+    url: jdbc:mysql://120.26.238.168:3306/snaker_web?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai
+    username: snaker_web
+    password: snaker_web
+    # 使用druid数据源
+    type: com.alibaba.druid.pool.DruidDataSource
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    filters: stat
+    maxActive: 20
+    initialSize: 1
+    maxWait: 60000
+    minIdle: 1
+    timeBetweenEvictionRunsMillis: 60000
+    minEvictableIdleTimeMillis: 300000
+    validationQuery: select 'x'
+    testWhileIdle: true
+    testOnBorrow: false
+    testOnReturn: false
+    poolPreparedStatements: true
+    maxOpenPreparedStatements: 20
+    
+
+mybatis:
+    mapperLocations: classpath:config/mybatis/*.xml
+    
+swagger:
+  base-package: com.ym.mec.workflow.controller
+  
+  
+##认证 
+security:
+  oauth2:
+    client:
+      client-id: app
+      client-secret: app
+    resource:
+      token-info-uri: http://localhost:8001/oauth/check_token
+  
+#spring boot admin 相关配置
+management:
+  endpoints:
+    web:
+      exposure:
+        include: "*"
+  endpoint:
+    health:
+      show-details: ALWAYS

+ 21 - 0
mec-workflow/src/main/resources/config/mybatis/Global.mapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="global">
+
+	<sql id="limit">
+		<if test="offset != null">
+			 limit #{offset},#{rows}
+		</if>
+	</sql>
+
+	<sql id="orderby">
+		<if test="sort != null and sort != ''">
+			 ORDER BY ${sort}
+			 <if test="order != null and order != ''">
+			 	${order}
+			 </if>
+		</if>
+	</sql>	
+ </mapper>

+ 20 - 0
mec-workflow/src/main/resources/flows/leave.snaker

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<process displayName="请假流程测试" name="leave">
+<start displayName="start1" layout="24,124,-1,-1" name="start1">
+<transition g="" name="transition1" offset="0,0" to="apply"/>
+</start>
+<end displayName="end1" layout="570,124,-1,-1" name="end1"/>
+<task assignee="${applyer}" displayName="请假申请" layout="117,122,-1,-1" name="apply" performType="ANY">
+<transition g="" name="transition2" offset="0,0" to="approveDept"/>
+</task>
+<task assignee="${deptManager}" displayName="部门经理审批" layout="272,122,-1,-1" name="approveDept" performType="ANY">
+<transition g="" name="transition3" offset="0,0" to="decision1"/>
+</task>
+<decision displayName="decision1" layout="426,124,-1,-1" name="decision1">
+<transition displayName="&lt;=5天" expr="${days &lt;= 5}" g="" name="transition4" offset="0,0" to="end1"/>
+<transition displayName="&gt;5天" expr="${days &gt; 5}" g="" name="transition5" offset="0,0" to="approveBoss"/>
+</decision>
+<task assignee="boss" displayName="总经理审批" layout="404,231,-1,-1" name="approveBoss" performType="ANY">
+<transition g="" name="transition6" offset="0,0" to="end1"/>
+</task>
+</process>

+ 9 - 3
pom.xml

@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<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">
+<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">
 	<modelVersion>4.0.0</modelVersion>
 
 	<groupId>com.ym</groupId>
@@ -72,6 +71,12 @@
 			</dependency>
 
 			<dependency>
+				<groupId>com.ym</groupId>
+				<artifactId>snakerflowy</artifactId>
+				<version>1.0</version>
+			</dependency>
+
+			<dependency>
 				<groupId>io.zipkin.java</groupId>
 				<artifactId>zipkin-server</artifactId>
 				<version>${zipkin.version}</version>
@@ -312,5 +317,6 @@
 		<module>cms</module>
 		<module>mec-im</module>
 		<module>workflowy</module>
-	</modules>
+	  <module>mec-workflow</module>
+  </modules>
 </project>

+ 2 - 1
workflowy/src/main/java/org/snaker/engine/model/NodeModel.java

@@ -145,7 +145,8 @@ public abstract class NodeModel extends BaseModel implements Action {
         return models;
     }
 
-    protected <T> void addNextModels(List<T> models, TransitionModel tm, Class<T> clazz) {
+    @SuppressWarnings("unchecked")
+	protected <T> void addNextModels(List<T> models, TransitionModel tm, Class<T> clazz) {
         if(clazz.isInstance(tm.getTarget())) {
             models.add((T)tm.getTarget());
         } else {

+ 37 - 0
workflowy/src/test/resources/test/generator/leave.snaker

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+  ~ /* Copyright 2013-2014 the original author or authors.
+  ~  *
+  ~  * Licensed under the Apache License, Version 2.0 (the "License");
+  ~  * you may not use this file except in compliance with the License.
+  ~  * You may obtain a copy of the License at
+  ~  *
+  ~  *     http://www.apache.org/licenses/LICENSE-2.0
+  ~  *
+  ~  * Unless required by applicable law or agreed to in writing, software
+  ~  * distributed under the License is distributed on an "AS IS" BASIS,
+  ~  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~  * See the License for the specific language governing permissions and
+  ~  * limitations under the License.
+  ~  */
+  -->
+
+<process displayName="请假流程测试" instanceUrl="/snaker/flow/all" name="leave">
+<start displayName="start1" layout="24,124,-1,-1" name="start1">
+<transition g="" name="transition1" offset="0,0" to="apply"/>
+</start>
+<end displayName="end1" layout="570,124,-1,-1" name="end1"/>
+<task assignee="apply.operator" displayName="请假申请" form="/flow/leave/apply" layout="117,122,-1,-1" name="apply" performType="ANY">
+<transition g="" name="transition2" offset="0,0" to="approveDept"/>
+</task>
+<task assignee="approveDept.operator" displayName="部门经理审批" form="/flow/leave/approveDept" layout="272,122,-1,-1" name="approveDept" performType="ANY">
+<transition g="" name="transition3" offset="0,0" to="decision1"/>
+</task>
+<decision displayName="decision1" expr="#day &gt; 2 ? 'transition5' : 'transition4'" layout="426,124,-1,-1" name="decision1">
+<transition displayName="&lt;=2天" g="" name="transition4" offset="0,0" to="end1"/>
+<transition displayName="&gt;2天" g="" name="transition5" offset="0,0" to="approveBoss"/>
+</decision>
+<task assignee="approveBoss.operator" displayName="总经理审批" form="/flow/leave/approveBoss" layout="404,231,-1,-1" name="approveBoss" performType="ANY">
+<transition g="" name="transition6" offset="0,0" to="end1"/>
+</task>
+</process>