Browse Source

菜品用户

yq 2 years ago
parent
commit
36f3c0f651

+ 5 - 0
src/main/java/com/usky/dxtop/controller/web/business/StaffController.java

@@ -6,6 +6,7 @@ import com.usky.dxtop.common.exception.CustomException;
 import com.usky.dxtop.model.Staff;
 import com.usky.dxtop.model.StaffRadio;
 import com.usky.dxtop.service.DeptService;
+import com.usky.dxtop.service.DreUserService;
 import com.usky.dxtop.service.StaffRadioService;
 import com.usky.dxtop.service.StaffService;
 import com.usky.dxtop.service.vo.StaffRequest;
@@ -32,6 +33,9 @@ public class StaffController {
     @Autowired
     private DeptService deptService;
 
+    @Autowired
+    private DreUserService dreUserService;
+
     /**
      * 汇总
      * @return
@@ -122,6 +126,7 @@ public class StaffController {
         Staff one = staffService.one(staff.getId(), null, staff.getCardId());
         Optional.ofNullable(one).map(s -> {
             s.setOpenId(staff.getOpenId());
+            dreUserService.updateOpenId(s);
             return staffService.updateById(s);
         }).orElseThrow(() ->  new CustomException("用户信息不存在"));
         return ApiResult.success();

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

@@ -43,4 +43,14 @@ public class DreUser implements Serializable {
     @TableField(exist = false)
     private boolean delFlag;
 
+    /**
+     * 用户名称
+     */
+    private String userName;
+
+    /**
+     * openId
+     */
+    private String openId;
+
 }

+ 8 - 3
src/main/java/com/usky/dxtop/service/DreUserService.java

@@ -1,10 +1,9 @@
 package com.usky.dxtop.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 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.model.Staff;
 import com.usky.dxtop.service.vo.DreUserVO;
 
 import java.util.List;
@@ -26,4 +25,10 @@ public interface DreUserService extends IService<DreUser> {
     void addList(List<DreUser> list);
 
     List<DreUserVO> list(String name,Boolean isSend);
+
+    /**
+     * 校验并且添加openId
+     * @param staff
+     */
+    void updateOpenId(Staff staff);
 }

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

@@ -221,15 +221,15 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
     public void sendWxMessage(DreOrder dreOrder){
         String url = String.format("%s%s",URL,dreOrder.getId());
         List<DreUserVO> list = dreUserService.list(null, true);
-        list = list.stream().filter(dreUserVO -> StringUtils.isNotBlank(dreUserVO.getOpenId())).collect(Collectors.toList());
+        list = list.stream().filter(dreUserVO -> StringUtils.isNotBlank(dreUserVO.getDreOpenId())).collect(Collectors.toList());
         List<DreOrderNoticeLog> dreOrderNoticeLogs = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(list)){
             for (DreUserVO dreUserVO:list) {
                 DreOrderNoticeLog dreOrderNoticeLog = generateNoticeLog(dreOrder, dreUserVO);
                 String result;
                 try {
-                    result = wxApi.sendMessageApi(dreUserVO.getOpenId(),getMessageData(dreOrder),wxApi.getToken(WxApi.APP_ID,WxApi.SECRET), WxApi.DRE_ORDER_INSERT,url);
-                    result = wxApi.againSendMessage(result,dreUserVO.getOpenId(), getMessageData(dreOrder), WxApi.DRE_ORDER_INSERT, URL,WxApi.APP_ID,WxApi.SECRET);
+                    result = wxApi.sendMessageApi(dreUserVO.getDreOpenId(),getMessageData(dreOrder),wxApi.getToken(WxApi.APP_ID,WxApi.SECRET), WxApi.DRE_ORDER_INSERT,url);
+                    result = wxApi.againSendMessage(result,dreUserVO.getDreOpenId(), getMessageData(dreOrder), WxApi.DRE_ORDER_INSERT, URL,WxApi.APP_ID,WxApi.SECRET);
                 }catch (Exception e){
                     dreOrderNoticeLog.setSendStatus(1);
                     result = e.getMessage();

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

@@ -3,6 +3,7 @@ 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.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,6 +11,7 @@ import com.usky.dxtop.common.core.page.CommonPage;
 import com.usky.dxtop.common.exception.CustomException;
 import com.usky.dxtop.mapper.DreUserMapper;
 import com.usky.dxtop.model.DreUser;
+import com.usky.dxtop.model.Staff;
 import com.usky.dxtop.service.DreUserService;
 import com.usky.dxtop.service.vo.DreUserVO;
 import org.springframework.stereotype.Service;
@@ -40,6 +42,7 @@ public class DreUserServiceImpl extends ServiceImpl<DreUserMapper, DreUser> impl
         if (CollectionUtils.isEmpty(list)){
             throw new CustomException("请选择要关联的信息");
         }
+        checkIsSend(list);
         List<DreUser> removeList = list.stream()
                 .filter(dreUser -> !dreUser.isDelFlag()).collect(Collectors.toList());
 
@@ -61,8 +64,35 @@ public class DreUserServiceImpl extends ServiceImpl<DreUserMapper, DreUser> impl
         }
     }
 
+
+    public void checkIsSend(List<DreUser> list){
+        list = list.stream().filter(dreUser -> 1 == dreUser.getIsSend() && null == dreUser.getOpenId()).collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(list)){
+            StringBuilder msg = new StringBuilder();
+            msg.append("配送员-");
+            for (DreUser dreUser:list) {
+                msg.append(dreUser.getUserName()).append(",");
+            }
+            msg.append("--未绑定openId,请登录公众号开启");
+            throw new CustomException(msg.toString());
+        }
+    }
+
     @Override
     public List<DreUserVO> list(String name, Boolean isSend) {
         return baseMapper.list(name,isSend);
     }
+
+    @Override
+    public void updateOpenId(Staff staff) {
+        if (StringUtils.isNotBlank(staff.getOpenId())){
+            LambdaQueryWrapper<DreUser> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.eq(DreUser::getUserId,staff.getSId());
+            List<DreUser> list = this.list(queryWrapper);
+            if (CollectionUtils.isNotEmpty(list)){
+                list.forEach(d -> d.setOpenId(staff.getOpenId()));
+                this.updateBatchById(list);
+            }
+        }
+    }
 }

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

@@ -175,4 +175,6 @@ public class DreUserVO {
 
 
     private Long dreUserId;
+
+    private String dreOpenId;
 }

+ 2 - 2
src/main/resources/mapper/DreUserMapper.xml

@@ -9,7 +9,7 @@
         <result column="is_send" property="isSend" />
     </resultMap>
     <select id="page" resultType="com.usky.dxtop.service.vo.DreUserVO">
-        select s.*,du.is_send as isSend,du.id as dreUserId
+        select s.*,du.is_send as isSend,du.id as dreUserId,du.open_id as dreOpenId
         from staff as s
         inner join dre_user as du
          on s.s_id = du.user_id
@@ -24,7 +24,7 @@
         order by s.id desc
     </select>
     <select id="list" resultType="com.usky.dxtop.service.vo.DreUserVO">
-        select s.*,du.is_send as isSend,du.id as dreUserId
+        select s.*,du.is_send as isSend,du.id as dreUserId,du.open_id as dreOpenId
         from staff as s
         inner join dre_user as du
         on s.s_id = du.user_id

+ 1 - 1
src/main/resources/mapper/SysUserMapper.xml

@@ -61,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		left join sys_dept d on u.dept_id = d.dept_id
 		where u.del_flag = '0'
 		<if test="userName != null and userName != ''">
-			AND u.user_name like concat('%', #{userName}, '%')
+			AND u.nick_name like concat('%', #{userName}, '%')
 		</if>
 		<if test="status != null and status != ''">
 			AND u.status = #{status}