1021934019@qq.com 4 years ago
parent
commit
0686061785

+ 1 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsAttn.java

@@ -133,5 +133,6 @@ public class CorpsAttn implements Serializable {
 	@ApiModelProperty(value = "是否已删除")
 	private Integer isDeleted;
 
+	private String sex;
 
 }

+ 4 - 1
blade-service-api/blade-project-api/src/main/java/org/springblade/project/entity/ServiceProject.java

@@ -72,7 +72,7 @@ public class ServiceProject extends TenantEntity implements Serializable {
 	//状态
 	private Integer status;
 	//是否删除
-	@TableLogic
+	/*@TableLogic*/
 	private Integer isDeleted;
 	//备注
 	private String remark;
@@ -111,4 +111,7 @@ public class ServiceProject extends TenantEntity implements Serializable {
 	@TableField(exist = false)
 	private List<Map<String,Object>> corpName;
 
+	private BigDecimal serviceCharge;
+
+	private BigDecimal matMoney;
 }

+ 3 - 0
blade-service-api/blade-project-api/src/main/java/org/springblade/project/entity/ServiceProjectItem.java

@@ -121,5 +121,8 @@ public class ServiceProjectItem extends TenantEntity implements Serializable {
 	@TableField(exist = false)
 	private String cornName;
 
+	@TableField(exist = false)
+	private String deptName;
+
 
 }

+ 14 - 0
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java

@@ -28,6 +28,8 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.List;
+
 /**
  * User Feign接口类
  *
@@ -46,6 +48,18 @@ public interface IUserClient {
 	String USER_AUTH_INFO = API_PREFIX + "/user-auth-info";
 	String SAVE_USER = API_PREFIX + "/save-user";
 	String REMOVE_USER = API_PREFIX + "/remove-user";
+	String USER_INFO_BY_NAME=API_PREFIX+"/user-info-by-name";
+
+	/**
+	 * 获取用户信息
+	 *
+	 * @param
+	 * @return
+	 */
+	@GetMapping(USER_INFO_BY_NAME)
+	List<User> userInfoByName(@RequestParam("userName") String userName,@RequestParam("tenantId") String tenantId);
+
+
 
 	/**
 	 * 获取用户信息

+ 6 - 0
blade-service-api/store-goods-api/src/main/java/com/store/goods/entity/GoodsRecord.java

@@ -75,5 +75,11 @@ public class GoodsRecord implements Serializable {
 		@ApiModelProperty(value = "创建时间")
 		private Date createTime;
 
+	/**
+	 * 租户id
+	 */
+	@ApiModelProperty(value = "租户id")
+	private String tenantId ;
+
 
 }

+ 11 - 5
blade-service-api/store-goods-api/src/main/java/com/store/goods/entity/Order.java

@@ -142,12 +142,18 @@ public class Order implements Serializable {
 		@TableField(exist = false)
 		private OrderAddress orderAddress;
 
+		@ApiModelProperty(value = "主表名称")
+		private String descName;
 
-	/**
-	 * 租户id
-	 */
-	@ApiModelProperty(value = "租户id")
-	private String tenantId;
+		@ApiModelProperty(value = "订单第一个商品的图片")
+		private String picture;
+
+
+		/**
+		 * 租户id
+		 */
+		@ApiModelProperty(value = "租户id")
+		private String tenantId;
 
 
 }

+ 44 - 7
blade-service/blade-project/src/main/java/org/springblade/project/controller/ProjectController.java

@@ -2,6 +2,7 @@ package org.springblade.project.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.obs.services.internal.security.EcsSecurityUtils;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.client.entity.CorpsDesc;
@@ -18,6 +19,8 @@ import org.springblade.project.entity.ServiceProjectItem;
 import org.springblade.project.service.ServiceProjectFilesService;
 import org.springblade.project.service.ServiceProjectItemService;
 import org.springblade.project.service.ServiceProjectService;
+import org.springblade.system.entity.Dept;
+import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +28,9 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import javax.management.relation.RoleResult;
+import java.security.Security;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -47,6 +53,9 @@ public class ProjectController {
 	private IUserClient userClient;
     @Autowired
 	private ICorpsDescClient corpsDescClient;//获取客户信息
+	@Autowired
+	private ISysClient iSysClient;//部门
+
 
 	@GetMapping("/list")
 	public R<IPage<?>> list(@RequestParam(name = "current", defaultValue = "1") Integer current,
@@ -120,8 +129,10 @@ public class ProjectController {
 	@DeleteMapping("delete")
 	public R delete (@RequestParam(name = "id", required = true) Long id)
 	{
-		List<Long> ids= Arrays.asList(id);
-		serviceProjectService.deleteLogic(ids);
+		ServiceProject serviceProject=new ServiceProject();
+		serviceProject.setId(id);
+		serviceProject.setIsDeleted(1);
+		serviceProjectService.updateById(serviceProject);
 		return R.success("删除成功");
 	}
 
@@ -185,22 +196,34 @@ public class ProjectController {
 						  @RequestParam(name = "pname",  required = false) String pName,
 						  @RequestParam(name = "beginTime",  required = false) String beginTime,
 						  @RequestParam(name = "actualDate",  required = false) String actualDate,
+						  @RequestParam(name = "userName",  required = false) String userName,
 						  @RequestParam(name = "deptid",  required = false) Long deptid,
 						  @RequestParam(name = "status",  required = true) String status
 						 )
 	{
+		List<User> users=null;
+		if(StringUtils.isNotBlank(userName))
+        {
+			users= userClient.userInfoByName(userName, AuthUtil.getTenantId());
+		}
 
-		  List<String> listStatus=Arrays.asList(status.split(","));
+		List<String> listStatus=Arrays.asList(status.split(","));
 
 		  LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper=new LambdaQueryWrapper<>();
 		  itemLambdaQueryWrapper
 			  .eq(ServiceProjectItem::getTenantId,AuthUtil.getTenantId())
 			  .like(StringUtils.isNotBlank(pName),ServiceProjectItem::getPName,pName)
 			  .apply(StringUtils.isNotBlank(beginTime),"date_format(begin_time,'%Y-%m-%d') = '"+beginTime+"'")
-			  .apply(StringUtils.isNotBlank(actualDate),"date_format(actual_date,'%Y-%m-%d') = '"+actualDate+"'")
-			  .eq(ServiceProjectItem::getUserid,SecureUtil.getUserId())
-			  .orderByDesc(ServiceProjectItem::getUpdateTime)
+			  .apply(StringUtils.isNotBlank(actualDate),"date_format(actual_date,'%Y-%m-%d') = '"+actualDate+"'");
+
+			  if(!CollectionUtils.isEmpty(users))
+			  {
+				  List<Long> userIds = users.stream().map(User::getId).collect(Collectors.toList());
+				  itemLambdaQueryWrapper .in(ServiceProjectItem::getUserid,userIds);
+			  }
+		      itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getUpdateTime)
 			  .eq(deptid!=null,ServiceProjectItem::getDeptid,deptid)
+			  /*.eq(ServiceProjectItem::getIsDeleted,0)*/
 			  .in(ServiceProjectItem::getStatus,listStatus);
 		  Page<ServiceProjectItem> page=new Page<>(current,size);
 		  IPage<ServiceProjectItem> iPage = serviceProjectItemService.page(page, itemLambdaQueryWrapper);
@@ -209,13 +232,27 @@ public class ProjectController {
 			  String[] str = new String[]{"录入","已请核","审核中","审核通过","正在结算","结算完成"};
 			  iPage.getRecords().forEach(e->{
 				  e.setStrStatus(str[e.getStatus()]);
-				  Long corpId = serviceProjectService.getById(e.getPId()).getCorpId();
+				  Long corpId = serviceProjectService.getOne(new LambdaQueryWrapper<ServiceProject>()
+					  .eq(ServiceProject::getId,e.getPId())).getCorpId();
+
 				  R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
 				  if(corpMessage.isSuccess())
 				  {
 					  e.setCornName(corpMessage.getData().getCname());
 				  }
+				  //任务部门
+				  R<Dept> dept = iSysClient.getDept(e.getDeptid());
+				  if(dept.isSuccess())
+				  {
+				  	e.setDeptName(dept.getData().getDeptName());
+				  }
+				  //承做人
 
+				  R<User> userR = userClient.userInfoById(e.getUserid());
+				  if(userR.isSuccess())
+				  {
+					  e.setUserName(userR.getData().getRealName());
+				  }
 			  });
 		  }
 		  return R.data(iPage);

+ 13 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.system.user.feign;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.springblade.core.tenant.annotation.NonDS;
@@ -31,6 +32,8 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * 用户服务Feign实现类
  *
@@ -44,6 +47,16 @@ public class UserClient implements IUserClient {
 	private final IUserService service;
 
 	@Override
+	@GetMapping(USER_INFO_BY_NAME)
+	public List<User> userInfoByName(String userName,String tenantId)
+	{
+		LambdaQueryWrapper<User> userLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		userLambdaQueryWrapper.eq(User::getTenantId,tenantId);
+		userLambdaQueryWrapper.like(User::getRealName,userName);
+		return service.list(userLambdaQueryWrapper);
+	}
+
+	@Override
 	@GetMapping(USER_INFO_BY_ID)
 	public R<User> userInfoById(Long userId) {
 		return R.data(service.getById(userId));

+ 121 - 1
blade-service/store-goods/src/main/java/com/store/goods/controller/GoodsDescController.java

@@ -18,6 +18,8 @@ package com.store.goods.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.store.goods.entity.GoodsItems;
 import com.store.goods.entity.GoodsRecord;
 import com.store.goods.service.IGoodsItemsService;
@@ -42,7 +44,8 @@ import com.store.goods.service.IGoodsDescService;
 import org.springblade.core.boot.ctrl.BladeController;
 
 import java.math.BigDecimal;
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -260,4 +263,121 @@ public class GoodsDescController extends BladeController {
 		return R.success("操作成功");
 	}
 
+	/**
+	 * 批量清空浏览记录
+	 */
+	@PostMapping("/removeRecords")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "批量清空浏览记录", notes = "需要删除的记录ids,不传默认删全部")
+	public R removeRecords(@ApiParam(value = "主键集合", required = false) @RequestParam String ids)
+	{
+		//ids不为空,删除指定的记录
+		if(StringUtils.isNotBlank(ids))
+		{
+			goodsRecordService.removeByIds(Func.toLongList(ids));
+			return R.success("操作成功");
+		}
+		//ids为空则删除, 默认删除此账号下所有的浏览记录
+		else
+		{
+			LambdaQueryWrapper<GoodsRecord> recordLambdaQueryWrapper=new LambdaQueryWrapper<>();
+			recordLambdaQueryWrapper.eq(GoodsRecord::getUserId,AuthUtil.getTenantId());
+			recordLambdaQueryWrapper.eq(GoodsRecord::getCategory,2);
+			recordLambdaQueryWrapper.eq(GoodsRecord::getTenantId,AuthUtil.getTenantId());
+			List<Long> recordIds = goodsRecordService.list(recordLambdaQueryWrapper).stream().map(GoodsRecord::getId).collect(Collectors.toList());
+			if(CollectionUtils.isNotEmpty(recordIds))
+			{
+				goodsRecordService.removeByIds(recordIds);
+			}
+			return R.success("操作成功");
+		}
+	}
+
+	@GetMapping("listByRecordCategory")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "查看收藏/浏览记录", notes = "需要传入记录类型,必填")
+	public R<? extends Object> listByRecordCategory(@ApiParam(value = "类型:1.收藏 2.浏览", required = true) @RequestParam Integer category,Query query)
+	{
+            //查询相关记录
+		    LambdaQueryWrapper<GoodsRecord> goodsRecordLambdaQueryWrapper=new LambdaQueryWrapper<>();
+			goodsRecordLambdaQueryWrapper.eq(GoodsRecord::getTenantId,AuthUtil.getTenantId());
+			goodsRecordLambdaQueryWrapper.eq(GoodsRecord::getUserId,AuthUtil.getUserId());
+		    goodsRecordLambdaQueryWrapper.eq(GoodsRecord::getCategory,category);
+			Page<GoodsRecord> page=new Page<>(query.getCurrent(),query.getSize());
+			List<GoodsRecord> goodsRecordList = goodsRecordService.page(page, goodsRecordLambdaQueryWrapper).getRecords();
+			List<Long> goodsDescIds = goodsRecordList.stream().map(GoodsRecord::getGoodsDescId).collect(Collectors.toList());
+
+			//筛选相关商品记录
+		    LambdaQueryWrapper<GoodsDesc> goodsDescLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		    goodsDescLambdaQueryWrapper.orderByDesc(GoodsDesc::getCreateTime);
+			goodsDescLambdaQueryWrapper.in(GoodsDesc::getId,goodsDescIds);
+			List<GoodsDesc> list = goodsDescService.list(goodsDescLambdaQueryWrapper);
+
+			//计算每条数据的最低价, 最高价
+			if(CollectionUtils.isNotEmpty(list))
+			{
+				list.forEach(e->{
+					LambdaQueryWrapper<GoodsItems> itemsLambdaQueryWrapper=new LambdaQueryWrapper<>();
+					itemsLambdaQueryWrapper
+						.eq(GoodsItems::getIsDeleted,0)
+						.eq(GoodsItems::getPid,e.getId())
+						.eq(GoodsItems::getTenantId, AuthUtil.getTenantId());
+					List<GoodsItems> itemsList = goodsItemsService.list(itemsLambdaQueryWrapper);
+					if(CollectionUtils.isNotEmpty(itemsList))
+					{
+						//最低价
+						BigDecimal lowPrice = itemsList.stream()
+							.filter(o -> o.getPrice().compareTo(BigDecimal.ZERO) == 1)
+							.map(GoodsItems::getPrice).distinct().min(BigDecimal::compareTo).get();
+
+						//最高价
+						BigDecimal highPrice = itemsList.stream()
+							.filter(o -> o.getPrice().compareTo(BigDecimal.ZERO) == 1)
+							.map(GoodsItems::getPrice).distinct().max(BigDecimal::compareTo).get();
+
+						if(lowPrice.compareTo(highPrice)==0)
+						{
+							e.setLowPrice(lowPrice);
+						}
+						else
+						{
+							e.setLowPrice(lowPrice);
+							e.setHighPrice(highPrice);
+						}
+					}
+				});
+			}
+		    //收藏记录
+			if(category==1 && CollectionUtils.isNotEmpty(list))
+			{
+               return R.data(list);
+			}
+			//浏览记录
+			else if(category==2 && CollectionUtils.isNotEmpty(list))
+			{
+
+				//组装日期和对应数据
+				Map<String,List<GoodsDesc>> map=new HashMap<>();
+
+				//对记录的日期进行分组
+				List<Date> DateList = goodsRecordList.stream().map(GoodsRecord::getCreateTime).distinct().collect(Collectors.toList());
+				SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
+				DateList.forEach(e->{
+					List<GoodsDesc> goodsDescList=new ArrayList<>();
+					goodsRecordList.forEach(l->{
+						 //如果日期相等就添加到list
+						 if(simpleDateFormat.format(e).equals(simpleDateFormat.format(l.getCreateTime())))
+						 {
+							 goodsDescList.add(goodsDescService.getById(l.getGoodsDescId()));
+						 }
+					});
+					//组装完成数据
+					map.put(simpleDateFormat.format(e),goodsDescList);
+				});
+				return R.data(map);
+			}
+			return R.data(Collections.EMPTY_LIST);
+
+	}
+
 }

+ 2 - 0
blade-service/store-goods/src/main/java/com/store/goods/service/impl/GoodsDescServiceImpl.java

@@ -136,6 +136,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 	public void submitRecords(Long goodDescId, Integer category)
 	{
 		GoodsRecord model=new GoodsRecord();
+		model.setTenantId(AuthUtil.getTenantId());
 		model.setUserId(AuthUtil.getUserId());
 		model.setGoodsDescId(goodDescId);
 		model.setCategory(category);
@@ -151,6 +152,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 				goodsRecordMapper.insert(model);
 			}
 			//取消收藏记录
+			else
 			{
 				goodsRecordMapper.deleteById(record.getId());
 			}

+ 2 - 6
blade-service/store-goods/src/main/java/com/store/goods/service/impl/OrderServiceImpl.java

@@ -76,7 +76,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 		//检查地址是否正确
 		OrderAddress orderAddress = addressMapper.selectById(order.getAddressId());
-		if(orderAddress==null || orderAddress.getUserId()!=order.getUserId())
+		if(orderAddress==null )
 		{
 			throw new SecurityException("地址信息不正确");
 		}
@@ -103,7 +103,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 			//查看库存
 			GoodsItems goodsItems = goodsItemsMapper.selectById(e.getItemsId());
-			if(goodsItems==null || goodsItems.getStock().compareTo(e.getNumber())==-1)
+			if(goodsItems==null ||goodsItems.getStock().compareTo(new BigDecimal("0"))!=1 || goodsItems.getStock().compareTo(e.getNumber())==-1)
 			{
                 throw new SecurityException("扣除商品库存失败");
 			}
@@ -131,10 +131,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			goodsItemsMapper.updateById(goodsItems);
 
 		});
-
-
-
-
 	}
 
 	@Override