|
|
@@ -0,0 +1,128 @@
|
|
|
+package com.uas.platform.b2c.prod.store.service.impl;
|
|
|
+
|
|
|
+import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
|
|
|
+import com.uas.platform.b2c.common.account.dao.UserDao;
|
|
|
+import com.uas.platform.b2c.common.account.model.Enterprise;
|
|
|
+import com.uas.platform.b2c.common.account.model.User;
|
|
|
+import com.uas.platform.b2c.core.support.SystemSession;
|
|
|
+import com.uas.platform.b2c.prod.store.dao.ConsignmentAgreeRecordDao;
|
|
|
+import com.uas.platform.b2c.prod.store.model.ConsignmentAgreeRecord;
|
|
|
+import com.uas.platform.b2c.prod.store.service.ConsignmentAgreeRecordService;
|
|
|
+import com.uas.platform.b2c.trade.support.CodeType;
|
|
|
+import com.uas.platform.b2c.trade.support.ResultMap;
|
|
|
+import com.uas.platform.core.exception.IllegalStatusException;
|
|
|
+import com.uas.platform.core.model.PageInfo;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.jpa.domain.Specification;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+import javax.persistence.criteria.CriteriaBuilder;
|
|
|
+import javax.persistence.criteria.CriteriaQuery;
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
+import javax.persistence.criteria.Root;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 自营转寄售协议,同意操作记录业务实现类
|
|
|
+ *
|
|
|
+ * @author huxz
|
|
|
+ * @version 2017-08-24 09:11:46 创建文件
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class ConsignmentAgreeRecordServiceImpl implements ConsignmentAgreeRecordService {
|
|
|
+
|
|
|
+ private final UserDao userDao;
|
|
|
+
|
|
|
+ private final EnterpriseDao enterpriseDao;
|
|
|
+
|
|
|
+ private final ConsignmentAgreeRecordDao recordDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public ConsignmentAgreeRecordServiceImpl(UserDao userDao, EnterpriseDao enterpriseDao, ConsignmentAgreeRecordDao recordDao) {
|
|
|
+ this.userDao = userDao;
|
|
|
+ this.enterpriseDao = enterpriseDao;
|
|
|
+ this.recordDao = recordDao;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ConsignmentAgreeRecord findRecordOfUser() {
|
|
|
+ User user = SystemSession.getUser();
|
|
|
+ if (user == null || user.getUserUU() == null || user.getUserUU() == 0L) {
|
|
|
+ throw new IllegalStatusException("用户信息不能存在");
|
|
|
+ }
|
|
|
+ Enterprise enterprise = user.getEnterprise();
|
|
|
+ if (enterprise == null || enterprise.getUu() == null || enterprise.getUu() == 0L) {
|
|
|
+ throw new IllegalStatusException("用户企业信息不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ConsignmentAgreeRecord> records = recordDao.findByEnUUAndUserUU(enterprise.getUu(), user.getUserUU());
|
|
|
+ if (CollectionUtils.isEmpty(records)) {
|
|
|
+ return null;
|
|
|
+ } else {
|
|
|
+ return records.get(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResultMap saveRecordWhenUserAgree(ConsignmentAgreeRecord record) {
|
|
|
+ User user = SystemSession.getUser();
|
|
|
+ if (user == null || user.getUserUU() == null || user.getUserUU() == 0L) {
|
|
|
+ return new ResultMap(CodeType.ERROR_STATE, "用户信息不存在");
|
|
|
+ }
|
|
|
+ Enterprise enterprise = user.getEnterprise();
|
|
|
+ if (enterprise == null || enterprise.getUu() == null || enterprise.getUu() == 0L) {
|
|
|
+ return new ResultMap(CodeType.ERROR_STATE, "用户企业信息不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ Date operateTime = new Date();
|
|
|
+
|
|
|
+ record.setEnUU(enterprise.getUu());
|
|
|
+ record.setEnterpriseName(enterprise.getEnName());
|
|
|
+ record.setUserUU(user.getUserUU());
|
|
|
+ record.setUserName(user.getUserName());
|
|
|
+ // TODO huxz 暂时设置为true
|
|
|
+ record.setAgreement(true);
|
|
|
+
|
|
|
+ record.setOperateTime(operateTime);
|
|
|
+
|
|
|
+ record = recordDao.save(record);
|
|
|
+ return ResultMap.success(record);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<ConsignmentAgreeRecord> pageRecordWhenAdminQueryInfo(final PageInfo pageInfo, Long enUU) {
|
|
|
+ if (enUU == null || enUU == 0L) {
|
|
|
+ throw new IllegalStatusException("企业UU不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ pageInfo.filter("enUU", enUU);
|
|
|
+
|
|
|
+ Page<ConsignmentAgreeRecord> page = recordDao.findAll(new Specification<ConsignmentAgreeRecord>() {
|
|
|
+ @Override
|
|
|
+ public Predicate toPredicate(Root<ConsignmentAgreeRecord> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
|
|
|
+ query.where(pageInfo.getPredicates(root, query, builder));
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }, pageInfo);
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(page.getContent())) {
|
|
|
+ for (ConsignmentAgreeRecord record : page.getContent()) {
|
|
|
+ User user = userDao.findOne(record.getUserUU());
|
|
|
+ if (user != null) {
|
|
|
+ record.setUserName(user.getUserName());
|
|
|
+ }
|
|
|
+
|
|
|
+ Enterprise enterprise = enterpriseDao.findByUu(record.getEnUU());
|
|
|
+ if (enterprise != null) {
|
|
|
+ record.setEnterpriseName(enterprise.getEnName());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+}
|