From ad0e8141a883b7f96858512e59c5c9aa23c2462d Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 29 May 2019 11:04:35 +0800 Subject: [PATCH 01/22] =?UTF-8?q?[=E6=9C=8D=E5=8A=A1=E7=9B=91=E6=8E=A7][?= =?UTF-8?q?=E6=96=B0=E5=A2=9E]:=E5=AE=9A=E6=97=B6=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8E=A5=E5=8F=A3=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V201905290800__ADD_SYS_MONITOR.sql | 52 ++++++++++ .../com/iformall/ScheduleApplication.java | 17 ++++ .../iformall/schedule/SysMonitorSchedule.java | 72 ++++++++++++++ .../src/main/resources/application-dev.yml | 2 + .../src/main/resources/application-prod.yml | 2 + .../src/main/resources/application-test.yml | 2 + .../com/iformall/domain/po/SysMonitor.java | 95 +++++++++++++++++++ .../com/iformall/mapper/SysMonitorMapper.java | 16 ++++ .../iformall/service/SysMonitorService.java | 57 +++++++++++ .../service/impl/SysMonitorServiceImpl.java | 59 ++++++++++++ .../resources/mapper/SysMonitorMapper.xml | 56 +++++++++++ 11 files changed, 430 insertions(+) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V201905290800__ADD_SYS_MONITOR.sql create mode 100644 mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/SysMonitor.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/SysMonitorMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/SysMonitorService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/SysMonitorServiceImpl.java create mode 100644 mallinkService/src/main/resources/mapper/SysMonitorMapper.xml diff --git a/mallinkAdmin/src/main/resources/db/migration/V201905290800__ADD_SYS_MONITOR.sql b/mallinkAdmin/src/main/resources/db/migration/V201905290800__ADD_SYS_MONITOR.sql new file mode 100644 index 000000000..88ce39b32 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201905290800__ADD_SYS_MONITOR.sql @@ -0,0 +1,52 @@ +DROP TABLE IF EXISTS `sys_monitor`; +CREATE TABLE `sys_monitor` ( + `id` bigint(20) NOT NULL, + `name` varchar(50) NOT NULL COMMENT '网址名称', + `url` varchar(255) NOT NULL COMMENT '网址url', + `type` tinyint(20) DEFAULT '1' COMMENT '1=网址监控', + `deploy` tinyint(20) DEFAULT '1' COMMENT '1=dev 2=test 3=release', + `err_msg` varchar(50) DEFAULT NULL COMMENT '错误信息', + PRIMARY KEY (`id`), + UNIQUE `id_UNIQUE` USING BTREE (`id`) comment '' +) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='网络监控' CHECKSUM=0 DELAY_KEY_WRITE=0; + +INSERT INTO `sys_monitor` (`id`,`name`,`url`,`type`,`deploy`,`err_msg`) VALUES +(1, "dev-管理端","https://mall.youlane.cn/api/version", 1, 1, "{url}不响应"), +(2, "dev-C端","https://ciformall.youlane.cn/C/api/mall/version", 1, 1, "{name}: {url} 不响应"), +(3, "dev-B端","https://biformall.youlane.cn/B/api/mall/version", 1, 1, "{name}: {url}不响应"), +(4, "dev-Schedule","http://202.165.179.86:5000/S/version", 1, 1, "{name}: {url}不响应"), +(5, "dev-消息服务器","http://202.165.179.86:5001/mq/version", 1, 1, "{name}: {url}不响应"), +(6, "dev-websocket服务器","http://202.165.179.86:7100/W/version", 1, 1, "{name}: {url}不响应"), +(7, "dev-微信第三方开放平台","https://open.youlane.cn/O/version", 1, 1, "{name}: {url}不响应"), +(8, "dev-移动端数据塔台","https://mobile.youlane.cn/#/", 1, 1, "{name}: {url}不响应"), +(9, "dev-幸运卡牌","https://game.youlane.cn/luckCard/index.html", 1, 1, "{name}: {url}不响应"), +(10, "dev-幸运砸金蛋","https://game.youlane.cn/goldEgg/index.html", 1, 1, "{name}: {url}不响应"), +(11, "dev-幸运刮刮乐","https://game.youlane.cn/guaguale/index.html", 1, 1, "{name}: {url}不响应"), +(12, "dev-callback","http://202.165.179.86:9100/version", 1, 1, "{name}: {url}不响应"), + +(101, "test-管理端","https://admintest.malls.iformall.com/api/version", 1, 2, "{name}: {url}不响应"), +(102, "test-C端","https://ctest.malls.iformall.com/C/api/mall/version", 1, 2, "{name}: {url} 不响应"), +(103, "test-B端","https://btest.malls.iformall.com/B/api/mall/version", 1, 2, "{name}: {url}不响应"), +(104, "test-Schedule","https://stest.malls.iformall.com/S/version", 1, 2, "{name}: {url}不响应"), +(105, "test-消息服务器","https://stest.malls.iformall.com/mq/version", 1, 2, "{name}: {url}不响应"), +(106, "test-websocket服务器","https://stest.malls.iformall.com/W/version", 1, 2, "{name}: {url}不响应"), +(107, "test-微信第三方开放平台","https://opentest.malls.iformall.com/O/version", 1, 2, "{name}: {url}不响应"), +(108, "test-移动端数据塔台","https://mobiletest.malls.iformall.com/#/", 1, 2, "{name}: {url}不响应"), +(109, "test-幸运卡牌","https://gametest.malls.iformall.com/game/luckCard/index.html", 1, 2, "{name}: {url}不响应"), +(110, "test-幸运砸金蛋","https://gametest.malls.iformall.com/game/goldEgg/index.html", 1, 2, "{name}: {url}不响应"), +(111, "test-幸运刮刮乐","https://gametest.malls.iformall.com/game/guaguale/index.html", 1, 2, "{name}: {url}不响应"), +(112, "test-callback","https://callbacktest.malls.iformall.com/api/version", 1, 2, "{name}: {url}不响应"), + +(201, "生产环境-管理端","https://admin.malls.iformall.com/api/version", 1, 3, "{name}: {url}不响应"), +(202, "生产环境-C端","https://c.malls.iformall.com/C/api/mall/version", 1, 3, "{name}: {url} 不响应"), +(203, "生产环境-B端","https://b.malls.iformall.com/B/api/mall/version", 1, 3, "{name}: {url}不响应"), +(204, "生产环境-Schedule","https://s.malls.iformall.com/S/version", 1, 3, "{name}: {url}不响应"), +(205, "生产环境-消息服务器","https://s.malls.iformall.com/mq/version", 1, 3, "{name}: {url}不响应"), +(206, "生产环境-websocket服务器","https://s.malls.iformall.com/W/version", 1, 3, "{name}: {url}不响应"), +(207, "生产环境-微信第三方开放平台","https://open.malls.iformall.com/O/version", 1, 3, "{name}: {url}不响应"), +(208, "生产环境-移动端数据塔台","https://mobile.malls.iformall.com/#/", 1, 3, "{name}: {url}不响应"), +(209, "生产环境-幸运卡牌","https://game.malls.iformall.com/game/luckCard/index.html", 1, 3, "{name}: {url}不响应"), +(210, "生产环境-幸运砸金蛋","https://game.malls.iformall.com/game/goldEgg/index.html", 1, 3, "{name}: {url}不响应"), +(211, "生产环境-幸运刮刮乐","https://game.malls.iformall.com/game/guaguale/index.html", 1, 3, "{name}: {url}不响应"), +(212, "生产环境-callback","https://callback.malls.iformall.com/api/version", 1, 3, "{name}: {url}不响应") +; \ No newline at end of file diff --git a/mallinkSchedule/src/main/java/com/iformall/ScheduleApplication.java b/mallinkSchedule/src/main/java/com/iformall/ScheduleApplication.java index f60575a28..ebd8a4d91 100644 --- a/mallinkSchedule/src/main/java/com/iformall/ScheduleApplication.java +++ b/mallinkSchedule/src/main/java/com/iformall/ScheduleApplication.java @@ -32,6 +32,12 @@ public class ScheduleApplication { @Value("${fm.upload_dir}") private String uploadDir; + @Value("${fm.monitor_emails}") + private String fmMonitorEmails; + + @Value("${fm.monitor_enable}") + private boolean fmMonitor; + @Bean public boolean isFmException() { return fmException; @@ -52,6 +58,17 @@ public class ScheduleApplication { return uploadDir; } + @Bean + public String fmMonitorEmails() { + return fmMonitorEmails; + } + + @Bean + public boolean isFmMonitor() { + return fmMonitor; + } + + public static void main(String[] args) { SpringApplication.run(ScheduleApplication.class, args); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java new file mode 100644 index 000000000..e27d1f05b --- /dev/null +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java @@ -0,0 +1,72 @@ +package com.iformall.schedule; + +import com.iformall.domain.po.SysMonitor; +import com.iformall.mapper.*; +import com.iformall.service.MailService; +import com.iformall.utils.HttpUtil; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class SysMonitorSchedule { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private String fmMonitorEmails; + + @Autowired + private boolean isFmMonitor; + + @Autowired + private MailService mailService; + + @Autowired + private SysMonitorMapper sysMonitorMapper; + + @Scheduled(cron = "0 */5 * * * *?") // 每隔5分钟检查一下各个网址 + public void checkUrls() { + if(isFmMonitor) { + SysMonitor q = new SysMonitor(); + List sysMonitors = sysMonitorMapper.findList(q); + + for (SysMonitor sysMonitor : sysMonitors) { + checkSysMonitor(sysMonitor); + } + } + } + + private void checkSysMonitor(SysMonitor sysMonitor) { + boolean isNormal = true; + try { + String result = HttpUtil.doGet(sysMonitor.getUrl()); + if(StringUtils.isBlank(result)) { + isNormal = false; + } else { + logger.info(result); + } + } catch (RuntimeException e) { + logger.error(e.getMessage()); + isNormal = false; + } + + if(!isNormal) { + String[] receivers = fmMonitorEmails.split(","); + + String content = sysMonitor.getErrMsg(); + content = content.replace("{name}", sysMonitor.getName()); + content = content.replace("{url}", sysMonitor.getUrl()); + + //发送邮件 + mailService.sendSimpleMail(receivers, sysMonitor.getName() + "访问异常", content); + } + } + + +} \ No newline at end of file diff --git a/mallinkSchedule/src/main/resources/application-dev.yml b/mallinkSchedule/src/main/resources/application-dev.yml index 2aff90875..b4c035ea5 100644 --- a/mallinkSchedule/src/main/resources/application-dev.yml +++ b/mallinkSchedule/src/main/resources/application-dev.yml @@ -108,6 +108,8 @@ fm: deploy: 1 open: true upload_dir: /home/test/server/uploads/ + monitor_emails: hupeng@iformall.com,wuguoqiang@iformall.com,gongbiao@iformall.com,luozukai@iformall.com,sunmingming@iformall.com,huanghui@iformall.com,wangmei@iformall.com + monitor_enable: true logging: level: diff --git a/mallinkSchedule/src/main/resources/application-prod.yml b/mallinkSchedule/src/main/resources/application-prod.yml index 96732f75b..152980909 100644 --- a/mallinkSchedule/src/main/resources/application-prod.yml +++ b/mallinkSchedule/src/main/resources/application-prod.yml @@ -93,6 +93,8 @@ fm: deploy: 3 open: true upload_dir: /home/ec2-user/server/uploads/ + monitor_emails: hupeng@iformall.com,wuguoqiang@iformall.com,gongbiao@iformall.com,luozukai@iformall.com,sunmingming@iformall.com,huanghui@iformall.com,wangmei@iformall.com + monitor_enable: false logging: level: diff --git a/mallinkSchedule/src/main/resources/application-test.yml b/mallinkSchedule/src/main/resources/application-test.yml index d40b7338a..3a5b3d434 100644 --- a/mallinkSchedule/src/main/resources/application-test.yml +++ b/mallinkSchedule/src/main/resources/application-test.yml @@ -93,6 +93,8 @@ fm: deploy: 2 open: true upload_dir: /home/ec2-user/server/uploads/ + monitor_emails: hupeng@iformall.com,wuguoqiang@iformall.com,gongbiao@iformall.com,luozukai@iformall.com,sunmingming@iformall.com,huanghui@iformall.com,wangmei@iformall.com + monitor_enable: false logging: level: diff --git a/mallinkService/src/main/java/com/iformall/domain/po/SysMonitor.java b/mallinkService/src/main/java/com/iformall/domain/po/SysMonitor.java new file mode 100644 index 000000000..6fd62d77a --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/SysMonitor.java @@ -0,0 +1,95 @@ +package com.iformall.domain.po; + +import lombok.Data; +import javax.persistence.*; +import javax.persistence.Transient; +import java.util.List; +import javax.persistence.Id; +import java.io.Serializable; + +@Table(name = "sys_monitor") +@Data +public class SysMonitor implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + protected Long id; + + @Transient + protected List ids; + @Transient + protected String sortColumns; + + @io.swagger.annotations.ApiModelProperty(value="网址url",name="name") + private String name; + @io.swagger.annotations.ApiModelProperty(value="网址url",name="url") + private String url; + @io.swagger.annotations.ApiModelProperty(value="1=网址监控",name="type") + private Integer type; + @io.swagger.annotations.ApiModelProperty(value="1=dev 2=test 3=release",name="deploy") + private Integer deploy; + @io.swagger.annotations.ApiModelProperty(value="",name="errMsg") + private String errMsg; + + + + public static enum Field + { + Id_ASC("`id` ASC"),Id_DESC("`id` DESC") + ,Name_ASC("`name` ASC"),Name_DESC("`name` DESC") + ,Url_ASC("`url` ASC"),Url_DESC("`url` DESC") + ,Type_ASC("`type` ASC"),Type_DESC("`type` DESC") + ,Deploy_ASC("`deploy` ASC"),Deploy_DESC("`deploy` DESC") + ,ErrMsg_ASC("`err_msg` ASC"),ErrMsg_DESC("`err_msg` DESC") + ; + private String value; + Field(String value){ + this.value = value; + } + public String getValue() { + return value; + } + public void setCol(String value) { + this.value = value; + } + @Override + public String toString() { + return this.getValue(); + } + } + + public void setSortColumns(SysMonitor.Field... fields) + { + if (fields == null || fields.length == 0) { + return; + } + for (int k = 0; k < fields.length; k++) { + if (fields[k] == null) { + return; + } + } + StringBuilder sb = new StringBuilder(fields[0].toString()); + for (int k = 1; k < fields.length; k++) { + sb.append(","); + sb.append(fields[k].toString()); + } + this.sortColumns = sb.toString(); + } + + public void setSortColumns(String sortColumns) + { + if (sortColumns == null || "".equals(sortColumns.trim())) { + return; + } + if (sortColumns.contains(",")) { + String[] cols = sortColumns.split(","); + java.util.List fList = new java.util.ArrayList(); + for (int k = 0; k < cols.length; k++) { + fList.add(Field.valueOf(cols[k])); + } + this.setSortColumns(fList.toArray(new Field[fList.size()])); + } else { + this.setSortColumns(Field.valueOf(sortColumns)); + } + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/SysMonitorMapper.java b/mallinkService/src/main/java/com/iformall/mapper/SysMonitorMapper.java new file mode 100644 index 000000000..bacc31d97 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/SysMonitorMapper.java @@ -0,0 +1,16 @@ +package com.iformall.mapper; + +import java.util.*; +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.SysMonitor; + +public interface SysMonitorMapper extends CommonMapper { + + List findList(SysMonitor sysMonitor); + + + + + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/SysMonitorService.java b/mallinkService/src/main/java/com/iformall/service/SysMonitorService.java new file mode 100644 index 000000000..69d12159c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/SysMonitorService.java @@ -0,0 +1,57 @@ +package com.iformall.service; + +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.SysMonitor; + +import java.util.List; + +public interface SysMonitorService { + + /** + * 根据实体查询分页列表 + * + * @param record + * @param pageIndex + * @param pageSize + * @return + */ + PageInfo listAsPage(SysMonitor record, Integer pageIndex, Integer pageSize); + + /** + * 根据实体查询列表 + * + * @param record + * @return + */ + List getList(SysMonitor record); + + /** + * 根据Id获得实体 + * + * @param id + * @return + */ + SysMonitor getById(Long id); + + /** + * 保存或更新实体 + * + * @param record + */ + void saveOrUpdate(SysMonitor record); + + /** + * 根据Id删除实体 + * + * @param id + */ + void deleteById(Long id); + + + + + + + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/SysMonitorServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/SysMonitorServiceImpl.java new file mode 100644 index 000000000..f5a994177 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/SysMonitorServiceImpl.java @@ -0,0 +1,59 @@ +package com.iformall.service.impl; + +import java.util.*; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.SysMonitor; +import com.iformall.mapper.SysMonitorMapper; +import com.iformall.service.SysMonitorService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.iformall.common.IdWorker; + +@Service +public class SysMonitorServiceImpl implements SysMonitorService { + + @Autowired + SysMonitorMapper sysMonitorMapper; + + + @Override + public PageInfo listAsPage(SysMonitor record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> sysMonitorMapper.findList(record)); + } + + @Override + public List getList(SysMonitor record) { + return sysMonitorMapper.findList(record); + } + + @Override + public SysMonitor getById(Long id) { + return sysMonitorMapper.selectByPrimaryKey(id); + } + + @Override + public void saveOrUpdate(SysMonitor record) { + if (record.getId() == null) { + //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + sysMonitorMapper.insertSelective(record); + } else { + sysMonitorMapper.updateByPrimaryKeySelective(record); + } + } + + @Override + public void deleteById(Long id) { + sysMonitorMapper.deleteByPrimaryKey(id); + } + + + + + + + + +} diff --git a/mallinkService/src/main/resources/mapper/SysMonitorMapper.xml b/mallinkService/src/main/resources/mapper/SysMonitorMapper.xml new file mode 100644 index 000000000..febd96a9a --- /dev/null +++ b/mallinkService/src/main/resources/mapper/SysMonitorMapper.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + `id`,`name`,`url`,`type`,`deploy`,`err_msg` + + + + where 1 = 1 + + and `id` = #{id} + + + and `name` = #{name} + + + and `url` = #{url} + + + and `type` = #{type} + + + and `deploy` = #{deploy} + + + and `err_msg` like concat('%', #{errMsg},'%') + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + From 57c52285acf3eef63c80211ebbd19e8bfe0c15ac Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 29 May 2019 11:11:36 +0800 Subject: [PATCH 02/22] =?UTF-8?q?[=E6=9C=8D=E5=8A=A1=E7=9B=91=E6=8E=A7][?= =?UTF-8?q?=E6=96=B0=E5=A2=9E]:=E5=AE=9A=E6=97=B6=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8E=A5=E5=8F=A3=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/schedule/SysMonitorSchedule.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java index e27d1f05b..8d9585d4a 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java @@ -49,7 +49,11 @@ public class SysMonitorSchedule { if(StringUtils.isBlank(result)) { isNormal = false; } else { - logger.info(result); + if(result.length() < 60) { + logger.info(result); + } else { + logger.info(result.substring(0, 50)); + } } } catch (RuntimeException e) { logger.error(e.getMessage()); From b647715e1a34b308db5cb128163a4f7a67a7e833 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 29 May 2019 11:19:58 +0800 Subject: [PATCH 03/22] =?UTF-8?q?[=E6=9C=8D=E5=8A=A1=E7=9B=91=E6=8E=A7][?= =?UTF-8?q?=E6=96=B0=E5=A2=9E]:=E5=AE=9A=E6=97=B6=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8E=A5=E5=8F=A3=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkSchedule/src/main/resources/application-dev.yml | 2 +- mallinkSchedule/src/main/resources/application-prod.yml | 2 +- mallinkSchedule/src/main/resources/application-test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mallinkSchedule/src/main/resources/application-dev.yml b/mallinkSchedule/src/main/resources/application-dev.yml index b4c035ea5..0b6b1f9db 100644 --- a/mallinkSchedule/src/main/resources/application-dev.yml +++ b/mallinkSchedule/src/main/resources/application-dev.yml @@ -108,7 +108,7 @@ fm: deploy: 1 open: true upload_dir: /home/test/server/uploads/ - monitor_emails: hupeng@iformall.com,wuguoqiang@iformall.com,gongbiao@iformall.com,luozukai@iformall.com,sunmingming@iformall.com,huanghui@iformall.com,wangmei@iformall.com + monitor_emails: hupeng@iformall.com,wuguoqiang@iformall.com,gongbiao@iformall.com,luozukai@iformall.com,sunmingming@iformall.com,huanghui@iformall.com,wangmei@iformall.com,liuhui@iformall.com,luqicai@iformall.com monitor_enable: true logging: diff --git a/mallinkSchedule/src/main/resources/application-prod.yml b/mallinkSchedule/src/main/resources/application-prod.yml index 152980909..9b57d6916 100644 --- a/mallinkSchedule/src/main/resources/application-prod.yml +++ b/mallinkSchedule/src/main/resources/application-prod.yml @@ -93,7 +93,7 @@ fm: deploy: 3 open: true upload_dir: /home/ec2-user/server/uploads/ - monitor_emails: hupeng@iformall.com,wuguoqiang@iformall.com,gongbiao@iformall.com,luozukai@iformall.com,sunmingming@iformall.com,huanghui@iformall.com,wangmei@iformall.com + monitor_emails: hupeng@iformall.com,wuguoqiang@iformall.com,gongbiao@iformall.com,luozukai@iformall.com,sunmingming@iformall.com,huanghui@iformall.com,wangmei@iformall.com,liuhui@iformall.com,luqicai@iformall.com monitor_enable: false logging: diff --git a/mallinkSchedule/src/main/resources/application-test.yml b/mallinkSchedule/src/main/resources/application-test.yml index 3a5b3d434..53e62a898 100644 --- a/mallinkSchedule/src/main/resources/application-test.yml +++ b/mallinkSchedule/src/main/resources/application-test.yml @@ -93,7 +93,7 @@ fm: deploy: 2 open: true upload_dir: /home/ec2-user/server/uploads/ - monitor_emails: hupeng@iformall.com,wuguoqiang@iformall.com,gongbiao@iformall.com,luozukai@iformall.com,sunmingming@iformall.com,huanghui@iformall.com,wangmei@iformall.com + monitor_emails: hupeng@iformall.com,wuguoqiang@iformall.com,gongbiao@iformall.com,luozukai@iformall.com,sunmingming@iformall.com,huanghui@iformall.com,wangmei@iformall.com,liuhui@iformall.com,luqicai@iformall.com monitor_enable: false logging: From c4bcad97614ab206a934d13f8b42230d0c7c70d2 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 14:06:28 +0800 Subject: [PATCH 04/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001665]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/app/WxAppinfoController.java | 27 +++--- .../contract/WxRentContractController.java | 4 + .../iformall/domain/po/WxRentContract.java | 8 ++ .../impl/WxRentContractServiceImpl.java | 95 ++++++++++++++----- 4 files changed, 99 insertions(+), 35 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/app/WxAppinfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/app/WxAppinfoController.java index 793afbaa7..ad0162d41 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/app/WxAppinfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/app/WxAppinfoController.java @@ -24,7 +24,6 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.task.AsyncTaskExecutor; import org.springframework.web.bind.annotation.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -33,6 +32,8 @@ import java.io.*; import java.util.List; import java.util.Map; import java.util.UUID; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; @RestController @RequestMapping("wxAppinfo") @@ -57,26 +58,25 @@ public class WxAppinfoController extends BaseController { @Autowired private UploadController uploadController; - @Autowired - private AsyncTaskExecutor asyncTaskExecutor; - @Autowired private WxCouponChannelMapper wxCouponChannelMapper; + ExecutorService fixedThreadPool = Executors.newFixedThreadPool(100); + @ApiOperation("加载老数据二维码") @GetMapping("/updateQrCode") public void updateQrCode(String p)throws ServletException, IOException { - if("xlldxx".equals(p)){ + if("xlldxx".equals(p)) { String pageUrl = "pages/index/index"; List list = wxMerchantMapper.findQrcodeEmptyList(); - for (WxMerchant merchant:list) { - asyncTaskExecutor.execute(new Runnable() { + for (WxMerchant merchant : list) { + fixedThreadPool.execute(new Runnable() { @Override public void run() { String param = merchant.getWeappScene(); - ResultData resultData = exportQrcode(null,null,merchant.getTenantId(),1,pageUrl,param,0,"","","店铺详情",true); - Map map = (Map)resultData.data; + ResultData resultData = exportQrcode(null, null, merchant.getTenantId(), 1, pageUrl, param, 0, "", "", "店铺详情", true); + Map map = (Map) resultData.data; String url = map.get("url"); merchant.setQrCode(url); wxMerchantMapper.updateByPrimaryKeySelective(merchant); @@ -94,7 +94,7 @@ public class WxAppinfoController extends BaseController { List list = wxCouponChannelMapper.findQrcodeEmptyList(); for (WxCouponChannel couponChannel:list) { - asyncTaskExecutor.execute(new Runnable() { + fixedThreadPool.execute(new Runnable() { @Override public void run() { String param = couponChannel.getWeappScene(); @@ -146,9 +146,9 @@ public class WxAppinfoController extends BaseController { } public ResultData exportQrcode(HttpServletRequest request, HttpServletResponse response, - String tenantId, int type, String pageUrl, String sceneParam, - int withText, String text1, String text2, - String name,boolean upload) { + String tenantId, int type, String pageUrl, String sceneParam, + int withText, String text1, String text2, + String name,boolean upload) { // type 0 有限二维码, 1 无限制二维码 // withText 0 不带字 1. 带下面的字,2 带下面的两行字 WxAppinfo appinfo = wxAppinfoService.getCAppInfo(tenantId); @@ -280,3 +280,4 @@ public class WxAppinfoController extends BaseController { } + diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java index bc2c73869..093282474 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -95,6 +95,7 @@ public class WxRentContractController extends BaseController { MallUserInfo user = getUser(); wxRentContract.setTenantId(user.getTenantId()); wxRentContract.setAdjustPeriodHandle(); + wxRentContract.setRentPriceHandle(); return wxRentContractService.update(wxRentContract, user.getId(),user.getName()); } @@ -110,6 +111,7 @@ public class WxRentContractController extends BaseController { MallUserInfo user = getUser(); wxRentContract.setTenantId(user.getTenantId()); wxRentContract.setAdjustPeriodHandle(); + wxRentContract.setRentPriceHandle(); return wxRentContractService.update(wxRentContract, user.getId(),user.getName()); } @@ -120,6 +122,7 @@ public class WxRentContractController extends BaseController { MallUserInfo user = getUser(); wxRentContract.setTenantId(user.getTenantId()); wxRentContract.setAdjustPeriodHandle(); + wxRentContract.setRentPriceHandle(); return wxRentContractService.updateFile(wxRentContract, user.getId(),user.getName()); } @@ -258,3 +261,4 @@ public class WxRentContractController extends BaseController { } } + diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index 9dd7baf9b..de5274366 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -6,6 +6,7 @@ import com.iformall.enums.EnumRentContractAdjustPeriod; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; +import org.apache.commons.lang3.StringUtils; import javax.persistence.Id; import javax.persistence.Table; @@ -301,4 +302,11 @@ public class WxRentContract extends BaseEntity { } } + public void setRentPriceHandle() { + if(StringUtils.isNotBlank(rentPrice)) { + rentPrice = Double.parseDouble(rentPrice) * 100 +""; + } + } + } + diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 8b3e645bd..9f8343ccf 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -20,6 +20,7 @@ import com.iformall.utils.PriceUtil; import com.iformall.utils.WordUtil; import org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.DateUtil; import org.apache.shiro.SecurityUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -123,6 +124,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { result.put("totalPeriodDay",array[1]); } + //init rentPrice + if(StringUtils.isNotBlank(wxRentContract.getRentPrice())){ + wxRentContract.setRentPrice(Double.parseDouble(wxRentContract.getRentPrice())/100 + ""); + } + //init 租赁单价 String rentInfo = wxRentContract.getRentInfo(); if(StringUtils.isNotBlank(rentInfo)){ @@ -924,19 +930,17 @@ public class WxRentContractServiceImpl implements WxRentContractService { long needpay; //当天也算,加1天 - Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1); + //Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1); //按日 if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode())){ - int dayCount = DateUtils.daysBetween(wxBillRent.getStarttime(),newEndDate); - needpay = dayCount*price; + double needpayD = this.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime()); + needpay = new Double(needpayD).longValue(); }else{ //按月 - int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),newEndDate); - needpay = diff[0]*price; - - double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxRentContract.getRentalEndDate()); - needpay += diff[1] * oneDayProce; + double needpayD = this.getNeedPay(price,0,wxBillRent.getStarttime(),wxBillRent.getEndtime()); + needpay = new Double(needpayD).longValue(); } + wxBillRent.setNeedPay(needpay); wxBillRent.setOwe(needpay); wxBillRent.setReceivePay(needpay); @@ -1728,25 +1732,71 @@ public class WxRentContractServiceImpl implements WxRentContractService { return wxRentContractMapper.getShopType(wxRentContract); } - public static void main(String[] args) throws Exception{ + /** + * 按日计租 根据每月的日期总数计算needpay + * @param monthPrice + * @param start + * @param end + * @return + */ + public double getNeedPay(long monthPrice,long dayPrice,Date start,Date end){ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); -// Date start = sd.parse("2019-05-24"); -// Date end = sd.parse("2020-06-24"); - Date start = sd.parse("2019-05-24"); - Date end = sd.parse("2019-08-10"); + SimpleDateFormat sdM = new SimpleDateFormat("MM"); + Double total; + + int dayCount = DateUtils.getMonthDayCount(start); + double price; + if(monthPrice > 0){ + price = (double) monthPrice/dayCount; + }else{ + price = dayPrice; + } + Date currEnd = DateUtils.getLastDayForMonth(start); + int[] diff = DateUtils.getDiff(start,currEnd); + total = (diff[1]+1) * price; - Integer adjustPeriod = EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode(); - Integer dayType = Calendar.MONTH; - int receivePeriod = 2; + if(sdM.format(start).equals(sdM.format(end))){ + return total; + } + System.out.println("-------total:"+total); - List list = initBillTimeList(start,end,adjustPeriod,dayType,receivePeriod); - for (BillTimeVo b:list) { - System.out.print(sd.format(b.getStartDate())); - System.out.print(" "+sd.format(b.getEndDate())); - System.out.print(" "+sd.format(b.getReceiveDate())); + while (true){ + Date monthStartDate = DateUtils.getDaySet(currEnd,Calendar.DATE,1); + dayCount = DateUtils.getMonthDayCount(monthStartDate); + if(monthPrice > 0){ + price = (double) monthPrice/dayCount; + }else{ + price = dayPrice; + } - System.out.println(); + System.out.println("-------monthStartDate:"+sd.format(monthStartDate)); + + //最后一个月 + if(sdM.format(monthStartDate).equals(sdM.format(end))){ + System.out.println("-----------"); + System.out.println(sd.format(monthStartDate)); + System.out.println(sd.format(end)); + + diff = DateUtils.getDiff(monthStartDate,end); + total += price * (diff[1] +1); + break; + }else{ + currEnd = DateUtils.getLastDayForMonth(monthStartDate); + diff = DateUtils.getDiff(monthStartDate,currEnd); + total += price * (diff[1] +1); + } + System.out.println("-------total:"+total); } + return total; + } + + public static void main(String[] args) throws Exception{ + long tprice = 100; + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); + Date start = sd.parse("2019-05-28"); + Date end = sd.parse("2019-07-05"); + + System.out.println("===="+new WxRentContractServiceImpl().getNeedPay(tprice,0,start,end));; } public static List initBillTimeList(Date start,Date end,Integer adjustPeriod,Integer dayType,int receivePeriod){ @@ -1804,3 +1854,4 @@ public class WxRentContractServiceImpl implements WxRentContractService { } + From 955ffffe1f599cd5392b7cfc0a27b44d96077cc4 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 14:23:54 +0800 Subject: [PATCH 05/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001665]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxPropertyContractServiceImpl.java | 13 +++++-------- .../service/impl/WxRentContractServiceImpl.java | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index b1d8a193d..8cf70940d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -583,18 +583,15 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService long needpay; //当天也算,加1天 - Date newEndDate = DateUtils.getDaySet(wxBillProperty.getEndtime(),Calendar.DATE,1); + //Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1); //按日 if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode())){ - int dayCount = DateUtils.daysBetween(wxBillProperty.getStarttime(),newEndDate); - needpay = dayCount*price; + double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillProperty.getStarttime(),wxBillProperty.getEndtime()); + needpay = new Double(needpayD).longValue(); }else{ //按月 - int[] diff = DateUtils.getDiff(wxBillProperty.getStarttime(),newEndDate); - needpay = diff[0]*price; - - double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxPropertyContract.getRentalEndDate()); - needpay += diff[1] * oneDayProce; + double needpayD = WxRentContractServiceImpl.getNeedPay(price,0,wxBillProperty.getStarttime(),wxBillProperty.getEndtime()); + needpay = new Double(needpayD).longValue(); } wxBillProperty.setNeedPay(needpay); wxBillProperty.setOwe(needpay); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 9f8343ccf..cf527b2dc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1739,7 +1739,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { * @param end * @return */ - public double getNeedPay(long monthPrice,long dayPrice,Date start,Date end){ + public static double getNeedPay(long monthPrice,long dayPrice,Date start,Date end){ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdM = new SimpleDateFormat("MM"); Double total; From 9addf07ea96c5de40f35167ca56b8b9f57594ec3 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 15:32:52 +0800 Subject: [PATCH 06/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001665]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxPropertyContractServiceImpl.java | 16 ++++++---- .../impl/WxRentContractServiceImpl.java | 30 +++++++++++++------ 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 8cf70940d..52cabf405 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -95,7 +95,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //init dateDiff if(wxPropertyContract.getRentalStartDate() != null && wxPropertyContract.getRentalEndDate() != null){ - int[] array = DateUtils.getDiff(wxPropertyContract.getRentalStartDate(),wxPropertyContract.getRentalEndDate()); + //加1天 + Date newEndDate = DateUtils.getDaySet(wxPropertyContract.getRentalEndDate(),Calendar.DATE,1); + int[] array = DateUtils.getDiff(wxPropertyContract.getRentalStartDate(),newEndDate); result.put("totalPeriodMonth",array[0]); result.put("totalPeriodDay",array[1]); } @@ -550,7 +552,6 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } List billTimeVoList = WxRentContractServiceImpl.initBillTimeList(wxPropertyContract.getRentalStartDate(),wxPropertyContract.getRentalEndDate(),wxPropertyContract.getAdjustPeriod(),dayType,receivePeriod); - int index = 0; for (BillTimeVo billTimeVo : billTimeVoList){ if(yearList.size() > 1) { @@ -582,16 +583,19 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService long needpay; - //当天也算,加1天 - //Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1); //按日 if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode())){ double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillProperty.getStarttime(),wxBillProperty.getEndtime()); needpay = new Double(needpayD).longValue(); }else{ + //当天也算,加1天 + Date newEndDate = DateUtils.getDaySet(wxBillProperty.getEndtime(),Calendar.DATE,1); //按月 - double needpayD = WxRentContractServiceImpl.getNeedPay(price,0,wxBillProperty.getStarttime(),wxBillProperty.getEndtime()); - needpay = new Double(needpayD).longValue(); + int[] diff = DateUtils.getDiff(wxBillProperty.getStarttime(),newEndDate); + needpay = diff[0]*price; + + double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxPropertyContract.getRentalEndDate()); + needpay += diff[1] * oneDayProce; } wxBillProperty.setNeedPay(needpay); wxBillProperty.setOwe(needpay); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index cf527b2dc..04aba6f41 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -119,7 +119,9 @@ public class WxRentContractServiceImpl implements WxRentContractService { //init dateDiff if(wxRentContract.getRentalStartDate() != null && wxRentContract.getRentalEndDate() != null){ - int[] array = DateUtils.getDiff(wxRentContract.getRentalStartDate(),wxRentContract.getRentalEndDate()); + //加1天 + Date newEndDate = DateUtils.getDaySet(wxRentContract.getRentalEndDate(),Calendar.DATE,1); + int[] array = DateUtils.getDiff(wxRentContract.getRentalStartDate(),newEndDate); result.put("totalPeriodMonth",array[0]); result.put("totalPeriodDay",array[1]); } @@ -929,16 +931,19 @@ public class WxRentContractServiceImpl implements WxRentContractService { long needpay; - //当天也算,加1天 - //Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1); //按日 if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode())){ - double needpayD = this.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime()); + double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime()); needpay = new Double(needpayD).longValue(); }else{ + //当天也算,加1天 + Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1); //按月 - double needpayD = this.getNeedPay(price,0,wxBillRent.getStarttime(),wxBillRent.getEndtime()); - needpay = new Double(needpayD).longValue(); + int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),newEndDate); + needpay = diff[0]*price; + + double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxRentContract.getRentalEndDate()); + needpay += diff[1] * oneDayProce; } wxBillRent.setNeedPay(needpay); @@ -1742,7 +1747,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { public static double getNeedPay(long monthPrice,long dayPrice,Date start,Date end){ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdM = new SimpleDateFormat("MM"); - Double total; + Double total = new Double(0); + int[] diff; int dayCount = DateUtils.getMonthDayCount(start); double price; @@ -1752,11 +1758,17 @@ public class WxRentContractServiceImpl implements WxRentContractService { price = dayPrice; } Date currEnd = DateUtils.getLastDayForMonth(start); - int[] diff = DateUtils.getDiff(start,currEnd); - total = (diff[1]+1) * price; + + System.out.println("-----------"); + System.out.println(sd.format(start)); + System.out.println(sd.format(currEnd)); if(sdM.format(start).equals(sdM.format(end))){ + total = 1 * price; //算1天 return total; + }else{ + diff = DateUtils.getDiff(start,currEnd); + total = (diff[1]+1) * price; } System.out.println("-------total:"+total); From 4042cfa1f498061ea5d15619eccea1b744b37c2b Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 15:41:50 +0800 Subject: [PATCH 07/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001665]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxPropertyContractServiceImpl.java | 20 +++++++++---------- .../impl/WxRentContractServiceImpl.java | 20 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 52cabf405..697e39a29 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -584,7 +584,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService long needpay; //按日 - if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode())){ + if (wxPropertyContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){ double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillProperty.getStarttime(),wxBillProperty.getEndtime()); needpay = new Double(needpayD).longValue(); }else{ @@ -675,16 +675,16 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } //按月计租 - if (propertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode()) - ||propertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())) { +// if (propertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode()) +// ||propertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())) { result = buildRentMonth(wxMerchant, userId, propertyContract, receivePeriod, lease, rentalStartDate, price,isPreview); - } else { - //如果按日 - List yearList = new ArrayList<>(); - yearList.add(rentalStartDate); - Map resultMap = buildRent(receivePeriod,new long[]{price}, yearList, Calendar.DAY_OF_MONTH, propertyContract, userId, wxMerchant, 0, isPreview, null); - result = (List)resultMap.get("billList"); - } +// } else { +// //如果按日 +// List yearList = new ArrayList<>(); +// yearList.add(rentalStartDate); +// Map resultMap = buildRent(receivePeriod,new long[]{price}, yearList, Calendar.DAY_OF_MONTH, propertyContract, userId, wxMerchant, 0, isPreview, null); +// result = (List)resultMap.get("billList"); +// } } for (int i = 0; i < result.size(); i++) { result.get(i).setPeriod(i+1); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 04aba6f41..5c54eb4bc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -723,16 +723,16 @@ public class WxRentContractServiceImpl implements WxRentContractService { } //按月计租 - if (wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode()) - ||wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())) { +// if (wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode()) +// ||wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())) { rentList = buildRentMonth(wxMerchant, userId, wxRentContract, receivePeriod, lease, rentalStartDate, price,isPreview); - } else { - //如果按日 - List yearList = new ArrayList<>(); - yearList.add(rentalStartDate); - Map resultMap = buildRent(receivePeriod, new long[]{price}, yearList, Calendar.DAY_OF_MONTH, wxRentContract, userId, wxMerchant, 0, isPreview,null); - rentList = ( List)resultMap.get("billList"); - } +// } else { +// //如果按日 +// List yearList = new ArrayList<>(); +// yearList.add(rentalStartDate); +// Map resultMap = buildRent(receivePeriod, new long[]{price}, yearList, Calendar.DAY_OF_MONTH, wxRentContract, userId, wxMerchant, 0, isPreview,null); +// rentList = ( List)resultMap.get("billList"); +// } } for (int i = 0; i < rentList.size(); i++) { rentList.get(i).setPeriod(i+1); @@ -932,7 +932,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { long needpay; //按日 - if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode())){ + if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){ double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime()); needpay = new Double(needpayD).longValue(); }else{ From 52f34e797142b8994b963541ca55f374b36d9aa6 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 15:53:58 +0800 Subject: [PATCH 08/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001665]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/service/impl/WxRentContractServiceImpl.java | 4 ++-- .../src/main/java/com/iformall/utils/DateUtils.java | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 5c54eb4bc..6cb84e595 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1747,7 +1747,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { public static double getNeedPay(long monthPrice,long dayPrice,Date start,Date end){ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdM = new SimpleDateFormat("MM"); - Double total = new Double(0); + Double total; int[] diff; int dayCount = DateUtils.getMonthDayCount(start); @@ -1763,7 +1763,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { System.out.println(sd.format(start)); System.out.println(sd.format(currEnd)); - if(sdM.format(start).equals(sdM.format(end))){ + if(sd.format(start).equals(sd.format(end))){ total = 1 * price; //算1天 return total; }else{ diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index 6e9230453..b6b3a221c 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -1092,8 +1092,12 @@ public class DateUtils { * @return */ public static int[] getDiff(Date startDate,Date endDate) { - ZoneId zone = ZoneId.systemDefault(); + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); + if(sd.format(startDate).equals(sd.format(endDate))){ + return new int[] {0, 1}; + } + ZoneId zone = ZoneId.systemDefault(); LocalDateTime localDateTime = LocalDateTime.ofInstant(startDate.toInstant(), zone); LocalDate start = localDateTime.toLocalDate(); From de6d979afeea8b06326d172eec3fce0929b76203 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 16:05:35 +0800 Subject: [PATCH 09/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001665]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/domain/vo/WxProfitSharingOrderQueryVo.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderQueryVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderQueryVo.java index 9a50ddb25..5e560ec17 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderQueryVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderQueryVo.java @@ -36,6 +36,11 @@ public class WxProfitSharingOrderQueryVo extends BaseEntity { @javax.persistence.Transient private Integer type; + @javax.persistence.Transient + private Integer payAmount; + @javax.persistence.Transient + private Date createTime; + @Override public String getSortColumns() { super.setSortColumns(this.sortColumns); From 0305ac88f211943ad482d0b3042a5cd785b678db Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 17:05:02 +0800 Subject: [PATCH 10/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001640]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/controller/sys/HomeController.java | 4 ++++ .../com/iformall/service/impl/WxRentContractServiceImpl.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java index e62a8a786..0d173d80b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java @@ -13,6 +13,7 @@ import com.iformall.exception.MallinkException; import com.iformall.annotation.SystemControllerLog; import com.iformall.mapper.WxMerchantMapper; import com.iformall.service.*; +import com.iformall.service.impl.WxFlowServiceImpl; import com.iformall.shiro.UserSession; import com.iformall.shiro.UseriFormallToken; import com.iformall.utils.ShiroUtils; @@ -27,10 +28,13 @@ import org.apache.shiro.authc.DisabledAccountException; import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; +import org.flowable.engine.TaskService; +import org.flowable.task.api.Task; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.imageio.ImageIO; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 6cb84e595..fd5135bd0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -673,7 +673,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { logger.info("合同id:{},开始停止...", id); //结束审批流 by luozukai List tasks = taskService.createTaskQuery().processDefinitionKey(WxFlowServiceImpl.getFlowKeyByType(1)) - .processVariableValueEquals("businessId", id).list(); + .processVariableValueEquals("businessId", id+"").list(); if (!CollectionUtils.isEmpty(tasks)) { for (Task task : tasks) { logger.info("合同id:{},taskid:{}", id, task.getId()); From ce71b0fbc35ef9ec5269f4fc3b4fd797261ef079 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 17:05:49 +0800 Subject: [PATCH 11/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001640]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/sys/HomeController.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java index 0d173d80b..5b072d4a8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java @@ -11,9 +11,7 @@ import com.iformall.domain.vo.MallUserInfoVo; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.annotation.SystemControllerLog; -import com.iformall.mapper.WxMerchantMapper; import com.iformall.service.*; -import com.iformall.service.impl.WxFlowServiceImpl; import com.iformall.shiro.UserSession; import com.iformall.shiro.UseriFormallToken; import com.iformall.utils.ShiroUtils; @@ -28,15 +26,11 @@ import org.apache.shiro.authc.DisabledAccountException; import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; -import org.flowable.engine.TaskService; -import org.flowable.task.api.Task; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; - import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; @@ -45,7 +39,6 @@ import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URLEncoder; -import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; From 07844be8503cdf2e7136ef434e3148df02653147 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 29 May 2019 17:19:32 +0800 Subject: [PATCH 12/22] =?UTF-8?q?[excel=E6=A8=A1=E6=9D=BF=E5=AF=BC?= =?UTF-8?q?=E5=87=BA][=E4=BF=AE=E6=94=B9][=E5=B8=A6*=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=B8=BA=E5=BF=85=E5=A1=AB=E5=AD=97=E6=AE=B5]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/controller/mem/AsyncTask.java | 4 ++-- .../controller/mem/BillDailyAsyncTask.java | 4 ++-- .../com/iformall/domain/po/WxBillDaily.java | 4 ++-- .../iformall/domain/po/WxCUserBasicInfo.java | 3 +-- .../com/iformall/domain/vo/WxBillDailyVo.java | 6 +++--- .../com/iformall/service/ExcelService.java | 19 ++++++++++++++----- .../service/impl/WxBillAllServiceImpl.java | 6 +++--- .../service/impl/WxBillDailyServiceImpl.java | 2 +- .../impl/WxCUserBasicInfoServiceImpl.java | 6 +++--- .../service/impl/WxCardSpendServiceImpl.java | 11 +++++------ .../impl/WxCouponOrderServiceImpl.java | 9 +++++---- .../service/impl/WxMerchantServiceImpl.java | 2 +- .../impl/WxMerchantSubsidyServiceImpl.java | 9 ++------- .../service/impl/WxShopServiceImpl.java | 4 ++-- .../mapper/WxCUserBasicInfoMapper.xml | 2 +- 15 files changed, 47 insertions(+), 44 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java index d410bf40e..3b036ab5b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java @@ -61,9 +61,9 @@ public class AsyncTask { public void importExcelData(File file, MallUserInfo user, String importKey, String tenantId) { ImportParams params = new ImportParams(); // 需要验证 - params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日","积分", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); + params.setImportFields(new String[]{"姓名", "性别", "手机号*", "微信昵称", "学历", "生日", "积分", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); IExcelDataHandler handler = new AsyncTask.UserExcelHandler(); - handler.setNeedHandlerFields(new String[] { "手机号" }); + handler.setNeedHandlerFields(new String[]{"手机号*"}); params.setNeedVerify(true); ExcelImportResult datalist = null; diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/BillDailyAsyncTask.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/BillDailyAsyncTask.java index 80900bb0b..38bb0d844 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/BillDailyAsyncTask.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/BillDailyAsyncTask.java @@ -65,9 +65,9 @@ public class BillDailyAsyncTask { public void importExcelData(File file, MallUserInfo user, String importKey, String tenantId) { ImportParams params = new ImportParams(); // 需要验证 - params.setImportFields(new String[]{"商铺号", "费用类型", "实际应收金额(元)", "实收金额(元)", "缴款截止日期"}); + params.setImportFields(new String[]{"商铺号*", "费用类型*", "实际应收金额(元)*", "实收金额(元)*", "缴款截止日期*"}); IExcelDataHandler handler = new BillDailyAsyncTask.BillDailyExcelHandler(); - handler.setNeedHandlerFields(new String[]{"商铺号", "费用类型", "实际应收金额(元)", "实收金额(元)", "缴款截止日期"}); + handler.setNeedHandlerFields(new String[]{"商铺号*", "费用类型*", "实际应收金额(元)*", "实收金额(元)*", "缴款截止日期*"}); params.setNeedVerify(true); ExcelImportResult datalist = null; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java index 443ea30c0..24e173c8d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java @@ -37,7 +37,7 @@ public class WxBillDaily extends BaseEntity{ @Transient private String merchantName; - @Excel(name = "费用类型", replace = {"水费_1", "电费_2"}, width = 10, orderNum = "2") + @Excel(name = "费用类型*", replace = {"水费_1", "电费_2"}, width = 10, orderNum = "2") @NotNull @io.swagger.annotations.ApiModelProperty(value="账单类型",name="type") private Integer type; @@ -49,7 +49,7 @@ public class WxBillDaily extends BaseEntity{ @io.swagger.annotations.ApiModelProperty(value="实收金额",name="pay") private Long pay; - @Excel(name = "缴款截止日期", orderNum = "5", width = 20, format = "yyyy-MM-dd") + @Excel(name = "缴款截止日期*", orderNum = "5", width = 20, format = "yyyy-MM-dd") @NotNull @SortColumn(column = "receiveDate") @io.swagger.annotations.ApiModelProperty(value="截止收款日期",name="receiveDate") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java index 204ce32ec..7bcd4b417 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java @@ -10,7 +10,6 @@ import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; import javax.validation.constraints.NotNull; -import java.io.Serializable; import java.util.Date; import java.util.List; import java.util.Objects; @@ -45,7 +44,7 @@ public class WxCUserBasicInfo extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="性别:0:保密 1.男 2女",name="sex") private Integer sex; - @Excel(name="手机号",width = 20,orderNum = "3") + @Excel(name = "手机号*", width = 20, orderNum = "3") @io.swagger.annotations.ApiModelProperty(value="微信用户绑定的手机号",name="phone") @NotNull diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillDailyVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillDailyVo.java index e179075ec..ed076c65b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillDailyVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillDailyVo.java @@ -17,17 +17,17 @@ import javax.validation.constraints.NotNull; @EqualsAndHashCode(callSuper = true) public class WxBillDailyVo extends WxBillDaily { - @Excel(name = "商铺号", width = 20, orderNum = "1") + @Excel(name = "商铺号*", width = 20, orderNum = "1") @NotNull @io.swagger.annotations.ApiModelProperty(value = "商铺号", name = "shopNumber") private String shopNumber; - @Excel(name = "实际应收金额(元)", orderNum = "3", width = 20, numFormat = "#.##") + @Excel(name = "实际应收金额(元)*", orderNum = "3", width = 20, numFormat = "#.##") @NotNull @io.swagger.annotations.ApiModelProperty(value = "实际应收金额", name = "receivePayStr") private String receivePayStr; - @Excel(name = "实收金额(元)", orderNum = "4", width = 20, numFormat = "#.##") + @Excel(name = "实收金额(元)*", orderNum = "4", width = 20, numFormat = "#.##") @NotNull @io.swagger.annotations.ApiModelProperty(value = "实收金额", name = "payStr") private String payStr; diff --git a/mallinkService/src/main/java/com/iformall/service/ExcelService.java b/mallinkService/src/main/java/com/iformall/service/ExcelService.java index 3d6314d8b..9e68237bb 100644 --- a/mallinkService/src/main/java/com/iformall/service/ExcelService.java +++ b/mallinkService/src/main/java/com/iformall/service/ExcelService.java @@ -9,10 +9,9 @@ import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import com.iformall.common.ErrorCode; import com.iformall.exception.MallinkException; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -37,7 +36,7 @@ public class ExcelService { defaultExport(list, pojoClass, fileName, response, exportParams); } - public static void exportExcel(List list, String title, String sheetName, Class pojoClass,String fileName, HttpServletResponse response) + public static void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName, HttpServletResponse response, boolean template) { defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF)); } @@ -51,8 +50,18 @@ public class ExcelService { private static void defaultExport(List list, Class pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams) { Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list); - if (workbook != null); - downLoadExcel(fileName, response, workbook); + if (workbook != null) { + Sheet sheetAt = workbook.getSheetAt(0); + CellStyle cellStyle = workbook.createCellStyle(); + Font font = workbook.createFont(); + font.setColor(IndexedColors.RED.getIndex()); + cellStyle.setFont(font); + Row row = sheetAt.createRow(sheetAt.getLastRowNum() + 2); + Cell cell = row.createCell(0); + cell.setCellValue("*为必填字段(此段文字导入数据时请删除)"); + cell.setCellStyle(cellStyle); + } + downLoadExcel(fileName, response, workbook); } private static void defaultExport(List> list, String fileName, HttpServletResponse response) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index b42b62485..b484db1e1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -256,7 +256,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { datalist.add(wxBillAllVo); } } - excelService.exportExcel(datalist, null, "账单数据", WxBillAllVo.class, "账单数据.xlsx", response); + excelService.exportExcel(datalist, null, "账单数据", WxBillAllVo.class, "账单数据.xlsx", response, false); } private int updateBillOtherDeposit(Map bill) { @@ -952,7 +952,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { list.add(oweMerchantVo); } String name = "欠缴商户列表"; - excelService.exportExcel(list,null, name, OweMerchantVo.class,name+".xlsx",response); + excelService.exportExcel(list, null, name, OweMerchantVo.class, name + ".xlsx", response, false); } @Override @@ -973,6 +973,6 @@ public class WxBillAllServiceImpl implements WxBillAllService { list.add(oweMerchantVo); } String name = "待缴商户列表"; - excelService.exportExcel(list,null, name, WaitMerchantVo.class,name+".xlsx",response); + excelService.exportExcel(list, null, name, WaitMerchantVo.class, name + ".xlsx", response, false); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java index 775e92d9f..348ebd22a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java @@ -237,7 +237,7 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { v2.setExpiredDay(0L); list.add(v2); - excelService.exportExcel(list, null, "水电费模板", WxBillDailyVo.class, "水电费模板.xlsx", response); + excelService.exportExcel(list, null, "水电费模板", WxBillDailyVo.class, "水电费模板.xlsx", response, true); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index bc81e4111..504de8821 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -624,7 +624,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { String tagNames = StringUtils.join(ids.stream().map(id->tagMap.get(id)).collect(Collectors.toList()),"/"); u.setTagNames(tagNames); }); - excelService.exportExcel(list,null,"会员信息",WxCUserBasicInfoVo.class,"会员信息数据.xlsx",response); + excelService.exportExcel(list, null, "会员信息", WxCUserBasicInfoVo.class, "会员信息数据.xlsx", response, false); } public void exportTemplate(HttpServletRequest request, HttpServletResponse response, String tenantId) { @@ -699,7 +699,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { list.add(u2); list.add(u3); - excelService.exportExcel(list,null,"会员信息模板",WxCUserBasicInfoVo.class,"会员信息模板.xlsx",response); + excelService.exportExcel(list, null, "会员信息模板", WxCUserBasicInfoVo.class, "会员信息模板.xlsx", response, true); } @@ -950,7 +950,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { public void exportCarPayData(WxCarPayRecord record, HttpServletRequest request, HttpServletResponse response) { List list = wxCarPayRecordMapper.findCarPayList(record); String sheetName = (record.getIsPay()!=null && 1==record.getIsPay())?"线上缴费车辆列表":"进出车辆列表"; - excelService.exportExcel(list,null,sheetName,WxCarPayRecord.class,sheetName+".xlsx",response); + excelService.exportExcel(list, null, sheetName, WxCarPayRecord.class, sheetName + ".xlsx", response, false); } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index 8e7313644..31fbe6a6e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -3,6 +3,7 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; +import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxSharingOrderDto; @@ -14,20 +15,18 @@ import com.iformall.mapper.*; import com.iformall.service.ExcelService; import com.iformall.service.WxCardSpendService; import com.iformall.service.WxProfitSharingOrderService; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.iformall.common.IdWorker; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.*; - -import java.util.*; +import java.util.Date; +import java.util.List; +import java.util.Map; @Service public class WxCardSpendServiceImpl implements WxCardSpendService { @@ -499,7 +498,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { @Override public void exportData(WxCardSpendVo wxCardSpendVo, HttpServletRequest request, HttpServletResponse response) { List list = wxCardSpendMapper.findCardSpendVoList(wxCardSpendVo); - excelService.exportExcel(list,null,"消费记录",WxCardSpendVo.class,"消费记录.xlsx",response); + excelService.exportExcel(list, null, "消费记录", WxCardSpendVo.class, "消费记录.xlsx", response, false); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index b8748237a..59b4d6df5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -1,6 +1,5 @@ package com.iformall.service.impl; -import cn.binarywang.wx.miniapp.bean.WxMaTemplateData; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -11,7 +10,10 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxSharingOrderDto; import com.iformall.domain.po.*; -import com.iformall.domain.po.msg.*; +import com.iformall.domain.po.msg.AppUniformMsg; +import com.iformall.domain.po.msg.FmInsideCouponVerifyMsg; +import com.iformall.domain.po.msg.MpAppMsg; +import com.iformall.domain.po.msg.SmartAppMsg; import com.iformall.domain.vo.*; import com.iformall.enums.*; import com.iformall.exception.MallinkException; @@ -19,7 +21,6 @@ import com.iformall.mapper.*; import com.iformall.mq.MqBaseProducer; import com.iformall.service.*; import com.iformall.utils.DateUtils; -import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -269,7 +270,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { wxMall = wxMallMapper.findList(wxMall).get(0); String filename = wxMall.getName() + DateUtils.getSystemTime("yyyyMMDDHHmmss"); List list = wxCouponOrderMapper.findListOfAdmin(wxCouponOrder); - excelService.exportExcel(list, null, filename, WxCouponOrderBVo.class, filename + ".xlsx", response); + excelService.exportExcel(list, null, filename, WxCouponOrderBVo.class, filename + ".xlsx", response, false); } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 300f3e680..7a131b219 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -638,7 +638,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { } }); - excelService.exportExcel(list,null,"商户信息",WxMerchant.class,"商户信息数据.xlsx",response); + excelService.exportExcel(list, null, "商户信息", WxMerchant.class, "商户信息数据.xlsx", response, false); } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java index b7bd35a61..de712d298 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java @@ -3,25 +3,20 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; +import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.WxMerchantSubsidy; import com.iformall.domain.vo.WxMerchantSubsidyVo; - import com.iformall.mapper.WxMerchantSubsidyMapper; import com.iformall.service.ExcelService; import com.iformall.service.WxMerchantSubsidyService; - import org.apache.commons.lang3.StringUtils; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.iformall.common.IdWorker; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.*; - import java.util.List; import java.util.Map; @@ -82,7 +77,7 @@ public class WxMerchantSubsidyServiceImpl implements WxMerchantSubsidyService { @Override public void exportData(WxMerchantSubsidy wxMerchantSubsidy, HttpServletRequest request, HttpServletResponse response) { List list = wxMerchantSubsidyMapper.findVoList(wxMerchantSubsidy); - excelService.exportExcel(list,null,"补贴记录",WxMerchantSubsidyVo.class,"补贴记录.xlsx",response); + excelService.exportExcel(list, null, "补贴记录", WxMerchantSubsidyVo.class, "补贴记录.xlsx", response, false); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java index 2c3a4f662..943d4d1e0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java @@ -189,7 +189,7 @@ public class WxShopServiceImpl implements WxShopService { public void exportShop(WxShop wxShop, HttpServletRequest request, HttpServletResponse response) { List list = wxShopMapper.findListWithMerchantMap(wxShop); String name = EnumRentShopType.SHOP.getCode().equals(wxShop.getType())?"店铺列表":"多经点位列表"; - excelService.exportExcel(list,null, name, WxShopVo.class,name+".xlsx",response); + excelService.exportExcel(list, null, name, WxShopVo.class, name + ".xlsx", response, false); } @Override @@ -212,6 +212,6 @@ public class WxShopServiceImpl implements WxShopService { notRentShopVoList.add(notRentShopVo); } String name = "未出租商铺列表"; - excelService.exportExcel(notRentShopVoList,null, name, WxNotRentShopVo.class,name+".xlsx",response); + excelService.exportExcel(notRentShopVoList, null, name, WxNotRentShopVo.class, name + ".xlsx", response, false); } } diff --git a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml index a86c81048..2c3516f7a 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml @@ -24,7 +24,7 @@ `id`,`phone`,`birthdate`,`education`,`sex`,`email`,`address`,`poins`,`tag_id`, `create_date`,`update_date`,`tenant_id`,`name`,`nick_name`,`credit`,`active_time` - ,(select level from wx_level_config where poins >= points order by points desc limit 1 ) level + ,(select level from wx_level_config where poins >= points and tenant_id=#{tenantId} order by points desc limit 1 ) level From 6781dc207ce8f3a06b608ddf2c1cd820cdf36bdf Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 29 May 2019 17:25:26 +0800 Subject: [PATCH 13/22] =?UTF-8?q?[excel=E6=A8=A1=E6=9D=BF=E5=AF=BC?= =?UTF-8?q?=E5=87=BA][=E4=BF=AE=E6=94=B9][=E5=B8=A6*=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=B8=BA=E5=BF=85=E5=A1=AB=E5=AD=97=E6=AE=B5]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/service/ExcelService.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/ExcelService.java b/mallinkService/src/main/java/com/iformall/service/ExcelService.java index 9e68237bb..412ea68fe 100644 --- a/mallinkService/src/main/java/com/iformall/service/ExcelService.java +++ b/mallinkService/src/main/java/com/iformall/service/ExcelService.java @@ -33,12 +33,12 @@ public class ExcelService { ExportParams exportParams = new ExportParams(title, sheetName); exportParams.setCreateHeadRows(isCreateHeader); exportParams.setType(ExcelType.XSSF); - defaultExport(list, pojoClass, fileName, response, exportParams); + defaultExport(list, pojoClass, fileName, response, exportParams, false); } public static void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName, HttpServletResponse response, boolean template) { - defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF)); + defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF), template); } public static void exportExcel(List> list, String fileName, HttpServletResponse response) @@ -46,20 +46,21 @@ public class ExcelService { defaultExport(list, fileName, response); } - - private static void defaultExport(List list, Class pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams) + private static void defaultExport(List list, Class pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams, boolean template) { Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list); if (workbook != null) { - Sheet sheetAt = workbook.getSheetAt(0); - CellStyle cellStyle = workbook.createCellStyle(); - Font font = workbook.createFont(); - font.setColor(IndexedColors.RED.getIndex()); - cellStyle.setFont(font); - Row row = sheetAt.createRow(sheetAt.getLastRowNum() + 2); - Cell cell = row.createCell(0); - cell.setCellValue("*为必填字段(此段文字导入数据时请删除)"); - cell.setCellStyle(cellStyle); + if (template) { + Sheet sheetAt = workbook.getSheetAt(0); + CellStyle cellStyle = workbook.createCellStyle(); + Font font = workbook.createFont(); + font.setColor(IndexedColors.RED.getIndex()); + cellStyle.setFont(font); + Row row = sheetAt.createRow(sheetAt.getLastRowNum() + 2); + Cell cell = row.createCell(0); + cell.setCellValue("*为必填字段(此段文字导入数据时请删除)"); + cell.setCellStyle(cellStyle); + } } downLoadExcel(fileName, response, workbook); } From f39d83895c71d76cb65a0b95f4c114f3f369286f Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 29 May 2019 14:26:35 +0800 Subject: [PATCH 14/22] =?UTF-8?q?[=E6=9C=8D=E5=8A=A1=E7=9B=91=E6=8E=A7][?= =?UTF-8?q?=E6=96=B0=E5=A2=9E]:=E6=8E=A5=E5=8F=A3=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E9=87=8D=E8=AF=95=E4=B8=89=E6=AC=A1=E5=90=8E=EF=BC=8C=E5=86=8D?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=BC=82=E5=B8=B8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/schedule/SysMonitorSchedule.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java index 8d9585d4a..75e6249e8 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/SysMonitorSchedule.java @@ -44,20 +44,25 @@ public class SysMonitorSchedule { private void checkSysMonitor(SysMonitor sysMonitor) { boolean isNormal = true; - try { - String result = HttpUtil.doGet(sysMonitor.getUrl()); - if(StringUtils.isBlank(result)) { - isNormal = false; - } else { - if(result.length() < 60) { - logger.info(result); + for(int i=0;i<3;i++) { + try { + String result = HttpUtil.doGet(sysMonitor.getUrl()); + if (StringUtils.isBlank(result)) { + isNormal = false; } else { - logger.info(result.substring(0, 50)); + if (result.length() < 60) { + logger.info(result); + } else { + logger.info(result.substring(0, 50)); + } } + } catch (RuntimeException e) { + logger.error(e.getMessage()); + isNormal = false; + } + if(isNormal) { + break; } - } catch (RuntimeException e) { - logger.error(e.getMessage()); - isNormal = false; } if(!isNormal) { @@ -68,6 +73,7 @@ public class SysMonitorSchedule { content = content.replace("{url}", sysMonitor.getUrl()); //发送邮件 + logger.error(sysMonitor.getName() + "访问异常"); mailService.sendSimpleMail(receivers, sysMonitor.getName() + "访问异常", content); } } From 0dc517588ef2e17444e2816f3f6d7633dae6975d Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 29 May 2019 17:20:07 +0800 Subject: [PATCH 15/22] =?UTF-8?q?[=E5=85=8D=E5=85=85=E5=80=BC=E4=BB=A3?= =?UTF-8?q?=E9=87=91=E5=88=B8][=E6=96=B0=E5=A2=9E]:=E5=BC=80=E9=80=9A?= =?UTF-8?q?=E6=B5=8B=E8=AF=95code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/pay/WxPayment.java | 114 ++++++++++++++++-- 1 file changed, 101 insertions(+), 13 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/pay/WxPayment.java b/mallinkService/src/main/java/com/iformall/pay/WxPayment.java index ab6d02418..c1461fa0f 100644 --- a/mallinkService/src/main/java/com/iformall/pay/WxPayment.java +++ b/mallinkService/src/main/java/com/iformall/pay/WxPayment.java @@ -515,20 +515,108 @@ public class WxPayment { return str; } - public static void main(String[] args) { - Map map = MapUtil.getOrderMap(); - map.put("mch_id", "1451696902"); - map.put("nonce_str", RandomUtils.getStr(32)); - String sign = WxPayment.createSign(map, "9f779d18a174f83879be48574afcb6f6"); - map.put("sign", sign); - String response = WxPay.sanboxSignGet(map); - System.out.println(response); - /* + private static void getSanboxKeyTest() { + Map map = MapUtil.getOrderMap(); + map.put("mch_id", "1511925291"); + // map.put("sub_mch_id", "1513691501"); + map.put("nonce_str", RandomUtils.getStr(32)); + String sign = WxPayment.createSign(map, "XHZfpVA0NzoXgLEjsujctUTcyj8Zur2C"); + map.put("sign", sign); + String response = WxPay.sanboxSignGet(map); + System.out.println(response); + + /* - - - - + + + + */ + } + + + private static void getDownloadBillTest(String signKey) { + Map map = MapUtil.getOrderMap(); + map.put("appid", "wxed2f44705544b892"); + map.put("mch_id", "1511925291"); + map.put("nonce_str", RandomUtils.getStr(32)); + map.put("bill_date", "20190524"); + map.put("bill_type", "ALL"); + String sign = WxPayment.createSign(map, signKey); + map.put("sign", sign); + String response = WxPay.downloadBill(map); + System.out.println(response); + } + + private static void microPaySanbox(String signKey, String outTradeNo) { + Map map = MapUtil.getOrderMap(); + map.put("appid", "wxed2f44705544b892"); + map.put("mch_id", "1511925291"); + map.put("nonce_str", RandomUtils.getStr(32)); + map.put("body", "image形象店-深圳腾大- QQ公仔"); + map.put("out_trade_no", outTradeNo); + map.put("total_fee", "502"); + map.put("spbill_create_ip", "172.16.115.182"); + map.put("auth_code", "134659695358765866"); + String sign = WxPayment.createSign(map, signKey); + map.put("sign", sign); + String response = WxPay.micropay(map); + System.out.println("micropay"); + System.out.println(response); + } + + private static void queryPaySanbox(String signKey, String outTradeNo) { + Map map = MapUtil.getOrderMap(); + map.put("appid", "wxed2f44705544b892"); + map.put("mch_id", "1511925291"); + map.put("out_trade_no", outTradeNo); + map.put("nonce_str", RandomUtils.getStr(32)); + String sign = WxPayment.createSign(map, signKey); + map.put("sign", sign); + String response = WxPay.orderQuery(map); + System.out.println("micropayQuery"); + System.out.println(response); + } + + private static void refundSanbox(String signKey, String outTradeNo, String outRefundNo) { + Map map = MapUtil.getOrderMap(); + map.put("appid", "wxed2f44705544b892"); + map.put("mch_id", "1511925291"); + map.put("nonce_str", RandomUtils.getStr(32)); + map.put("out_trade_no", outTradeNo); + map.put("out_refund_no", outRefundNo); + map.put("total_fee", "502"); + map.put("refund_fee", "501"); + String sign = WxPayment.createSign(map, signKey); + map.put("sign", sign); + String response = WxPay.orderRefund(map, "/opt/iformall/service/apiclient_cert.p12", "1511925291"); + System.out.println("refund"); + System.out.println(response); + } + + private static void refundQuerySanbox(String signKey, String outTradeNo, String outRefundNo) { + Map map = MapUtil.getOrderMap(); + map.put("appid", "wxed2f44705544b892"); + map.put("mch_id", "1511925291"); + map.put("nonce_str", RandomUtils.getStr(32)); + map.put("out_trade_no", outTradeNo); + map.put("out_refund_no", outRefundNo); + String sign = WxPayment.createSign(map, signKey); + map.put("sign", sign); + String response = WxPay.orderRefundQuery(map); + System.out.println("refundQuery"); + System.out.println(response); + } + + public static void main(String[] args) { + String signKey = "7e9d244da17632cdf608e04564a628da"; + + String outTradeNo = "1459833232543346"; + String outRefundNo = "143446547"; + microPaySanbox(signKey, outTradeNo); + queryPaySanbox(signKey, outTradeNo); + refundSanbox(signKey, outTradeNo, outRefundNo); + refundQuerySanbox(signKey, outTradeNo, outRefundNo); } + } From 6dbfe07e77e5b334874cce6df78b2f9130cd888f Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 29 May 2019 17:49:54 +0800 Subject: [PATCH 16/22] =?UTF-8?q?[=E7=A7=9F=E8=B5=81=E5=90=88=E5=90=8C][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E6=B7=BB=E5=8A=A0=E4=B8=BB=E4=BD=93?= =?UTF-8?q?=E5=90=8D=E7=A7=B0]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V201905291742___RENT_CONTRACT.sql | 2 ++ .../main/java/com/iformall/domain/po/WxRentContract.java | 3 +++ .../src/main/resources/mapper/WxRentContractMapper.xml | 6 ++++-- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V201905291742___RENT_CONTRACT.sql diff --git a/mallinkAdmin/src/main/resources/db/migration/V201905291742___RENT_CONTRACT.sql b/mallinkAdmin/src/main/resources/db/migration/V201905291742___RENT_CONTRACT.sql new file mode 100644 index 000000000..beb5e85a4 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201905291742___RENT_CONTRACT.sql @@ -0,0 +1,2 @@ +ALTER TABLE `wx_rent_contract` +ADD COLUMN `subject_name` varchar(200) DEFAULT NULL COMMENT '主体名称'; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index de5274366..ed46ee1b3 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -214,6 +214,9 @@ public class WxRentContract extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "多径租赁单价(其他放rentInfo)", name = "priceUnit") private String rentPrice; + @io.swagger.annotations.ApiModelProperty(value = "主体名称", name = "subjectName") + private String subjectName; + public static enum Field { Id_ASC("`id` ASC"), Id_DESC("`id` DESC") , MerchantId_ASC("`merchant_id` ASC"), MerchantId_DESC("`merchant_id` DESC") diff --git a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml index 43768aba7..1cf032510 100644 --- a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml @@ -46,6 +46,7 @@ + @@ -56,7 +57,7 @@ `pay_account`,`filename`,`lease`,`type`,`revenue`,`adjust_ratio`,`adjust_period`,`pay_ratio`, `start_date`,`end_date`, `apply_status`,`bank_name`,`rent_shop_type`,`fix_start_date`,`fix_end_date`, - `business_type`,`rent_info`, `file_names`,price_unit,rent_price + `business_type`,`rent_info`, `file_names`,price_unit,rent_price,`subject_name` @@ -115,7 +116,8 @@ rc.lease,rc.filepath,rc.filename,rc.pay_account payAccount,rc.sign_date signDate,rc.merchant_id merchantId,rc.type, rc.start_date startDate,rc.end_date endDate,br.`name` brandName,rc.apply_status applyStatus,rc.bank_name bankName,rc.rent_shop_type rentShopType,rc.fix_start_date fixStartDate,rc.fix_end_date fixEndDate - ,rc.business_type businessType,rc.adjust_period adjustPeriod,rc.rent_info rentInfo, rc.file_names fileNames,rc.price_unit + ,rc.business_type businessType,rc.adjust_period adjustPeriod,rc.rent_info rentInfo, rc.file_names + fileNames,rc.price_unit,rc.subject_name subjectName from wx_rent_contract rc left join wx_shop s on rc.shop_id=s.id left join wx_mall_floor f on s.floor=f.id From 3d2fe940f4424b9f4d85d65f259ba491c6a259e3 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 18:04:10 +0800 Subject: [PATCH 17/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001640]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxRentContractServiceImpl.java | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index fd5135bd0..fb4c0ce22 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -876,6 +876,10 @@ public class WxRentContractServiceImpl implements WxRentContractService { } List billTimeVoList = initBillTimeList(wxRentContract.getRentalStartDate(),wxRentContract.getRentalEndDate(),wxRentContract.getAdjustPeriod(),dayType,receivePeriod); + for (BillTimeVo vo:billTimeVoList) { + System.out.println("ooooooooo"); + System.out.println(sd.format(vo.getStartDate()) + " "+sd.format(vo.getEndDate()) ); + } int index = 0; for (BillTimeVo billTimeVo : billTimeVoList){ @@ -936,10 +940,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime()); needpay = new Double(needpayD).longValue(); }else{ - //当天也算,加1天 - Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1); //按月 - int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),newEndDate); + int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),wxBillRent.getEndtime()); needpay = diff[0]*price; double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxRentContract.getRentalEndDate()); @@ -1746,7 +1748,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { */ public static double getNeedPay(long monthPrice,long dayPrice,Date start,Date end){ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); - SimpleDateFormat sdM = new SimpleDateFormat("MM"); + SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM"); Double total; int[] diff; @@ -1757,20 +1759,20 @@ public class WxRentContractServiceImpl implements WxRentContractService { }else{ price = dayPrice; } - Date currEnd = DateUtils.getLastDayForMonth(start); - - System.out.println("-----------"); - System.out.println(sd.format(start)); - System.out.println(sd.format(currEnd)); + //同一天 if(sd.format(start).equals(sd.format(end))){ - total = 1 * price; //算1天 - return total; - }else{ - diff = DateUtils.getDiff(start,currEnd); - total = (diff[1]+1) * price; + return 1 * price; //算1天 } - System.out.println("-------total:"+total); + //同月 + if(sdM.format(start).equals(sdM.format(end))){ + diff = DateUtils.getDiff(start,end); + return (diff[1]+1) * price; + } + + Date currEnd = DateUtils.getLastDayForMonth(start); + diff = DateUtils.getDiff(start,currEnd); + total = (diff[1]+1) * price; while (true){ Date monthStartDate = DateUtils.getDaySet(currEnd,Calendar.DATE,1); @@ -1782,6 +1784,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } System.out.println("-------monthStartDate:"+sd.format(monthStartDate)); + System.out.println("-------monthStartDate:"+sd.format(end)); //最后一个月 if(sdM.format(monthStartDate).equals(sdM.format(end))){ @@ -1797,7 +1800,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { diff = DateUtils.getDiff(monthStartDate,currEnd); total += price * (diff[1] +1); } - System.out.println("-------total:"+total); } return total; } @@ -1805,7 +1807,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { public static void main(String[] args) throws Exception{ long tprice = 100; SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); - Date start = sd.parse("2019-05-28"); + Date start = sd.parse("2019-05-13"); Date end = sd.parse("2019-07-05"); System.out.println("===="+new WxRentContractServiceImpl().getNeedPay(tprice,0,start,end));; From ef1988b49eed6a93d7577e61f74798725b591533 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 18:04:33 +0800 Subject: [PATCH 18/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001640]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/service/impl/WxRentContractServiceImpl.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index fb4c0ce22..90d03ffbb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -876,10 +876,9 @@ public class WxRentContractServiceImpl implements WxRentContractService { } List billTimeVoList = initBillTimeList(wxRentContract.getRentalStartDate(),wxRentContract.getRentalEndDate(),wxRentContract.getAdjustPeriod(),dayType,receivePeriod); - for (BillTimeVo vo:billTimeVoList) { - System.out.println("ooooooooo"); - System.out.println(sd.format(vo.getStartDate()) + " "+sd.format(vo.getEndDate()) ); - } +// for (BillTimeVo vo:billTimeVoList) { +// System.out.println(sd.format(vo.getStartDate()) + " "+sd.format(vo.getEndDate()) ); +// } int index = 0; for (BillTimeVo billTimeVo : billTimeVoList){ From 47dac5ac32ea97be7df2902a90dc3b6e250c6b4e Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 18:10:25 +0800 Subject: [PATCH 19/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001640]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/service/impl/WxRentContractServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 90d03ffbb..c59e2c868 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -973,7 +973,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxBillRent.setRevenue(0L); wxBillRent.setTenantId(wxRentContract.getTenantId()); wxBillRent.setIsDel(0); - wxBillRent.setMerchantId(wxMerchant.getId()); + wxBillRent.setMerchantId(wxRentContract.getMerchantId()); wxBillRent.setUserId(userId); wxBillRent.setShopId(wxRentContract.getShopId()); wxBillRent.setCreatetime(date); From f372607b40610d83c8c4c1a9a22201553825e1f0 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 29 May 2019 18:16:25 +0800 Subject: [PATCH 20/22] =?UTF-8?q?[=E7=A7=9F=E8=B5=81=E5=90=88=E5=90=8C][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E4=B8=8B=E8=BD=BD]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxRentContractServiceImpl.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index c59e2c868..8a9dd8792 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -13,14 +13,16 @@ import com.iformall.domain.vo.BillTimeVo; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; -import com.iformall.service.*; +import com.iformall.service.WxFlowRecordService; +import com.iformall.service.WxFlowService; +import com.iformall.service.WxMerchantService; +import com.iformall.service.WxRentContractService; import com.iformall.utils.DateUtils; import com.iformall.utils.DownFileUtil; import com.iformall.utils.PriceUtil; import com.iformall.utils.WordUtil; import org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.usermodel.DateUtil; import org.apache.shiro.SecurityUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; @@ -38,7 +40,6 @@ import java.io.File; import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; -import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -1385,13 +1386,20 @@ public class WxRentContractServiceImpl implements WxRentContractService { double priceRent = new BigDecimal(wxRentContract.getPrice()) .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); result.put("priceRent", priceRent); - double unitPrice = new BigDecimal(wxRentContract.getPrice()) - .divide(new BigDecimal(wxRentContract.getRentArea()), 2, RoundingMode.HALF_EVEN) - .divide(new BigDecimal(100)) - .setScale(2, RoundingMode.HALF_EVEN).doubleValue(); - result.put("unitPriceRent", unitPrice); - result.put("priceRentUpper", PriceUtil.digitUppercase(priceRent)); - result.put("unitPriceRentUpper", PriceUtil.digitUppercase(unitPrice)); + if (!wxRentContract.getRentArea().equals("0")) { + double unitPrice = new BigDecimal(wxRentContract.getPrice()) + .divide(new BigDecimal(wxRentContract.getRentArea()), 2, RoundingMode.HALF_EVEN) + .divide(new BigDecimal(100)) + .setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + result.put("unitPriceRent", unitPrice); + result.put("priceRentUpper", PriceUtil.digitUppercase(priceRent)); + result.put("unitPriceRentUpper", PriceUtil.digitUppercase(unitPrice)); + } else { + result.put("unitPriceRent", 0); + result.put("priceRentUpper", "0"); + result.put("unitPriceRentUpper", "0"); + } + //租赁保证金 int cashDepositMonthRent = 3; double cashDepositRent = new BigDecimal(wxRentContract.getPrice()).multiply(new BigDecimal(cashDepositMonthRent)) From 41811b385b8be1259a365da118418e5aa35e6893 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 29 May 2019 18:31:40 +0800 Subject: [PATCH 21/22] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][1001640]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/service/impl/WxRentContractServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 8a9dd8792..f61cd4025 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -940,8 +940,10 @@ public class WxRentContractServiceImpl implements WxRentContractService { double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime()); needpay = new Double(needpayD).longValue(); }else{ + //当天也算,加1天 + Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1); //按月 - int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),wxBillRent.getEndtime()); + int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),newEndDate); needpay = diff[0]*price; double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxRentContract.getRentalEndDate()); From 5e92a98759538e0b75adf45745573ee7e5977a28 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 29 May 2019 18:46:10 +0800 Subject: [PATCH 22/22] =?UTF-8?q?[=E5=95=86=E6=88=B7][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=B0=81=E9=9D=A2=E5=9B=BE=E9=97=AE=E9=A2=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxMerchantServiceImpl.java | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 7a131b219..f892e1e86 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -1,6 +1,5 @@ package com.iformall.service.impl; -import com.alibaba.fastjson.JSONArray; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; @@ -366,18 +365,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { wxMerchant.setStatus(EnumMerchantStatus.VALID.getCode()); wxMerchant.setUpdateDate(date); wxMerchant.setCreateDate(date); - if(StringUtils.isNotBlank(wxMerchant.getCoverPicture())) { - List coverPicture = JSONArray.parseArray(wxMerchant.getCoverPicture(), String.class); - if (!coverPicture.isEmpty()) { - wxMerchant.setImgUrl(coverPicture.get(0)); - } - } else { - if(StringUtils.isNotBlank(wxMerchant.getImgUrl())) { - List strList = new ArrayList(); - strList.add(wxMerchant.getImgUrl()); - wxMerchant.setCoverPicture(JSONArray.toJSONString(strList)); - } - } + wxMerchantMapper.insertSelective(wxMerchant); //关联合同