Kaynağa Gözat

菜单用户

yq 2 yıl önce
ebeveyn
işleme
7bd44b6b61

+ 1 - 1
src/main/java/com/usky/dxtop/MysqlGenerator.java

@@ -50,7 +50,7 @@
 //        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
 //        // strategy.setTablePrefix("t_"); // 表名前缀
 //        strategy.setEntityLombokModel(true); //使用lombok
-//        strategy.setInclude("dre_menu","dre_order","dre_order_detail");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+//        strategy.setInclude("dre_user");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
 //
 //        mpg.setStrategy(strategy);
 //        // 关闭默认 xml 生成,调整生成 至 根目录

+ 2 - 1
src/main/java/com/usky/dxtop/controller/web/business/DreOrderController.java

@@ -13,6 +13,7 @@ import com.usky.dxtop.service.DreOrderService;
 import com.usky.dxtop.service.vo.DreOrderRequest;
 import io.swagger.annotations.ApiResponse;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import org.springframework.stereotype.Controller;
@@ -37,7 +38,7 @@ public class DreOrderController {
      */
     @RepeatSubmit
     @PostMapping
-    public ApiResult<Void> add(@RequestBody DreOrder dreOrder){
+    public ApiResult<Void> add(@Validated @RequestBody DreOrder dreOrder){
         dreOrderService.add(dreOrder);
         return ApiResult.success();
     }

+ 61 - 0
src/main/java/com/usky/dxtop/controller/web/business/DreUserController.java

@@ -0,0 +1,61 @@
+package com.usky.dxtop.controller.web.business;
+
+
+import com.usky.dxtop.common.core.domain.ApiResult;
+import com.usky.dxtop.common.core.page.CommonPage;
+import com.usky.dxtop.model.DreOrder;
+import com.usky.dxtop.model.DreUser;
+import com.usky.dxtop.model.StaffRadio;
+import com.usky.dxtop.service.DreUserService;
+import com.usky.dxtop.service.vo.DreOrderRequest;
+import com.usky.dxtop.service.vo.DreUserVO;
+import io.swagger.annotations.ApiResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import org.springframework.stereotype.Controller;
+import sun.reflect.generics.tree.VoidDescriptor;
+
+import java.util.List;
+
+/**
+ * 菜品用户
+ * @author yq
+ * @since 2022-08-15
+ */
+@RestController
+@RequestMapping("/dreUser")
+public class DreUserController {
+
+
+
+    @Autowired
+    private DreUserService dreUserService;
+
+
+    /**
+     * 分页记录查询
+     * @return
+     */
+    @GetMapping("/page")
+    public ApiResult<CommonPage<DreUserVO>> page(@RequestParam Integer current,
+                                                 @RequestParam Integer size,
+                                                 @RequestParam(required = false) String name,
+                                                 @RequestParam(required = false) Boolean isSend)
+    {
+        return ApiResult.success(dreUserService.page(current,size,name,isSend));
+    }
+
+
+    /**
+     * 批量新增
+     * @param list
+     * @return
+     */
+    @PutMapping("/addList")
+    public ApiResult<Void> addList(@RequestBody List<DreUser> list){
+        dreUserService.addList(list);
+        return ApiResult.success();
+    }
+}
+

+ 2 - 1
src/main/java/com/usky/dxtop/framework/config/SecurityConfig.java

@@ -102,7 +102,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/login", "/register", "/captchaImage","/top/notify","/dxtop/order/topScanPayApi","/loginApi",
                         "/dxtop/charge/page","/dxtop/dish/page","/wxLogin","/wxAccToken","/dxtop/order/callUnifiedPay",
                         "/dxtop/staff/one","/dxtop/staff/cardBalance","/dxtop/charge/cordPage","/dxtop/charge","/dxtop/dish",
-                        "/dxtop/staff","/offSendMessage","/offOpenId","/loginByCenter","/aliWeather"
+                        "/dxtop/staff","/offSendMessage","/offOpenId","/loginByCenter","/aliWeather","/dreMenu/**","dreOrder/**",
+                        "dreOrderDetail/**"
                         ).permitAll()
                 .antMatchers(
                         HttpMethod.GET,

+ 26 - 0
src/main/java/com/usky/dxtop/mapper/DreUserMapper.java

@@ -0,0 +1,26 @@
+package com.usky.dxtop.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.dxtop.model.DreUser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.usky.dxtop.model.Staff;
+import com.usky.dxtop.service.vo.DreUserVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-15
+ */
+public interface DreUserMapper extends BaseMapper<DreUser> {
+
+    Page<DreUserVO> page(IPage<DreUserVO> page,
+                         @Param("name") String name,
+                         @Param("isSend") Boolean isSend);
+}

+ 22 - 0
src/main/java/com/usky/dxtop/model/DreOrder.java

@@ -11,6 +11,11 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.DecimalMax;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
 /**
  * <p>
  * 
@@ -35,10 +40,15 @@ public class DreOrder implements Serializable {
      * 订单编号
      */
     private String orderNumber;
+    /**
+     * 接单人编号
+     */
+    private Long orderUserId;
 
     /**
      * 下单人
      */
+    @NotBlank(message = "下单人不能为空")
     private String orderUserName;
 
     /**
@@ -54,11 +64,13 @@ public class DreOrder implements Serializable {
     /**
      * 订单地址
      */
+    @NotBlank(message = "订单地址不能为空")
     private String address;
 
     /**
      * 总金额
      */
+    @NotNull(message = "订单金额不能为空")
     private BigDecimal totalMoney;
 
     /**
@@ -69,8 +81,13 @@ public class DreOrder implements Serializable {
     /**
      * 餐别
      */
+    @NotBlank(message = "餐别不能为空")
     private String mType;
 
+    /**
+     * 接单人编号
+     */
+    private Long receiveUserId;
     /**
      * 接单人
      */
@@ -81,6 +98,11 @@ public class DreOrder implements Serializable {
      */
     private Date receiveTime;
 
+    /**
+     * 送单人编号
+     */
+    private String sendUserId;
+
     /**
      * 送单人
      */

+ 45 - 0
src/main/java/com/usky/dxtop/model/DreUser.java

@@ -0,0 +1,45 @@
+package com.usky.dxtop.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DreUser implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户编号
+     */
+    private Long userId;
+
+    /**
+     * 0发送1不发送
+     */
+    private Integer isSend;
+
+    @TableField(exist = false)
+    private boolean isDelFlag;
+
+}

+ 26 - 0
src/main/java/com/usky/dxtop/service/DreUserService.java

@@ -0,0 +1,26 @@
+package com.usky.dxtop.service;
+
+import com.usky.dxtop.common.core.page.CommonPage;
+import com.usky.dxtop.model.DreOrder;
+import com.usky.dxtop.model.DreUser;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.usky.dxtop.service.vo.DreOrderRequest;
+import com.usky.dxtop.service.vo.DreUserVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-15
+ */
+public interface DreUserService extends IService<DreUser> {
+
+
+    CommonPage<DreUserVO> page(Integer current, Integer size,String name,Boolean isSend);
+
+    void addList(List<DreUser> list);
+}

+ 2 - 1
src/main/java/com/usky/dxtop/service/impl/DreMenuServiceImpl.java

@@ -38,6 +38,7 @@ public class DreMenuServiceImpl extends ServiceImpl<DreMenuMapper, DreMenu> impl
 
     @Override
     public void addBatchByFile(MultipartFile file) {
+        this.remove(null);
         this.saveBatch(getListByFile(file));
     }
 
@@ -81,7 +82,7 @@ public class DreMenuServiceImpl extends ServiceImpl<DreMenuMapper, DreMenu> impl
             if (count2 > 0){
                 throw new CustomException("菜品名称不能为空");
             }
-            long count3 = dreMenuFileVOS.stream().filter(order -> null != order.getIsRecommend()).count();
+            long count3 = dreMenuFileVOS.stream().filter(order -> null == order.getIsRecommend()).count();
             if (count3 > 0){
                 throw new CustomException("是否上下架不能为空");
             }

+ 37 - 7
src/main/java/com/usky/dxtop/service/impl/DreOrderServiceImpl.java

@@ -9,10 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.dxtop.common.core.domain.model.LoginUser;
 import com.usky.dxtop.common.core.page.CommonPage;
 import com.usky.dxtop.common.exception.CustomException;
-import com.usky.dxtop.common.utils.DateUtils;
-import com.usky.dxtop.common.utils.ExcelUtils;
-import com.usky.dxtop.common.utils.SecurityUtils;
-import com.usky.dxtop.common.utils.StringUtils;
+import com.usky.dxtop.common.utils.*;
 import com.usky.dxtop.common.utils.uuid.UUID;
 import com.usky.dxtop.model.*;
 import com.usky.dxtop.mapper.DreOrderMapper;
@@ -21,6 +18,7 @@ import com.usky.dxtop.service.DreOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.usky.dxtop.service.ISysAsyncTaskService;
 import com.usky.dxtop.service.SysFileService;
+import com.usky.dxtop.service.api.WxApi;
 import com.usky.dxtop.service.emun.AsyncResultType;
 import com.usky.dxtop.service.emun.OrderPayType;
 import com.usky.dxtop.service.emun.OrderSceneCode;
@@ -41,9 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -58,6 +54,8 @@ import java.util.stream.Collectors;
 public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> implements DreOrderService {
 
 
+    private static final String URL = "https://smartpark.caih.com/vuepay/#/record?id=2";
+
     @Autowired
     private ISysAsyncTaskService sysAsyncTaskService;
 
@@ -67,6 +65,9 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
     @Autowired
     private SysFileService sysFileService;
 
+    @Autowired
+    private WxApi wxApi;
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean add(DreOrder dreOrder) {
@@ -93,6 +94,9 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
                 .eq(StringUtils.isNotBlank(dreOrderRequest.getPhone()),DreOrder::getPhone,dreOrderRequest.getPhone())
                 .eq(StringUtils.isNotBlank(dreOrderRequest.getReceiveUserName()),DreOrder::getReceiveUserName,dreOrderRequest.getReceiveUserName())
                 .eq(StringUtils.isNotBlank(dreOrderRequest.getSendUserName()),DreOrder::getSendUserName,dreOrderRequest.getSendUserName())
+                .eq(null != dreOrderRequest.getOrderUserId() && 0 != dreOrderRequest.getOrderUserId(),DreOrder::getOrderUserId,dreOrderRequest.getOrderUserId())
+                .eq(null != dreOrderRequest.getReceiveUserId() && 0 != dreOrderRequest.getReceiveUserId(),DreOrder::getReceiveUserId,dreOrderRequest.getReceiveUserId())
+                .eq(null != dreOrderRequest.getSendUserId() && 0 != dreOrderRequest.getSendUserId(),DreOrder::getSendUserId,dreOrderRequest.getSendUserId())
                 .orderByDesc(DreOrder::getId);
         page = this.page(page,queryWrapper);
         return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
@@ -183,4 +187,30 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
     }
 
 
+
+
+//    private void sendWxMessage(){
+//        String result = wxApi.sendMessageApi(staff.getOpenId(),getMessageData(dish),wxApi.getToken(WxApi.APP_ID,WxApi.SECRET), WxApi.DISH_TEMPLATE_ID,URL);
+//        wxApi.againSendMessage(result,staff.getOpenId(), getMessageData(dish), WxApi.DISH_TEMPLATE_ID, URL,WxApi.APP_ID,WxApi.SECRET);
+//    }
+//
+//    public Map<String,Object> getMessageData(Dish dish){
+//        Map<String, Object> map = new HashMap<>();
+//        map.put("first",getMap("尊敬的客户,您的订单已支付成功",null));
+//        map.put("keyword1",getMap(dish.getSeq(),null));
+//        map.put("keyword2",getMap(dish.getShopName(),null));
+//        map.put("keyword3",getMap(String.format("%s%s", Arith.div(dish.getAmt().doubleValue(),1,2)," 元"),null));
+//        map.put("keyword4",getMap(DateUtils.format(dish.getCreateTime(),null),null));
+//        map.put("keyword5",getMap(DateUtils.format(dish.getCreateTime(),null),null));
+//        map.put("remark",getMap("如有疑问,请及时在线联系我们的客服!",null));
+//        return map;
+//    }
+//
+//    public Map<String,Object> getMap(Object value,String color){
+//        Map<String,Object> map = new HashMap<>();
+//        map.put("value",value);
+//        map.put("color",color);
+//        return map;
+//    }
+
 }

+ 59 - 0
src/main/java/com/usky/dxtop/service/impl/DreUserServiceImpl.java

@@ -0,0 +1,59 @@
+package com.usky.dxtop.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.dxtop.common.core.page.CommonPage;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.model.DreUser;
+import com.usky.dxtop.mapper.DreUserMapper;
+import com.usky.dxtop.model.Staff;
+import com.usky.dxtop.model.StaffRadio;
+import com.usky.dxtop.service.DreUserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.usky.dxtop.service.vo.DreUserVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-15
+ */
+@Service
+public class DreUserServiceImpl extends ServiceImpl<DreUserMapper, DreUser> implements DreUserService {
+
+    @Override
+    public CommonPage<DreUserVO> page(Integer current, Integer size,String userName,Boolean isSend) {
+        IPage<DreUserVO> page = new Page<>(current, size);
+        page = baseMapper.page(page, userName,isSend);
+        return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
+    }
+
+    @Override
+    public void addList(List<DreUser> list) {
+        if (CollectionUtils.isEmpty(list)){
+            throw new CustomException("请选择要关联的信息");
+        }
+        List<DreUser> removeList = list.stream()
+                .filter(dreUser -> !dreUser.isDelFlag()).collect(Collectors.toList());
+
+        List<DreUser> addList = list.stream()
+                .filter(DreUser::isDelFlag).collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(removeList)){
+            LambdaQueryWrapper<DreUser> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.in(DreUser::getUserId,removeList.stream().map(DreUser::getUserId).collect(Collectors.toList()));
+            this.remove(queryWrapper);
+        }
+        if (CollectionUtils.isNotEmpty(addList)){
+            this.saveBatch(addList);
+        }
+    }
+}

+ 13 - 0
src/main/java/com/usky/dxtop/service/vo/DreOrderRequest.java

@@ -57,4 +57,17 @@ public class DreOrderRequest {
      */
     private String sendUserName;
 
+
+    /**
+     * 接单人编号
+     */
+    private Long receiveUserId;
+    /**
+     * 送单人编号
+      */
+    private Long sendUserId;
+    /**
+     * 下单人编号
+      */
+    private Long orderUserId;
 }

+ 175 - 0
src/main/java/com/usky/dxtop/service/vo/DreUserVO.java

@@ -0,0 +1,175 @@
+package com.usky.dxtop.service.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author yq
+ * @date 2022/8/15 13:34
+ */
+@Data
+public class DreUserVO {
+
+    @TableId
+    private Long sId;
+    /**
+     * 卡号
+     */
+    @JSONField(name = "cardid")
+    private String cardId;
+    /**
+     * 手机号
+     */
+    private String contacts;
+    /**
+     * 部门
+     */
+    private String dept;
+
+    /**
+     * 邮箱
+     */
+    private String email;
+
+    /**
+     * 邮箱
+     */
+    @JSONField(name = "faceid")
+    private String faceId;
+
+
+    /**
+     * id
+     */
+    private String id;
+
+
+    /**
+     * 是否是审核人
+     */
+    private Boolean isApprover;
+
+    /**
+     * 岗位
+     */
+    private String jobs;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 角色信息
+     */
+    private String roles;
+
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+
+    /**
+     * 修改时间
+     */
+    private String updateTime;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @TableField(exist = false)
+    private String deptName;
+    /**
+     * 身份信息
+     */
+    @TableField(exist = false)
+    private String identity;
+    /**
+     * 到账比例
+     */
+    @TableField(exist = false)
+    private Double proportion;
+    /**
+     * 身份信息主键
+     */
+    @TableField(exist = false)
+    private Long radioId;
+
+    /**
+     * 是否成功
+     */
+    private Boolean isSuccess;
+    /**
+     * 人脸是否同步成功
+     */
+    private Boolean faceSuccess;
+
+    /**
+     * 余额
+     */
+    private BigDecimal balance;
+
+    /**
+     * 人员类型
+     */
+    private String type;
+    /**
+     * openId
+     */
+    private String openId;
+
+    @TableField(exist = false)
+    private String username;
+
+    /**
+     * 密码
+     */
+    @TableField(exist = false)
+    private String osspassword;
+
+    /**
+     * 1启动0禁用
+     */
+    private Long status;
+    /**
+     * 费浦人员编号
+     */
+    private String userCode;
+
+    @TableField(exist = false)
+    private Integer addOrUp;
+
+
+    private Boolean isSend;
+}

+ 27 - 0
src/main/resources/mapper/DreUserMapper.xml

@@ -0,0 +1,27 @@
+<?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.usky.dxtop.mapper.DreUserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.dxtop.model.DreUser">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="is_send" property="isSend" />
+    </resultMap>
+    <select id="page" resultType="com.usky.dxtop.model.DreUser">
+        select s.*,d.name as deptName,tr.identity,tr.proportion,tr.id as radioId
+        from staff as s
+        inner join dre_user as du
+         on s.s_id = du.user_id
+        <where>
+            <if test="name !=null and name != ''">
+                and s.name like concat('%', #{name}, '%')
+            </if>
+            <if test="null != isSend">
+                and du.is_send = #{isSend}
+            </if>
+        </where>
+        order by s.id desc
+    </select>
+
+</mapper>