Commit f9e261d6 authored by 谢希宇's avatar 谢希宇

Submit by Strive

Date 2021/07/09
Project End
parent 6500ef22
......@@ -178,12 +178,11 @@
<th>订单编码</th>
<th>用药人姓名</th>
<th>别名</th>
<!-- <th>性别</th>-->
<!-- <th>联系电话</th>-->
<th>新用户</th>
<th>患者类型</th>
<th>药师</th>
<th>客服</th>
<th>随访医院</th>
<th>审核状态</th>
<th>拒绝原由</th>
<th>提交时间</th>
......@@ -306,12 +305,6 @@
{
"mData": "fansAlias"
},
// {
// "mData": "sex"
// },
// {
// "mData": "phone"
// },
{
"mData": "isSales"
},
......@@ -324,6 +317,9 @@
{
"mData": "customerName"
},
{
"mData": "followupHospital"
},
{
"mData": "status"
},
......@@ -446,8 +442,20 @@
}
},
{
"width": "60px",
"width": "80px",
"aTargets": [9],
"mData": "followupHospital",
"mRender": function (a, b, c, d) {
if (a) {
return a;
} else {
return null;
}
}
},
{
"width": "60px",
"aTargets": [10],
"mData": "status",
"mRender": function (a, b, c, d) {
if (a == 0) {
......@@ -461,7 +469,7 @@
},
{
"width": "120px",
"aTargets": [10],
"aTargets": [11],
"mData": "description",
"mRender": function (a, b, c, d) {
if (a) {
......@@ -473,7 +481,7 @@
},
{
"width": "120px",
"aTargets": [11],
"aTargets": [12],
"mData": "createTime",
"mRender": function (a, b, c, d) {
if (a) {
......@@ -486,7 +494,7 @@
},
{
"width": "120px",
"aTargets": [12],
"aTargets": [13],
"mData": "auditTime",
"mRender": function (a, b, c, d) {
if (a) {
......@@ -498,7 +506,7 @@
},
{
"width": "80px",
"aTargets": [13],
"aTargets": [14],
"mData": "id",
"mRender": function (a, b, c, d) {
let html = '';
......
......@@ -31,6 +31,7 @@
<result column="order_id" property="orderId"></result>
<result column="address_id" property="addressId"></result>
<result column="audit_time" property="auditTime"></result>
<result column="followup_hospital" property="followupHospital"></result>
</resultMap>
<sql id="sqlWhere">
......@@ -90,7 +91,8 @@
a.address_id addressId,
a.audit_time auditTime,
b.`name` pharmaName,
c.`name` customerName
c.`name` customerName,
a.followup_hospital followupHospital
</sql>
<sql id="sqlCol">
......@@ -221,15 +223,19 @@
(SELECT status FROM t_order sales WHERE sales.del_flag = '0' AND sales.status = '4' AND sales.openid = a.open_id LIMIT 1) isSales,
f.store fansAlias,
o.status orderStatus,
(SELECT SUM(od.drugs_num) FROM t_order_details od WHERE od.order_id = o.id AND od.del_flag = '0') drugNum
(SELECT SUM(od.drugs_num) FROM t_order_details od WHERE od.order_id = o.id AND od.del_flag = '0') drugNum,
GROUP_CONCAT(g.name SEPARATOR ',') tabNames
FROM t_aidea_consult_sheet a
LEFT JOIN t_order o ON a.order_id = o.id
LEFT JOIN t_qyuser b ON b.id = a.doctor_id AND b.del_flag = '0'
LEFT JOIN t_qyuser c ON c.id = a.service_id AND c.del_flag = '0'
LEFT JOIN wx_mp_member m ON m.open_id = a.open_id AND m.del_flag = '0' AND m.status != '0'
LEFT JOIN wx_mp_member m ON m.open_id = a.open_id AND m.del_flag = '0'
LEFT JOIN t_aidea_member_group g ON FIND_IN_SET(g.id, m.member_id) != 0 AND g.del_flag = '0'
LEFT JOIN wx_mp_fanss f ON f.openid = a.open_id AND f.delflag = '0'
<include refid="sqlWhere"/>
<if test="userid!=null">AND (a.doctor_id = ${userid} or a.service_id =${userid})</if>
AND a.open_id NOT IN (SELECT open_id FROM wx_mp_member WHERE status = '0' AND del_flag = '0')
GROUP BY a.id
<if test="sort!=null">ORDER BY ${sort.param} ${sort.type}</if>
<if test="limit>0">limit #{offset},#{limit}</if>
</select>
......@@ -338,6 +344,9 @@
<if test="auditTime != null">
audit_time = #{auditTime, jdbcType=TIMESTAMP},
</if>
<if test="followupHospital != null">
followup_hospital = #{followupHospital, jdbcType=VARCHAR},
</if> l
</set>
where id=#{id,jdbcType=BIGINT}
</update>
......
......@@ -72,6 +72,8 @@ public class ConsultSheet extends UserSheet implements Serializable {
private Long memberId;
/* 订单id */
private Long orderId;
/* 随访医院 */
private String followupHospital;
/**
* 审核时间
......@@ -97,6 +99,7 @@ public class ConsultSheet extends UserSheet implements Serializable {
private String isSales;//是否购买
private String orderStatus;//订单状态
private String drugNum;//购买数量
private String tabNames;//患者类型
public ConsultSheet() {
this.delFlag = false;
......
......@@ -679,8 +679,7 @@
SELECT COUNT(1)
FROM wx_mp_fanss f
INNER JOIN wx_mp_member m ON f.openid = m.open_id
INNER JOIN t_aidea_authentication au ON m.cardid = au.id_card
WHERE f.delflag = '0' AND m.del_flag = '0' AND au.del_flag = '0' AND au.status = '0' AND m.open_id = #{openid}
WHERE f.delflag = '0' AND m.del_flag = '0' AND m.status = '1' AND m.open_id = #{openid}
</select>
<update id="updateRemindType">
......
......@@ -164,7 +164,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
@Transactional(rollbackFor = RuntimeException.class)
@Override
public JSONObject saveOrderDetail(String datas, Long accountsId, String orderId, String openid, Double orderAmount) throws Exception {
public JSONObject saveOrderDetail(String datas, Long accountsId, String orderId, String openid, Double orderAmount) throws Exception {
JSONObject rtnJson = new JSONObject();
JSONArray jsonArray = JSONArray.parseArray(datas);
......@@ -258,9 +258,41 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
/**
* 计算总金额
*
* @param order
* @param orderAmount //非三期患者所以购药金额
* 三期患者免费购药,根据身份证号做出限制,每年同一身份证号购买12盒以内的药品,价格自动设为0,如超出12 盒恢复原价。
* 三期患者免费购药,根据身份证号做出限制,每年同一身份证号购买12盒以内的药品,价格自动设为0,如超出12 盒恢复原价。
* <p>
* 三期患者 每年12瓶免费用药逻辑
* BigDecimal unitP = new BigDecimal(price);//折扣单价
* BigDecimal nums = null;//折扣数量
* //三期用户
* Conds conds = new Conds();
* conds.equal("t.del_flag", Constants.DEL_FLAG_0);
* conds.equal("t.openid", order.getOpenid());
* Calendar cal = Calendar.getInstance();
* int year = cal.get(Calendar.YEAR);
* conds.equal("YEAR(t.create_time)", year);
* Integer number = orderDetailsService.fetchMemberByYearGoodsNum(conds);//已购药品数据
* if (number >= 12) {
* order.setTotalAmount(orderAmount * 100);//订单原价
* order.setOrderAmount(orderAmount);//实际需支付价格
* } else {
* int realNum = (12 - number);//剩余每年免费盒数
* if (num.intValue() < realNum) {
* nums = new BigDecimal(num);
* } else {
* nums = new BigDecimal(realNum);
* }
* BigDecimal saleAmount = unitP.multiply(nums);//三期患者折扣价格
* BigDecimal sumAmount = new BigDecimal(orderAmount);//订单总价
* BigDecimal realAmount = sumAmount.subtract(saleAmount);//实际需支付价格
* order.setTotalAmount(sumAmount.doubleValue() * 100);//订单原价
* order.setOrderAmount(realAmount.doubleValue());//实际需支付价格
* order.setRemindType(nums.toString());//三期患者本单免费数量
* }
* <p>
* 三期患者 当前时间-首单时间 >=( (30天 * 所有免费瓶数 )- N天) 用药逻辑
*/
private void calculateAmount(Order order, Double orderAmount, Long num, Double price) {
if (isThreeUsers(order.getOpenid()) > 0) {
......@@ -352,7 +384,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
calendar.set(Calendar.SECOND, 0);
Date now = calendar.getTime();
Date payDate = DateFormatUtils.formatDate(orderMobile.getPayTime(), "yyyy-MM-dd");
long difference = (now.getTime()-payDate.getTime())/86400000;
long difference = (now.getTime() - payDate.getTime()) / 86400000;
orderMobile.setIsSevenDay(String.valueOf(Math.abs(difference)));
}
......@@ -666,7 +698,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
msg = SystemConfig.p.getProperty("QY_SEND_SERVICE_PAYMENT_SUCCESS_MAG") + order.getNumber() + ";患者昵称:" +
(StringUtils.isNoneBlank(order.getNickName()) ? order.getNickName() : "") + ";患者别名:" +
(StringUtils.isNoneBlank(order.getFansAlias()) ? order.getFansAlias() : "")+ ";患者付款金额:" + payAmountDb + "(单位/元)";
(StringUtils.isNoneBlank(order.getFansAlias()) ? order.getFansAlias() : "") + ";患者付款金额:" + payAmountDb + "(单位/元)";
}
if (qyusers != null && qyusers.size() > 0) {
......
......@@ -156,7 +156,6 @@ public class OrderController {
}
}
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(orderFromVO));
model.addAttribute("data", jsonObject);
......
......@@ -61,8 +61,8 @@
<section class="content-header">
<h1>
会员管理
<small>会员信息</small>
CRC患者管理
<small>CRC患者信息</small>
</h1>
<ol class="breadcrumb">
<li><a><i class="fa fa-dashboard"></i>首页</a></li>
......@@ -287,7 +287,7 @@
"mData": "source"
},
{
"mData": "memberId"
"mData": "tabNames"
},
{
"mData": "createTime"
......@@ -381,13 +381,6 @@
}
},
{
"aTargets": [9],
"mData": "memberId",
"mRender": function (a, b, c, d) {
return a;
}
}
, {
"aTargets": [11],
"mData": "createTime",
"mRender": function (a, b, c, d) {
......@@ -401,11 +394,13 @@
var html = '';
html += '#if($shiro.hasPermission("qy:member:audit"))';
html += '<a onclick="showTabsDiv('+c.id+')" class="btn green">设置类型</a>';
if (c.status == '0') {
html += '<a onclick="auditPass(' + c.id + ')" class="btn green">审核通过</a>';
}
if (c.status != '2') {
html += '<a onclick="auditNotPass(' + c.id + ')" class="btn green">审核拒绝</a>';
if (c.invitcode != null && c.invitcode != '' && c.cardid != null && c.cardid != '') {
if (c.status == '0') {
html += '<a onclick="auditPass(' + c.id + ')" class="btn green">审核通过</a>';
}
if (c.status != '2') {
html += '<a onclick="auditNotPass(' + c.id + ')" class="btn green">审核拒绝</a>';
}
}
html += '#end';
return html;
......@@ -516,9 +511,6 @@
error: function () {
}
});
//$(".select2").val([]).trigger("change");
}
function submitTabs() {
......
......@@ -43,6 +43,7 @@
href="plugins\bootstrap-fileinput\fileinput.min.css">
<!-- bootstrap wysihtml5 - text editor -->
<link rel="stylesheet" href="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
<link rel="stylesheet" href="plugins/select2/select2.min.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
......@@ -69,26 +70,38 @@
</ol>
</section>
<div id="addlabelModal" class="modal fade">
<div class="modal fade" id="tabsDiv" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<!-- dialog body -->
<div class="modal-header">
<h4 class="modal-title" style="font-weight: 700;">设置患者类型</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<font color="red" style="margin: 10px;">*谨慎操作:生成虚拟会员后,此邀请码对应的预导入名单人员状态自动为报名状态*</font>
<input class="form-control select2" style="width: 100%" id="addlabel"
placeholder='邀请码'>
</input>
<form>
<input id="tabNumberId" name="tabNumberId" style="display: none;">
<div class="form-group">
<!-- <label for="message-text" class="col-form-label">请选择患者类型:</label>-->
<select class="form-control select2" style="width: 100%" multiple="multiple" data-placeholder="请选择类型">
#foreach($group in $groups)
<option value="${group.id}" data-attr="${role.roleSign}">${group.name}
</option>
#end
</select>
</div>
</form>
</div>
<div style="text-align: center;padding-bottom: 20px;">
<button style="width: 100px;" type="button" class="btn btn-primary" onclick="addlabelsubmit()">
确定
</button>
<button style="width: 100px;" type="button" id="tagCacel" class="btn btn-default">取消</button>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
<button type="button" class="btn btn-primary" onclick="submitTabs()">提交</button>
</div>
<!-- dialog buttons -->
</div>
</div>
</div>
<!-- Main content -->
<section class="content">
<div class="row">
......@@ -137,10 +150,12 @@
<th>身份证</th>
<th>来源</th>
<th>三期患者</th>
<th>患者类型</th>
<!-- <th>邀请码</th>-->
<!-- <th>客户分类</th>-->
<!-- <th>名片</th>-->
<th>创建日期</th>
<th>操作</th>
</tr>
</thead>
<tbody id="tablebody">
......@@ -181,6 +196,7 @@
<script src="dist/js/app.min.js"></script>
<script type="text/javascript"
src="plugins/jquery-validation/js/jquery.validate.min.js"></script>
<script src="plugins/select2/select2.full.min.js"></script>
<script>
var csrfheader = {name: '_csrf_header', value: '${_csrf.headerName}'};
var csrftoken = {name: '_csrf', value: '${_csrf.token}'};
......@@ -254,8 +270,14 @@
{
"mData": "status"
},
{
"mData": "tabNames"
},
{
"mData": "createTime"
},
{
"mData": "id"
}
],
"aoColumnDefs": [
......@@ -263,7 +285,6 @@
'visible': false,
'targets': [0]
},
{
"aTargets": [1],
"mData": "imageurl",
......@@ -338,11 +359,22 @@
}
},
{
"aTargets": [8],
"aTargets": [10],
"mData": "createTime",
"mRender": function (a, b, c, d) {
return formatDates(a, "yyyy-MM-dd HH:mm:ss");
}
},
{
"aTargets": [11],
"mData": "id",
"mRender": function (a, b, c, d) {
var html = '';
html += '#if($shiro.hasPermission("qy:member:audit"))';
html += '<a onclick="showTabsDiv('+c.id+')" class="btn green">设置类型</a>';
html += '#end';
return html;
}
}
]
});
......@@ -394,6 +426,7 @@
jQuery(document).ready(function () {
$(".select2").select2();
seachTable();
$('.datepicker').datepicker({
show: true,
......@@ -452,7 +485,53 @@
});
}
function showTabsDiv(id) {
$("#tabsDiv").modal('show');
$("#tabNumberId").val(id);
$.ajax({
type: "POST",
url: "#springUrl('/a/member/memberById')",
data: {id: $("#tabNumberId").val(), _csrf_header: csrfheader.value, _csrf: csrftoken.value},
dataType: "json",
success: function (data) {
if (data.errorNo == 0) {
if (data.member.memberId != null) {
$(".select2").val(data.member.memberId.split(",")).trigger("change");
} else {
$(".select2").val([]).trigger("change");
}
}
},
error: function () {
}
});
}
function submitTabs() {
debugger;
$("#tabsDiv").modal('hide');
let vals = $('.select2').select2('val');
if (vals.length == 0) {
Cfapp.alert({ message: "请先选择患者类型", btntext: "确定", success: function () {} });
return;
}
$.ajax({
type: "POST",
url: "#springUrl('/a/member/formData')",
data: {id: $("#tabNumberId").val(), memberId: vals.join(','), _csrf_header: csrfheader.value, _csrf: csrftoken.value},
dataType: "json",
success: function (data) {
if (data.errorNo == 0) {
$("#tabsDiv").modal('hide');
location.href = "#springUrl('/a/member/list')";
}
},
error: function () {
}
});
}
</script>
</body>
</html>
......@@ -108,7 +108,8 @@
</sql>
<sql id="sqlColumns">
id,number,name,phone,imageurl,cardid,email,member_id,accounts_id,del_flag,status,create_time,update_time,description,create_by,update_by,
id
,number,name,phone,imageurl,cardid,email,member_id,accounts_id,del_flag,status,create_time,update_time,description,create_by,update_by,
open_id,storeid,fanss_store_id,sex,birthday,area,service_id,doctor_id,invitcode,compan,source,audit_time
</sql>
......@@ -116,67 +117,66 @@
keyProperty="id">
insert into wx_mp_member
(
<include refid="sqlColumns"/>
<include refid="sqlColumns"/>
)
values
(
#{id, jdbcType=BIGINT},
#{number, jdbcType=VARCHAR},
#{name, jdbcType=VARCHAR},
AES_ENCRYPT(#{phone, jdbcType=VARBINARY},'aideakey'),
#{imageurl, jdbcType=VARCHAR},
#{cardid, jdbcType=VARCHAR},
AES_ENCRYPT(#{email, jdbcType=VARBINARY},'aideakey'),
#{memberId, jdbcType=VARCHAR},
#{accountsId, jdbcType=BIGINT},
#{delFlag, jdbcType=TINYINT},
#{status, jdbcType=VARCHAR},
now(),
now(),
#{description, jdbcType=VARCHAR},
#{createBy, jdbcType=BIGINT},
#{updateBy, jdbcType=BIGINT},
#{openId, jdbcType=VARCHAR},
#{storeid,jdbcType=VARCHAR},
#{fanssStoreId, jdbcType=BIGINT},
#{sex, jdbcType=BIGINT},
AES_ENCRYPT(#{birthday,jdbcType=VARBINARY},'aideakey'),#{area,jdbcType=VARCHAR},
#{serviceId, jdbcType=VARCHAR},
#{doctorId,jdbcType=VARCHAR},
#{invitcode,jdbcType=VARCHAR},
#{compan,jdbcType=VARCHAR},
#{source,jdbcType=BIGINT},
#{auditTime,jdbcType=TIMESTAMP}
#{id, jdbcType=BIGINT},
#{number, jdbcType=VARCHAR},
#{name, jdbcType=VARCHAR},
AES_ENCRYPT(#{phone, jdbcType=VARBINARY},'aideakey'),
#{imageurl, jdbcType=VARCHAR},
#{cardid, jdbcType=VARCHAR},
AES_ENCRYPT(#{email, jdbcType=VARBINARY},'aideakey'),
#{memberId, jdbcType=VARCHAR},
#{accountsId, jdbcType=BIGINT},
#{delFlag, jdbcType=TINYINT},
#{status, jdbcType=VARCHAR},
now(),
now(),
#{description, jdbcType=VARCHAR},
#{createBy, jdbcType=BIGINT},
#{updateBy, jdbcType=BIGINT},
#{openId, jdbcType=VARCHAR},
#{storeid,jdbcType=VARCHAR},
#{fanssStoreId, jdbcType=BIGINT},
#{sex, jdbcType=BIGINT},
AES_ENCRYPT(#{birthday,jdbcType=VARBINARY},'aideakey'),#{area,jdbcType=VARCHAR},
#{serviceId, jdbcType=VARCHAR},
#{doctorId,jdbcType=VARCHAR},
#{invitcode,jdbcType=VARCHAR},
#{compan,jdbcType=VARCHAR},
#{source,jdbcType=BIGINT},
#{auditTime,jdbcType=TIMESTAMP}
)
</insert>
<select id="fetchById" parameterType="java.lang.Long" resultMap="resultMap">
SELECT
t.id,
t.number,
t.name,
CONVERT( AES_DECRYPT( t.phone,'aideakey') USING UTF8) phone,
t.imageurl,
t.cardid,
CONVERT( AES_DECRYPT(t.email,'aideakey') USING UTF8) email,
t.member_id,
t.accounts_id,
t.del_flag,
t.status,
t.create_time,
t.update_time,
t.description,
t.create_by,
t.update_by,
t.open_id,
t.storeid,
t.area,
t.fanss_store_id,
t.doctor_id,
t.invitcode,
t.compan
SELECT t.id,
t.number,
t.name,
CONVERT(AES_DECRYPT(t.phone, 'aideakey') USING UTF8) phone,
t.imageurl,
t.cardid,
CONVERT(AES_DECRYPT(t.email, 'aideakey') USING UTF8) email,
t.member_id,
t.accounts_id,
t.del_flag,
t.status,
t.create_time,
t.update_time,
t.description,
t.create_by,
t.update_by,
t.open_id,
t.storeid,
t.area,
t.fanss_store_id,
t.doctor_id,
t.invitcode,
t.compan
FROM wx_mp_member t
WHERE t.id=#{id}
WHERE t.id = #{id}
</select>
<select id="count" parameterType="java.util.Map" resultType="java.lang.Integer">
......@@ -203,26 +203,26 @@
<select id="fetchSearchByPageServer" parameterType="java.util.Map" resultMap="resultMap">
SELECT
member.id,
member.number,
member.name,
CONVERT(AES_DECRYPT(member.phone,'aideakey') USING UTF8) member.phone,
member.imageurl,
member.member_id,
member.accounts_id,
member.del_flag,
member. STATUS,
member.create_time,
member.update_time,
member.description,
member.create_by,
member.update_by,
member.open_id,
member.storeid,
member.invitcode,
member.compan,
member.sex,
member.service_id
member.id,
member.number,
member.name,
CONVERT(AES_DECRYPT(member.phone,'aideakey') USING UTF8) member.phone,
member.imageurl,
member.member_id,
member.accounts_id,
member.del_flag,
member. STATUS,
member.create_time,
member.update_time,
member.description,
member.create_by,
member.update_by,
member.open_id,
member.storeid,
member.invitcode,
member.compan,
member.sex,
member.service_id
FROM
wx_mp_member member
<include refid="sqlWhere"/>
......@@ -316,30 +316,36 @@
</update>
<update id="delete" parameterType="java.lang.Long">
update wx_mp_member set del_flag=1 where id=#{id,jdbcType=BIGINT}
update wx_mp_member
set del_flag=1
where id = #{id,jdbcType=BIGINT}
</update>
<select id="selectmemberDto" parameterType="java.util.Map" resultType="com.cftech.member.model.MemberDto">
SELECT
m.id,
m.imageurl,
m.sex,
m.name,
CONVERT(AES_DECRYPT(m.phone,'aideakey') USING UTF8) as phone,
m.open_id AS openId,
m.create_time as createTime,
m.member_id memberId,
m.source,
m.cardid,
m.status,
m.invitcode,
q.name serviceName
FROM
wx_mp_member m LEFT JOIN t_qyuser q ON m.service_id = q.id
m.id,
m.imageurl,
m.sex,
m.name,
CONVERT(AES_DECRYPT(m.phone,'aideakey') USING UTF8) as phone,
m.open_id AS openId,
m.create_time as createTime,
m.member_id memberId,
m.source,
m.cardid,
m.status,
m.invitcode,
q.name serviceName,
GROUP_CONCAT(g.name SEPARATOR ',') tabNames
FROM wx_mp_member m
LEFT JOIN t_qyuser q ON m.service_id = q.id
LEFT JOIN t_aidea_member_group g ON FIND_IN_SET(g.id, m.member_id) != 0 AND g.del_flag = '0'
<include refid="sqlWhere"/>
GROUP BY m.id
<if test="sort!=null">ORDER BY ${sort.param} ${sort.type}</if>
<if test="limit>0">limit #{offset},#{limit}</if>
</select>
<select id="selectmemberDtoCount" parameterType="java.util.Map" resultType="java.lang.Integer">
SELECT
COUNT(1)
......@@ -347,46 +353,47 @@
wx_mp_member m
<include refid="sqlWhere"/>
</select>
<!--个人信息回填
-->
<!--个人信息回填-->
<select id="memberFormation" parameterType="java.lang.String" resultType="com.cftech.member.model.MemberVO">
SELECT
t.id,
SELECT t.id,
t.name memberName,
t.sex,
CONVERT(AES_DECRYPT(t.birthday, 'aideakey')USING UTF8) birthday,
CONVERT(AES_DECRYPT(t.birthday, 'aideakey') USING UTF8) birthday,
t.imageurl,
CONVERT(AES_DECRYPT(t.email, 'aideakey')USING UTF8) AS mailbox,
CONVERT(AES_DECRYPT(t.phone, 'aideakey')USING UTF8) as phone,
CONVERT(AES_DECRYPT(t.email, 'aideakey') USING UTF8) AS mailbox,
CONVERT(AES_DECRYPT(t.phone, 'aideakey') USING UTF8) as phone,
t.cardid,
t.status,
t.storeid,
o.org_name hospitalsName,
o.org_name hospitalsName,
t.invitcode,
t.audit_time auditTime,
t.open_id openid,
t.service_id serviceId,
u.name serviceName
u.name serviceName,
t.compan
FROM wx_mp_member t
LEFT JOIN t_orgunit o ON t.storeid = o.id
LEFT JOIN t_qyuser u ON t.service_id = u.id
WHERE t.open_id = #{openid} and t.del_flag = 0
WHERE t.open_id = #{openid}
and t.del_flag = 0
</select>
<select id="fanssChat" resultType="com.cftech.member.model.FanssVO">
SELECT
f.id,
f.openid,
f.nickname nickname,
f.headimgurl,
m.status isThree,
m.invitcode invitcode,
m.cardid cardid,
o.org_name hospital
FROM wx_mp_fanss f
LEFT JOIN wx_mp_member m ON f.openid = m.open_id AND m.del_flag = '0'
LEFT JOIN t_orgunit o ON m.storeid = o.id
WHERE f.openid = #{openid} and f.delflag = '0'
SELECT f.id,
f.openid,
f.nickname nickname,
f.headimgurl,
m.status isThree,
m.invitcode invitcode,
m.cardid cardid,
o.org_name hospital
FROM wx_mp_fanss f
LEFT JOIN wx_mp_member m ON f.openid = m.open_id AND m.del_flag = '0'
LEFT JOIN t_orgunit o ON m.storeid = o.id
WHERE f.openid = #{openid}
and f.delflag = '0'
</select>
<!-- 个人信息修改 -->
......
......@@ -44,6 +44,7 @@ public class MemberDto {
private String memberId;
private String tabNames;
......
......@@ -42,6 +42,14 @@ public interface MemberService extends GenericService<Member> {
void updateworkshop(Member member,String invitcode);
/**
* 会员列表
* @param conds
* @param sort
* @param page
* @param pageSize
* @return
*/
List<MemberDto> selectmemberDto(Conds conds, Sort sort, int page, int pageSize);
int selectmemberDtoCount (Conds conds);
......
......@@ -120,8 +120,8 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
//未注册会员时,填充粉丝信息
List<MemberVO> memberVOS = memberMapper.memberFormation(openid);
if (memberVOS == null || memberVOS.size() == 0) {
MpFanssEntity fanssEntity = fanssService.getWxUser(openid);
MemberVO member = new MemberVO();
MpFanssEntity fanssEntity = fanssService.getWxUser(openid);
member.setOpenid(openid);
member.setMemberName(fanssEntity.getNickname());
member.setSex(fanssEntity.getSex());
......@@ -129,9 +129,7 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
rtnJson.put("errorNo", "0");
rtnJson.put("data", member);
} else {
MpFanssEntity fanssEntity = fanssService.getWxUser(openid);
MemberVO member = memberVOS.get(0);
member.setImageUrl(fanssEntity.getHeadimgurl());
rtnJson.put("errorNo", "0");
rtnJson.put("data", member);
}
......@@ -151,11 +149,6 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
rtnJson.put("errorMsg", "姓名不能为空");
return rtnJson;
}
if (StringUtils.isEmpty(memberVO.getCardid())) {
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "身份证不能为空");
return rtnJson;
}
if (StringUtils.isEmpty(memberVO.getPhone())) {
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "联系方式不能为空");
......@@ -163,9 +156,20 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
}
MpAccountsEntity accounts= mpAccountsService.getMpAccountsAppid(memberVO.getAppId());
List<MemberVO> memberVOS = memberMapper.memberFormation(memberVO.getOpenid());
if (memberVOS == null || memberVOS.size() == 0) {
Member member = new Member();
Member member = this.fetchById(memberVO.getId());
if (member == null) {
//验证随机号是否被使用
Conds conds = new Conds();
conds.equal("invitcode", memberVO.getInvitcode());
List<Member> list = this.fetchSearchByPage(conds, null, 0, 0);
if (list != null && list.size() != 0) {
rtnJson.put("errorNo", "2");
rtnJson.put("errorMsg", "随机号已被使用");
return rtnJson;
}
member = new Member();
member.setNumber(codingruleUtils.getNumber(accounts.getId(), Member.class.getName()));
member.setOpenId(memberVO.getOpenid());
member.setName(memberVO.getMemberName());
......@@ -173,20 +177,40 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
member.setCardid(memberVO.getCardid());
member.setPhone(memberVO.getPhone());
member.setImageurl(memberVO.getImageUrl());
member.setStoreid(memberVO.getStoreid());//入组医院
member.setInvitcode(memberVO.getInvitcode());//随机号
if (StringUtils.isNoneBlank(memberVO.getStoreid()) && StringUtils.isNoneBlank(memberVO.getInvitcode())) {
member.setStatus("0");//待审批
member.setCompan(memberVO.getCompan());
//三期用户
if (StringUtils.equals(memberVO.getCompan(), "1")) {
member.setStatus("0");
member.setStoreid(memberVO.getStoreid());
member.setInvitcode(memberVO.getInvitcode());
}
memberMapper.save(member);
rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg", "修改成功");
return rtnJson;
} else {
if (StringUtils.equals("2", memberVOS.get(0).getStatus()) && StringUtils.isNoneBlank(memberVO.getStoreid()) && StringUtils.isNoneBlank(memberVO.getInvitcode())) {
memberVO.setStatus("0");
//验证随机号是否被使用
Conds conds = new Conds();
conds.equal("invitcode", memberVO.getInvitcode());
conds.notEqual("id", member.getId());
List<Member> list = this.fetchSearchByPage(conds, null, 0, 0);
if (list != null && list.size() != 0) {
rtnJson.put("errorNo", "2");
rtnJson.put("errorMsg", "随机号已被使用");
return rtnJson;
}
member.setName(memberVO.getMemberName());
member.setSex(Long.parseLong(memberVO.getSex()));
member.setPhone(memberVO.getPhone());
member.setCompan(memberVO.getCompan());
//三期患者且审核拒绝
if (StringUtils.equals(memberVO.getCompan(), "1") && StringUtils.equals(member.getStatus(), "2")) {
member.setStatus("0");
member.setStoreid(memberVO.getStoreid());
member.setInvitcode(memberVO.getInvitcode());
}
memberMapper.updateMember(memberVO);
memberMapper.update(member);
rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg", "修改成功");
return rtnJson;
......
......@@ -110,6 +110,13 @@ public class MemberController {
@RequestMapping("/list")
public String list(HttpServletRequest request, Model model) {
Long accountId = UserUtils.getmpaccounts(request);
//获取患者类型数据
Conds conds = new Conds();
conds.equal("del_flag", Constants.DEL_FLAG_0);
Sort sort = new Sort("create_time", OrderType.DESC);
List<MemberGroup> groups = memberGroupService.fetchSearchByPage(conds, sort, 0, 0);
model.addAttribute("groups", groups);
model.addAttribute("accountId", accountId);
return "member/memberlist";
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment