rk
8 小时以前 a598218a73cc7736925517b12db6a861bd971f73
小程序   接口开发
已修改6个文件
133 ■■■■■ 文件已修改
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/core/wx/SendWxMessage.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_web/src/main/java/com/doumee/api/web/MemberApi.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -991,6 +991,61 @@
    }
    public enum WxNotice {
        GOODSORDER_SEND(0,"您购买的商品【{param}】已发货","/","02BlSaqsSje7IjsWy0K7HdH7ArpOsEHD14OQU2Mk2Cs"),
        GOODSORDER_WRITEOFF(1,"您购买的商品【{param}】已核销","/","A_-0NgHwX5a6Dlst64rqcDtcz_fGILwl3HTpN1rf7GE"),
        GOODSORDER_REFUND(2,"您购买的商品【{param}】已退款,退款金额【¥{param2}】","/","yGwMHrXM3Qd55hdSeaKY9dLb-kfgE2Vs-8iK9kQaveI");
        WxNotice(int i, String s, String s1,String s2) {
            this.type = i;
            this.noticeInfo = s;
            this.jumpUrl = s1;
            this.tempId = s2;
        }
        private int type;
        private String noticeInfo; //通知信息
        private String jumpUrl;//跳转路径
        private String tempId;//跳转路径
        public int getType() {
            return type;
        }
        public void setType(int type) {
            this.type = type;
        }
        public String getNoticeInfo() {
            return noticeInfo;
        }
        public void setNoticeInfo(String noticeInfo) {
            this.noticeInfo = noticeInfo;
        }
        public String getJumpUrl() {
            return jumpUrl;
        }
        public void setJumpUrl(String jumpUrl) {
            this.jumpUrl = jumpUrl;
        }
        public String getTempId() {
            return tempId;
        }
        public void setTempId(String tempId) {
            this.tempId = tempId;
        }
    }
    /**
     * 标签类型
server/dmmall_service/src/main/java/com/doumee/core/wx/SendWxMessage.java
@@ -1,11 +1,14 @@
package com.doumee.core.wx;
import com.alibaba.fastjson.JSONObject;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.HttpsUtil;
import com.doumee.dao.business.model.Goodsorder;
import com.doumee.dao.business.model.GoodsorderDetail;
import com.doumee.dao.business.model.Member;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
@@ -13,7 +16,9 @@
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * Created by IntelliJ IDEA.
@@ -33,6 +38,66 @@
    private static String programUserUrl = "pages/balanceDetails/balanceDetails";
    public static void createSendData(Constants.WxNotice wxNotice, Goodsorder goodsorder, List<GoodsorderDetail> gdetailList, Member member){
        Map<String, TemplateData> m = new HashMap<>();
        String jumpUrl = wxNotice.getJumpUrl();
        if(Constants.equalsInteger(wxNotice.getType(),Constants.ZERO)){
            //发货通知
            m.put("character_string1}",new TemplateData(goodsorder.getCode().toString()));//订单编号
            m.put("thing7}",new TemplateData(String.join(",", gdetailList.stream().map(i->i.getName()).collect(Collectors.toList()))));//商品名称
            m.put("thing10}",new TemplateData(goodsorder.getKdName()));//快递公司
            m.put("character_string3}",new TemplateData(goodsorder.getKdCode()));//快递单号
            jumpUrl = jumpUrl+"?id="+goodsorder.getId();
        }else if(Constants.equalsInteger(wxNotice.getType(),Constants.ONE)){
            //订单核销
            m.put("character_string3}",new TemplateData(goodsorder.getCode().toString()));//订单编号
            m.put("time2}",new TemplateData(DateUtil.formatDate(goodsorder.getDoneDate(),"yyyy年MM月dd HH:mm")));//核销时间
            m.put("phrase1}",new TemplateData("已核销"));//核销状态
            jumpUrl = jumpUrl+"?id="+goodsorder.getId();
        }else if(Constants.equalsInteger(wxNotice.getType(),Constants.TWO)){
            //订单退款
            m.put("character_string1}",new TemplateData(goodsorder.getCode().toString()));//订单编号
            m.put("thing2}",new TemplateData(String.join(",", gdetailList.stream().map(i->i.getName()).collect(Collectors.toList()))));//商品名称
            m.put("date9}",new TemplateData(DateUtil.formatDate(goodsorder.getRefundTime(),"yyyy年MM月dd HH:mm")));//退款时间
            m.put("phrase1}",new TemplateData(goodsorder.getRefundMoney()+"元"));//退款金额
            jumpUrl = jumpUrl+"?id="+goodsorder.getId();
        }
        SendWxMessage.sendWxMessage(wxNotice.getTempId(),m,member.getOpenId(),jumpUrl);
    }
    /**
     * 发送消息
     * @param tempId
     * @param m
     * @param openid
     * @param jumpUrl
     */
    public static void sendWxMessage(String tempId,Map<String, TemplateData> m,String openid,String jumpUrl){
        try{
            String accessToken = WxMiniConfig.wxMaService.getAccessToken();
            RestTemplate restTemplate = new RestTemplate();
            //这里简单起见我们每次都获取最新的access_token(时间开发中,应该在access_token快过期时再重新获取)
            String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
            //拼接推送的模版
            WxMsgVO wxMsgVo = new WxMsgVO();
            //用户的openid(要发送给那个用户)
            wxMsgVo.setTouser(openid);
            wxMsgVo.setTemplate_id(tempId);
            wxMsgVo.setPage(jumpUrl);
            ResponseEntity<String> responseEntity =
                    restTemplate.postForEntity(url, wxMsgVo, String.class);
            log.info("微信小程序->发送订阅消息:{}",JSONObject.toJSONString(responseEntity));
        }catch (WxErrorException wxErrorException){
        }
    }
    /**
     * 取消订单 通知
     * @param member 会员信息
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -209,6 +209,14 @@
    @ApiModelProperty(value = "返还用户积分", example = "1")
    private BigDecimal returnMemberIntegral;
    @ApiModelProperty(value = "退款金额", example = "1")
    private BigDecimal refundMoney;
    @ApiModelProperty(value = "退款时间", example = "1")
    private Date refundTime;
    @ApiModelProperty(value = "退款操作人", example = "1")
    private Integer refundUserId;
    @ApiModelProperty(value = "文件地址")
    @TableField(exist = false)
server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
@@ -224,6 +224,7 @@
        }
        Aftersale model = findJoinById(aftersale.getId(),false);
        aftersale.setMemberId(model.getMemberId());
        aftersale.setMemberId(model.getMemberId());
        if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,该售后记录不存在,请返回刷新重试!");
        }
server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java
@@ -216,7 +216,6 @@
    @Override
    public PageData<NoticeCardDTO> findNoticeCardDTOPage(PageWrap<Notice> pageWrap) {
        LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
        IPage<Notice> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        LambdaQueryWrapper<Notice> queryWrapper = new LambdaQueryWrapper<>();
@@ -242,4 +241,5 @@
        pageData.setRecords(noticeCardDTOs);
        return pageData;
    }
}
server/dmmall_web/src/main/java/com/doumee/api/web/MemberApi.java
@@ -66,6 +66,8 @@
        memberService.updateMemberOwnDTO(memberOwnDTO);
        return ApiResponse.success(null);
    }
    /**
     * 查询关注的人和商铺
     * @param pageWrap