diff --git a/ym-admin/pom.xml b/ym-admin/pom.xml index 132653d..54a505d 100644 --- a/ym-admin/pom.xml +++ b/ym-admin/pom.xml @@ -43,6 +43,11 @@ ym-common 1.0-SNAPSHOT + + com.alibaba + fastjson + 1.2.75 + diff --git a/ym-admin/src/main/java/com/cnbm/admin/base/BaseSupport.java b/ym-admin/src/main/java/com/cnbm/admin/base/BaseSupport.java new file mode 100644 index 0000000..79c0cce --- /dev/null +++ b/ym-admin/src/main/java/com/cnbm/admin/base/BaseSupport.java @@ -0,0 +1,167 @@ +/* + * Copyright (c) 2018. + * http://www.ulabcare.com + */ + +package com.cnbm.admin.base; + +import com.alibaba.fastjson.JSON; +import com.cnbm.admin.entity.LoginUser; +import com.cnbm.admin.enums.WhetherEnum; +import lombok.Builder; +import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 接口支持基类 + * + * @author jiff + * @date 2018/11/1 + * @since 1.0 + */ +@Service +public class BaseSupport { + + protected LoginUser getLoginUser() { + // 后续完善拦截器再使用该方式 +// LoginUser loginUser = loginUserHolder.get(); +// if (loginUser != null) { +// return loginUser; +// } + HttpSession session = getHttpServletRequest().getSession(false); + LoginUser loginUser = null; + if (session != null) { + String loginUserJson = (String) session.getAttribute(LoginUser.HTTP_HEADER_NAME); + if (StringUtils.isNotBlank(loginUserJson)) { + loginUser = JSON.parseObject(loginUserJson, LoginUser.class); + return loginUser; + } + } + return null; + } + + /** + * 获取当前http请求对象 + * + * @return + */ + protected HttpServletRequest getHttpServletRequest() { + return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + } + + /** + * 获取当前http响应对象 + * + * @return + */ + protected HttpServletResponse getHttpServletResponse() { + return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse(); + } + + + /** + * 设置公共字段值,一般用于创建新记录,包含以下字段: + * + *

+ * {@link CommonField#enabled}
+ * {@link CommonField#valid}
+ * {@link CommonField#creatorId}
+ * {@link CommonField#creatorName}
+ * {@link CommonField#createTime}
+ * {@link CommonField#updaterId}
+ * {@link CommonField#updaterName}
+ * {@link CommonField#updateTime}
+ *

+ * + * @param t 需要设置的对象 + * @param ignoreProperties 忽略的字段 + * @param + */ + public T setCommonField(T t, String... ignoreProperties) { + + CommonField commonField = CommonField.builder() + .enabled(WhetherEnum.YES.getValue()) + .valid(WhetherEnum.YES.getValue()) + .createTime(LocalDateTime.now()) + .creatorId(getLoginUser().getSysUserEntity().getId()) + .creatorName(getLoginUser().getUsername()) + .updateTime(LocalDateTime.now()) + .updaterId(getLoginUser().getSysUserEntity().getId()) + .updaterName(getLoginUser().getUsername()) + .build(); + BeanUtils.copyProperties(commonField, t, ignoreProperties); + return t; + } + + /** + * 设置更新的公共字段值,一般用于更新记录,包含以下字段: + * + *

+ * {@link CommonField#updaterId}
+ * {@link CommonField#updaterName}
+ * {@link CommonField#updateTime}
+ *

+ * + * @param t 需要设置的对象 + * @param + */ + public T setUpdateCommonField(T t) { + CommonField commonField = CommonField.builder() + .updaterId(getLoginUser().getSysUserEntity().getId()) + .updaterName(getLoginUser().getUsername()) + .updateTime(LocalDateTime.now()) + .build(); + BeanUtils.copyProperties(commonField, t, "enabled", "valid"); + return t; + } + + @Data + @Builder + private static class CommonField implements Serializable { + /** + * 启用状态:0 、停用,1、启用 + */ + private Integer enabled; + /** + * 删除标志,是否有效:1 可用 0不可用 + */ + private Integer valid; + + /** + * 创建人 + */ + private Long creatorId; + /** + * 创建人 + */ + private String creatorName; + /** + * 创建时间 + */ + private LocalDateTime createTime; + + + /** + * 更新人 + */ + private Long updaterId; + /** + * 更新人 + */ + private String updaterName; + /** + * 更新时间 + */ + private LocalDateTime updateTime; + } +} diff --git a/ym-admin/src/main/java/com/cnbm/admin/entity/LoginUser.java b/ym-admin/src/main/java/com/cnbm/admin/entity/LoginUser.java index 6d1b4f4..7812267 100644 --- a/ym-admin/src/main/java/com/cnbm/admin/entity/LoginUser.java +++ b/ym-admin/src/main/java/com/cnbm/admin/entity/LoginUser.java @@ -24,6 +24,8 @@ public class LoginUser implements UserDetails{ private static final long serialVersionUID = 1L; + public static final String HTTP_HEADER_NAME = "loginUser"; + private SysUserEntity sysUserEntity; private List permissions; diff --git a/ym-admin/src/main/java/com/cnbm/admin/service/impl/LoginServiceImpl.java b/ym-admin/src/main/java/com/cnbm/admin/service/impl/LoginServiceImpl.java index cdf977c..064314a 100644 --- a/ym-admin/src/main/java/com/cnbm/admin/service/impl/LoginServiceImpl.java +++ b/ym-admin/src/main/java/com/cnbm/admin/service/impl/LoginServiceImpl.java @@ -1,5 +1,6 @@ package com.cnbm.admin.service.impl; +import com.alibaba.fastjson.JSON; import com.cnbm.admin.entity.LoginUser; import com.cnbm.admin.entity.SysLogLoginEntity; import com.cnbm.admin.enums.LoginOperationEnum; @@ -9,7 +10,6 @@ import com.cnbm.admin.service.CaptchaService; import com.cnbm.admin.service.SysLogLoginService; import com.cnbm.admin.utils.JwtUtil; import com.cnbm.admin.service.LoginService; -import com.cnbm.admin.utils.ResponseResult; import com.cnbm.common.exception.ErrorCode; import com.cnbm.common.utils.IpUtils; import com.cnbm.common.utils.Result; @@ -22,8 +22,11 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -81,6 +84,11 @@ public class LoginServiceImpl implements LoginService { map.put("token",jwt); //把完整的用户信息存入redis userid作为key redisTemplate.opsForValue().set("login:"+userid,loginUser,1, TimeUnit.DAYS); + + //当前登录用户信息存入session中 + HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession(); + session.setAttribute(loginUser.HTTP_HEADER_NAME, JSON.toJSONString(loginUser)); + //登录成功 log.setStatus(LoginStatusEnum.SUCCESS.value()); log.setCreator(loginUser.getSysUserEntity().getId()); diff --git a/ym-packing/src/main/java/com/cnbm/packing/controller/WoPackagingBoxSubstrateController.java b/ym-packing/src/main/java/com/cnbm/packing/controller/WoPackagingBoxSubstrateController.java index fd5aebb..add9f87 100644 --- a/ym-packing/src/main/java/com/cnbm/packing/controller/WoPackagingBoxSubstrateController.java +++ b/ym-packing/src/main/java/com/cnbm/packing/controller/WoPackagingBoxSubstrateController.java @@ -210,9 +210,9 @@ public class WoPackagingBoxSubstrateController { @PostMapping("insertSubstrateManual") @ApiOperation("手动装箱") @LogOperation("手动装箱") - public Result insertSubstrateManual(@RequestBody ChangePackingBoxDTO dto){ + public Result insertSubstrateManual(@RequestBody ChangePackingBoxDTO[] dtos){ - woPackagingBoxSubstrateService.insertSubstrateManual(dto); + woPackagingBoxSubstrateService.insertSubstrateManual(dtos); return new Result(); } diff --git a/ym-packing/src/main/java/com/cnbm/packing/service/WoPackagingBoxSubstrateServiceBiz.java b/ym-packing/src/main/java/com/cnbm/packing/service/WoPackagingBoxSubstrateServiceBiz.java index a09c92b..bea2ab2 100644 --- a/ym-packing/src/main/java/com/cnbm/packing/service/WoPackagingBoxSubstrateServiceBiz.java +++ b/ym-packing/src/main/java/com/cnbm/packing/service/WoPackagingBoxSubstrateServiceBiz.java @@ -32,7 +32,7 @@ public interface WoPackagingBoxSubstrateServiceBiz extends CrudService implements ChangePackagingBoxHistoryServiceBiz { +// @Autowired +// private BaseSupport baseSupport; + @Override public QueryWrapper getWrapper(Map params){ LocalDateTime startTime = (LocalDateTime) params.get("startTime"); @@ -65,6 +72,7 @@ public class ChangePackagingBoxHistoryServiceBizImpl extends CrudServiceImpl getWrapper(Map params){ @@ -69,6 +73,7 @@ public class PrintModelServiceBizImpl extends CrudServiceImpl getWrapper(Map params){ @@ -66,6 +70,7 @@ public class WoCompensationPowerServiceBizImpl extends CrudServiceImpl getWrapper(Map params){ @@ -82,6 +87,7 @@ public class WoPackagingBoxServiceBizImpl extends CrudServiceImpl getWrapper(Map params){ @@ -75,6 +79,7 @@ public class WoPackagingBoxSubstrateServiceBizImpl extends CrudServiceImpl wrapper = new UpdateWrapper<>(); @@ -126,10 +133,12 @@ public class WoPackagingBoxSubstrateServiceBizImpl extends CrudServiceImpl wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(dto.getWoSubstrateId()),WoPackagingBoxSubstrate.WO_SUBSTRATE_ID,dto.getWoSubstrateId()); - if(mapper.selectCount(wrapper)>0 && StringUtils.isNotBlank(dto.getWoSubstrateId())) { - WoPackagingBoxSubstrate substrate = mapper.selectList(wrapper).get(0); - substrate.setPackagingBoxId(dto.getPackagingBoxId()); - updateById(substrate); - } - else{ - //模组ID有时为空,用户会输入”无码“ - if(dto.getWoSubstrateId()==null) { - dto.setWoSubstrateId("无码"); + public void insertSubstrateManual(ChangePackingBoxDTO[] dtos) { + for(ChangePackingBoxDTO dto : dtos) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(dto.getWoSubstrateId()), WoPackagingBoxSubstrate.WO_SUBSTRATE_ID, dto.getWoSubstrateId()); + if (mapper.selectCount(wrapper) > 0 && StringUtils.isNotBlank(dto.getWoSubstrateId())) { + WoPackagingBoxSubstrate substrate = mapper.selectList(wrapper).get(0); + substrate.setPackagingBoxId(dto.getPackagingBoxId()); + BaseSupportUtils.setUpdateCommonField(substrate); + updateById(substrate); + } else { + //模组ID有时为空,用户会输入”无码“ + if (dto.getWoSubstrateId() == null) { + dto.setWoSubstrateId("无码"); + } + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + WoPackagingBoxSubstrate entity = ConvertUtils.sourceToTarget(dto, WoPackagingBoxSubstrate.class); + BaseSupportUtils.setCommonField(entity); + insert(entity); } - //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - WoPackagingBoxSubstrate entity = ConvertUtils.sourceToTarget(dto, WoPackagingBoxSubstrate.class); - insert(entity); } } diff --git a/ym-packing/src/main/java/com/cnbm/packing/service/impl/WoPackagingPrintHistoryServiceBizImpl.java b/ym-packing/src/main/java/com/cnbm/packing/service/impl/WoPackagingPrintHistoryServiceBizImpl.java index 704a680..bb2331f 100644 --- a/ym-packing/src/main/java/com/cnbm/packing/service/impl/WoPackagingPrintHistoryServiceBizImpl.java +++ b/ym-packing/src/main/java/com/cnbm/packing/service/impl/WoPackagingPrintHistoryServiceBizImpl.java @@ -3,7 +3,9 @@ package com.cnbm.packing.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.cnbm.admin.base.BaseSupport; import com.cnbm.admin.enums.WhetherEnum; +import com.cnbm.admin.utils.BaseSupportUtils; import com.cnbm.common.page.PageData; import com.cnbm.common.service.impl.CrudServiceImpl; import com.cnbm.common.utils.ConvertUtils; @@ -42,6 +44,8 @@ public class WoPackagingPrintHistoryServiceBizImpl extends CrudServiceImpl getWrapper(Map params){ @@ -64,6 +68,7 @@ public class WoPowerLevelServiceBizImpl extends CrudServiceImpl