From c18037dc5de7f67175c2cf80cd04761d198739b5 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 12 Apr 2021 19:48:50 +0800 Subject: [PATCH] Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop --- zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java | 2 zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java | 12 ++ zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java | 6 zq-erp/src/main/java/com/matrix/config/MvcCoreConfig.java | 3 zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java | 2 zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml | 74 ++++++++++++ zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java | 2 zq-erp/src/main/java/com/matrix/system/common/actions/MultipleFileUploadAction.java | 169 ++++++++++++++++++++++++++++ zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml | 6 zq-erp/src/test/java/com/matrix/TcProjTest.java | 33 +++++ zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java | 8 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java | 5 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java | 2 13 files changed, 314 insertions(+), 10 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/config/MvcCoreConfig.java b/zq-erp/src/main/java/com/matrix/config/MvcCoreConfig.java index 3c91072..5884118 100644 --- a/zq-erp/src/main/java/com/matrix/config/MvcCoreConfig.java +++ b/zq-erp/src/main/java/com/matrix/config/MvcCoreConfig.java @@ -77,7 +77,8 @@ registry.addInterceptor(suAuthorityInterceptor).addPathPatterns("/**/su/**"); //小程序公司与域名对应关系拦截 registry.addInterceptor(hostInterceptor).addPathPatterns("/**/wxapi/**") - .excludePathPatterns("/wxCommon/wxapi/wxpayCallback"); + .excludePathPatterns("/wxCommon/wxapi/wxpayCallback") + .excludePathPatterns("/wxCommon/wxapi/rechargeCallBack"); } diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java index 01db2dd..818338b 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java +++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java @@ -125,13 +125,15 @@ queryUse.setTaocanId(null); queryUse.setType(Dictionary.SHOPPING_GOODS_TYPE_TC); - List<SysProjUse> taoCanList = projUseService.findInPage(queryUse, null); +// List<SysProjUse> taoCanList = projUseService.findInPage(queryUse, null); + List<SysProjUse> taoCanList = projUseService.findTaocaoProjUseWithProj(queryUse); List<ServiceTcVo> serviceTcVos = SysProjUseMapper.INSTANCE.entityListToTcVoList(taoCanList); if (CollectionUtils.isNotEmpty(serviceTcVos)) { serviceTcVos.forEach(item -> { - List<SysProjUse> sysProjUses = projUseService.selectTaocanProjUse(item.getId(), queryUse.getStatus()); - List<ServiceProjVo> taocanProj = SysProjUseMapper.INSTANCE.entityListToProjVoList(sysProjUses); +// List<SysProjUse> sysProjUses = projUseService.selectTaocanProjUse(item.getId(), queryUse.getStatus()); + List<ServiceProjVo> taocanProj = SysProjUseMapper.INSTANCE.entityListToProjVoList(item.getTaocanProjUse()); + item.setTaocanProjUse(null); item.setProj(taocanProj); }); } diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java index 9c9cb10..1c61e6d 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java +++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.matrix.core.tools.DateUtil; +import com.matrix.system.hive.bean.SysProjUse; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -42,6 +43,17 @@ @ApiModelProperty(value = "快过期 1-是 2-否") private String isInvalid; + @ApiModelProperty(hidden = true) + private List<SysProjUse> taocanProjUse; + + public List<SysProjUse> getTaocanProjUse() { + return taocanProjUse; + } + + public void setTaocanProjUse(List<SysProjUse> taocanProjUse) { + this.taocanProjUse = taocanProjUse; + } + public String getIsInvalid() { Date date = DateUtil.getDateAfterMonth(new Date(), 1); if (invalidTime != null) { diff --git a/zq-erp/src/main/java/com/matrix/system/common/actions/MultipleFileUploadAction.java b/zq-erp/src/main/java/com/matrix/system/common/actions/MultipleFileUploadAction.java new file mode 100644 index 0000000..9c4f419 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/common/actions/MultipleFileUploadAction.java @@ -0,0 +1,169 @@ +package com.matrix.system.common.actions; + +import com.alibaba.fastjson.JSONObject; +import com.matrix.core.tools.StringUtils; +import com.matrix.core.tools.UUIDUtil; +import com.matrix.system.common.constance.AppConstance; +import org.apache.commons.fileupload.FileUploadException; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 多文件上传控制器 + * + * @author jiangyouyao + * @email 512061637@qq.com + * @date 2019年2月25日 + */ +@Controller +@RequestMapping(value = "admin/multipleUploadFile") +public class MultipleFileUploadAction { + Logger log = Logger.getLogger(MultipleFileUploadAction.class); + + @Value("${file_storage_path}") + private String fileStoragePath; + @Value("${static_resource_url}") + private String nginxUrl; + + /** + * 最大值 + */ + private Long maxSize = 1024*1024*100L; + + /** + * 多文件上传方法 + * + * @author jiangyouyao + * @email 512061637@qq.com + * @date 2019年2月25日 + * @param response + * @param request + * @return + * @throws IOException + * @throws FileUploadException + */ + @RequestMapping(value = "/doUpload") + public @ResponseBody JSONObject doFileUpload(HttpServletResponse response, MultipartHttpServletRequest request, Integer data) + throws IOException, FileUploadException { + // 文件保存目录路径 + String savePath = fileStoragePath; + // 文件保存目录URL + String saveUrl = nginxUrl; + // String msgPag = "common/fileUploadResult"; + JSONObject object = new JSONObject(); + response.setContentType("text/html; charset=UTF-8"); + request.setCharacterEncoding("UTF-8"); + + // 保存和访问路径检查 + if (StringUtils.isBlank(saveUrl) || StringUtils.isBlank(savePath)) { + object.put("status", "err"); + object.put("msg", "文件上传失败错误代码:001"); + return object; + } + // 检查目录 + File uploadDir = new File(savePath); + if (!uploadDir.isDirectory()) { + uploadDir.mkdir(); + } + // 检查目录写权限 +// if (!uploadDir.canWrite()) { +// object.put("status", "err"); +// object.put("msg", "上传目录没有写权限"); +// return object; +// } + + Map<String, MultipartFile> fileMaps = request.getFileMap(); + for (String key : fileMaps.keySet()) { + MultipartFile file = fileMaps.get(key); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String ymd = sdf.format(new Date()); + savePath += ymd + "/"; + saveUrl += ymd + "/"; + File dirFile = new File(savePath); + if (!dirFile.exists()) { + dirFile.mkdirs(); + } + log.info("上传文件名:" + file.getOriginalFilename()); + log.info("上传文件大小:" + file.getBytes().length); + log.info("上传文件大小限制:" + maxSize); + log.info("上传文件大小是否超过限制:" + (file.getBytes().length > maxSize)); + if (file.getBytes().length > maxSize) { + object.put("status", "err"); + object.put("msg", "上传文件大小超过限制"); + return object; + } + String fileName = file.getOriginalFilename(); + String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); + + fileName = fileName.replace("." + fileExt, ""); + fileName = getSensitive(fileName); + String newFileName = UUIDUtil.getRandomID() + UUIDUtil.getRandomID() + "." + fileExt; + File uploadedFile = new File(savePath, newFileName); + try { + FileCopyUtils.copy(file.getBytes(), uploadedFile); + } catch (Exception e) { + object.put("status", "err"); + object.put("msg", "上传文件失败 "+e.getMessage()); + return object; + } + log.info("saveUrl:" + saveUrl); + String visitPath = saveUrl + newFileName; + log.info("上传一个文件:" + newFileName); + log.info("访问路径:" + visitPath); + // 获取回调函数 + /* + * String callBack = request.getParameter("callBack"); String inputId = + * request.getParameter("inputId"); request.setAttribute("status", "200"); + * request.setAttribute("callBack", callBack); request.setAttribute("inputId", + * inputId); request.setAttribute("url", visitPath); + */ + object.put("path", visitPath); + object.put("fileName", fileName); + object.put("status", 200); + if (data != null) { + object.put("index", data); + } + } + return object; + } + + /** + * 检查文件名,过滤特殊字符 + * + * @author jiangyouyao + * @email 512061637@qq.com + * @date 2019年2月25日 + * @param globWords + * @return + */ + public String getSensitive(String globWords) { + + String sensitive = ""; + Pattern pattern = Pattern.compile(AppConstance.SPECIAL_CHARACTERS); + Matcher matcher = pattern.matcher(globWords); + while (matcher.find()) { + sensitive += matcher.group(); + } + /* + * if(sensitive=="" || sensitive.length()<3 ){ + * sensitive=StringUtils.getRandomString(8); } + */ + return sensitive; + } +} \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java b/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java index d3b8671..e21ef75 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java +++ b/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java @@ -44,7 +44,7 @@ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if ("dev".equals(evn)) { - SysUsers sysUsers = sysUsersDao.selectById(2L); + SysUsers sysUsers = sysUsersDao.selectById(1060L); request.getSession().setAttribute(MatrixConstance.LOGIN_KEY, sysUsers); return true; } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java index c064f18..cd06925 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java @@ -132,4 +132,6 @@ List<SysProjUseFlow> selectProjUseFlow(@Param("record") SysProjUseFlow projUseFlow, @Param("pageVo")PaginationVO pageVo); Integer selectProjUseFlowTotal(@Param("record") SysProjUseFlow projUseFlow); + + List<SysProjUse> selectTaoCanListWithProj(@Param("record") SysProjUse sysProjUse); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java index df034a0..0bf893a 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java @@ -141,4 +141,6 @@ public List<SysProjUse> selectTaocanProjUse(Long id, String status); + + public List<SysProjUse> findTaocaoProjUseWithProj(SysProjUse sysProjUse); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java index 30bd8c9..d113cc4 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java @@ -599,4 +599,9 @@ projUse.setStatus(status); return sysProjUseDao.selectByModel(projUse); } + + @Override + public List<SysProjUse> findTaocaoProjUseWithProj(SysProjUse sysProjUse) { + return sysProjUseDao.selectTaoCanListWithProj(sysProjUse); + } } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java index 5246abe..8c31f22 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java @@ -307,7 +307,7 @@ if (moneyCardUseFlow.getCarUseId()==null) { ShopPayLog payLog = new ShopPayLog(); - if(payMoney==moneyCardUseFlow.getTotal()){ + if(payMoney.equals(moneyCardUseFlow.getTotal())){ threadResult.putInMap("status", "success"); resXml = AppConstance.RESULT_XML_SUCCESS; MoneyCardUse moneyCardUse = moneyCardUseDao.selectVipCard(user.getId()); @@ -315,6 +315,10 @@ moneyCardUseFlow.setCardName(moneyCardUse.getCardName()); moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney() + moneyCardUse.getRealMoney()); moneyCardUseFlowDao.update(moneyCardUseFlow); + + moneyCardUse.setRealMoney(moneyCardUse.getRealMoney()+payMoney.doubleValue()); + moneyCardUseDao.update(moneyCardUse); + //充值记录 recordPayLog(Integer.valueOf(moneyCardUseFlowId),2,moneyCardUseFlow.getPayNo(),new BigDecimal(payMoney), payLog, "充值成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS); }else{ diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java index 0993ccb..8bb4daa 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java @@ -86,7 +86,7 @@ String rechargeAmount = param.get("rechargeAmount"); if (StringUtils.isBlank(rechargeAmount)) { - return AjaxResult.buildFailInstance("去输入充值金额"); + return AjaxResult.buildFailInstance("请输入充值金额"); } double total = new BigDecimal(rechargeAmount).setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue(); if (total < 0.02) { diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml index 0c36b69..9a30f8e 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml @@ -98,7 +98,7 @@ <if test="content != null and content !='' "> content = #{content}, </if> - <if test="createTime != null and createTime !='' "> + <if test="createTime != null "> create_time = #{createTime}, </if> <if test="vipId != null and vipId !='' "> @@ -113,8 +113,8 @@ <if test="type != null and type !='' "> type = #{type}, </if> - <if test="taotal != null and taotal !='' "> - taotal = #{taotal}, + <if test="total != null and total !='' "> + total = #{total}, </if> <if test="times != null and times !='' "> times = #{times}, diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml index 3ba6f8c..295413f 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml @@ -859,5 +859,79 @@ where date_format(now(), '%Y-%m-%d') > date_format(FAIL_TIME, '%Y-%m-%d') and STATUS='有效' </select> + <resultMap type="SysProjUse" id="TaoCanWithProjMap"> + + <id property="id" column="ID"/> + <result property="createBy" column="create_by" /> + <result property="createTime" column="create_time" /> + <result property="updateBy" column="update_by" /> + <result property="updateTime" column="update_time" /> + <result property="orderItemId" column="ORDER_ITEM_ID"/> + <result property="projId" column="PROJ_ID"/> + <result property="surplusCount" column="SURPLUS_COUNT"/> + <result property="isOver" column="IS_OVER"/> + <result property="taocanId" column="TAOCAN_ID"/> + <result property="vipId" column="VIP_ID"/> + <result property="failTime" column="FAIL_TIME"/> + <result property="assembleId" column="ASSEMBLE_ID"/> + <result property="source" column="SOURCE"/> + <result property="status" column="STATUS"/> + <result property="platformFlag" column="PLATFORM_FLAG"/> + <result property="type" column="type"/> + <result property="balance" column="balance"/> + <result property="remark" column="remark"/> + <result property="price" column="price"/> + <result property="tcName" column="tcName"/> + <result property="projName" column="proj_name"/> + <result property="deductionNum" column="deductionNum"/> + <result property="isCourse" column="is_course"/> + <result property="timeLength" column="time_length"/> + <result property="orderId" column="orderId"/> + + <collection property="taocanProjUse" ofType="com.matrix.system.hive.bean.SysProjUse"> + <id property="id" column="proj_info_id" /> + <result property="projName" column="proj_proj_name"/> + <result property="failTime" column="proj_FAIL_TIME"/> + <result property="surplusCount" column="proj_SURPLUS_COUNT"/> + <result property="timeLength" column="proj_time_length"/> + <result property="img" column="proj_img"/> + <result property="projId" column="proj_projId"/> + </collection> + </resultMap> + + <select id="selectTaoCanListWithProj" resultMap="TaoCanWithProjMap"> + select + a.*, + d.id as orderId, + b.TIME_LENGTH, + b.img, + b.code, + e.proj_name proj_proj_name, + e.FAIL_TIME proj_FAIL_TIME, + e.SURPLUS_COUNT proj_SURPLUS_COUNT, + e.id proj_info_id, + e.proj_id proj_projId, + f.time_length proj_time_length, + f.img proj_img + from sys_proj_use a + left join shopping_goods b on a.proj_id=b.id + left join sys_order_item c on a.ORDER_ITEM_ID=c.id + left join sys_order d on c.ORDER_ID=d.id + left join sys_proj_use e on a.id = e.TAOCAN_ID and e.VIP_ID=a.vip_id + left join shopping_goods f on e.proj_id=f.id + where 1=1 and a.type='套餐' and a.TAOCAN_ID IS NULL + <if test="record.queryKey != null and record.queryKey !='' "> + and (instr(b.name, #{record.queryKey}) or instr(b.zjm, #{record.queryKey}) or instr(goods_no, #{record.queryKey})) + </if> + <if test="record.isOver != null and record.isOver !='' "> + and a.IS_OVER = #{record.isOver} + </if> + <if test="record.status != null and record.status !='' "> + and a.STATUS = #{record.status} + </if> + <if test="record.vipId != null and record.vipId !='' "> + and a.VIP_ID = #{record.vipId} + </if> + </select> </mapper> \ No newline at end of file diff --git a/zq-erp/src/test/java/com/matrix/TcProjTest.java b/zq-erp/src/test/java/com/matrix/TcProjTest.java new file mode 100644 index 0000000..a6c485c --- /dev/null +++ b/zq-erp/src/test/java/com/matrix/TcProjTest.java @@ -0,0 +1,33 @@ +package com.matrix; + +import cn.hutool.core.collection.CollUtil; +import com.matrix.system.hive.bean.SysProjUse; +import com.matrix.system.hive.dao.SysProjUseDao; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import java.util.List; + +/** + * @author wzy + * @date 2021-04-12 + **/ + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = {ZqErpApplication.class},webEnvironment =SpringBootTest.WebEnvironment.RANDOM_PORT) +public class TcProjTest { + + @Autowired + private SysProjUseDao sysProjUseDao; + + @Test + public void tcProjTest() { +// List<SysProjUse> projUses = sysProjUseDao.selectTaoCanListWithProj(); +// if (CollUtil.isNotEmpty(projUses)) { +// +// } + } +} -- Gitblit v1.9.1